PGCRYPT/OpenBlender_Train huggingface dataset:
user: Give a detailed overview of Sidebar: syntax, arguments, return values, common patterns.

assistant: The Sidebar region contains properties for
the currently selected node as well as node editor-specific settings.

### Node

[image reference removed]

Node tab with a compositing Render Layers node selected.

#### Node

Name
:   A unique node identifier inside this node tree.

Label
:   Nodes can be given a title by modifying the text field.

Warning Propagation
:   Controls which warnings in this node will be propagated to the parent node group or modifier.
    This only exists for Geometry Nodes.

##### Color

By default, the node’s background color is defined by the user theme.
This color can be overridden by selecting a custom color in this panel.
Custom node colors can be used to provide a visual cue to help distinguish some nodes from others.
The button to the right of the checkbox lets you save colors as presets
for reusing later on (much like a palette).

Color
:   Color of the node background.

    Node Color Specials
    :   This menu contains [Operators](../../operators.xhtml) for working with nodes with custom colors.

        Copy Color
        :   Copies the color of the [Active](../../../glossary/index.xhtml#term-Active) node and applies it to all selected nodes.

#### Properties

The properties that are shown depend on the type of node selected,
e.g. a Mix node has different properties than a Mask node.

#### Custom Properties

Create and manage your own properties to store data in the active node.
See the [Custom Properties](../../../files/custom_properties.xhtml#files-data-blocks-custom-properties) page for more information.

### Tool

#### Active Tool

The info in this panel changes with the selected tool.

### View

#### Annotations

You can select the Annotate tool in the Toolbar to make annotations in the node editor.
See [Annotate Tool](../../annotate_tool.xhtml) for more info.
user: How do I use LineStyleColorModifier_AlongStroke(LineStyleColorModifier) in Blender? Include parameters, examples, warnings and best practices.

assistant: # LineStyleColorModifier_AlongStroke(LineStyleColorModifier)

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

*class* bpy.types.LineStyleColorModifier_AlongStroke(*LineStyleColorModifier*)
:   Change line color along stroke

    blend
    :   Specify how the modifier value is blended into the base value

        Type:
        :   enum in [Ramp Blend Items](bpy_types_enum_items/ramp_blend_items.html#rna-enum-ramp-blend-items), default `'MIX'`

    color_ramp
    :   Color ramp used to change line color

        Type:
        :   [`ColorRamp`](bpy.types.ColorRamp.html#bpy.types.ColorRamp "bpy.types.ColorRamp"), (readonly)

    expanded
    :   True if the modifier tab is expanded

        Type:
        :   boolean, default False

    influence
    :   Influence factor by which the modifier changes the property

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

    type
    :   Type of the modifier

        Type:
        :   enum in [Linestyle Color Modifier Type Items](bpy_types_enum_items/linestyle_color_modifier_type_items.html#rna-enum-linestyle-color-modifier-type-items), default `'ALONG_STROKE'`, (readonly)

    use
    :   Enable or disable this modifier during stroke rendering

        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](#bpy.types.LineStyleColorModifier_AlongStroke.type "bpy.types.LineStyleColorModifier_AlongStroke.type")
user: Give a detailed overview of BlendDataObjects(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # BlendDataObjects(bpy_struct)

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

*class* bpy.types.BlendDataObjects(*bpy_struct*)
:   Collection of objects

    new(*name*, *object_data*)
    :   Add a new object to the main database

        Parameters:
        :   - **name** (*string**,* *(**never None**)*) – New name for the data-block
            - **object_data** ([`ID`](bpy.types.ID.html#bpy.types.ID "bpy.types.ID")) – Object data or None for an empty object

        Returns:
        :   New object data-block

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

    remove(*object*, *\**, *do_unlink=True*, *do_id_user=True*, *do_ui_user=True*)
    :   Remove an object from the current blendfile

        Parameters:
        :   - **object** ([`Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object"), (never None)) – Object to remove
            - **do_unlink** (*boolean**,* *(**optional**)*) – Unlink all usages of this object before deleting it
            - **do_id_user** (*boolean**,* *(**optional**)*) – Decrement user counter of all data-blocks used by this object
            - **do_ui_user** (*boolean**,* *(**optional**)*) – Make sure interface does not reference this object

    tag(*value*)
    :   tag

        Parameters:
        :   **value** (*boolean*) – Value

    *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: Image
:   The input image with the vignette effect applied.

Mask
:   The generated vignette mask as a grayscale output.
    This can be used for custom compositing or to apply the vignette selectively through mix nodes.
user: Provide the full official documentation entry for ShaderNodeParticleInfo(ShaderNode), preserving all code examples.

assistant: # ShaderNodeParticleInfo(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.ShaderNodeParticleInfo(*ShaderNode*)
:   Retrieve the data of the particle that spawned the object instance, for example to give variation to multiple instances of an object

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

assistant: # FloatProperty(Property)

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

*class* bpy.types.FloatProperty(*Property*)
:   RNA floating-point number (single precision) property definition

    array_dimensions
    :   Length of each dimension of the array

        Type:
        :   int array of 3 items in [0, inf], [default](#bpy.types.FloatProperty.default "bpy.types.FloatProperty.default") (0, 0, 0), (readonly)

    array_length
    :   Maximum length of the array, 0 means unlimited

        Type:
        :   int in [0, inf], default 0, (readonly)

    default
    :   Default value for this number

        Type:
        :   float in [-inf, inf], default 0.0, (readonly)

    default_array
    :   Default value for this array

        Type:
        :   float array of 3 items in [-inf, inf], [default](#bpy.types.FloatProperty.default "bpy.types.FloatProperty.default") (0.0, 0.0, 0.0), (readonly)

    hard_max
    :   Maximum value used by buttons

        Type:
        :   float in [-inf, inf], default 0.0, (readonly)

    hard_min
    :   Minimum value used by buttons

        Type:
        :   float in [-inf, inf], default 0.0, (readonly)

    is_array
    :   Type:
        :   boolean, default False, (readonly)

    precision
    :   Number of digits after the dot used by buttons. Fraction is automatically hidden for exact integer values of fields with unit ‘NONE’ or ‘TIME’ (frame count) and step divisible by 100.

        Type:
        :   int in [0, inf], default 0, (readonly)

    soft_max
    :   Maximum value used by buttons

        Type:
        :   float in [-inf, inf], default 0.0, (readonly)

    soft_min
    :   Minimum value used by buttons

        Type:
        :   float in [-inf, inf], default 0.0, (readonly)

    step
    :   Step size used by number buttons, for floats 1/100th of the step size

        Type:
        :   float in [0, inf], default 0.0, (readonly)

    *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 Tool Settings, preserving all code examples.

assistant: Depth
:   The initial depth (from the screen into the scene) used when placing the object.

    Surface:
    :   Start placing on the surface under the mouse cursor.
        If there is no surface, this does the same as *Cursor Plane*.

    Cursor Plane:
    :   Start placing on a plane that goes through the [3D Cursor](../3d_cursor.xhtml)
        and is aligned according to the *Orientation* and *Plane Axis*.

    Cursor View:
    :   Start placing on a plane that goes through the 3D Cursor and is aligned to the view.

Orientation
:   The new object’s orientation – a set of three axes, out of which *Plane Axis* chooses one.

    Surface:
    :   The object uses the normal orientation of the surface under the mouse cursor.
        If there is no surface, this does the same as *Default*.

    Default:
    :   The object uses the default [Transform Orientation](../controls/orientation.xhtml).

Snap To
:   The target to use while [Snapping](../controls/snapping.xhtml).

    Geometry:
    :   Snap to all types of geometry (vertices, edges, and faces).

    Default:
    :   Snap to the target defined in the global snapping options.

Plane Axis
:   Which of the three *Orientation* axes (X, Y or Z) is “up” for the object.
    The object’s base will be perpendicular to this axis.

Auto Axis
:   Rather than using the *Orientation* axis indicated by *Plane Axis*,
    use the one that’s closest to the viewport’s viewing direction
    (when not hovering over a surface).

Base

Origin
:   How the base is defined.

    Edge:
    :   The base is defined from one corner to the opposing corner.

    Center:
    :   The base is defined from the centerpoint to a corner.

Aspect
:   Whether the base has a free or fixed aspect ratio.

    Free:
    :   The width and depth of the base can be chosen independently.

    Fixed:
    :   The width and depth of the base are forced to be equal.

Height

Origin
:   How the height is defined.

    Edge:
    :   The base becomes the bottom, after which you define the top.

    Center:
    :   The base becomes the center, after which you define the top.

Aspect
:   Whether the side of the bounding box has a free or fixed aspect ratio.

    Free:
    :   The height can be chosen independently of the base.

    Fixed:
    :   The height is forced to be equal to the largest side of the base.

Vertices
:   The number of vertices in the base.

Base Fill Type
:   Set how the circle at the base will be filled.

    Triangle Fan:
    :   Fill with triangular faces which share a vertex in the middle.

    N-gon:
    :   Fill with a single [N-gon](../../../glossary/index.xhtml#term-N-gon).

    Nothing:
    :   Do not fill. Creates only the outer ring of vertices.
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

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

assistant: [image reference removed]

Copy Rotation constraint.

[Target](../interface/common.html#rigging-constraints-interface-common-target)
:   The object or bone whose rotation to copy. If this target has a sheared transformation,
    this is first undone.

Order
:   The [Euler](../../../glossary/index.html#term-Euler) order to use during the copy operation.
    Defaults to the order of the owner.

Axis
:   The axes for which to copy rotation angles.

Invert
:   The axes for which invert the sign (so an angle of 10° becomes -10° and vice versa).

Mix
:   Specifies how the target’s current rotation (from all its constraints)
    is combined with the owner’s original rotation (from its preceding constraints).

    Replace:
    :   The target’s angles replace the owner’s.

    Add:
    :   The target angles are added to the owner’s.

    Before Original:
    :   The target’s rotation is applied before the owner’s. The result is the same as
        the owner’s rotation if it were a child of the target and there was no constraint.

    After Original:
    :   The target’s rotation is applied after the owner’s. The result is the same as
        the target’s rotation if it were a child of the owner and there was no constraint.

    Offset (Legacy):
    :   This replicates the behavior of the original Offset checkbox. It was intended
        to be similar to *Before Original*, but does not work correctly with multiple axes
        and is thus deprecated.

[Target/Owner](../interface/common.html#rigging-constraints-interface-common-space)
:   The spaces for retrieving the angles from the target and for applying them to the owner.

[Influence](../interface/common.html#bpy-types-constraint-influence)
:   How strongly the constraint affects the owner.
user: Describe CompositorNodePlaneTrackDeform(CompositorNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # CompositorNodePlaneTrackDeform(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.CompositorNodePlaneTrackDeform(*CompositorNode*)
:   Replace flat planes in footage by another image, detected by plane tracks from motion tracking

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

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

    tracking_object
    :   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")

    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 Persistent Handler Example in a Blender add-on or script – include code.

assistant: By default handlers are freed when loading new files, in some cases you may
want the handler stay running across multiple files (when the handler is
part of an add-on for example).

For this the [`bpy.app.handlers.persistent`](#bpy.app.handlers.persistent "bpy.app.handlers.persistent") decorator needs to be used.

```
import bpy
from bpy.app.handlers import persistent

@persistent
def load_handler(dummy):
    print("Load Handler:", bpy.data.filepath)

bpy.app.handlers.load_post.append(load_handler)
```
user: Explain Viewport in complete detail according to the official Blender documentation.

assistant: See Common Settings above.

Volume Resolution
:   Resolution percentage of [volume objects](../../../modeling/volumes/index.xhtml) in the viewport.
    This mostly affects memory usage rather than computation times.

Normals
:   Skip computing [custom normals](../../../modeling/meshes/structure.xhtml#modeling-meshes-normals-custom)
    and face corner normals for displaying meshes in the viewport.
user: How do I use Introduction in Blender? Include parameters, examples, warnings and best practices.

assistant: # Introduction

To be able to work in the three-dimensional space that Blender uses,
you must be able to change your viewpoint as well as the viewing direction of the scene.
While we will describe the *3D Viewport* editor, most of the other editors have similar functions.
For example, it is possible to pan and zoom in the Image editor.
user: Show practical ways to work with GeometryNodeRotateInstances(GeometryNode) in a Blender add-on or script – include code.

assistant: # GeometryNodeRotateInstances(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.GeometryNodeRotateInstances(*GeometryNode*)
:   Rotate 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: How do I use Outputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Grid
:   The resulting SDF grid after mean curvature flow smoothing.
    The output surface has reduced high-curvature noise and smoother transitions,
    while retaining major structural features of the original shape.
user: How do I use ShaderNodeSeparateColor(ShaderNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # ShaderNodeSeparateColor(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.ShaderNodeSeparateColor(*ShaderNode*)
:   Split a color into its individual components using multiple models

    mode
    :   Mode of color processing

        Type:
        :   enum in [Node Combsep Color Items](bpy_types_enum_items/node_combsep_color_items.html#rna-enum-node-combsep-color-items), default `'RGB'`

    *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: What is Edit Driver and how is it used in Blender Python scripting?

assistant: Displays a popover window that allows editing the custom expression and input variables
of the driver without opening the full *Drivers Editor*.

Many drivers don’t use their [F-Curve](../../editors/graph_editor/fcurves/introduction.xhtml)
component, so this reduced interface is sufficient.
user: Give a detailed overview of CompositorNodeSeparateColor(CompositorNode): syntax, arguments, return values, common patterns.

assistant: # CompositorNodeSeparateColor(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.CompositorNodeSeparateColor(*CompositorNode*)
:   Split an image into its composite color channels

    mode
    :   Mode of color processing

        - `RGB`
          RGB – Use RGB (Red, Green, Blue) color processing.
        - `HSV`
          HSV – Use HSV (Hue, Saturation, Value) color processing.
        - `HSL`
          HSL – Use HSL (Hue, Saturation, Lightness) color processing.
        - `YCC`
          YCbCr – Use YCbCr (Y - luma, Cb - blue-difference chroma, Cr - red-difference chroma) color processing.
        - `YUV`
          YUV – Use YUV (Y - luma, U V - chroma) color processing.

        Type:
        :   enum in [`'RGB'`, `'HSV'`, `'HSL'`, `'YCC'`, `'YUV'`], default `'RGB'`

    ycc_mode
    :   Color space used for YCbCrA processing

        Type:
        :   enum in [`'ITUBT601'`, `'ITUBT709'`, `'JFIF'`], default `'ITUBT601'`

    *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: What is Options and how is it used in Blender Python scripting?

assistant: # Options

Backface Culling
:   Use backface culling to hide backsides of faces.

X-Ray
:   Render the scene transparent. With the slider you can control how
    transparent the scene should appear.

Shadow
:   Renders a sharp shadow in the scene.

    Darkness
    :   Defines how dark the shadow should be rendered. This slider can be adjusted
        between 0 (shadow not visible) and 1 (shadow is black).

    Light Direction
    :   Controls the direction of the light source that casts the shadows.

    Shadow Shift
    :   Controls the Shadow termination angle. It can be used to limit self shadowing artifacts.

    Shadow Focus
    :   Controls the falloff near the edge of the shadow.

Depth of Field
:   Use the Depth of Field settings of the active camera in the viewport.
    Only visible when looking through the camera.

    The settings are located on Properties ‣ Camera ‣ Depth of Field panel.

Outline
:   Render the outline of objects in the viewport. The color of the outline can be adjusted.

Specular Highlighting
:   Render specular highlights.

Cavity
:   Highlight ridges and valleys in the scene geometry.

    Type
    :   How to calculate cavities.

        World:
        :   More precise but is slower to calculate.

        Screen:
        :   Fast but does not take the size of the ridges and valleys into account.

        Both:
        :   Use both methods.

    Ridge
    :   Control the visibility of ridges.

    Valley
    :   Control the visibility of valleys.
user: What is 3D Cursor and how is it used in Blender Python scripting?

assistant: # 3D Cursor

The 3D Cursor is a point in space that has both a location and a rotation.
It’s used for a number of purposes. For example, it defines where newly
added objects are placed, and can also be used to manually position and orient
the transform gizmo (see [Pivot Point](controls/pivot_point/index.xhtml)
and [Transform Orientation](controls/orientation.xhtml)).
Some tools, such as [Bend](../../modeling/meshes/editing/mesh/transform/bend.xhtml),
also use the Cursor.
user: How do I use StripModifiers(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # StripModifiers(bpy_struct)

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

*class* bpy.types.StripModifiers(*bpy_struct*)
:   Collection of strip modifiers

    active
    :   The active strip modifier in the list

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

    new(*name*, *type*)
    :   Add a new modifier

        Parameters:
        :   - **name** (*string**,* *(**never None**)*) – New name for the modifier
            - **type** (enum in [Strip Modifier Type Items](bpy_types_enum_items/strip_modifier_type_items.html#rna-enum-strip-modifier-type-items)) – Modifier type to add

        Returns:
        :   Newly created modifier

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

    remove(*modifier*)
    :   Remove an existing modifier from the strip

        Parameters:
        :   **modifier** ([`StripModifier`](bpy.types.StripModifier.html#bpy.types.StripModifier "bpy.types.StripModifier"), (never None)) – Modifier to remove

    clear()
    :   Remove all modifiers from the strip

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

assistant: The *Spin* operator only works for one dimensional [surface](../../surfaces/index.xhtml) objects.
Its use for curves is currently not possible,
the full feature is documented in [Surface editing](../../surfaces/editing/surface.xhtml#bpy-ops-curve-spin).
user: What is Onion Skinning and how is it used in Blender Python scripting?

assistant: # Onion Skinning

Onion Skinning show ghosts of the keyframes before and after the current frame allowing animators
to make decisions in the animation sequence.

The main switch to show/hide Onion Skinning is in the [Viewport Overlays](../../editors/3dview/display/overlays.xhtml#dview-overlay-grease-pencil),
but Grease Pencil Onion Skinning is per-layer and the visibility can be toggle in the layer list.
See [2D Layers](layers.xhtml) for more information.

[image reference removed]

Onion Skinning panel.
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: Mode
:   Position:
    :   The handle inputs are the absolute positions of the handles in 3D space.

    Offset:
    :   The handle positions are relative to the control point on the curve.
        The handle inputs give the offset from the control points.
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Geometry
:   The geometry on which to create instances.

Instance On
:   The geometry element type to instance on.

    Points:
    :   Instances are created at the location of each point.

    Edges:
    :   Instances are placed along edges.

    Faces:
    :   Instances are placed on the surface of each face.

    Corners:
    :   Instances are created at each face corner (vertex per face).

Mask
:   A selection controlling which elements are used for instancing.
    Floating-point values between 0 and 1 are treated as probabilistic selections,
    resulting in a random subset of elements being used.

Input Type
:   Defines how the instance geometry input is provided.

    Data-Block:
    :   Instances are created from an object or collection data-block.

    Geometry:
    :   Instances are created from input geometry provided to the node.

Instance Type Data-Block
:   When using *Data-Block* input, determines whether to instance an *Object* or a *Collection*.

Object / Collection Data-Block
:   The specific object or collection to instance when using *Data-Block* input mode.

Instance Geometry
:   The geometry to instance when using *Geometry* input mode.

Realize Instances
:   Converts all instances into real geometry, producing a single combined geometry output.
    This can be required for some subsequent geometry operations or modifiers.

Keep Surface
:   Keeps the underlying surface used for instancing, rather than outputting only the instances.

Seed
:   Random seed value used to vary random selections or random instance indexing.

### Pick Instance Data-Block Collection

When instancing from a collection, this option enables random or controlled selection
of which child object to instance per element.

Instance Index
:   Determines how a child instance is chosen from the collection.

    Random:
    :   Picks a random object from the collection for each element.

    Sequence:
    :   Cycles through objects in collection order.

    Input:
    :   Uses the value from the *Instance Index* input socket.

Instance Index Input
:   Specifies the index of the object in the collection to be instanced,
    used when the *Instance Index* method is set to *Input*.

### Transform

Surface Offset
:   Moves instances along the element normal, offsetting them from the surface.

Align Rotation
:   Aligns instance rotation to the orientation of the geometry element (e.g., normal direction).

Scale
:   Controls the uniform or per-axis scaling of instances.
user: Explain Recovering an Auto Save in complete detail according to the official Blender documentation.

assistant: Blender automatically saves temporary backups of your work at regular intervals.
If Blender crashes or you close it without saving, you may be able to recover your work using the autosave.

Follow these steps to recover an autosave:

1. Open Blender.
2. Go to the top-left menu bar and select: [File –> Recover –> Auto Save](../files/blend/open_save.html#bpy-ops-wm-recover-auto-save).
3. In the file browser that appears, find the desired auto save.
   The files are named like: `<filename>_autosave.blend`
   Note, these files are timestamped to help identify the correct one.
4. Select the autosave file and click *Open*.
5. Once opened, immediately save the file manually using
   [Save As](../files/blend/open_save.html#bpy-ops-wm-save-as-mainfile) to avoid overwriting the autosave.
user: Give a detailed overview of CacheObjectPaths(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # CacheObjectPaths(bpy_struct)

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

*class* bpy.types.CacheObjectPaths(*bpy_struct*)
:   Collection of object paths

    *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 Known Limitations, preserving all code examples.

assistant: ### Duplicate Vertices

If a cut creates duplicate vertices, this is often caused by the clipping range
being too large. Try increasing the [Clip Start](../../../../editors/3dview/sidebar.html#bpy-types-spaceview3d-clip-start)
to avoid this problem.
Also see [Depth Troubleshooting](../../../../troubleshooting/3d_view.html#troubleshooting-depth) for details.
user: What is Object Node and how is it used in Blender Python scripting?

assistant: # Object Node

[image reference removed]

The *Object* input node outputs a single object. It can be connected to other object sockets
to make using the same object in multiple places more convenient.
user: Describe Outputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Points
:   Generated points. Named attributes are copied to the result mesh, along with the data in the other
    attribute field outputs.

Normal
:   The [Normal](../../../glossary/index.html#term-Normal) of the triangle on which each point is scattered.

Rotation
:   An XYZ [Euler](../../../glossary/index.html#term-Euler) rotation built from the normal attribute for convenience. Such a value can also be
    built from the normal with the [Euler to Rotation Node](../utilities/rotation/euler_to_rotation.html).
    Keep in mind that the Z axis of the result rotation will be arbitrary, since the mesh normal used
    to create the rotation does not have enough information to set all three rotation axes.
user: What is CurveMapPoint(bpy_struct) and how is it used in Blender Python scripting?

assistant: # CurveMapPoint(bpy_struct)

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

*class* bpy.types.CurveMapPoint(*bpy_struct*)
:   Point of a curve used for a curve mapping

    handle_type
    :   Curve interpolation at this point: Bézier or vector

        Type:
        :   enum in [`'AUTO'`, `'AUTO_CLAMPED'`, `'VECTOR'`], default `'AUTO'`

    location
    :   X/Y coordinates of the curve point

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

    select
    :   Selection state of the curve point

        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: Give a detailed overview of GeometryNodeMeshToDensityGrid(GeometryNode): syntax, arguments, return values, common patterns.

assistant: # GeometryNodeMeshToDensityGrid(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.GeometryNodeMeshToDensityGrid(*GeometryNode*)
:   Create a filled volume grid from a mesh

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

assistant: Increment
:   Snaps to grid points.

    This option snaps to an imaginary grid that starts at the selection’s original location and has the same
    resolution as the grid displayed in the editor. In other words, it lets you move the selection in
    “increments” of the grid cell size.

Grid
:   Snaps to grid points.

Vertex
:   Snaps to the vertex that’s closest to the mouse cursor.
user: Describe Settings from the Blender manual or Python API, including usage steps and snippets.

assistant: # Settings

Presets
:   Contains a number of [preset](../../../interface/window_system/tabs_panels.html#ui-presets) cloth examples.

Quality Steps
:   Set the number of simulation steps per frame. Higher values result in better quality, but will be slower.

Speed Multiplier
:   Adjust how fast time progresses in the cloth simulation.
user: Explain Examples in complete detail according to the official Blender documentation.

assistant: [image reference removed]

The above example creates a curve Array with connections between curves.
This is created by duplicating the [Arc primitive](../curve/primitives/arc.html)
curve with the [Duplicate Elements Node](../geometry/operations/duplicate_elements.html).
Each curve is shifted in a top direction based on its index value.
All the curves are converted to the Point Cloud by the
[Curve to Points Node](../curve/operations/curve_to_points.html).
Finally, the points are converted to curves by the Points to Curves node.

All the Points of the resulting Curves geometry have the same
attributes as points on the initial Arc primitive.
user: Describe Animation from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| `Spacebar` | Play/Pause |
| `S` | Set Location + Rotation + Scale keyframe |
| `Shift`-`S` | Insert Keyframe menu |
| `Shift`-`W` | Set Location Key |
| `Shift`-`E` | Set Rotation Key |
| `Shift`-`R` | Set Scale Key |
user: Show practical ways to work with Particle Info Node in a Blender add-on or script – include code.

assistant: # Particle Info Node

Cycles Only

[image reference removed]

The *Particle Info* node can be used in the material node tree for objects that are used as the instancing objects,
when you use *Object* or *Collection* [Render mode](../../../physics/particles/emitter/render.xhtml) of a particle system.

This node gives access to the data of the particle that spawned the object instance.
It can be useful to give some variation to a single material assigned to multiple instances of instancing object.
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

assistant: Kernel Data Type
:   Determines how the kernel is defined:

    Float:
    :   A numeric kernel defined by the *Kernel* input socket.

    Image:
    :   A full image used as the kernel, allowing for more complex filtering patterns.