PGCRYPT/OpenBlender_Train huggingface dataset:
user: Explain Drivers Panel in complete detail according to the official Blender documentation.

assistant: # Drivers Panel

[image reference removed]

Edit Driver popover.

This panel is visible in Sidebar of the [Drivers Editor](../../editors/drivers_editor.xhtml)
or as a popover when adding a driver to a property.

It shows the property that is being driven, followed by a series of settings
that determine how the driver works.
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Image
:   Standard color input.

Factor
:   Controls the amount the filter effects the image.

Color Threshold
:   The threshold to control high/low complexity.

Neighbor Threshold
:   The threshold to control the number of pixels that must match.
user: Show practical ways to work with Overlays in a Blender add-on or script – include code.

assistant: Overlays are information that is displayed on top of the nodes and node trees.
There is a toggle to show or hide all overlays for the node editor next to the overlay popover.

Wire Colors
:   Color node links based on their connected sockets.

Reroute Auto Labels
:   Label [Reroute Nodes](types/layout/reroute.xhtml)
    based on the label of connected reroute nodes.

Context Path
:   Display breadcrumbs in the upper left corner indicating the hierarchy location
    of the node tree/group that’s currently being displayed.

Annotations
:   Displays [Annotations](../../annotate_tool.xhtml) in the preview region.

