PGCRYPT/OpenBlender_Train huggingface dataset:
user: How do I use NodeFrame(NodeInternal) in Blender? Include parameters, examples, warnings and best practices.

assistant: # NodeFrame(NodeInternal)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), [`NodeInternal`](bpy.types.NodeInternal.html#bpy.types.NodeInternal "bpy.types.NodeInternal")

*class* bpy.types.NodeFrame(*NodeInternal*)
:   Collect related nodes together in a common area. Useful for organization when the re-usability of a node group is not required

    label_size
    :   Font size to use for displaying the label

        Type:
        :   int in [8, 64], default 0

    shrink
    :   Shrink the frame to minimal bounding box

        Type:
        :   boolean, default False

    text
    :   Type:
        :   [`Text`](bpy.types.Text.html#bpy.types.Text "bpy.types.Text")

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Show practical ways to work with Box Erase in a Blender add-on or script – include code.

assistant: The *Box Erase* operator erases all Grease Pencil strokes within a rectangular selection.

- Press `B`, then click and drag to define a rectangular area.
- Release the mouse button to apply the eraser.
- All points of strokes within the box are removed.
user: Show practical ways to work with Default Settings in a Blender add-on or script – include code.

assistant: - The **Edit** scene has a default length of **10 seconds**, providing a concise overview of
  the full storyboard sequence.
- Each **shot scene** is set to **2 seconds** by default, offering a shorter duration that makes
  it easier to visualize pacing in the Sequencer.
- Frame ranges are shortened compared to typical defaults (e.g., 250 frames) to make timeline
  navigation more practical for storyboard editing.
user: Explain GeometryNodeInputInstanceRotation(GeometryNode) in complete detail according to the official Blender documentation.

assistant: # GeometryNodeInputInstanceRotation(GeometryNode)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), [`NodeInternal`](bpy.types.NodeInternal.html#bpy.types.NodeInternal "bpy.types.NodeInternal"), [`GeometryNode`](bpy.types.GeometryNode.html#bpy.types.GeometryNode "bpy.types.GeometryNode")

*class* bpy.types.GeometryNodeInputInstanceRotation(*GeometryNode*)
:   Retrieve the rotation of each instance in the geometry

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Explain Build Modifier in complete detail according to the official Blender documentation.

assistant: # Build Modifier

The *Build* modifier causes the faces of the mesh object to appear or disappear one after the other over time.

By default, faces appear in the order in which they are stored in memory (by default, the order of creation).
The face/vertex order can be altered in Edit Mode by using [Sort Mesh Elements](../../meshes/editing/mesh/sort_elements.html#mesh-edit-sort-elements).
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Image
:   Image input, to be linked to the “Combined” render pass.

Speed
:   Input for the “Vector” render pass.
    See [Cycles render passes](../../../../render/layers/passes.html).

Z
:   Z depth, to be linked to the “Depth” render pass.

Samples
:   Quality factor.

Shutter
:   Duration of the motion blur in seconds, corresponding to the exposure time simulated for each frame.
user: Describe Dolly View from the Blender manual or Python API, including usage steps and snippets.

assistant: In most cases it’s sufficient to zoom the view to get a closer look at something.
However, zooming only gets you up to the point of interest and no further.
If you hit this point where zooming no longer works, you can instead Dolly
by holding `Shift`-`Ctrl` and dragging up or down with `MMB`.
This will move the point of interest (and the view along with it).

`RMB` cancels the dolly operation.
user: Provide the full official documentation entry for Project Point Node, preserving all code examples.

assistant: # Project Point Node

[image reference removed]

Applies a projection matrix to a point. Specifically, this node turns the given
Euclidean vector (X, Y, Z) into the homogeneous vector (X, Y, Z, 1),
multiplies the given projection matrix by it,
and turns the resulting homogeneous vector back into a Euclidean one by dividing
it by the absolute value of its W component. This last step is also known as
perspective division.
user: Give a detailed overview of Precision: syntax, arguments, return values, common patterns.

assistant: Holding `Shift` during transformations allows for very fine control that does not
rely on fixed increments. Rather, large movements of the mouse across
the screen only result in small transformations of the selection.

In rotation mode the selected element will be rotate in 0.01 degree increments.
user: Describe Bpy.Types.Nodetreeinterfacesocketvectoracceleration from the Blender manual or Python API, including usage steps and snippets.

assistant: na_get_subclass_py() Inherited Properties Inherited Functions
user: What is Examples and how is it used in Blender Python scripting?

assistant: |  |  |
| --- | --- |
| ../../../_images/render_shader-nodes_shader_glass_example.jpg   Sharp Glass example. | ../../../_images/render_shader-nodes_shader_glass_behavior-sharp.svg   Sharp Glass behavior. |
| ../../../_images/render_shader-nodes_shader_glass_example-rough.jpg   Rough Glass example. | ../../../_images/render_shader-nodes_shader_glass_behavior.svg   Rough Glass behavior. |
user: What is Asset Libraries and how is it used in Blender Python scripting?

assistant: Name and on-drive directory paths of asset libraries.
To make Blender aware of an asset library, add it to this list.
The name is for your reference only, and will appear in asset library selectors.
The path should point to the location of the asset library.

[image reference removed]

Name and Location of asset libraries in the Preferences.

To create a new asset library, just create an empty directory and add it to the [List View](../../interface/controls/templates/list_view.html#ui-list-view).
Any asset from any blend-file contained in that directory
(or subdirectories thereof) will appear in the [Asset Browser](../asset_browser.html).

Import Method
:   Determines how data is managed when an asset is imported,
    unless overridden by the [Asset Browser](../asset_browser.html#bpy-types-fileassetselectparams-import-method).

    [Link](../../files/linked_libraries/link_append.html#bpy-ops-wm-link)
    :   The asset will be linked to the current blend-file, and thus be read-only.
        Later changes to the asset file will be reflected in all files that link it in.

    [Append](../../files/linked_libraries/link_append.html#bpy-ops-wm-append)
    :   All of the asset and all its dependencies will be appended to the current file.
        Dragging a material into the scene three times will result in three independent copies.
        Dragging an object into the scene three times will also result in three independent copies.

        “Dependencies” in this case means everything the asset refers to.
        For an object, this can be its mesh and materials, but also other objects
        used by modifiers, constraints, or drivers.

        Since the file now has its own copy of the asset, later changes to
        the asset file will not be reflected in the file it’s appended to.

    Append (Reuse Data)
    :   *Specific to the Asset Browser*.

        The first time an asset is used, it will be appended, including its dependencies,
        just like described previously. However, Blender will keep track of where it originated,
        and the next time the asset is used, as much data as possible will be reused.
        Dragging a material into the scene three times will only load it once,
        and just assign the same material three times.
        Dragging an object into the scene three times will create three copies of the object,
        but all copies will share their mesh data, materials, etc.

        Since the file now has its own copy of the asset, later changes to
        the asset file will not be reflected in the file it’s appended to.

    Pack
    :   Imports the asset as *linked* data and immediately packs it into the current blend-file.
        This ensures that the asset remains available even if the original library data is modified
        or becomes unavailable.

        Useful for maintaining self-contained files that do not rely on external asset library paths.

Relative Path
:   Use relative path when linking assets from this asset library.
user: How do I use Laptops in Blender? Include parameters, examples, warnings and best practices.

assistant: # Laptops

Laptops often have two GPUs for power saving purposes. One slower onboard GPU integrated into the main CPU (typically
Intel or AMD) that uses lower power, and one faster dedicated GPU for better performance (AMD or NVIDIA) that uses
more power.

For the best performance, the dedicated GPU should be used for Blender. Which GPU to use for which application can be
configured in your graphics driver or operating system settings.

If there is a graphics glitch or crash specific to the onboard GPU, then using the dedicated GPU can help avoid that.
Or vice versa, if the dedicated GPU causes issues, then using the onboard graphics can help.
user: Describe GreasePencilDashModifierSegment(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GreasePencilDashModifierSegment(bpy_struct)

base class — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")

*class* bpy.types.GreasePencilDashModifierSegment(*bpy_struct*)
:   Configuration for a single dash segment

    dash
    :   The number of consecutive points from the original stroke to include in this segment

        Type:
        :   int in [1, 32767], default 2

    gap
    :   The number of points skipped after this segment

        Type:
        :   int in [0, 32767], default 1

    material_index
    :   Use this index on generated segment. -1 means using the existing material.

        Type:
        :   int in [-1, 32767], default -1

    name
    :   Name of the dash segment

        Type:
        :   string, default “”, (never None)

    opacity
    :   The factor to apply to the original point’s opacity for the new points

        Type:
        :   float in [0, 1], default 1.0

    radius
    :   The factor to apply to the original point’s radius for the new points

        Type:
        :   float in [0, 1], default 1.0

    use_cyclic
    :   Enable cyclic on individual stroke dashes

        Type:
        :   boolean, default False

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Show practical ways to work with Orbit in a Blender add-on or script – include code.

assistant: Rotate the view around the point of interest by clicking and dragging
`MMB` on the viewport’s area.

`RMB` cancels the orbit operation.

The `Alt` key has several effects on orbiting:

- Clicking a point with `Alt`-`MMB` will make it the point of interest:
  it becomes the central point which the view orbits around.
- Holding `Alt` and then dragging with `MMB` in a certain direction
  will [align](viewpoint.xhtml) the view to an axis
  and make it orthographic.
- Dragging with `MMB` and then holding `Alt`
  will perform an orbit while also snapping to the world axes,
  as well as the diagonals between them.

To change the viewing angle in discrete steps, use `Numpad8` and `Numpad2`
to go up and down, or `Numpad4` and `Numpad6` for left and right.
You can also press `Numpad9` to switch to the opposite side of the view
(rotates the camera 180° around the Z axis).
user: How do I use Color Sets in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

The Color Sets panel is used to define the bone color scheme for the final rig. The colors from the list
can be associated with bone collections from the relevant panel.

The top two rows of the Color Sets panel are used to define the general behavior of the bone colors.
Usually color themes use a gradient of colors to define the different bone states: default, selected and active.
When multiple color themes are used in the same rig, identifying which bone is selected or
active can be tricky since each color will have its corresponding state.

To override this behavior Rigify unifies the active and selected states using the same color.
This is defined by two values:

Unified Selected/Active Colors
:   When this option is active adding a bone group in the list will always keep the colors consistent.
    When a color scheme is added from a theme, the color scheme is loaded as is.
    Click on the *Apply* button to force the system to unify selected and active colors.

Selected/Active Colors
:   This two color fields define respectively the *Selected* and *Active* colors.
    By default Rigify reads these colors from the theme defined by the user in the Blender preferences.
    This way the *Selected*/*Active* colors can always have a predictable and consistent behavior in the UI.
    The colors can be customized by clicking on the relevant color field.
    To reset them to the Blender current theme value just click on the button with the update icon.

Color Sets can be added and deleted by clicking on  or .
All color sets can be deleted at once by clicking on the Specials menu.

To add the colors from the predefined Rigify default color scheme (as shown in the image) to the list click
the *Add Standard* button.

To add a specific theme with its own color scheme, select it from the list and click on the *Add From Theme* button.
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Geometry
:   The input geometry containing the hair curves to deform.

Cumulative Offset
:   When enabled, each point’s offset is influenced by the displacement of the preceding points
    along the curve.
    This produces smoother and more continuous bending rather than independent point motion.

Factor
:   Controls the overall intensity of the noise deformation.
    A value of 0.0 disables the effect, while 1.0 applies the full displacement.

Distance
:   Multiplies the amplitude of the noise displacement.
    Higher values increase how far the hair is moved from its original shape.

Shape
:   Defines the variation of the effect along the curve length.
    A value of 0.0 applies a constant deformation, while 0.5 produces a linear falloff from root to tip.

Scale
:   Adjusts the scale of the noise texture based on the root position of each curve.
    Smaller values create larger, smoother waves, while higher values produce finer detail.

Scale along Curve
:   Defines the frequency of the noise along each individual curve.
    Higher values create tighter, more frequent variations along the hair strands.

Offset per Curve
:   Adds a random offset to the noise pattern for each curve.
    This ensures that each hair receives a unique noise variation.

Seed
:   Sets the random seed used to initialize the noise pattern.
    Changing this value produces different random results while maintaining the same parameters.

Preserve Length
:   When enabled, maintains the original length of each curve segment during deformation.
    When disabled, noise deformation may stretch or compress the curve slightly.
user: Describe Curve Widget from the Blender manual or Python API, including usage steps and snippets.

assistant: # Curve Widget

[image reference removed]

Curve widget.

This widget is used to edit two types of curves:

- *Profile* curves that simply describe a two-dimensional shape.
- *Mapping* curves that map an input value on the X axis to an output value on the Y axis.

The available options are slightly different depending on this type. Also, unlike profile curves,
mapping curves can’t have overhang: each X value must correspond to exactly one Y value.
user: What is Accessing Stroke Editing Tools and how is it used in Blender Python scripting?

assistant: These are available through the different tools in the Toolbar,
the Stroke menu in the 3D Viewport header, and context menus in the 3D Viewport,
as well as individual shortcut keys.

### Toolbar

When you select a stroke and `Tab` into Edit Mode,
the [Toolbar](tools/index.xhtml) changes from *Object Tools* to *Stroke editing Tools*.
These are only some of the stroke editing tools.

### Menus

The [Stroke Menu](stroke_menu.xhtml) is located in the header.

### Context Menu

`RMB` brings up the complete [Stroke Menu](stroke_menu.xhtml).
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

assistant: Mode
:   Determines how to choose which layers are merged.

    By Name:
    :   Combine all layers which have the same name.

    By Group ID:
    :   Provide a custom group ID for each layer and all layers with the same ID will be merged into one.
user: Give a detailed overview of Corners of Vertex Node: syntax, arguments, return values, common patterns.

assistant: # Corners of Vertex Node

[image reference removed]

Selects a neighboring face corner of a vertex and outputs its index.

This node is a bit special because it operates in two different domains.
First, it evaluates a *Weight* for each corner in the geometry.
Then, for each item in the context domain, it will:

- Pick a vertex from the geometry based on the *Vertex Index*.
- Find the face corners adjacent to this vertex.
- Sort these corners by their associated weight.
- Pick a corner from the above sorted list based on the *Sort Index*,
  where 0 means the corner with the lowest weight,
  1 means the corner with the second-lowest weight and so on.
- Output the geometry-wide index of this corner.
user: Describe Snap from the Blender manual or Python API, including usage steps and snippets.

assistant: Selection to Current Frame
:   Move the start of the selected strips to the current frame.

Selection to Nearest Frame
:   Move the start of the selected strips to the nearest full frame.

Selection to Nearest Second
:   Move the start of the selected strips to the nearest second.

Selection to Nearest Marker
:   Move the start of the selected strips to the nearest marker.
user: Explain Internal Springs in complete detail according to the official Blender documentation.

assistant: As stated in the introduction, cloth physics are simulated through [Springs](../introduction.xhtml#physics-cloth-introduction-springs)
connecting vertices on the surface of a mesh. But these springs only interact on the surface
and only apply to 2D surfaces. 3D or *Internal Springs* can be used to make a mesh behave similarly to
a [Soft Body](../../soft_body/index.xhtml). Internal springs can be enabled by toggling the checkbox in
the *Internal Springs* panel header.

Max Spring Creation Length
:   The maximum length an internal spring can have during creation.
    If the distance between internal points is greater than this,
    no internal spring will be created between these points.
    A length of zero means that there is no length limit.

Max Creation Diversion
:   The maximum angle that is allowed to use to connect the internal points can diverge from the vertex normal.

Check Surface Normals
:   Requires the points the internal springs connect to have opposite normal directions.

Tension
:   How much the material resists stretching.

Compression
:   How much the material resists compression.

Vertex Group
:   The *Tension* and *Compression* of internal springs can be controlled via
    a [Vertex Group](../../../modeling/meshes/properties/vertex_groups/index.xhtml) to
    specify which the portions of the mesh have internal springs or the spring strength.

Max Tension
:   Maximum tension stiffness value.

Max Compression
:   Maximum Compression stiffness value.
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: [image reference removed]

Export options.

All UVs
:   Export all UVs rather than only what is selected in the 3D View.

Export Tiles
:   Choose whether to export only the [0,1] range, or all UV tiles

Modified
:   Export UVs from the mesh with all its modifiers evaluated.

Format
:   Image file format to save to (`.png`, `.eps`, `.svg`).

Size
:   The size of the exported image in pixels.

Fill Opacity
:   Set the opacity of the fill.
user: How do I use BoidRuleFight(BoidRule) in Blender? Include parameters, examples, warnings and best practices.

assistant: # BoidRuleFight(BoidRule)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`BoidRule`](bpy.types.BoidRule.html#bpy.types.BoidRule "bpy.types.BoidRule")

*class* bpy.types.BoidRuleFight(*BoidRule*)
:   distance
    :   Attack boids at max this distance

        Type:
        :   float in [0, 100], default 0.0

    flee_distance
    :   Flee to this distance

        Type:
        :   float in [0, 100], default 0.0

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: How do I use Interface in Blender? Include parameters, examples, warnings and best practices.

assistant: ### Header

Node Tree
:   Chooses which node group (compositor node tree) to display and edit.
    Each [Scene](../scene_layout/scene/index.xhtml) can have its own compositor node tree.
    You can also create and switch to custom node groups for reuse.

Pinned
:   When enabled, the editor always displays the selected node tree, regardless of the active scene.
    This is useful when working with multiple scenes but wanting to keep the compositor focused on one node tree.

#### Gizmos

Controls the display of gizmos in the Compositor.

Clicking  (Show Gizmos) toggles all gizmos in the Compositor
The drop-down button displays a popover with more detailed settings,
which are described below.

Viewport Gizmos

Active Node
:   Display a context-sensitive gizmo for the currently selected node.
    This may include transform controls or other visual aids depending on the node type.

### Asset Shelf

The *Asset Shelf* provides quick access to compositor node assets, allowing users to drag and drop
predefined node setups directly into the compositor workspace.
Any node group marked as an asset will appear here automatically.

Located at the bottom of the editor, the shelf offers a compact and easily accessible interface for
inserting and organizing compositor assets. Compared to the
[Asset Browser](asset_browser.xhtml), it integrates more seamlessly into the
compositing workflow and can be shown or hidden as needed.

The Asset Shelf helps users:

- Quickly build node setups using reusable assets.
- Explore common compositing techniques and effects.
- Work entirely within Blender for post-processing.

The Asset Shelf can be toggled on or off from the compositor editor’s header.
user: Describe CompositorNodeBlur(CompositorNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # CompositorNodeBlur(CompositorNode)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), [`NodeInternal`](bpy.types.NodeInternal.html#bpy.types.NodeInternal "bpy.types.NodeInternal"), [`CompositorNode`](bpy.types.CompositorNode.html#bpy.types.CompositorNode "bpy.types.CompositorNode")

*class* bpy.types.CompositorNodeBlur(*CompositorNode*)
:   Blur an image, using several blur modes

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    update()

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Describe GeometryNodeTranslateInstances(GeometryNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GeometryNodeTranslateInstances(GeometryNode)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), [`NodeInternal`](bpy.types.NodeInternal.html#bpy.types.NodeInternal "bpy.types.NodeInternal"), [`GeometryNode`](bpy.types.GeometryNode.html#bpy.types.GeometryNode "bpy.types.GeometryNode")

*class* bpy.types.GeometryNodeTranslateInstances(*GeometryNode*)
:   Move top-level geometry instances in local or global space

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of Bpy.Types.Compositornode: syntax, arguments, return values, common patterns.

assistant: _buttons NodeInternal.draw_buttons_ext NodeInternal.bl_rna_get_subclass NodeInternal.bl_rna_get_subclass_py Next CompositorNodeAlphaOver(CompositorNode) Previous ColorStrip(EffectStrip) Copyright &#169; Blender Authors Made with Furo Report issue on this page On this page CompositorNode(NodeInternal) CompositorNode CompositorNode.tag_need_exec() CompositorNode.update() CompositorNode.bl_rna_get_subclass() CompositorNode.bl_rna_get_subclass_py() Inherited Properties Inherited Functions
user: Provide the full official documentation entry for ShaderFxGlow(ShaderFx), preserving all code examples.

assistant: # ShaderFxGlow(ShaderFx)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`ShaderFx`](bpy.types.ShaderFx.html#bpy.types.ShaderFx "bpy.types.ShaderFx")

*class* bpy.types.ShaderFxGlow(*ShaderFx*)
:   Glow effect

    blend_mode
    :   Blend mode

        Type:
        :   enum in [`'REGULAR'`, `'ADD'`, `'SUBTRACT'`, `'MULTIPLY'`, `'DIVIDE'`], default `'REGULAR'`

    glow_color
    :   Color used for generated glow

        Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    mode
    :   Glow mode

        Type:
        :   enum in [`'LUMINANCE'`, `'COLOR'`], default `'LUMINANCE'`

    opacity
    :   Effect Opacity

        Type:
        :   float in [0, 1], default 0.0

    rotation
    :   Rotation of the effect

        Type:
        :   float in [-inf, inf], default 0.0

    samples
    :   Number of Blur Samples

        Type:
        :   int in [1, 32], default 4

    select_color
    :   Color selected to apply glow

        Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    size
    :   Size of the effect

        Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 2 items in [0, inf], default (0.0, 0.0)

    threshold
    :   Limit to select color for glow effect

        Type:
        :   float in [0, 1], default 0.0

    use_glow_under
    :   Glow only areas with alpha (not supported with Regular blend mode)

        Type:
        :   boolean, default False

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Show practical ways to work with Outputs in a Blender add-on or script – include code.

assistant: Mesh
:   Standard geometry output.

Top
:   A boolean field with a selection of the faces on the top of the cone. If the *Fill Type*
    is set to *None*, this will be a selection of the top edges instead. If *Radius Top*
    is zero, this will be a selection of the top vertex.

Side
:   A boolean field with a selection of the faces on the side of the cone.

Bottom
:   A boolean field with a selection of the faces on the bottom of the cone. If the *Fill Type*
    is set to *None*, this will be a selection of the bottom edges instead. If *Radius Bottom*
    is zero, this will be a selection of the bottom vertex.

UV Map
:   The default UV coordinate of each face corner. This can be connected to the
    [Store Named Attribute Node](../../attribute/store_named_attribute.html) for populating a [UV Map](../../../../glossary/index.html#term-UV-Map).
user: Show practical ways to work with Asset Shelf in a Blender add-on or script – include code.

assistant: [image reference removed]

The Asset Shelf of the 3D View, showing material assets.

### Search

To search for assets, hover your mouse over the Asset Shelf, then press Ctrl-F and type a search query.
This will filter the poses to match what you typed.

### Tabs

[image reference removed]

The usage of catalogs as tabs.

Catalogs can be shown as individual tabs. Each tab will only show its content, and the content of its children.
That makes it easy to filter down to a certain set of assets.

### Display Options

[image reference removed]

Display options available for the asset shelf.

It is possible to change the size of items on the shelf by using the size property.

By toggling on the “Names” checkbox, the asset names will be shown in the shelf. Alternatively it is also
possible to hover over an item to show its name.

By default the shelf only has a height for one item row. To allow for more rows, drag it on the upper edge to increase
its size.

### Filter

By Active Tool
:   Only show brushes applicable for the currently active tool in the asset shelf.
user: Describe Inputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Start
:   Position of the first control point.

End
:   Position of the second control point.
    This is only available in the *Points* mode.

Direction
:   Direction the line is going in.
    The length of this vector does not matter.
    This is only available in the *Direction* mode.

Length
:   Length of the line.
    This is only available in the *Direction* mode.
user: Give a detailed overview of Inputs: syntax, arguments, return values, common patterns.

assistant: Image
:   Standard color input.

Mask
:   Controls the amount of influence the node exerts on the output image.

### Master

These settings target the entire tonal range.

Saturation
:   Adjusts the image’s saturation.

Contrast
:   Adjust image contrast.

Gamma
:   Exponential gamma correction, affecting the midtones of the image. (Works like Power in the Color Balance node.)

Gain
:   Multiplier, stronger influence on the highlights. (Works like Slope in the Color Balance node.)

Offset
:   This value (can be negative) will be added (+), linear lightens or darkens the image.

### Highlights / Midtones / Shadows

These settings target specific brightness ranges of the image.

Each tonal range (Highlights, Midtones, Shadows) supports the same controls as Master.

### Tonal Ranges

Midtones Start, Midtones End
:   Defines the start and the end of midtones range, i.e.
    values where the whole tonal range is divided into the highlights, midtones and shadows
    (there is also a smooth transition between the ranges of width 0.2 units).

### Channels

Red, Green, Blue
:   Specifies which RGB channels will be affected by the correction.
user: Give a detailed overview of Properties: syntax, arguments, return values, common patterns.

assistant: Gradient Type
:   Controls the type of gradient generated.

    Linear:
    :   Directly outputs the input X coordinate.

    Quadratic:
    :   Interpolates the input X coordinate quadratically.

    Easing:
    :   Uses a combination of quadratic and linear interpolation
        to generate a smooth gradient from the input X coordinate.

    Diagonal:
    :   Averages the input X and Y coordinates.

    Spherical:
    :   Creates an inverse gradient using the length of the input vector; the maximum value is at (0, 0, 0).

    Quadratic Sphere:
    :   The same as Spherical, except interpolated quadratically.

    Radial:
    :   Outputs a value based on the angle of the input around the Z axis.
user: Explain CompositorNodeSwitchView(CompositorNode) in complete detail according to the official Blender documentation.

assistant: # CompositorNodeSwitchView(CompositorNode)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), [`NodeInternal`](bpy.types.NodeInternal.html#bpy.types.NodeInternal "bpy.types.NodeInternal"), [`CompositorNode`](bpy.types.CompositorNode.html#bpy.types.CompositorNode "bpy.types.CompositorNode")

*class* bpy.types.CompositorNodeSwitchView(*CompositorNode*)
:   Combine the views (left and right) into a single stereo 3D output

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    update()

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Describe Inputs from the Blender manual or Python API, including usage steps and snippets.

assistant: The inputs are dynamic: they become available if needed depending on the node properties.

Vector
:   Texture coordinate to evaluate the noise at;
    defaults to *Generated* texture coordinates if the socket is left unconnected.

W
:   Texture coordinate to evaluate the noise at.

Scale
:   Scale of the base noise octave.

Detail
:   Number of noise octaves. This can have a fractional part, in which case a blend
    is performed (e.g. a Detail of 2.5 results in a 50% blend between 2 and 3 octaves).

Roughness
:   Blend between a smoother noise pattern, and rougher with sharper peaks.

Lacunarity
:   The difference between the scale of each two consecutive octaves.
    Larger values corresponds to larger scale for higher octaves.

Offset
:   An added offset to each octave, determines the level where the highest octave will appear.

Gain
:   An extra multiplier to tune the magnitude of octaves.

Distortion
:   Amount of distortion.
user: Provide the full official documentation entry for About Image-Based Texturing, preserving all code examples.

assistant: Texture images take up precious memory space,
often being loaded into a special video memory bank that is very fast and very expensive,
so it is often very small. So, keep the images as small as possible.
A 64×64 image takes up only one fourth the memory of a 128×128 image.

For photorealistic rendering of objects in animations, often larger image textures are used,
because the object might be zoomed in on in camera moves. In general, you want to use
a texture sized proportionally to the number of pixels that it will occupy in the final render.
Ultimately, you only have a certain amount of physical RAM to hold an image texture and
the model and to provide workspace when rendering your image.

For the most efficient memory usage, image textures should be square, with dimensions as powers of 2,
such as 32×32, 64×64, 128×128, 256×256, 1024×1024, 2048×2048, and 4096×4096.

If you can reuse images across different meshes, this greatly reduces memory requirements.
You can reuse images if you map those areas of the meshes that “look alike” to a layout that
uses the common image.

When using file textures, it is very important that you have
[Mapped the UVs](../../../../modeling/meshes/uv/unwrapping/index.xhtml)
of the mesh, and they are laid out appropriately.

You do not have to UV map the *entire* mesh.
The sphere above on the left has some faces mapped,
but other faces use procedural materials and textures.
Only use UV textures for those portions of your mesh where you want very graphic,
precise detail. For example,
a model of a vase only needs UV texture for the rim where decorative artwork is incorporated.
A throw pillow does not need a different image for the back as the front;
in fact many throw pillows have a fabric (procedural material) back.

As another example, you should UV map both eyes of a head to the same image
(unless you want one bloodshot and the other clear).
Mapping both sides of a face to the same image might not be advisable,
because the location of freckles and skin defects are not symmetrical.
You could of course change the UV map for one side of the face to slightly offset,
but it might be noticeable.
Ears are another example where images or section of an image can be mapped to similar faces.
user: What is Attributes and how is it used in Blender Python scripting?

assistant: The *Attributes* panel displays the available data fields associated with each point in the point cloud.
These attributes define characteristics like point position, size, color, and motion.

Use the [List View](../../interface/controls/templates/list_view.xhtml#ui-list-view) interface to browse, create, edit, or remove attributes.

### Attribute Types

The following are common built-in attributes supported by point cloud objects:

| Name | Type | Domain | Description |
| --- | --- | --- | --- |
| `position` | *Vector* | *Point* | Stores the 3D coordinates of each point in the object’s local space. |
| `radius` | *Float* | *Point* | Defines the visual radius (size) of each point when rendered or displayed. |
| `color` | *Color* | *Point* | The display color of the point. Used in viewport rendering or shading. |
| `id` | *Integer* | *Point* | A unique identifier assigned to each point. Useful for persistent referencing. |
| `velocity` | *Vector* | *Point* | Indicates the directional movement and speed of the point (e.g., for simulations or motion blur). |

Custom Attributes
:   Custom attribute can be given to particles to hold a custom characteristic.

    Name
    :   The name of the attribute.

    Data Type
    :   The type of data to store in the attribute.

        Float:
        :   Floating-point value

        Integer:
        :   32-bit integer

        Vector:
        :   3D vector with floating-point values

        Color:
        :   RGBA color with floating-point precision

        Byte Color:
        :   RGBA color with 8-bit precision

        String:
        :   Text string

    Domain
    :   The type of element the attribute is stored in.
        Currently, attributes can only be stored per *Point*.
user: How do I use Options in Blender? Include parameters, examples, warnings and best practices.

assistant: Noise Basis
:   The texture to be distorted.

Distortion
:   The texture to use to distort another.

Amount
:   The amount that *Distortion Noise* affects *Basis*.

Size
:   The size of the noise generated.

Nabla
:   Almost all procedural textures in Blender use derivatives for calculating normals for texture mapping
    (except *Blend* and *Magic*). This is important for Normal and Displacement Maps.
    The strength of the effect is controlled with the *Nabla* number field.
user: Provide the full official documentation entry for Fur, preserving all code examples.

assistant: Adds a fur setup to the selected objects.
The fur setup is based on [Geometry Nodes](../geometry_nodes/index.html) and built with
[Hair Node Groups](../geometry_nodes/hair/index.html) that come with Blender as bundled assets.

See [Quick Fur](../../physics/introduction.html#bpy-ops-object-quick-fur) for more information.
user: Show practical ways to work with Shade Smooth in a Blender add-on or script – include code.

assistant: Sets an entire object as smooth or faceted.
This forces the assignment of the “smoothing” attribute to each face in the mesh,
including when you add or delete geometry.

This operator will also remove any [Smooth By Angle Modifiers](../../../modeling/modifiers/normals/smooth_by_angle.xhtml).

Notice that the outline of the object is still strongly faceted.
Activating the smoothing features does not actually modify the object’s geometry;
it changes the way the shading is calculated across the surfaces (normals will be interpolated),
giving the illusion of a smooth surface.

Using [Shade Flat](#bpy-ops-object-shade-flat) will revert the shading back (normals will be constant)
to that shown in the first image below.

Example mesh flat (left) and smooth-shaded (right).
[Sample blend-file](https://archive.blender.org/wiki/2015/index.php/File:25-manual-meshsmooth-example.blend).

|  |  |
| --- | --- |
| ../../../_images/scene-layout_object_editing_shading_example-flat.png | ../../../_images/scene-layout_object_editing_shading_example-smooth.png |

Keep Sharp Edges
:   Do not clear sharp edges (which are redundant with objects shaded as flat).
    This option is useful to not destroy data in case you want to revert changes later.