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

assistant: # TextureNodeCompose(TextureNode)

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

*class* bpy.types.TextureNodeCompose(*TextureNode*)
:   *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 Properties and how is it used in Blender Python scripting?

assistant: Tools can have their own settings, which are available from multiple places:

- The Tool ‣ Active Tool panel in the Sidebar `N`.
- The *Active Tool* tab in the [Properties editor](../editors/properties_editor.html).
- The *Tool Settings* region below the area header.
user: Give a detailed overview of Examples: syntax, arguments, return values, common patterns.

assistant: ### Traditional Animation

This example shows you how to animate a bouncing ball
with a traditional 2D animation technique and Grease Pencil.

First, go to menu File ‣ New ‣ 2D Animation to start with a new 2D animation template.
The template is ready to quick start your animation with a Grease Pencil object already created,
Onion Skinning activated, Auto Keyframe enabled and in camera view.

1. Set the range of the animation in the Timeline from 1 to 24.
2. In the 3D Viewport draw a ball on the upper left corner with the Draw Tool (extreme).
3. Move to frame 12 and draw a squashed ball in the bottom center (breakdown).
4. Move to frame 24 and draw a ball in the top right corner of the 3D Viewport (extreme).
5. Keep drawing all the in-between frames you want using the onion skinning ghost as a reference.

To test the animation, press `Spacebar` to play.
user: What is Faces and how is it used in Blender Python scripting?

assistant: Faces are used to build the actual surface of the object.
They are what you see when you render the mesh.
If this area does not contain a face,
it will simply be transparent or nonexistent in the rendered image.

A face is defined as the area between either three (triangles), four (quadrangles) or more (n-gons) vertices,
with an edge on every side. The faces are often abbreviated to *tris, quads & n-gons*.

Triangles are always flat and therefore easy to calculate. On the other hand,
quadrangles “deform well” and are therefore preferred for animation and subdivision modeling.
user: What is Main Features and how is it used in Blender Python scripting?

assistant: Modular rigging
:   Rigify build blocks can be mixed together to rig any character you want.
    If you need to build a character with five arms and one leg,
    Rigify can handle it for you creating all the required complex controls system
    (FK, IK, and all the relative snapping tools and the UI) in few seconds.

Nondisruptive re-rig
:   If the generated rig doesn’t fit all the features you need or, for example,
    you decide to add something more to your character (like a sixth arm or a tail),
    you can re-generate your rig without losing your previously generated features and your animation data.

Advanced and flexible feature set for character animation
:   The included rig samples (limbs, spines, tails, fingers, faces…) adds to all the stretchy FK/IK features
    a direct deformation secondary layer that lets you flex, bend and deform the character as you like
    through interactive Bendy Bones controls.

Shareable animation through all Rigify rigs
:   Since the control system is generated by Rigify, if you share a meta-rig through different characters
    you will be able to share data between them even if they have different proportions.

Extendable feature set
:   You can save and encode your meta-rigs to a button to have them available at any time
    without recreating it by hand or share your meta-rigs with other people.
    Through Python scripting you can also extend Rigify with new Rigify types or new rig samples
    by implementing your own [feature set](feature_sets.xhtml) package.

