PGCRYPT/OpenBlender_Train huggingface dataset:
user: What is Inputs and how is it used in Blender Python scripting?

assistant: ### F82 Tint

Base Color
:   Color of the material when viewed straight on.

Edge Tint
:   Color of the material when viewed at a 82° angle.

### Physical Conductor

IOR
:   Refractive index per color channel. This is the real part of a complex refractive index,
    scientifically denoted as n.

Extinction
:   Extinction coefficients per color channel. This is the imaginary part of a
    complex refractive index, scientifically denoted as k.

### Common

Roughness
:   Sharpness of the reflection; perfectly sharp at 0.0 and smoother with higher values.

Anisotropy Cycles Only
:   Amount of anisotropy. Higher values give elongated highlights along the tangent direction;
    negative values give highlights shaped perpendicular to the tangent direction.

Rotation Cycles Only
:   Rotates the direction of anisotropy, with 1.0 going full circle.

    Compared to the *Glossy BSDF* node, the direction of highlight elongation
    is rotated by 90°. Add 0.25 to the value to correct.

Normal
:   Normal used for shading; if nothing is connected the default shading normal is used.

Tangent
:   Tangent used for shading; if nothing is connected the default shading tangent is used.
user: What is Visualization and how is it used in Blender Python scripting?

assistant: In the supported editors, if at least one is created, markers are visualized
in a separate row at their bottom.
This area can be disabled per editor via the View ‣ Show Markers menu option.

### Standard

[image reference removed]

Regular markers are shown as small white triangles, empty if unselected or filled if selected,
and with a dashed line that covers the editor height at the corresponding frame.
If they have a name, this is shown to their right in white.

### 3D Viewport

[image reference removed]

The 3D Viewport does not allow you to create, edit or remove markers,
but it shows their name in the Object Info in the upper left corner,
when on their frame.

### Pose Markers

[image reference removed]

Pose markers show a diamond-shaped icon in the Dope Sheet.
In the NLA editor pose markers are shown as a red dashed line inside the relative action strip.
user: Show practical ways to work with Grab in a Blender add-on or script – include code.

assistant: # Grab

Drag geometry across the screen, following the cursor.
*Grab* only moves the vertices that are under the brush radius at the start of the stroke.
This is an essential sculpting brush to be used frequently to build shapes and adjust proportions.