Previews
:   Display each node’s [Preview](parts.xhtml#interface-nodes-parts-preview) if the node’s preview is also toggled.

Timings
:   Display each node’s last execution time.
    This option is only available for compositing and geometry nodes.

    In the context of geometry nodes, see [Node Timings Overlay](../../../modeling/geometry_nodes/inspection.xhtml#modeling-geometry-nodes-inspection-timings).
user: Describe Mesh Cache Modifier from the Blender manual or Python API, including usage steps and snippets.

assistant: # Mesh Cache Modifier

The *Mesh Cache* modifier applies animated mesh data from an external file to a mesh, allowing it to deform over time.
It is commonly used for importing animations from other applications, enabling smooth playback of cached deformations.

This modifier functions similarly to [shape keys](../../../animation/shape_keys/introduction.xhtml),
but is specifically designed for playback of externally stored animations rather than keyframe-based deformations.
user: Provide the full official documentation entry for Named Layer Selection Node, preserving all code examples.

assistant: # Named Layer Selection Node

[image reference removed]

The *Named Layer Selection* node outputs a Boolean field whose index value is true
for [Grease Pencil layers](../../../../grease_pencil/properties/layers.xhtml) whose name matches a string input.
user: Give a detailed overview of Set Spline Resolution Node: syntax, arguments, return values, common patterns.

assistant: # Set Spline Resolution Node

[image reference removed]

The *Set Spline Resolution* node sets the value for how many evaluated points should be generated on the curve for
every control point. It only has an effect on [NURBS](../../../../glossary/index.xhtml#term-NURBS), [Bézier](../../../../glossary/index.xhtml#term-Bezier), and Catmull Rom splines. In case of
Bézier splines, the resolution does not have an effect on segments between vector handles.

The evaluated points are displayed in the viewport, used in the
[Curve to Mesh Node](../operations/curve_to_mesh.xhtml) node,
and optionally used in the [Resample Curve Node](../operations/resample_curve.xhtml).

The input node for this data is the [Spline Resolution Node](../read/spline_resolution.xhtml).
user: How do I use GeometryNodeDistributePointsInVolume(GeometryNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # GeometryNodeDistributePointsInVolume(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.GeometryNodeDistributePointsInVolume(*GeometryNode*)
:   Generate points inside a volume

    *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: Describe CompositorNodeLensdist(CompositorNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # CompositorNodeLensdist(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.CompositorNodeLensdist(*CompositorNode*)
:   Simulate distortion and dispersion from camera lenses

    *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: Show practical ways to work with Transform Panel in a Blender add-on or script – include code.

assistant: # Transform Panel

When nothing is selected, the panel is empty.
When more than one vertex is selected, the median values are edited
and “Median” is added in front of the labels.

Control Point, Vertex
:   The first controls (X, Y, Z) show the coordinates of the selected point or handle (vertex).
    In case of a NURBS curve, there is a fourth component available (W),
    which defines the [weight](../structure.xhtml#curves-structure-nurbs-weight)
    of the selected control point or the median weight.

Space
:   The Space radio buttons let you choose if those coordinates are relative
    to the object origin (local) or the global origin (global).

    Global, Local

Weight
:   Controls the “goal weight” of selected control points,
    which is used when a curve has [Soft Body](../../../physics/soft_body/index.xhtml) physics,
    forcing the curve to “stick” to their original positions, based on the weight.

Radius
:   Controls the width of the extrusion/bevel along the “spinal” curve.
    The radius will be interpolated from point to point (you can check it with the normals).

Tilt
:   Controls how the normals (visualized as arrows)
    twist around each control point – so it is only relevant with 3D curves!
    The tilt will be interpolated from point to point (you can check it with the normals).
user: Show practical ways to work with Vignette Node in a Blender add-on or script – include code.

assistant: # Vignette Node

[image reference removed]

The *Vignette* node darkens or fades out the edges of an image to draw attention toward the center.
This effect is often used for artistic or cinematic purposes to create focus, mood, or a sense of depth.
user: Give a detailed overview of TEXTURE_UL_texslots(UIList): syntax, arguments, return values, common patterns.

assistant: # TEXTURE_UL_texslots(UIList)

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

*class* bpy.types.TEXTURE_UL_texslots(*UIList*)
:   draw_item(*_context*, *layout*, *_data*, *item*, *icon*, *_active_data*, *_active_propname*, *_index*)

    *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 Introduction: syntax, arguments, return values, common patterns.

assistant: # Introduction

The Image Editor lets you create, view, and edit images,
as well as see render results and intermediate
[Compositor](../../compositing/introduction.html) output.

[image reference removed]

Image Editor with a test grid texture.
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Mask Type
:   Operation to use against the input mask.

    Add:
    :   This yields the *union* of the input mask and the generated mask:
        Areas covered by the generated mask are set to the specified *Value*.
        Other parts of the input masked are passed through unchanged, or set to black if there is no input mask.

    Subtract:
    :   Values of the input mask have the specified *Value* subtracted from them.

    Multiply:
    :   This yields the *intersection* of this generated mask and the input mask:
        Values of the input mask are multiplied by the specified *Value* for the area covered by the generated mask.
        All other areas become black.

    Not:
    :   Any area covered by both the input mask and the generated mask becomes black.
        Areas covered by the generated mask that are black on the input mask become the specified *Value*.
        Areas uncovered by the generated mask remain unchanged.

Mask
:   An optional mask to use as the base for mask operations.

Value
:   Intensity of the generated mask.

Position
:   Position of the center of the box as a fraction of the total width or height.
    (0.5, 0.5 creates a centered box; 0.0, 0.0 creates a box in the lower left.)

Size
:   Width/height of the box as a fraction of the total image width.

Rotation
:   Rotation of the box around its center point.
user: Explain MovieTrackingPlaneMarkers(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # MovieTrackingPlaneMarkers(bpy_struct)

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

*class* bpy.types.MovieTrackingPlaneMarkers(*bpy_struct*)
:   Collection of markers for movie tracking plane track

    find_frame(*frame*, *\**, *exact=True*)
    :   Get plane marker for specified frame

        Parameters:
        :   - **frame** (*int in* *[**0**,* *1048574**]*) – Frame, Frame number to find marker for
            - **exact** (*boolean**,* *(**optional**)*) – Exact, Get plane marker at exact frame number rather than get estimated marker

        Returns:
        :   Plane marker for specified frame

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

    insert_frame(*frame*)
    :   Insert a new plane marker at the specified frame

        Parameters:
        :   **frame** (*int in* *[**0**,* *1048574**]*) – Frame, Frame number to insert marker to

        Returns:
        :   Newly created plane marker

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

    delete_frame(*frame*)
    :   Delete plane marker at specified frame

        Parameters:
        :   **frame** (*int in* *[**0**,* *1048574**]*) – Frame, Frame number to delete plane marker from

    *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 Examples in a Blender add-on or script – include code.

assistant: ### Disjoint / Conjoint / Over

The example below shows how different alpha compositing types affect the blending of multiple layers.
Four image layers are assembled using the *Disjoint*, *Conjoint*, and *Over* methods
to create depth between overlapping elements.

[image reference removed]

Assembling a composite image using Alpha Over.

### Fade In

This example uses a [Time Curve Node](../input/scene/time_curve.xhtml)
to gradually animate the *Factor* input of the *Alpha Over* node from 0 to 1 over 30 frames.
The result is a smooth fade-in of text over a background image.

[image reference removed]

Animated fade-in effect using Alpha Over.
user: Describe IO_FH_svg_as_curves(FileHandler) from the Blender manual or Python API, including usage steps and snippets.

assistant: # IO_FH_svg_as_curves(FileHandler)

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

*class* bpy.types.IO_FH_svg_as_curves(*FileHandler*)
:   *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: Provide the full official documentation entry for MeshSkinVertex(bpy_struct), preserving all code examples.

assistant: # MeshSkinVertex(bpy_struct)

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

*class* bpy.types.MeshSkinVertex(*bpy_struct*)
:   Per-vertex skin data for use with the Skin modifier

    radius
    :   Radius of the skin

        Type:
        :   float array of 2 items in [0, inf], default (0.0, 0.0)

    use_loose
    :   If vertex has multiple adjacent edges, it is hulled to them directly

        Type:
        :   boolean, default False

    use_root
    :   Vertex is a root for rotation calculations and armature generation, setting this flag does not clear other roots in the same mesh island

        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: Explain UV Map Node in complete detail according to the official Blender documentation.

assistant: # UV Map Node

[image reference removed]

The *UV Map* node outputs texture coordinates from a specific [UV map](../../../modeling/meshes/uv/uv_texture_spaces.xhtml#uv-maps-panel).
It is especially useful when working with multiple UV layouts in the same material.
The node is most commonly connected to the *Vector* input of texture nodes,
allowing textures to be placed or manipulated.
user: Give a detailed overview of Introduction: syntax, arguments, return values, common patterns.

assistant: # Introduction

[image reference removed]

The Vertex Groups panel.

Vertex groups are primarily used to tag vertices that belong to specific parts of a mesh or [Lattice](../../../../glossary/index.xhtml#term-Lattice) object.
For example, they can represent the legs of a chair, the hinges of a door, or the arms, hands, and head of a
character.

Each vertex group can store a weight value for each vertex it includes. These weights are in the range of 0 to 1 and
are used by many operators, tools, and modifiers, which is why vertex groups are sometimes also referred to as “weight
groups”.
user: Explain SpaceNodeEditorPath(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # SpaceNodeEditorPath(bpy_struct)

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

*class* bpy.types.SpaceNodeEditorPath(*bpy_struct*)
:   Get the node tree path as a string

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

    clear()
    :   Reset the node tree path

    start(*node_tree*)
    :   Set the root node tree

        Parameters:
        :   **node_tree** ([`NodeTree`](bpy.types.NodeTree.html#bpy.types.NodeTree "bpy.types.NodeTree")) – Node Tree

    append(*node_tree*, *\**, *node=None*)
    :   Append a node group tree to the path

        Parameters:
        :   - **node_tree** ([`NodeTree`](bpy.types.NodeTree.html#bpy.types.NodeTree "bpy.types.NodeTree")) – Node Tree, Node tree to append to the node editor path
            - **node** ([`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), (optional)) – Node, Group node linking to this node tree

    pop()
    :   Remove the last node tree from the path

    *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 Curve Modifier: syntax, arguments, return values, common patterns.

assistant: # Curve Modifier

The *Curve* modifier provides a simple but efficient method of deforming a mesh along a curve object.

It works on a (global) dominant axis, X, Y, or Z.
This means that when you move your mesh in the dominant direction (by default, the X axis),
the mesh will traverse along the curve, as if it was a train following and deforming along rails.
Moving the mesh perpendicularly to this axis, the object will move closer or further away from the curve.

When you move the object beyond the curve’s ends, the object will continue
to deform based on the direction vector at those ends.

If the curve is 3D, the *Tilt* value of its control points will be used to twist the deformed object.
And the *Radius* property controls the size of the object as well.
Those options are in the *Shape* panel, under [Path/Curve-Deform](../../curves/properties/shape.xhtml#curve-shape-path-curve-deform).
user: Explain GeometryNodeIndexOfNearest(GeometryNode) in complete detail according to the official Blender documentation.

assistant: # GeometryNodeIndexOfNearest(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.GeometryNodeIndexOfNearest(*GeometryNode*)
:   Find the nearest element in a group. Similar to the “Sample Nearest” node

    *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: Provide the full official documentation entry for Examples, preserving all code examples.

assistant: The Anti-Aliasing node has three properties shown here.

|  |  |
| --- | --- |
| ../../../_images/compositing_types_filter_antialiasing-node_example-1-threshold.gif   Changing threshold affects all edges. | ../../../_images/compositing_types_filter_antialiasing-node_example-2-contrast_limit.gif   Changing contrast limit affects neighboring edges below contrast limit. |

The effect of corner rounding.

|  |  |
| --- | --- |
| ../../../_images/compositing_types_filter_antialiasing-node_example-3-corner_rounding-off.png   Corner detection and rounding off (set to 0). Notice how corners are smoothed because they are treated as artifacts. | ../../../_images/compositing_types_filter_antialiasing-node_example-3-corner_rounding-on.png   Full corner detection and rounding preserves the sharp edges around the corner. |
user: Explain Options in complete detail according to the official Blender documentation.

assistant: [image reference removed]

The Build modifier.

Start Frame
:   The start frame of the building process.

Length
:   The number of frames over which to rebuild the object.

Reversed
:   The modifier will operate in reverse, essentially allowing it to be used as a “deconstruction” effect.
    This is useful for making a set of instancing objects gradually disappear.

### Randomize

Randomizes the order in which the faces are built.

Seed
:   The random seed.
    Changing this value gives a different “random” order when *Randomize* is checked.
    This order is always the same for a given seed/mesh set.
user: Give a detailed overview of ArmatureBones(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # ArmatureBones(bpy_struct)

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

*class* bpy.types.ArmatureBones(*bpy_struct*)
:   Collection of armature bones

    active
    :   Armature’s active bone

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

    *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 MeshUVLoopLayer(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # MeshUVLoopLayer(bpy_struct)

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

*class* bpy.types.MeshUVLoopLayer(*bpy_struct*)
:   active
    :   Set the map as active for display and editing

        Type:
        :   boolean, default False

    active_clone
    :   Set the map as active for cloning

        Type:
        :   boolean, default False

    active_render
    :   Set the UV map as active for rendering

        Type:
        :   boolean, default False

    data
    :   Deprecated, use ‘uv’, ‘vertex_select’, ‘edge_select’ or ‘pin’ properties instead

        Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`MeshUVLoop`](bpy.types.MeshUVLoop.html#bpy.types.MeshUVLoop "bpy.types.MeshUVLoop"), (readonly)

    name
    :   Name of UV map

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

    pin
    :   UV pinned state in the UV editor

        Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`BoolAttributeValue`](bpy.types.BoolAttributeValue.html#bpy.types.BoolAttributeValue "bpy.types.BoolAttributeValue"), (readonly)

    uv
    :   UV coordinates on face corners

        Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`Float2AttributeValue`](bpy.types.Float2AttributeValue.html#bpy.types.Float2AttributeValue "bpy.types.Float2AttributeValue"), (readonly)

    pin_ensure()
    :   pin_ensure

        Returns:
        :   The boolean attribute

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

    *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 References in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`PreferencesFilePaths.script_directories`](bpy.types.PreferencesFilePaths.html#bpy.types.PreferencesFilePaths.script_directories "bpy.types.PreferencesFilePaths.script_directories") - [`ScriptDirectoryCollection.new`](bpy.types.ScriptDirectoryCollection.html#bpy.types.ScriptDirectoryCollection.new "bpy.types.ScriptDirectoryCollection.new") | - [`ScriptDirectoryCollection.remove`](bpy.types.ScriptDirectoryCollection.html#bpy.types.ScriptDirectoryCollection.remove "bpy.types.ScriptDirectoryCollection.remove") |
user: Provide the full official documentation entry for Mix Shader, preserving all code examples.

assistant: # Mix Shader

[image reference removed]

The *Mix* node is used to mix two shaders together. Mixing can be used for material layering,
where the *Factor* input may, for example, be connected to a *Blend Weight* node.
user: Show practical ways to work with Notes in a Blender add-on or script – include code.

assistant: - Supports both unnamed (`{}`) and named (`{name}`) placeholders.
  However, all unnamed placeholders must appear before any named ones.
- Only float, integer, and string inputs are supported.
- Python-style conversions such as `!r` are not supported.
- Sub-attribute access (e.g. `{vector.x}`) is not supported.
- Percent-based formatting (e.g. `%d`, `%s`) is not supported.
- Alternate form specifiers using `#` (e.g. `{:#x}`) are not supported.
- Locale-based formatting using `L` (as in the fmt library) is not supported.
- Grouping options like thousands separators (e.g. `{:,}` or `{:_}`) are not supported.

### Input Naming Behavior

Each input must have a unique, valid identifier name used in placeholders (e.g. `{value}`).
This node uses special logic to automatically assign names to new inputs:

- If connected, the first character of the linked socket’s name is used.
- Otherwise, names default to letters `a` through `z`.
- If needed, the original socket name is converted to a valid identifier.
- If all else fails, a unique suffix is appended (e.g. `_001`, `_002`).
user: How do I use Rotate in Blender? Include parameters, examples, warnings and best practices.

assistant: # Rotate

Rotation is also known as a spin, twist, orbit, pivot, revolve, or roll and
involves changing the orientation of elements (vertices, edges, faces, objects, etc.)
around one or more axes or
the [Pivot Point](../../../../editors/3dview/controls/pivot_point/index.xhtml).

The angle of rotation is displayed in the header of the 3D Viewport.

[image reference removed]

Rotation values.
user: Describe GeometryNodeSubdivisionSurface(GeometryNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GeometryNodeSubdivisionSurface(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.GeometryNodeSubdivisionSurface(*GeometryNode*)
:   Divide mesh faces to form a smooth surface, using the Catmull-Clark subdivision method

    *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 References in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`Mesh.attributes`](bpy.types.Mesh.html#bpy.types.Mesh.attributes "bpy.types.Mesh.attributes") | - [`Mesh.color_attributes`](bpy.types.Mesh.html#bpy.types.Mesh.color_attributes "bpy.types.Mesh.color_attributes") |
user: Give a detailed overview of Options: syntax, arguments, return values, common patterns.

assistant: Marble Type
:   Three settings for soft to more clearly defined *Marble*.

    Soft, Sharp, Sharper

Noise basis
:   Shape of wave to produce bands.

    Sine, Saw, Triangle

Noise Type
:   The noise function works with two methods.

    Soft, Hard

Size
:   The dimensions of the noise table.

Depth
:   The depth of the *Marble* calculation.
    A higher value results in greater calculation time, but also in finer details.

Turbulence
:   The turbulence of the sine bands.
user: Describe ShaderNodeVertexColor(ShaderNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # ShaderNodeVertexColor(ShaderNode)

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"), [`ShaderNode`](bpy.types.ShaderNode.html#bpy.types.ShaderNode "bpy.types.ShaderNode")

*class* bpy.types.ShaderNodeVertexColor(*ShaderNode*)
:   Retrieve a color attribute, or the default fallback if none is specified

    layer_name
    :   Color Attribute

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

    *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 Surface in a Blender add-on or script – include code.

assistant: Displacement
:   Method used to perform [Displacement](../materials/components/displacement.xhtml) on materials.

    Displacement Only:
    :   Mesh vertices will be displaced before rendering, modifying the actual mesh.
        This gives the best quality results, if the mesh is finely subdivided.
        As a result, this method is also the most memory intensive.

    Bump Only:
    :   When executing the surface shader, a modified surface normal is used instead of the true normal.
        This is a less memory intensive alternative to actual displacement, but only an approximation.
        Surface silhouettes will not be accurate and there will be no self-shadowing of the displacement.

    Displacement and Bump:
    :   Both methods can be combined, to do displacement on a coarser mesh,
        and use bump mapping for the final detail.

Emission Sampling
:   The method used for sampling the emissive component of the material.
    This option will only have an influence if the material contains an emissive material node,
    otherwise it will be ignored.

    None:
    :   Do not use this surface as a light for sampling.

    Auto:
    :   Automatically determine if the surface should be treated as a light for sampling based on
        emission intensity.

    Front:
    :   Treat only the front side of the surface as a light, useful for closed meshes whose interior
        is not visible.

    Back:
    :   Treat only the back side of the surface as a light for sampling.

    Front and Back:
    :   Treat surface as a light for sampling, emitting from both the front and back side.

Transparent Shadows
:   Use transparent shadows if it contains a [Transparent BSDF](../shader_nodes/shader/transparent.xhtml),
    disabling will render faster but will not give accurate shadows.

Bump Map Correction
:   Applies corrections to solve shadow terminator artifacts caused by bump mapping.
user: Explain Magic Texture Node in complete detail according to the official Blender documentation.

assistant: # Magic Texture Node

[image reference removed]

The Magic Texture node is used to add a psychedelic color texture.
It can be used for “Thin Film Interference” if you assign a *Reflection* Texture Coordinate
to the Vector input and use a relatively high *Turbulence*.
The RGB components are generated independently with a sine formula.
user: Provide the full official documentation entry for Set Attribute, preserving all code examples.

assistant: Opens a pop-up window showing the name of the [active](../../../glossary/index.xhtml#term-Active) [attribute](../../../glossary/index.xhtml#term-Attribute)
as well as the value of that attribute for the selected points
From there, you assign a new value to a selected attribute across all selected points.

This operator is useful for uniformly setting attribute values.
user: What is Node Timings Overlay and how is it used in Blender Python scripting?

assistant: [image reference removed]

The node timings overlay.

Node timings show how long a node took to execute the last time the node group was evaluated.
They can be turned on in the overlays popover on the top right of the node editor.
When a node group is used in multiple places, the timings depend on the context of
the node editor, which is displayed in the path on the top left.

Frame nodes display the total time from all of the contained nodes
and the *Group Output* node displays the total time for the entire node group.

The displayed timings should only be considered an approximation, since they can
also take into account actions like copying or deleting a geometry input that aren’t
part of the node’s operation. Also, when a node uses multiple CPU cores, the evaluation
system might work on other nodes at the same time. It’s also important to remember
that [field nodes](fields.xhtml#field-node-types) generally don’t do work by themselves,
so their execution time is only added to the data-flow nodes they are connected to.
user: Show practical ways to work with Limitations in a Blender add-on or script – include code.

assistant: - Viewer and inspection nodes may not display accurate values when closures are evaluated in multiple contexts.
- Captured external values are read-only and cannot be modified inside the evaluation.
- Closures currently cannot access attributes or data outside their evaluation context.
user: Explain Mouse in complete detail according to the official Blender documentation.

assistant: Emulate 3 Button Mouse
:   Blender can be configured to work with pointing devices which do not have an `MMB`.
    The functionality of the three mouse buttons by holding `Alt`-`LMB`.

    Mouse/Keyboard combinations referenced in this manual
    can be expressed with the combinations shown in the table. For example:

    `MMB` drag becomes `Alt`-`LMB` drag for example.

    Modifier
    :   The modifier key to press to emulate the middle mouse keybindings.
        This option is unsupported on Microsoft Windows.

        Alt:
        :   Use the `Alt` key to emulate the middle mouse button.

        OSKey:
        :   Use the `OSKey` to emulate the middle mouse button.

            This has the advantage that it doesn’t conflict with existing `Alt`-`MMB` shortcuts,
            noted above.

Continuous Grab
:   This feature is used to prevent the problem where an action such as moving objects or panning a view,
    is limited by your screen bounds.

    This is done by warping the mouse within the view.

Release Confirms
:   Dragging `LMB` on an object will move it.
    To confirm this (and other) transform, an `LMB` is necessary by default.
    When this option is activated, the release of `LMB` acts as confirmation of the transform.

Double Click Speed
:   The time in milliseconds to trigger a double click.

Mouse Drag Threshold
:   The number of pixels that a User Interface element has to be moved before it is recognized by Blender,
    values below this will be detected as click events.

Tablet Drag Threshold
:   The drag threshold for tablet events.

Drag Threshold
:   The drag threshold for non mouse/tablet events (keyboard or [NDOF](../../glossary/index.xhtml#term-NDOF) for example).

    This affects [Pie Menu on Drag](keymap.xhtml#keymap-pref-py-menu-on-drag) keymap preference.

Motion Threshold
:   The number of pixels the cursor must be moved before the movement is registered.
    This is helpful for tablet pens that are a lot more difficult to keep still,
    then this could help to reduce stuttering of the cursor position.
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Segments
:   Horizontal resolution of the sphere.
    If this is smaller than three, no mesh is generated.

Rings
:   Vertical resolution of the sphere.
    If this is smaller than two, no mesh is generated.

Radius
:   Distance of vertices to the origin.
user: Explain Roll in complete detail according to the official Blender documentation.

assistant: Rotate the viewport camera around its viewing direction in 15° discrete steps by default.
See the [rotation angle](../../preferences/navigation.xhtml#bpy-types-preferencesview-rotation-angle) preference to configure.

To reset the roll, you can first align the view to the global X axis
using `Numpad3`, then orbit to get back to the regular perspective view.

`RMB` cancels the roll operation.
user: Show practical ways to work with Application Icons (bpy.app.icons) in a Blender add-on or script – include code.

assistant: # Application Icons (bpy.app.icons)

bpy.app.icons.new_triangles(*range*, *coords*, *colors*)
:   Create a new icon from triangle geometry.

    Parameters:
    :   - **range** (*tuple**[**int**,* *int**]*) – Pair of ints.
        - **coords** (*bytes*) – Sequence of bytes (6 floats for one triangle) for (X, Y) coordinates.
        - **colors** (*bytes*) – Sequence of bytes (12 for one triangles) for RGBA.

    Returns:
    :   Unique icon value (pass to interface `icon_value` argument).

    Return type:
    :   int

bpy.app.icons.new_triangles_from_file(*filepath*)
:   Create a new icon from triangle geometry.

    Parameters:
    :   **filepath** (*str* *|* *bytes.*) – File path.

    Returns:
    :   Unique icon value (pass to interface `icon_value` argument).

    Return type:
    :   int

bpy.app.icons.release(*icon_id*)
:   Release the icon.
user: Describe References from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| - [`ActionChannelbags.new`](bpy.types.ActionChannelbags.html#bpy.types.ActionChannelbags.new "bpy.types.ActionChannelbags.new") - [`ActionChannelbags.remove`](bpy.types.ActionChannelbags.html#bpy.types.ActionChannelbags.remove "bpy.types.ActionChannelbags.remove") | - [`ActionKeyframeStrip.channelbag`](bpy.types.ActionKeyframeStrip.html#bpy.types.ActionKeyframeStrip.channelbag "bpy.types.ActionKeyframeStrip.channelbag") - [`ActionKeyframeStrip.channelbags`](bpy.types.ActionKeyframeStrip.html#bpy.types.ActionKeyframeStrip.channelbags "bpy.types.ActionKeyframeStrip.channelbags") |
user: Give a detailed overview of Include & Exclude: syntax, arguments, return values, common patterns.

assistant: Light receiver/blocker objects can be set to be either included or excluded.
The behavior is as follows:

- If only included objects are specified, the light only affects those objects.
- If only excluded objects are specified, the light affects all objects in the scene except those specified.
- If both included and excluded objects are specified, the light affects only included objects minus the excluded
  objects. This can be used to for example set a character collection to be included, and then exclude specific
  objects part of the character.