Ready to go
:   Once you generate your rig you won’t need Rigify or any other add-on to use it.
user: Explain References in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`FreestyleLineStyle.geometry_modifiers`](bpy.types.FreestyleLineStyle.html#bpy.types.FreestyleLineStyle.geometry_modifiers "bpy.types.FreestyleLineStyle.geometry_modifiers") |  |
user: Show practical ways to work with Colors in a Blender add-on or script – include code.

assistant: # Colors

The color of a texture can be modified with the *Brightness*, *Contrast*,
and *Saturation* buttons. All textures with RGB values, including
*Images* and *Environment Maps*, may be modified with the RGB sliders.

Clamp
:   Set negative texture RGB and intensity values to zero,
    for some uses like displacement this option can be disabled to get the full range.

Multiply R, G, B
:   Tint the color of a texture by brightening each red, green and blue channel.

Brightness
:   Change the overall brightness/intensity of the texture.

Contrast
:   Change the contrast of the texture.

Saturation
:   Change the saturation of the texture.
user: What is Common Options and how is it used in Blender Python scripting?

assistant: You can change the options of the object in the [Adjust Last Operation](../../interface/undo_redo.xhtml#bpy-ops-screen-redo-last) panel
just after creating it:

Type
:   You can change the type of some objects after their creation with a selector.

Radius/Size
:   Sets the starting size.

Align
:   Rotates the new object so that it is aligned in one of the following manners:

    World:
    :   Aligns the object to the global space axes, i.e. the object’s front faces the negative Y axis (default).

    View:
    :   Aligns the object to the view space axes, i.e. the object’s front faces the viewport’s point of view.

    3D Cursor:
    :   Aligns the object to match the rotation of the [3D Cursor](../../editors/3dview/3d_cursor.xhtml).

Location
:   Objects are placed, by default, at the position of the 3D Cursor.
    These values let you place the object in an other position.

Rotation
:   Values let you rotate the object so that default rotation is overridden.
user: How do I use Examples in Blender? Include parameters, examples, warnings and best practices.

assistant: |  |  |
| --- | --- |
| ../../../_images/render_shader-nodes_shader_sheen_example.png   The Sheen shader example. | <../../../_images/render_shader-nodes_shader_sheen_behavior.svg>   The Sheen shader behavior. |
user: How do I use Grease Pencil Object Modes in Blender? Include parameters, examples, warnings and best practices.

assistant: # Grease Pencil Object Modes

Object Modes allow editing different aspects of Grease Pencil objects.
These modes are specifically tailored to the Grease Pencil object,
unlike the more general modes, which work for other object types
(with the exception of object mode which is the same for all objects).

Draw Mode is where new strokes are created.
Strokes are directly sketched on a canvas, using different tools and brushes.

Sculpt Mode can be used to deform and shape existing strokes more organically.
Strokes can be smoothed, deformed, or reshaped, adding fluidity and dynamism to drawings.

Edit Mode allows modifying individual strokes and points of Grease Pencil objects.
This mode is ideal for fine-tuning linework, adjusting shapes, and refining details.

Vertex Paint Mode allows adding color the vertices of strokes directly.
This mode is useful for adding shading, gradients, or detailed color effects
providing finer control over the drawing’s appearance.

Weight Paint Mode allows assigning vertex weights to strokes.
This is crucial for rigging and animating characters, ensuring smooth,
and precise deformations based on the painted weights.

This mode allows working with the entire Grease Pencil object as a whole.
It’s used for overall transformations and managing the placement of the object within the scene.
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

assistant: Space
:   Object Space maps work for static meshes, and will render slightly faster with less memory usage.
    Tangent Space maps can be used for meshes that will be deformed, like animated characters,
    so the displacement follows the deformation.
user: Give a detailed overview of Film: syntax, arguments, return values, common patterns.

assistant: # Film

Filter Size
:   Due to limited resolution of images and computer screens, pixel filters are needed to avoid [Aliasing](../../../glossary/index.xhtml#term-Aliasing).
    This is achieved by slightly blurring the image to soften edges.

    This Setting controls how much the image is softened;
    lower values give more crisp renders, higher values are softer and reduce aliasing.

Transparent
:   Render the background transparent, for compositing the image over another background after rendering.

Overscan
:   Percentage of the render size to add to the internal render buffer.
    This will have a serious impact on performance but can fix
    render glitches around the perimeter of the rendered image.
user: Explain Chaining in complete detail according to the official Blender documentation.

assistant: By default all retrieved lines from the line set are chained together.
There are two basic chaining methods:

Method
:   Plain:
    :   The default chaining method; it creates simple chains.

    Sketchy:
    :   This chaining option allows for generating chains of feature edges with sketchy multiple strokes.
        Basically, it generates *Round* strokes instead of a single one.
        It is only really useful if you use some random-driven modifiers in the line style!

        Rounds
        :   It specifies the number of rounds in sketchy strokes.

Same Object
:   If true, only feature edges of the same object are joined.

Chaining can also be turned off to render each line separately,
which can be useful for line styles which depend on accurate representation of the line set.
user: Explain Scale Instances Node in complete detail according to the official Blender documentation.

assistant: # Scale Instances Node

[image reference removed]

The *Scale Instances* node scales geometry instances in local or global space.

The [Instances](../instances.xhtml) page contains more information about geometry instances.
user: Describe GeometryNodeMeshCircle(GeometryNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GeometryNodeMeshCircle(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.GeometryNodeMeshCircle(*GeometryNode*)
:   Generate a circular ring of edges

    fill_type
    :   Type:
        :   enum in [Node Geometry Mesh Circle Fill Type Items](bpy_types_enum_items/node_geometry_mesh_circle_fill_type_items.html#rna-enum-node-geometry-mesh-circle-fill-type-items), default `'NONE'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of Stroke Depth Order Items: syntax, arguments, return values, common patterns.

assistant: # Stroke Depth Order Items

2D:
:   2D Layers.

    Display strokes using Grease Pencil layer order and stroke order to define depth.

3D:
:   3D Location.

    Display strokes using real 3D position in 3D space.
user: How do I use Texture Space in Blender? Include parameters, examples, warnings and best practices.

assistant: This panel lets you configure the object’s [Texture Space](../../../glossary/index.html#term-Texture-Space), which is a 3D box
used for generating texture coordinates without the use of a UV map.
You can visualize the texture space using the option in the
[Viewport Display](../../../scene_layout/object/properties/display.html) panel.

Texture Mesh Mesh objects
:   Use another mesh for texture indices. The vertices of the two objects must be perfectly aligned
    or the UV map will be distorted.

Auto Texture Space
:   Calculates the texture space automatically.

Location X, Y, Z, Size X, Y, Z
:   Lets you define the texture space manually, relative to the object.
    Note that you can also edit it in the 3D Viewport – see [Editing](#editing) below.

Match Texture Space Curve objects
:   Modifies the *Location* and *Size* to match the object’s bounding box.
    This disables Auto Texture Space.

### Editing

Click one of these menu items, then move the mouse to adjust the texture space
and press `LMB` to confirm. While transforming, you can use keyboard shortcuts to lock
certain axes; see the status bar.

### Accessing

When setting up a material shader, you can use the *Generated* output of the
[Texture Coordinate Node](../../../render/shader_nodes/input/texture_coordinate.html) to read the 3D coordinate
inside the object’s texture space. You can then pass this coordinate to a texture
node.
user: Show practical ways to work with Bpy.Types.Xractionmapitem in a Blender add-on or script – include code.

assistant: pItem.bindings XrActionMapItem.haptic_amplitude XrActionMapItem.haptic_duration XrActionMapItem.haptic_frequency XrActionMapItem.haptic_match_user_paths XrActionMapItem.haptic_mode XrActionMapItem.haptic_name XrActionMapItem.name XrActionMapItem.op XrActionMapItem.op_mode XrActionMapItem.op_name XrActionMapItem.op_properties XrActionMapItem.pose_is_controller_aim XrActionMapItem.pose_is_controller_grip XrActionMapItem.selected_binding XrActionMapItem.type XrActionMapItem.user_paths XrActionMapItem.bl_rna_get_subclass() XrActionMapItem.bl_rna_get_subclass_py() Inherited Properties Inherited Functions References
user: What is Hook Modifier and how is it used in Blender Python scripting?

assistant: # Hook Modifier

The *Hook* Modifier is used to deform stroke points using another object
(usually an empty or a bone but it can be any object).

As the hook moves, it pulls points from the strokes with it.
You can think of it as animated
[Proportional Editing](../../../editors/3dview/controls/proportional_editing.xhtml).
user: Explain Expand Face Set by Topology in complete detail according to the official Blender documentation.

assistant: Expands a face set from the active vertex.
This operator uses the same internal operator as [Expand](#bpy-ops-sculpt-expand)
meaning all the hotkeys and functionality works the same as that tool,
with the gradient features as the exception.

### Usage

Saving Masks
:   Expanding Face Sets has all the same use cases as expanding masks.
    The advantage for this one is that they will be saved for repeated usage.
    Face sets can be filled any time with a mask,
    so assigning areas face sets will save you time.
    (And of course face sets can be used to
    [hide face sets](sculpt.html))

Pivot Points for Pose Brush
:   When using the [Pose Brush](../brushes/pose.html) it is most predictable when using it with
    Face Sets to define the face set boundaries as pivot point locations.
    Face Sets can be expanded from a point or from a boundary between hidden face sets
    to create them quickly.
    Alternatively [Grow/Shrink Face Sets](face_sets.html#bpy-ops-sculpt-face-set-edit)
    or use the [Expand Active Face Set](#face-set-expand-active) to dynamically grow/shrink them.

Cloth Sculpting
:   Tools like the [Cloth Filter](../tools/cloth_filter.html)
    and [Cloth Brush](../brushes/cloth.html)
    work especially well when only simulating small areas at a time.
    Face Sets can very easily be created with Expand to assign areas of action.
user: Show practical ways to work with Special Characters in a Blender add-on or script – include code.

assistant: This is a limited character map to insert characters which aren’t available from the keyboard.
Many other special characters can be “composed”, see [Accent Characters](#accent-characters).
If you need others, you will have to copy-paste them from an external editor or character map program.
user: What is TexMapping(bpy_struct) and how is it used in Blender Python scripting?

assistant: # TexMapping(bpy_struct)

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

*class* bpy.types.TexMapping(*bpy_struct*)
:   Texture coordinate mapping settings

    mapping
    :   - `FLAT`
          Flat – Map X and Y coordinates directly.
        - `CUBE`
          Cube – Map using the normal vector.
        - `TUBE`
          Tube – Map with Z as central axis.
        - `SPHERE`
          Sphere – Map with Z as central axis.

        Type:
        :   enum in [`'FLAT'`, `'CUBE'`, `'TUBE'`, `'SPHERE'`], default `'FLAT'`

    mapping_x
    :   Type:
        :   enum in [`'NONE'`, `'X'`, `'Y'`, `'Z'`], default `'NONE'`

    mapping_y
    :   Type:
        :   enum in [`'NONE'`, `'X'`, `'Y'`, `'Z'`], default `'NONE'`

    mapping_z
    :   Type:
        :   enum in [`'NONE'`, `'X'`, `'Y'`, `'Z'`], default `'NONE'`

    max
    :   Maximum value for clipping

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

    min
    :   Minimum value for clipping

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

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

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

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

    use_max
    :   Whether to use maximum clipping value

        Type:
        :   boolean, default False

    use_min
    :   Whether to use minimum clipping value

        Type:
        :   boolean, default False

    vector_type
    :   Type of vector that the mapping transforms

        Type:
        :   enum in [Mapping Type Items](bpy_types_enum_items/mapping_type_items.html#rna-enum-mapping-type-items), default `'POINT'`

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

assistant: Value
:   The immediate value of each primitive to blur.

Iterations
:   Number of repetitions of mixing value with neighbors. Each iteration is independent.
    Until one iteration is completed, its results are not used as a source for next blurring.

Weight
:   Weight of each primitive.
user: How do I use Properties in Blender? Include parameters, examples, warnings and best practices.

assistant: Data Type
:   Float:
    :   The node will average a *Float* field.

    Integer:
    :   The node will accumulate an *Integer* field.

    Vector:
    :   The node will average a *Vector* field.

Domain
:   The [attribute domain](../../attributes_reference.xhtml#attribute-domains) used for evaluate the *Value* input.
user: What is References and how is it used in Blender Python scripting?

assistant: |  |  |
| --- | --- |
| - [`MovieClip.metadata`](bpy.types.MovieClip.html#bpy.types.MovieClip.metadata "bpy.types.MovieClip.metadata") | - [`MovieStrip.metadata`](bpy.types.MovieStrip.html#bpy.types.MovieStrip.metadata "bpy.types.MovieStrip.metadata") |
user: Provide the full official documentation entry for Redistribute Curve Points, preserving all code examples.

assistant: # Redistribute Curve Points

The *Redistribute Curve Points* node repositions existing control points so they are
evenly spaced along each curve.
This helps improve uniformity, especially after deformations or procedural
operations that distort point spacing, ensuring consistent interpolation and smoother results.
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`CacheFile.layers`](bpy.types.CacheFile.html#bpy.types.CacheFile.layers "bpy.types.CacheFile.layers") - [`CacheFileLayers.active`](bpy.types.CacheFileLayers.html#bpy.types.CacheFileLayers.active "bpy.types.CacheFileLayers.active") | - [`CacheFileLayers.new`](bpy.types.CacheFileLayers.html#bpy.types.CacheFileLayers.new "bpy.types.CacheFileLayers.new") - [`CacheFileLayers.remove`](bpy.types.CacheFileLayers.html#bpy.types.CacheFileLayers.remove "bpy.types.CacheFileLayers.remove") |
user: Give a detailed overview of Tool Context: syntax, arguments, return values, common patterns.

assistant: These popover menus are displayed in the header when the tool context is enabled.
These properties determine where the tool is available in the user interface.

See [Supported Modes & Object Types](../modeling/geometry_nodes/tools.xhtml#modeling-geometry-nodes-tools-contexts) for more information.

### Types

The [Object Types](../scene_layout/object/types.xhtml) the tool supports.

Mesh
:   The node tree supports [Mesh Objects](../modeling/meshes/index.xhtml).

Hair Curves
:   The node tree supports [Curve Objects](../modeling/curves/index.xhtml).

Grease Pencil
:   The node tree supports [Grease Pencil Objects](../grease_pencil/index.xhtml).

Point Cloud
:   The node tree supports [Point Cloud Objects](../modeling/point_cloud/index.xhtml).

### Modes

The [Object Modes](3dview/modes.xhtml) the tool supports.

Object Mode
:   The node group can be used in Object mode.

Edit Mode
:   The node group can be used in edit mode.

Sculpt Mode
:   The node group can be used in [Sculpt Mode](../sculpt_paint/sculpting/index.xhtml).

Draw Mode Grease Pencil
:   The node group can be used in Grease Pencil [Draw Mode](../grease_pencil/modes/draw/index.xhtml).

### Options

Wait for Click
:   Wait for a mouse click input (`LMB`) before running the operator from a menu.
    This is useful for the [Mouse Position Node](../modeling/geometry_nodes/input/scene/mouse_position.xhtml).
user: Explain Common Editor Keys in complete detail according to the official Blender documentation.

assistant: These keys are shared across editors such as the 3D Viewport, UV and Graph editor.

|  |  |
| --- | --- |
| `A` | Select all. |
| `Alt`-`A` /  Double-tap `A` | Select none. |
| `Ctrl`-`I` | Invert selection. |
| `H` | Hide selected items. |
| `Shift`-`H` | Hide unselected items. |
| `Alt`-`H` | Reveal hidden items. |
| `T` | Toggle Toolbar. |
| `N` | Toggle Sidebar. |
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

assistant: 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](../../../../grease_pencil/properties/layers.xhtml) for more information.

    3D Location:
    :   The strokes drawing order is based on the stroke location in 3D space.
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: The *Closure* node does not have functional properties of its own, but its interface is configurable through the
*Node* tab in the Sidebar. Inputs and outputs can be added, removed, and renamed to define the closure’s signature.

Sync Sockets
:   Updates the current node to match the socket signature of the connected nodes.
    Use this after renaming, adding, or removing sockets.

Define Signature
:   Marks the current zone as the source of a closure signature that other nodes can reference. This ensures consistent
    input and output definitions across multiple closure instances.

### Input Items

List of input sockets
:   Displays one entry per socket defined in the closure. Double-click an entry to rename it.

Add Item
:   Add a new input socket to the closure.

Remove Item
:   Delete the selected input socket.

Type
:   Defines the data type for the selected socket (e.g. Float, Vector, Geometry, Object, Bundle).
    For value types, a default value control appears and is used when the socket is unlinked.

Shape
:   Defines the data structure supported by the input socket, such as a *Single* value, *Field*, or *Grid*.
    The shape determines how the data is evaluated and passed through the node network.
    See [Socket Shape](../../../interface/controls/nodes/parts.xhtml#interface-controls-nodes-socket-shape) for more information.

### Output Items

Available when the closure’s output zone is selected.

List of output sockets
:   Displays one entry per socket defined in the closure output. Double-click to rename.

Add Item
:   Add a new output socket to the closure.

Remove Item
:   Delete the selected output socket.

Type
:   Defines the data type for the selected socket (e.g. Float, Vector, Geometry, Object, Bundle).
    For value types, a default value control appears and is used when the socket is unlinked.

Shape
:   Defines the data structure supported by the input socket, such as a *Single* value, *Field*, or *Grid*.
    The shape determines how the data is evaluated and passed through the node network.
    See [Socket Shape](../../../interface/controls/nodes/parts.xhtml#interface-controls-nodes-socket-shape) for more information.
user: Give a detailed overview of Options: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

*Generic Spring* constraint options.

Limits
:   X/Y/Z Axis
    :   Enables/disables limit translation on X, Y or Z axis respectively.

        Lower
        :   Lower limit of translation for X, Y or Z axis respectively.

        Upper
        :   Upper limit of translation for X, Y or Z axis respectively.

    X/Y/Z Angle
    :   Enables/disables limit rotation around the X, Y or Z axis respectively.

        Lower
        :   Lower limit of rotation for X, Y or Z axis respectively.

        Upper
        :   Upper limit of rotation for X, Y or Z axis respectively.

Springs
:   X/Y/Z Axis
    :   Enables/disables springs translation on X, Y or Z axis respectively.

        Stiffness
        :   Spring Stiffness of the translation on X, Y or Z axis respectively. Specifies how “bendy” the spring is.

        Damping
        :   Spring Damping of the translation on X, Y or Z axis respectively. Amount of damping the spring has.

    X/Y/Z Angle
    :   Enables/disables springs rotation around the X, Y or Z axis respectively.

        Stiffness
        :   Spring Stiffness of the rotation around the X, Y or Z axis respectively.
            Specifies how “bendy” the spring is.

        Damping
        :   Spring Damping of the rotation around the X, Y or Z axis respectively. Amount of damping the spring has.
user: What is Render and how is it used in Blender Python scripting?

assistant: Space
:   Specifies how volume density and step size are computed.

    Object:
    :   Keeps volume *Density* and *Detail* the same regardless of object scale.

    World:
    :   Specify *Step Size* and *Density* in world space.

Clipping Cycles Only
:   Value under which voxels are considered empty space to optimize rendering.

Precision Cycles Only
:   Specifies volume data precision. Lower values reduce memory consumption at the cost of detail.

    Full:
    :   Full float (Use 32 bit for all data).

    Half:
    :   Half float (Use 16 bit for all data).

    Variable:
    :   Automatically use less precision for less noticeable areas.

Velocity Grid Cycles Only
:   The name of the grid that contains voxel velocities, for calculating motion blur.
    This can be the name of a single grid containing 3D vectors,
    or a prefix of three separate grids containing scalar values.
    In the latter case, the X grid should have a name suffix of `x`, `.x` or `_x`,
    with similar conventions for the Y and Z grids.

Velocity Unit Cycles Only
:   Whether the velocity grid(s) specify distances per frame or per second.

Velocity Scale Cycles Only
:   A custom multiplier to apply to the velocities in the VDB.
user: Explain Known Limitations in complete detail according to the official Blender documentation.

assistant: ### Archive Extraction

Extracting Blender’s archive using **7-zip** is not supported. TAR must be used instead. For more details, see issue
[#104070](https://projects.blender.org/blender/blender/issues/104070#issuecomment-1276521).
user: Describe Overview from the Blender manual or Python API, including usage steps and snippets.

assistant: This template streamlines the process of planning and sketching shots for animation or film
projects. Each shot is represented as its own scene, allowing independent Grease Pencil drawings,
camera settings, and timing, while the Sequencer serves as a master timeline to organize shots.
user: Explain Vector Display in complete detail according to the official Blender documentation.

assistant: Visualization options for the vector fields.

Display As
:   Streamlines:
    :   Choose to display the vectors as “Streamlines”.

    Needle:
    :   Choose to display the vectors as “Needles”.

    MAC Grid:
    :   Choose to display the vector field as “Marker-And-Cell Grid”.

> Mac Grid X, Y, Z Mac Grid
> :   Show an individual X/Y/Z component of the MAC grid.

Magnitude Streamlines or Needle Only
:   Scale the display vectors by the magnitude of the vectors they represent.

Field
:   The vector field represented by the display vectors (e.g. fluid velocity, external forces).

Scale
:   Scale the vectors by this size in the viewport.
user: Give a detailed overview of Inputs: syntax, arguments, return values, common patterns.

assistant: Vector
:   The coordinates at which Gabor noise will be evaluated. The Z component is ignored in the 2D
    case. Defaults to *Generated* texture coordinates if the socket is left unconnected.

Scale
:   Scale of the Gabor noise.

Frequency
:   The rate at which the Gabor noise changes across space. This is different from the Scale input
    in that it only scales perpendicular to the Gabor noise direction.

Anisotropy
:   The directionality of Gabor noise. 1 means the noise is completely directional, while 0 means
    the noise is omnidirectional.

Orientation
:   The direction of anisotropic Gabor noise. This is an angle for the 2D case, while it is a unit
    direction vector for the 3D case.
user: What is Import (Legacy) and how is it used in Blender Python scripting?

assistant: ### Include

Import Normals

Import Subdivision Surface
:   Import FBX subdivision information as subdivision surface modifiers.

Import User Properties
:   Import user properties as custom properties.

Import Enums as Strings
:   Store custom property enumeration values as strings.

Image Search

### Transform

Scale
:   Value by which to scale the imported objects in relation to the world’s origin.

Decal Offset

Manual Orientation

Forward / Up Axis.. todo:: Add this information.
:   Since many applications use a different axis for ‘Up’, these are axis conversion for these settings,
    Forward and Up axes – By mapping these to different axes you can convert rotations
    between applications default up and forward axes.

    Blender uses Y Forward, Z Up (since the front view looks along the +Y direction).
    For example, its common for applications to use Y as the up axis, in that case -Z Forward, Y Up is needed.

Apply Transform
:   Bake space transform into object data, avoids getting unwanted rotations
    to objects when target space is not aligned with Blender’s space.

Use Pre/Post Rotation

### Materials

Material Name Collision
:   Behavior when the name of an imported material conflicts with an existing material.

    Make Unique:
    :   Import each USD material as a unique Blender material.

    Reference Existing:
    :   If a material with the same name already exists, reference that instead of importing.

### Animation

Animation Offset
:   Offset to apply to animation timestamps, in frames.

### Armature

Ignore Leaf Bones
:   Ignore the last bone at the end of each chain (used to mark the length of the previous bone).

Force Connect Children

Automatic Bone Orientation

Primary/Secondary Bone Axis
user: What is Crash on Startup and how is it used in Blender Python scripting?

assistant: Try running Blender from the [command line](../../../advanced/command_line/index.html), to see if any helpful error messages
are printed.

On Windows, graphics drivers can sometimes get corrupted or incorrectly replaced by Windows Update. In this case, it
can help to uninstall all graphics drivers (there may be multiple sets installed from Intel, AMD and NVIDIA) and
perform a clean installation with drivers from the manufacturer’s website.
user: Explain Vertex Weight Edit Modifier in complete detail according to the official Blender documentation.

assistant: # Vertex Weight Edit Modifier

This modifier is intended to edit the weights of a vertex group.

The general process is the following, for each vertex:

- (Optional) It does the mapping, either through one of the predefined functions, or a custom mapping curve.
- It applies the influence factor, and optionally the vertex group or texture mask
  (0.0 means original weight, 1.0 means fully mapped weight).
- It applies back the weight to the vertex, and/or it might optionally remove the vertex
  from the group if its weight is below a given threshold, or add it if it is above a given threshold.
user: Provide the full official documentation entry for Add Menu, preserving all code examples.

assistant: In the 3D Viewport, `Shift`-`A` to add a new bone to your armature.

This bone will be:

- Of one unit of length.
- Oriented towards the global Z axis.
- With its root placed at the 3D cursor position.
- With no relationship with any other bone of the armature.
user: Provide the full official documentation entry for NodeSocketVectorXYZ2D(NodeSocketStandard), preserving all code examples.

assistant: # NodeSocketVectorXYZ2D(NodeSocketStandard)

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

*class* bpy.types.NodeSocketVectorXYZ2D(*NodeSocketStandard*)
:   3D vector socket of a node

    default_value
    :   Input value used for unconnected socket

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

    links
    :   List of node links from or to this socket.

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

        (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 Lattice, preserving all code examples.

assistant: # Lattice

Lattice – or commonly called deformation cage outside of Blender.
A lattice consists of a three-dimensional non-renderable grid of vertices.
Its main use is to apply a deformation to the object it controls with a [Lattice Modifier](../modeling/modifiers/deform/lattice.xhtml).
If the object is parented with *Lattice Deform* a Lattice Modifier is automatically applied.
user: What is X/Y/Z Global and how is it used in Blender Python scripting?

assistant: These operations perform a non-interactive mirror along the global X, Y, or Z axis.

X Global
:   Mirrors the selection along the global X axis.

Y Global
:   Mirrors the selection along the global Y axis.

Z Global
:   Mirrors the selection along the global Z axis.
user: How do I use Options in Blender? Include parameters, examples, warnings and best practices.

assistant: [[image reference removed]](../../../_images/modeling_modifiers_deform_surface-deform_panel.png)

The Surface Deform modifier.

Target
:   The object to which to bind (this setting is unavailable after binding).

Interpolation Falloff
:   How much a vertex bound to one face of the target will be affected by the surrounding faces
    (this setting is unavailable after binding).
    This essentially controls how smooth the deformations are.

Strength
:   The overall amount of influence the modifier has on deforming the mesh.

Vertex Group
:   Allows you to define the influence per vertex.

    Invert
    :   Inverts the influence of the selected vertex group, meaning that the group
        now represents vertices that will not be deformed by the modifier.

        The setting reverses the weight values of the group.

Sparse Bind
:   Only record bind data for vertices that have nonzero weights in the group at the time of bind.
    This is an optimization, but adding new vertices to the group will require a rebind.

Bind
:   Bind the current state of the modified mesh to the current state of the target mesh,
    such that any later change in the target mesh will deform the modified mesh as well.
    Note that until the bind has been executed, this modifier will have no effect at all.

Unbind
:   Once the mesh is bound, the *Bind* button changes to *Unbind*.
    Executing this frees the modified mesh from the target, and resets it to its original shape.
user: Give a detailed overview of Introduction: syntax, arguments, return values, common patterns.

assistant: # Introduction

Assigning weight to the points is primarily used for rigging strokes in cut-out animation,
where the vertex groups are used to define the relative bone influences on the strokes.
See [Using Vertex Group](../../../sculpt_paint/weight_paint/usage.xhtml) for more information.

Weight Painting is a method to maintain large amounts of weight information in an intuitive way.
The selected Grease Pencil object is displayed slightly shaded with a rainbow color spectrum.
The color visualizes the weights associated to each point in the active vertex group.
By default blue means unweighted and red means fully weighted.

You assign weights to the points of the object by painting on it with weight brushes.
Starting to paint on a strokes automatically adds weights to the active vertex group
(a new vertex group is created if needed).
user: Give a detailed overview of Volume: syntax, arguments, return values, common patterns.

assistant: Some phenomena of real-world hair can be simulated more efficiently using a volumetric model instead
of the basic geometric strand model. This means constructing a regular grid such as those used in
fluid simulations and interpolating hair properties between the grid cells.

Air Drag
:   Controls how thick the air is around the hair causing the hair to flow slower.

Internal Friction
:   Amount of friction between individual hairs.

Voxel Grid Cell Size
:   Size of the voxel grid cells for interaction effects.

Density Target
:   Maximum density of the hair.

Density Strength
:   The influence that the *Density Target* has on the simulation.
user: Explain Blend Hair Curves in complete detail according to the official Blender documentation.

assistant: # Blend Hair Curves

The *Blend Hair Curves* node smooths or blends the shape of hair curves by averaging
their positions with nearby curves within a specified radius.
This can be used to reduce noise, create more coherent flow in the groom, or
harmonize transitions between clumps of hair.
user: Give a detailed overview of Set Corner Type: syntax, arguments, return values, common patterns.

assistant: Sets how corners between strokes or segments are shaped when using stroke
thickness or fills. This affects how the stroke geometry joins at sharp angles.

Corner Type
:   Defines the style of the corner for the selected points.

    Round:
    :   Smoothly rounds the corner, creating a curved transition between segments.

    Flat:
    :   Cuts the corner flat, creating a beveled join.

    Sharp:
    :   Keeps the corner pointed, preserving the original angle between segments.

Miter Cut Angle
:   Specifies the angle threshold (in degrees) for flattening sharp corners.
    Any corner sharper than this angle will be cut flat when *Corner Type* is set to *Flat* or *Round*.
user: Explain FollowTrackConstraint(Constraint) in complete detail according to the official Blender documentation.

assistant: # FollowTrackConstraint(Constraint)

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

*class* bpy.types.FollowTrackConstraint(*Constraint*)
:   Lock motion to the target motion track

    camera
    :   Camera to which motion is parented (if empty active scene camera is used)

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

    clip
    :   Movie Clip to get tracking data from

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

    depth_object
    :   Object used to define depth in camera space by projecting onto surface of this object

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

    frame_method
    :   How the footage fits in the camera frame

        Type:
        :   enum in [`'STRETCH'`, `'FIT'`, `'CROP'`], default `'STRETCH'`

    object
    :   Movie tracking object to follow (if empty, camera object is used)

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

    track
    :   Movie tracking track to follow

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

    use_3d_position
    :   Use 3D position of track to parent to

        Type:
        :   boolean, default False

    use_active_clip
    :   Use active clip defined in scene

        Type:
        :   boolean, default False

    use_undistorted_position
    :   Parent to undistorted position of 2D track

        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