[image reference removed]
user: How do I use ColorManagedInputColorspaceSettings(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # ColorManagedInputColorspaceSettings(bpy_struct)

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

*class* bpy.types.ColorManagedInputColorspaceSettings(*bpy_struct*)
:   Input color space settings

    is_data
    :   Treat image as non-color data without color management, like normal or displacement maps

        Type:
        :   boolean, default False

    name
    :   Color space in the image file, to convert to and from when saving and loading the image

        Type:
        :   enum in [Color Space Convert Default Items](bpy_types_enum_items/color_space_convert_default_items.html#rna-enum-color-space-convert-default-items), default `'NONE'`

    *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 Color Sets Items in Blender? Include parameters, examples, warnings and best practices.

assistant: # Color Sets Items

DEFAULT:
:   Default Colors.

THEME01:
:   01 - Theme Color Set.

THEME02:
:   02 - Theme Color Set.

THEME03:
:   03 - Theme Color Set.

THEME04:
:   04 - Theme Color Set.

THEME05:
:   05 - Theme Color Set.

THEME06:
:   06 - Theme Color Set.

THEME07:
:   07 - Theme Color Set.

THEME08:
:   08 - Theme Color Set.

THEME09:
:   09 - Theme Color Set.

THEME10:
:   10 - Theme Color Set.

THEME11:
:   11 - Theme Color Set.

THEME12:
:   12 - Theme Color Set.

THEME13:
:   13 - Theme Color Set.

THEME14:
:   14 - Theme Color Set.

THEME15:
:   15 - Theme Color Set.

THEME16:
:   16 - Theme Color Set.

THEME17:
:   17 - Theme Color Set.

THEME18:
:   18 - Theme Color Set.

THEME19:
:   19 - Theme Color Set.

THEME20:
:   20 - Theme Color Set.

CUSTOM:
:   Custom Color Set.
user: How do I use Flip Quad Tessellation in Blender? Include parameters, examples, warnings and best practices.

assistant: Internally, all [quads](../../../../glossary/index.xhtml#term-Quad) are [Tessellated](../../../../glossary/index.xhtml#term-Tessellation) into 2 triangles,
this operator swaps which way the quad is split into triangles.

|  |  |
| --- | --- |
| ../../../../_images/modeling_meshes_editing_face_flip-tesselation_before.png | ../../../../_images/modeling_meshes_editing_face_flip-tesselation_after.png |
user: Show practical ways to work with Drivers Editor in a Blender add-on or script – include code.

assistant: # Drivers Editor

This editor lets you set up [Drivers](../animation/drivers/index.xhtml), which calculate the value for a property
based on other properties. In other words, they make a set of source properties “drive” the target property,
and can thus serve as an alternative to animating the property by hand.

[image reference removed]

The Drivers Editor, showing how you might drive a cube’s rotation based on its position.

The user interface is largely the same as that of the [Graph Editor](graph_editor/introduction.xhtml),
with two important differences:

- The Sidebar has an additional [Drivers tab](../animation/drivers/drivers_panel.xhtml). This is where
  the source properties are brought together to calculate an intermediate value for the target property.
- The curve doesn’t represent the property’s value over time, but a mapping from the above intermediate
  value (X axis) to the final value (Y axis).
user: Give a detailed overview of GeometryNodeSetCurveNormal(GeometryNode): syntax, arguments, return values, common patterns.

assistant: # GeometryNodeSetCurveNormal(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.GeometryNodeSetCurveNormal(*GeometryNode*)
:   Set the evaluation mode for curve normals

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: - Move `G`
- Rotate `R`
- Scale `S`
- Shear `Shift`-`Ctrl`-`Alt`-`S`

Axis Locking

Transformations can be locked to an axis by pressing `X` or `Y` after one of the transform tools.
Also, holding the `MMB` will constrain movement to the X or Y axis.

### Vertex Slide

Vertex Slide will transform a vertex along one of its adjacent edges.
Use `Shift`-`V` to activate tool.
The nearest selected vertex to the mouse cursor will be the control one.
Move the mouse along the direction of the desired edge to specify the vertex position.
Then press `LMB` to confirm the transformation.

Factor
:   Determines the amount of slide performed.
    Negative values correspond to slides toward one vertex, while positive ones, refer to the other one.

Even `E`
:   By default, the offset value of the vertices is a percentage of the edges length along which they move.
    When Even mode is active, the vertices are shifted by an absolute value.

Flipped `F`
:   When Flipped is active, vertices move the same distance from adjacent vertices,
    instead of moving from their original position.

Clamp `Alt` or `C`
:   Toggle clamping the slide within the edge extents.

### Edge Slide

Slides one or more edges across adjacent faces with a few restrictions involving the selection
of edges (i.e. the selection *must* define a valid loop, see below).

Factor
:   Determines the amount of slide performed.
    Negative values correspond to slides toward one face, while positive ones, refer to the other one.

Even `E`
:   Forces the edge loop to match the shape of the adjacent edge loop.
    You can flip to the opposite vertex using `F`.

Flipped `F`
:   When Even mode is active, this flips between the two adjacent edge loops the active edge loop will match.

Clamp `Alt` or `C`
:   Toggle clamping the slide within the edge extents.

Mirror Editing
:   Lets you propagate the operation to the symmetrical elements of the mesh (if present, in local X direction).
user: Give a detailed overview of Inputs: syntax, arguments, return values, common patterns.

assistant: Image
:   The input RGBA image to be processed.

Factor
:   Blend factor for how strongly the node affects the image.
    A value of 1.0 fully applies the effect; lower values blend with the original.

Spill Channel
:   Selects which channel to reduce:

    R:
    :   Suppress red spill.

    G:
    :   Suppress green spill (common for green screens).

    B:
    :   Suppress blue spill (common for blue screens).

Limit Method
:   Chooses the method for spill reduction:

    Simple:
    :   Compares the *Limiting Channel* channel to the others and reduces it if it is higher.

    Average:
    :   Uses the average of the other two channels to set the limit for the despill channel.

Limit Channel Simple
:   When using the *Simple* algorithm, you can choose which channel(s) to use as a reference for limiting:

    R:
    :   Use red as the reference.

    G:
    :   Use green as the reference.

    B:
    :   Use blue as the reference.

Limit Strength
:   Specifies the limiting strength of the limit channel.

### Spill Strength

If enabled, the spill strength for each color channel can be specified.
If disabled, the spill channel will have a unit scale, while other channels will be zero.

Strength
:   Specifics the spilling strength of each color channel.
user: How do I use FunctionNodeInputColor(FunctionNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # FunctionNodeInputColor(FunctionNode)

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

*class* bpy.types.FunctionNodeInputColor(*FunctionNode*)
:   Output a color value chosen with the color picker widget

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

    *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 limbs.rear_paw, preserving all code examples.

assistant: Derivative of [limbs.paw](#limbs-paw) with extended IK suitable for use in rear paws.
The additional IK tries to maintain thigh and paw bones (1st and 3rd) in a nearly parallel orientation
as the main IK control moves and rotates.

For best results, thigh and paw bones should start nearly parallel in the rest pose.
user: Give a detailed overview of NodeTreeInterfaceSocketVectorTranslation4D(NodeTreeInterfaceSocket): syntax, arguments, return values, common patterns.

assistant: # NodeTreeInterfaceSocketVectorTranslation4D(NodeTreeInterfaceSocket)

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

*class* bpy.types.NodeTreeInterfaceSocketVectorTranslation4D(*NodeTreeInterfaceSocket*)
:   3D vector socket of a node

    default_value
    :   Input value used for unconnected socket

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

    dimensions
    :   Dimensions of the vector socket

        Type:
        :   int in [2, 4], default 0

    max_value
    :   Maximum value

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

    min_value
    :   Minimum value

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

    subtype
    :   Subtype of the default value

        Type:
        :   enum in [`'DEFAULT'`], default `'DEFAULT'`

    draw(*context*, *layout*)
    :   Draw interface socket settings

        Parameters:
        :   **layout** ([`UILayout`](bpy.types.UILayout.html#bpy.types.UILayout "bpy.types.UILayout"), (never None)) – Layout, Layout in the UI

    init_socket(*node*, *socket*, *data_path*)
    :   Initialize a node socket instance

        Parameters:
        :   - **node** ([`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), (never None)) – Node, Node of the socket to initialize
            - **socket** ([`NodeSocket`](bpy.types.NodeSocket.html#bpy.types.NodeSocket "bpy.types.NodeSocket"), (never None)) – Socket, Socket to initialize
            - **data_path** (*string**,* *(**never None**)*) – Data Path, Path to specialized socket data

    from_socket(*node*, *socket*)
    :   Setup template parameters from an existing socket

        Parameters:
        :   - **node** ([`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), (never None)) – Node, Node of the original socket
            - **socket** ([`NodeSocket`](bpy.types.NodeSocket.html#bpy.types.NodeSocket "bpy.types.NodeSocket"), (never None)) – Socket, Original socket

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

assistant: # Goal

Enabling this tells Blender to use the motion from animations
(F-Curves, armatures, parents, lattices, etc.) in the simulation.
The “goal” is the desired end position for vertices based on this animation.

See [exterior forces](../forces/exterior.html#physics-softbody-forces-exterior-goal) for details.

Vertex Group
:   Use a vertex group to allow per-vertex goal weights (multiplied by the *Default* goal).
user: How do I use FunctionNodeFindInString(FunctionNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # FunctionNodeFindInString(FunctionNode)

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

*class* bpy.types.FunctionNodeFindInString(*FunctionNode*)
:   Find the number of times a given string occurs in another string and the position of the first match

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

assistant: Volume
:   Standard geometry input.

Resolution Mode
:   Mode for how the resolution of the final mesh is controlled.

    Grid:
    :   This makes the resolution dependent on the resolution of the grid that is converted.
        Higher resolution grids result in a higher resolution mesh.
        In many cases, that is the most efficient mode.

    Voxel Amount:
    :   Specifies the approximate resolution of the final mesh.
        The voxel size is adapted to the size of the entire volume.

    Voxel Size:
    :   Use a fixed resolution that does not change when the volume changes.

Voxel Amount
:   Specifies the approximate resolution of the final mesh.
    The voxel size is adapted to the size of the entire volume.

Voxel Size
:   Use a fixed resolution that does not change when the volume changes.

Threshold
:   Voxels with a larger value are considered to be inside the mesh.
    The mesh will be generated on the boundary of inside and outside voxels.
    This is also called “iso value”.

Adaptivity
:   Reduces the final face count by simplifying geometry where detail is not needed.
    This is similar to decimating the final to reduce resolution where it is not needed.
user: Describe Settings from the Blender manual or Python API, including usage steps and snippets.

assistant: # Settings

General settings for Grease Pencil strokes.

[image reference removed]

Settings panel.

Stroke Depth Order
:   Defines how the strokes are ordered in 3D space (for objects not displayed *In Front*).

    2D Layers:
    :   The Strokes drawing order respect the order of the 2D layers list (top to bottom)
        and ignores the real position of the strokes in 3D space.
        See [2D Layers](layers.xhtml) for more information.

    3D Location:
    :   The strokes drawing order is based on the stroke location in 3D space.

    |  |  |
    | --- | --- |
    | ../../_images/grease-pencil_properties_strokes_depth-order-2d.png   Blue, Green and Red strokes in three different layers using 2D Layers depth order. | ../../_images/grease-pencil_properties_strokes_depth-order-3d.png   Blue, Green and Red strokes in three different layers using 3D Location depth order. |
user: Give a detailed overview of LayoutPanelState(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # LayoutPanelState(bpy_struct)

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

*class* bpy.types.LayoutPanelState(*bpy_struct*)
:   is_open
    :   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 FunctionNodeRandomValue(FunctionNode) in complete detail according to the official Blender documentation.

assistant: # FunctionNodeRandomValue(FunctionNode)

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

*class* bpy.types.FunctionNodeRandomValue(*FunctionNode*)
:   Output a randomized value

    data_type
    :   Type of data stored in attribute

        Type:
        :   enum in [Attribute Type Items](bpy_types_enum_items/attribute_type_items.html#rna-enum-attribute-type-items), default `'FLOAT'`

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

assistant: Stiffness
:   The spring stiffness for *Goal*. A low value creates very weak springs
    (more flexible “attachment” to the goal), a high value creates a strong spring
    (a stiffer “attachment” to the goal).

Damping
:   The friction coefficient for *Goal*. Higher values give damping of the spring effect (little jiggle),
    and the movement will soon come to an end.
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: Attribute Type
:   Specifies the type of the attribute.

    Geometry:
    :   The attribute is associated with the geometry of the object, and its value varies from
        vertex to vertex, or within the volume of the object.

        Most geometry attributes are directly accessible through the various input nodes, except for these:

        Ocean Foam
        :   Gives a scalar defining where foam might appear when using
            an [Ocean Modifier](../../../modeling/modifiers/physics/ocean.html).
            This depends on the name you give this property.

    Object:
    :   The attribute name specifies a [custom property](../../../files/custom_properties.html#files-data-blocks-custom-properties) name,
        or an RNA path to a built-in property (like the single property [driver variables](../../../animation/drivers/drivers_panel.html#drivers-variables)).

        The values of attributes of this type are defined once per object. The name or path is looked up
        first in the object data-block, followed by the mesh data-block if not found.
        Custom properties have priority over built-in ones.

        The property value must be an integer, float, boolean, or a vector of 1 to 4 floats or ints; properties of other
        types are ignored. If a suitable property is not found, all sockets of the node, including *Alpha*, output 0.

    Instancer:
    :   Similar to *Object*, but the attribute is looked up in the instancer particle system settings,
        followed by [Geometry Node instance](../../../modeling/geometry_nodes/instances.html) attributes
        (searching from the innermost instancing layer to outer ones), and finally in the instancer object.
        If the current object is not instanced, or the property is not found, it falls back to the *Object* mode.

    View Layer:
    :   The attribute is looked up in the current [View Layer](../../layers/introduction.html),
        [Scene](../../../scene_layout/scene/introduction.html) and [World](../../lights/world.html), using the same lookup
        logic as *Object*, and likewise producing all zero outputs including *Alpha* if not found. Attributes of this
        type have the same uniform value throughout the whole Render Layer.

Name
:   The name of the attribute to retrieve.
user: Give a detailed overview of Attribute Search: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Attribute Search.

The attribute search is shown when clicking on an attribute input in the modifier.
It contains a list of all the attributes that were available at that point in
the modifier or node execution.
user: Show practical ways to work with Introduction in a Blender add-on or script – include code.

assistant: # Introduction

A *Keyframe* is simply a marker of time which stores the value of a property.

For example, a Keyframe might define that the horizontal position of a cube is at 3 m on frame 1.

The purpose of a Keyframe is to allow for interpolated animation, meaning, for example,
that the user could then add another key on frame 10, specifying the cube’s horizontal position at 20 m,
and Blender will automatically determine the correct position of the cube for all the frames between frame 1 and 10
depending on the chosen interpolation method (e.g. Linear, Bézier, Quadratic, etc.).

An overview of existing keyframes can be seen via the [Dope Sheet](../../editors/dope_sheet/index.html) editor.
user: What is Manual Storage and how is it used in Blender Python scripting?

assistant: It is also possible to manually manage brushes in blend-files like any other asset data-block. By
marking brushes as assets and saving the file in an asset library, they become available from any
Blender session. This gives full control over how assets are stored, and is particularly useful for
curating asset libraries that can be shared with others.

[image reference removed]

The *Mark as Asset* operator used on a brush in the Outliner.

Brushes can be imported as normal data-blocks from other files (including from .asset.blend files
from an asset library) through [appending](../../files/linked_libraries/link_append.xhtml#bpy-ops-wm-append). In the
[Blender File](../../editors/outliner/interface.xhtml#outliner-blender-file-mode) mode of the Outliner, the brush will be listed
under *Brushes*. Right-click the brush and select *Mark as Asset*. By saving the file inside of
an asset library directory, the asset becomes available from all Blender sessions. If necessary,
configure an asset library directory in the Preferences.
user: Give a detailed overview of Propagate to Shapes: syntax, arguments, return values, common patterns.

assistant: # Propagate to Shapes

The *Propagate to Shapes* operator applies the current positions of the selected vertices
to all other [shape keys](../../../../animation/shape_keys/index.xhtml) on the object.
This allows edits made in *Edit Mode* to be consistently transferred across every shape key.

This is useful for:

- Correcting vertex positions that should be the same in all shape keys.
- Fixing topology issues or small modeling mistakes without manually editing each shape key.
- Ensuring consistent base structure across shape key variations.
user: How do I use Post Processing in Blender? Include parameters, examples, warnings and best practices.

assistant: # Post Processing

The Post Processing panel is used to control different options used to process your image after rendering.

[image reference removed]

Post Processing panel.

Pipeline – Compositing
:   Renders the output from the compositing node setup,
    and then applies the Composite node tree on all images,
    displaying the image inputted in the Group Output node.

Pipeline – Sequencer
:   Renders the output of the Video Sequence editor, instead of the view from the 3D scene’s active camera.
    If the sequence contains Scene strips, these will also be rendered as part of the pipeline.
    If *Compositing* is also enabled, the Scene strip will be the output of the Compositor.

Dither
:   Dithering is a technique for blurring pixels to prevent banding that is seen in areas of
    gradients, where stair-stepping appears between colors.
    Banding artifacts are more noticeable when gradients are longer, or less steep.
    Dithering was developed for graphics with low bit depths,
    meaning they had a limited range of possible colors.

    Dithering works by taking pixel values and comparing them with a threshold and
    neighboring pixels then does calculations to generate the appropriate color.
    Dithering creates the perceived effect of a larger color palette by creating a sort of visual color mixing.
    For example, if you take a grid and distribute red and yellow pixels evenly across it,
    the image would appear to be orange.
user: Show practical ways to work with GeometryNodeFaceOfCorner(GeometryNode) in a Blender add-on or script – include code.

assistant: # GeometryNodeFaceOfCorner(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.GeometryNodeFaceOfCorner(*GeometryNode*)
:   Retrieve the face each face corner is part of

    *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 Unpack Data in Blender? Include parameters, examples, warnings and best practices.

assistant: ### Unpack Resources

Unpack all external resource files stored into a blend-file.

#### Options

Use files in current directory (create when necessary)
:   Unpacks all files in the same directory `//` as the blend-file,
    grouping them in proper folders (like ‘’textures’’ for instance).
    However, if the final file exists already, it will use that file, instead of unpacking it.

Write files to current directory (overwrite existing files)
:   As with previous option, but if the final file exists already, it will overwrite it.

Use files in original location (create when necessary)
:   Unpacks all files in their original location.
    However, if the final file exists already, it will use that file, instead of unpacking it.

Write files to original location (overwrite existing files)
:   As with previous option, but if the final file exists already, it will overwrite it.

Disable AutoPack, keep all packed files
:   Only deactivates the *Automatically Pack Resources* option.

### Selective Unpacking

A single file can be unpacked by clicking on the little “gift box” icon to the left of its file-path UI widget.

#### Options

Remove Pack
:   Just mark the file as unpacked, without actually writing it or reloading it from the drive.

Create <local file path>
:   Unpack the file at the proposed path, which is local to the current blend-file.

Use <original file path> (differs)|(identical)
:   If the original file path still exists, mark it as unpacked.
    Note that it won’t be automatically reloaded from the drive.
    *(differs)* or *(identical)* show difference status between the packed version
    and the one on-drive.

Overwrite <original file path>
:   If the original file path still exists but differs from the packed version,
    mark it as unpacked and overwrite the on-drive file with the packed version.

Create <original file path>
:   If the original file path does not exist, mark it as unpacked and write it to drive.
user: Explain Bpy.Path in complete detail according to the official Blender documentation.

assistant: nder Authors Made with Furo Report issue on this page On this page Path Utilities (bpy.path) abspath() basename() clean_name() display_name() display_name_to_filepath() display_name_from_filepath() ensure_ext() is_subdir() module_names() native_pathsep() reduce_dirs() relpath() resolve_ncase()
user: Give a detailed overview of LoopColors(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # LoopColors(bpy_struct)

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

*class* bpy.types.LoopColors(*bpy_struct*)
:   Collection of vertex colors

    active
    :   Active vertex color layer

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

    active_index
    :   Active vertex color index

        Type:
        :   int in [0, inf], default 0

    new(*\**, *name='Col'*, *do_init=True*)
    :   Add a vertex color layer to Mesh

        Parameters:
        :   - **name** (*string**,* *(**optional**,* *never None**)*) – Vertex color name
            - **do_init** (*boolean**,* *(**optional**)*) – Whether new layer’s data should be initialized by copying current active one

        Returns:
        :   The newly created layer

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

    remove(*layer*)
    :   Remove a vertex color layer

        Parameters:
        :   **layer** ([`MeshLoopColorLayer`](bpy.types.MeshLoopColorLayer.html#bpy.types.MeshLoopColorLayer "bpy.types.MeshLoopColorLayer"), (never None)) – The layer to remove

    *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 Node-Based Tools in Blender? Include parameters, examples, warnings and best practices.

assistant: # Node-Based Tools

Geometry [node groups](../../interface/controls/nodes/groups.xhtml) can not just be applied to
an object using a modifier. It’s also possible to turn them into tools that can be invoked
from the Blender menu.

You can create such tools in the [Tool Context](#tool-context), after which they appear in the
*Non-Assets* menu of the 3D Viewport. If you want to move them to a different menu,
reuse them in other blend-files, or share them with someone else, you need to turn
them into an asset as described below.

[image reference removed]

Node group tools integrated in the Curves menu.
user: What is Transfer Mesh Data Layout and how is it used in Blender Python scripting?

assistant: # Transfer Mesh Data Layout

Transfers layout of data layer(s) from active to selected meshes.

Data Type
:   Which data to transfer.

    [image reference removed]

    Data types.

Exact Match
:   Also Delete some data layers from destination if necessary, so that it matches the source exactly.

Source Layers Selection
:   Which layers to transfer, in case of multi-layer types.

    Active Layer
    :   Only transfer the active data layer.

    All Layers
    :   Transfer all data layers.

Destination Layers Matching
:   How to match source and destination layers.

    By Name
    :   Match target data layers to affect by name.

    By Order
    :   Match target data layers to affect by order (indices).
user: Explain Known Issues in complete detail according to the official Blender documentation.

assistant: ### Dense Meshes

Selecting dense meshes with X-Ray disabled, has a limitation where dense meshes may not have
all the elements selected.
When selecting regions with Box, Circle and Lasso select, vertices may overlap each other causing
some vertices not to be selected.
This is a limitation with the current selection method, you may workaround this by zooming in or enabling X-Ray.

### N-Gons in Face Select Mode

[image reference removed]

N-gon face having its center dot inside another face.

As already noted, in X-Ray and Wireframe mode faces are marked with a dot in the middle.
With n-gons that can lead in certain cases to a confusing display.
The example shows the center dot of the U-shaped n-gon being inside of the oblong face inside the “U”.
It is not easy to identify which dot belongs to which face (the orange dot in the image is the object origin).
user: Show practical ways to work with NodeTreeInterfaceSocketFloatFactor(NodeTreeInterfaceSocket) in a Blender add-on or script – include code.

assistant: # NodeTreeInterfaceSocketFloatFactor(NodeTreeInterfaceSocket)

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

*class* bpy.types.NodeTreeInterfaceSocketFloatFactor(*NodeTreeInterfaceSocket*)
:   Floating-point number socket of a node

    default_value
    :   Input value used for unconnected socket

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

    max_value
    :   Maximum value

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

    min_value
    :   Minimum value

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

    subtype
    :   Subtype of the default value

        Type:
        :   enum in [`'DEFAULT'`], default `'DEFAULT'`

    draw(*context*, *layout*)
    :   Draw interface socket settings

        Parameters:
        :   **layout** ([`UILayout`](bpy.types.UILayout.html#bpy.types.UILayout "bpy.types.UILayout"), (never None)) – Layout, Layout in the UI

    init_socket(*node*, *socket*, *data_path*)
    :   Initialize a node socket instance

        Parameters:
        :   - **node** ([`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), (never None)) – Node, Node of the socket to initialize
            - **socket** ([`NodeSocket`](bpy.types.NodeSocket.html#bpy.types.NodeSocket "bpy.types.NodeSocket"), (never None)) – Socket, Socket to initialize
            - **data_path** (*string**,* *(**never None**)*) – Data Path, Path to specialized socket data

    from_socket(*node*, *socket*)
    :   Setup template parameters from an existing socket

        Parameters:
        :   - **node** ([`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), (never None)) – Node, Node of the original socket
            - **socket** ([`NodeSocket`](bpy.types.NodeSocket.html#bpy.types.NodeSocket "bpy.types.NodeSocket"), (never None)) – Socket, Original socket

    *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: Mean
:   The mean is the average value of all image pixels in specified channel.
    It represents the overall brightness of the image and can be used as such
    for setups that depend on how “bright” or “dark” the input is.

Standard Deviation
:   How much pixel values differ from the mean.
    A low standard deviation indicates that the pixel values tend to be very close to the mean.
    A high standard deviation indicates that the values are spread out over a large range of values.
user: Give a detailed overview of SceneGpencil(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # SceneGpencil(bpy_struct)

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

*class* bpy.types.SceneGpencil(*bpy_struct*)
:   Render settings

    aa_samples
    :   Number of supersampling anti-aliasing samples per pixel for final render

        Type:
        :   int in [1, inf], default 8

    antialias_threshold
    :   Threshold for edge detection algorithm (higher values might over-blur some part of the image)

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

    antialias_threshold_render
    :   Threshold for edge detection algorithm (higher values might over-blur some part of the image). Only applies to final render

        Type:
        :   float in [0, inf], default 0.25

    motion_blur_steps
    :   Controls accuracy of motion blur, more steps result in longer render time. Only used when Motion Blur is enabled. Set to 0 to disable motion blur for Grease Pencil

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

    *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