PGCRYPT/OpenBlender_Train huggingface dataset:
user: Provide the full official documentation entry for MetaBallElements(bpy_struct), preserving all code examples.

assistant: # MetaBallElements(bpy_struct)

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

*class* bpy.types.MetaBallElements(*bpy_struct*)
:   Collection of metaball elements

    active
    :   Last selected element

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

    new(*\**, *type='BALL'*)
    :   Add a new element to the metaball

        Parameters:
        :   **type** (enum in [Metaelem Type Items](bpy_types_enum_items/metaelem_type_items.html#rna-enum-metaelem-type-items), (optional)) – Type for the new metaball element

        Returns:
        :   The newly created metaball element

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

    remove(*element*)
    :   Remove an element from the metaball

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

    clear()
    :   Remove all elements from the metaball

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

assistant: Text Info Overlay
:   Object Info
    :   Display the active Object name and frame number at the top left of the 3D Viewport.

    View Name
    :   Display the name and type of the current view in the top left corner of the 3D Viewport.
        For example: “User Perspective” or “Top Orthographic”.

Playback Frame Rate (FPS)
:   Show the frames per second screen refresh rate while an animation is played back.
    It appears in the top left of the 3D Viewport, displaying red if the frame rate set cannot be reached.

    Frame Rate Samples
    :   Calculate the FPS displayed in the viewport based on an average of the current and previously displayed frames.
        A value of zero uses the number of frames in 1.0 second.

        - More samples represent the average FPS over a longer period of time,
          however sudden changes to performance result in a more gradual increase/decrease over time.
        - Fewer samples shows an FPS which more closely matches the actual performance,
          however the value may jitter - making the FPS difficult to comprehend.

Gizmo Size
:   Diameter of the gizmo.

HDRI Preview Size
:   Diameter of the HDRI sphere overlay.

3D Viewport Axes
:   Interactive Navigation:
    :   Display the axis as an interactive gizmo.
        Click sets the viewport to display along this axis and dragging orbits the view.

    Simple Axes:
    :   Display simple, less intrusive axis in the viewport.

        Brightness
        :   How vivid the colors of the simple axis are.

    Off:
    :   Disables the viewport axis.

Size
:   Diameter of the *3D Viewport Axis* widget.

Fresnel – Edit Mode
:   Enable a fresnel effect on edit mesh overlays.
    It improves shape readability of very dense meshes, but increases eye fatigue when modeling lower poly.
user: Explain References in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`RenderEngine.begin_result`](bpy.types.RenderEngine.html#bpy.types.RenderEngine.begin_result "bpy.types.RenderEngine.begin_result") - [`RenderEngine.end_result`](bpy.types.RenderEngine.html#bpy.types.RenderEngine.end_result "bpy.types.RenderEngine.end_result") | - [`RenderEngine.get_result`](bpy.types.RenderEngine.html#bpy.types.RenderEngine.get_result "bpy.types.RenderEngine.get_result") - [`RenderEngine.update_result`](bpy.types.RenderEngine.html#bpy.types.RenderEngine.update_result "bpy.types.RenderEngine.update_result") |
user: Show practical ways to work with Known Limitations in a Blender add-on or script – include code.

assistant: ### UV Overlap

In general overlapping UVs are not supported (as with texture baking).

However, this is only a problem when a single brush stroke paints onto multiple faces
that share a texture.

### Perspective View & Faces Behind the View

When painting onto a face which is partially behind the view (in perspective mode),
the face cannot be painted on.
To avoid this, zoom out or use an orthographic viewport.

### Perspective View & Low Poly

When painting onto a face in perspective mode onto a low-poly object with
normals pointing away from the view, painting may fail; to workaround disable
the [Normal Falloff](../brush/falloff.xhtml#bpy-types-imagepaint-use-normal-falloff) option in the stroke settings.

Typically this happens when painting onto the side of a cube
(see [Blender bug #34665](https://projects.blender.org/blender/blender/issues/34665)).
user: Provide the full official documentation entry for Bézier, preserving all code examples.

assistant: [image reference removed]

Active Spline panel: Bézier Spline.

Cyclic U
:   See [Common Options](#spline-common-options).

Resolution U
:   See [Common Options](#spline-common-options).

Interpolation Tilt
:   Alters how the tilt of a segment is calculated.

Radius
:   Alters how the radius of a beveled curve is calculated.
    The effects are easier to see after [increasing the radius](../editing/curve.xhtml#modeling-curve-radius).

Smooth
:   See [Common Options](#spline-common-options).
user: Show practical ways to work with MeshVertices(bpy_struct) in a Blender add-on or script – include code.

assistant: # MeshVertices(bpy_struct)

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

*class* bpy.types.MeshVertices(*bpy_struct*)
:   Collection of mesh vertices

    add(*count*)
    :   add

        Parameters:
        :   **count** (*int in* *[**0**,* *inf**]*) – Count, Number of vertices to add

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

assistant: [image reference removed]

Expanded tool group.

The Toolbar contains buttons for the various tools.
Buttons with a small triangle in their bottom right corner are tool groups
which can be opened by holding `LMB` on them for a moment
(or dragging `LMB` to open them instantly).

Hovering your cursor over a tool for a short time will show its name,
while hovering longer will show the full tooltip.

Resizing the Toolbar horizontally will display the icons with two columns.
Expanding it further will display the icon and its text.
user: Provide the full official documentation entry for Simplify, preserving all code examples.

assistant: Reduces the complexity of Grease Pencil strokes by strategically removing points.
This is useful for cleaning up strokes, optimizing performance,
and preparing drawings for further editing or animation.
There are multiple modes; described below:

### Fixed

Deletes alternated points in the strokes, except the start and end points.

Steps
:   The number of times to repeat the procedure.

### Adaptive

Uses the RDP algorithm (Ramer-Douglas-Peucker algorithm) for points deletion.
The algorithm tries to obtain a similar line shape with fewer points.

Factor
:   Controls the amount of recursively simplifications applied by the algorithm.

### Sample

Recreates the stroke geometry with a predefined length between points.

Length
:   The distance between points on the recreated stroke.
    Smaller values will require more points to recreate the stroke,
    while larger values will result in fewer points needed to recreate the curve.

### Merge

Simplifies the stroke by merging points that are closer than the specified distance.

Distance
:   The maximum distance between vertices to determine which ones will be merged.
user: What is Mark/Clear Seam and how is it used in Blender Python scripting?

assistant: These operators set or unset this mark for selected edges.
Seams are a way to create separations, “islands”, in UV maps.
See the [UV Mapping section](../../../../editors/uv/index.html#editors-uv-index) for more details.
user: Provide the full official documentation entry for GeometryNodeGizmoLinear(GeometryNode), preserving all code examples.

assistant: # GeometryNodeGizmoLinear(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.GeometryNodeGizmoLinear(*GeometryNode*)
:   Show a linear gizmo in the viewport for a value

    color_id
    :   Type:
        :   enum in [Geometry Nodes Gizmo Color Items](bpy_types_enum_items/geometry_nodes_gizmo_color_items.html#rna-enum-geometry-nodes-gizmo-color-items), default `'PRIMARY'`

    draw_style
    :   Type:
        :   enum in [Geometry Nodes Linear Gizmo Draw Style Items](bpy_types_enum_items/geometry_nodes_linear_gizmo_draw_style_items.html#rna-enum-geometry-nodes-linear-gizmo-draw-style-items), default `'ARROW'`

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

assistant: # Sphere Selection Node

[image reference removed]

The *Sphere Selection* node creates a selection of elements that lie within a defined spherical region.
It can be used to isolate points, faces, or instances inside or near a sphere, making it useful for
localized effects, falloffs, or region-based operations.
user: Explain VertexGroups(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # VertexGroups(bpy_struct)

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

*class* bpy.types.VertexGroups(*bpy_struct*)
:   Collection of vertex groups

    active
    :   Vertex groups of the object

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

    active_index
    :   Active index in vertex group array

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

    new(*\**, *name='Group'*)
    :   Add vertex group to object

        Parameters:
        :   **name** (*string**,* *(**optional**,* *never None**)*) – Vertex group name

        Returns:
        :   New vertex group

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

    remove(*group*)
    :   Delete vertex group from object

        Parameters:
        :   **group** ([`VertexGroup`](bpy.types.VertexGroup.html#bpy.types.VertexGroup "bpy.types.VertexGroup"), (never None)) – Vertex group to remove

    clear()
    :   Delete all vertex groups from object

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

assistant: # Introduction

The Video Sequencer allows you to place images, videos, sounds, and scenes
on a timeline and combine them into a new video. This section only describes its UI;
to read more about its usage, see the [Video Editing](../../video_editing/index.xhtml) section.
user: Explain Inputs in complete detail according to the official Blender documentation.

assistant: Closures define their own inputs, which act as parameters for the internal node logic.
These inputs can be created by dragging the blank input socket into another socket or by adding sockets manually in the
node’s properties. Each input defines a parameter that the closure can receive when it is evaluated elsewhere.
user: Describe Group Input from the Blender manual or Python API, including usage steps and snippets.

assistant: Exposes the inputs of the node group. You can have multiple of these nodes in your tree to keep it clean,
bringing in each input right where you need it (rather than dragging long links all across your graph).

The input slots can be edited in the *Group* tab of the *Sidebar*.
user: Describe Options from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

Limit Scale constraint.

Minimum/Maximum X, Y, Z
:   The number fields determine the boundaries for each axis.
    The checkboxes determine whether each boundary applies.

Affect Transform
:   When the owner is manually scaled, restrict not just its
    [visual](../introduction.html#constraint-visual-transform) scale but also its
    *Scale* in the [Properties Editor](../../../editors/properties_editor.html)’s *Transform* panel.

[Owner](../interface/common.html#rigging-constraints-interface-common-space)
:   The space for determining and limiting the scale of the owner.

[Influence](../interface/common.html#bpy-types-constraint-influence)
:   How strongly the constraint affects the owner.
user: Explain Outputs in complete detail according to the official Blender documentation.

assistant: The outputs of the *Evaluate Closure* node depend on its current configuration:

- **When a closure is connected** – Each output corresponds to an output socket of the *Closure Zone* with the same name.
- **When no closure is connected** – Outputs are defined manually through the *Output Items* section of the Sidebar.
user: Describe Vertex Groups from the Blender manual or Python API, including usage steps and snippets.

assistant: Vertex groups can be used to assign a group or weighted group to some operator.
An object can have several weight groups and can be assigned in
[Weight Paint](vertex_groups/vertex_groups.html) mode,
or in [Edit Mode](vertex_groups/assigning_vertex_group.html) via this panel.

See [Vertex Groups](vertex_groups/introduction.html) for more information.
user: Show practical ways to work with Baking Physics Simulations in a Blender add-on or script – include code.

assistant: # Baking Physics Simulations

[Baking](../glossary/index.xhtml#term-Baking) refers to the act of storing or caching the results of a calculation.
The result of a simulation is automatically cached to memory when the animation is played,
so that the next time it runs, it can be replayed more quickly by reading the results from the memory.

If you bake the simulation the cache is protected,
and you will be unable to change the simulation settings
until you clear the baked frames by clicking *Delete Bake*.

It is generally recommended to bake your physics simulations before rendering.
Aside from no longer needing to go through the time-consuming process of simulating again,
baking can help prevent potential glitches and ensure that the outcome of the simulation
remains exactly the same every time.
user: Describe Dynamics from the Blender manual or Python API, including usage steps and snippets.

assistant: # Dynamics

[image reference removed]

Rigid Body Dynamics panel.

Used to control the physics of the rigid body simulation.
This panel is available only for *Active* type of rigid bodies.

Damping Translation
:   Amount of linear velocity that is lost over time.

Rotation
:   Amount of angular velocity that is lost over time.
user: Explain Common Options in complete detail according to the official Blender documentation.

assistant: You can change the options of the object in the [Adjust Last Operation](../../interface/undo_redo.html#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.html).

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

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

assistant: |  |  |
| --- | --- |
| - [`XrActionMaps.find`](bpy.types.XrActionMaps.html#bpy.types.XrActionMaps.find "bpy.types.XrActionMaps.find") - [`XrActionMaps.new`](bpy.types.XrActionMaps.html#bpy.types.XrActionMaps.new "bpy.types.XrActionMaps.new") - [`XrActionMaps.new_from_actionmap`](bpy.types.XrActionMaps.html#bpy.types.XrActionMaps.new_from_actionmap "bpy.types.XrActionMaps.new_from_actionmap") - [`XrActionMaps.new_from_actionmap`](bpy.types.XrActionMaps.html#bpy.types.XrActionMaps.new_from_actionmap "bpy.types.XrActionMaps.new_from_actionmap") - [`XrActionMaps.remove`](bpy.types.XrActionMaps.html#bpy.types.XrActionMaps.remove "bpy.types.XrActionMaps.remove") | - [`XrSessionState.action_binding_create`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.action_binding_create "bpy.types.XrSessionState.action_binding_create") - [`XrSessionState.action_create`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.action_create "bpy.types.XrSessionState.action_create") - [`XrSessionState.action_set_create`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.action_set_create "bpy.types.XrSessionState.action_set_create") - [`XrSessionState.actionmaps`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.actionmaps "bpy.types.XrSessionState.actionmaps") |
user: Provide the full official documentation entry for SplinePoint(bpy_struct), preserving all code examples.

assistant: # SplinePoint(bpy_struct)

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

*class* bpy.types.SplinePoint(*bpy_struct*)
:   Spline point without handles

    co
    :   Point coordinates

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

    hide
    :   Visibility status

        Type:
        :   boolean, default False

    radius
    :   Radius for beveling

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

    select
    :   Selection status

        Type:
        :   boolean, default False

    tilt
    :   Tilt in 3D View

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

    weight
    :   NURBS weight

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

    weight_softbody
    :   Softbody goal weight

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Image
:   The texture to distort.

UV
:   The UV coordinates at which to sample the texture. The UV coordinates can either come directly from the UV render
    pass (Cycles only, see [Cycles render passes](../../../render/layers/passes.xhtml)), or from the image coordinates
    in which case the Z component must be manually set to 1 (see example below).

### Sampling

Interpolation
:   Determines how pixel values are interpolated when scaling or transforming images.

    Nearest:
    :   Uses the value of the closest pixel with no smoothing.
        This is the fastest method and is well-suited for pixel art or low-resolution images
        where sharp, blocky edges are desirable.
        In animations, motion appears in single-pixel steps, which can cause visible jittering.

    Bilinear:
    :   Averages the values of surrounding pixels to create a smoother result than *Nearest*.
        Provides a good balance between performance and visual quality.

    Bicubic:
    :   Computes a weighted average of a larger neighborhood of pixels for even smoother results.
        Ideal for photographic images or gradients where preserving fine detail is important.

    Anisotropic:
    :   Adjusts interpolation based on the direction and scale of the transformation.
        Helps reduce blurring or aliasing when scaling at steep angles or uneven resolutions,
        especially useful in textures viewed at oblique angles or in detailed 3D projections.

Extension X/Y
:   The extension mode applied to the X axis.

    Clip:
    :   Areas outside of the image are filled with transparency.

    Extend:
    :   Areas outside of the image are filled with the closest boundary pixel in the image.

    Repeat:
    :   Areas outside of the image are filled with repetitions of the image.
user: Give a detailed overview of LineStyleThicknessModifier_AlongStroke(LineStyleThicknessModifier): syntax, arguments, return values, common patterns.

assistant: # LineStyleThicknessModifier_AlongStroke(LineStyleThicknessModifier)

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

*class* bpy.types.LineStyleThicknessModifier_AlongStroke(*LineStyleThicknessModifier*)
:   Change line thickness along stroke

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

        Type:
        :   enum in [`'MIX'`, `'ADD'`, `'SUBTRACT'`, `'MULTIPLY'`, `'DIVIDE'`, `'DIFFERENCE'`, `'MINIMUM'`, `'MAXIMUM'`], default `'MIX'`

    curve
    :   Curve used for the curve mapping

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

    expanded
    :   True if the modifier tab is expanded

        Type:
        :   boolean, default False

    influence
    :   Influence factor by which the modifier changes the property

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

    invert
    :   Invert the fade-out direction of the linear mapping

        Type:
        :   boolean, default False

    mapping
    :   Select the mapping type

        - `LINEAR`
          Linear – Use linear mapping.
        - `CURVE`
          Curve – Use curve mapping.

        Type:
        :   enum in [`'LINEAR'`, `'CURVE'`], default `'LINEAR'`

    type
    :   Type of the modifier

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

    use
    :   Enable or disable this modifier during stroke rendering

        Type:
        :   boolean, default False

    value_max
    :   Maximum output value of the mapping

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

    value_min
    :   Minimum output value of the mapping

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   [type](#bpy.types.LineStyleThicknessModifier_AlongStroke.type "bpy.types.LineStyleThicknessModifier_AlongStroke.type")
user: How do I use Action Constraint in Blender? Include parameters, examples, warnings and best practices.

assistant: # Action Constraint

The *Action* constraint evaluates the location, rotation, and scale inside
a certain [Action](../../actions.html) at a certain frame,
then applies those to an object or bone.

The frame can either be given directly, or it can be derived from a location
coordinate, rotation angle, or scale factor of another object or bone.
An example of the latter would be to use frame 0 of the Action if an
[Empty](../../../modeling/empties.html) is at X = 0 and frame 100 if the Empty is at X = 10.
If the Empty is then placed at X = 5, the constraint will interpolate this and
evaluate frame 50.

An alternative (if obscure) way of using this constraint is to reference an Action
that animates properties of *other* constraints. The *Action* constraint will
then apply these properties to the constraints that come after it, as long
as their names match the ones in the Action.
user: What is Vertex Groups for Particles and how is it used in Blender Python scripting?

assistant: [image reference removed]

Weight painted particle emission.

By selecting vertex groups in the [Vertex Groups](../../physics/particles/emitter/vertex_groups.xhtml)
panel of a [particle system](../../physics/particles/introduction.xhtml)’s properties,
you can have different particle densities, hair lengths etc. across different areas of the mesh.
user: Give a detailed overview of Properties: syntax, arguments, return values, common patterns.

assistant: Data Type
:   The [data type](../../attributes_reference.html#attribute-data-types) to use for the retrieved values.

Domain
:   The [attribute domain](../../attributes_reference.html#attribute-domains) that the attribute is transferred from, or in other words,
    the domain used to evaluate the *Attribute* input. For example, it is possible to transfer data from the
    faces of one geometry to the points of another.

Clamp
:   Clamp the indices to the size of the attribute domain instead of outputting a default value for invalid indices.
user: Show practical ways to work with Join Group Inputs in a Blender add-on or script – include code.

assistant: Merges multiple selected *Group Input* nodes into one consolidated *Group Input* node when possible.
Existing links are preserved, and duplicate inputs are unified to reduce clutter and simplify the node tree.

This operation is useful for cleaning up node groups that have become
disorganized or contain redundant input nodes.
user: Describe Restore Curve Segment Length from the Blender manual or Python API, including usage steps and snippets.

assistant: # Restore Curve Segment Length

The *Restore Curve Segment Length* node restores the original length of each curve segment
based on a reference position, typically from a pre-deformation state.
It is useful for correcting unwanted stretching or compression that occurs after
curve deformations, simulations, or procedural modifications.
user: Describe References from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| - [`bpy.context.edit_text`](bpy.context.html#bpy.context.edit_text "bpy.context.edit_text") - [`BlendData.texts`](bpy.types.BlendData.html#bpy.types.BlendData.texts "bpy.types.BlendData.texts") - [`BlendDataTexts.load`](bpy.types.BlendDataTexts.html#bpy.types.BlendDataTexts.load "bpy.types.BlendDataTexts.load") - [`BlendDataTexts.new`](bpy.types.BlendDataTexts.html#bpy.types.BlendDataTexts.new "bpy.types.BlendDataTexts.new") - [`BlendDataTexts.remove`](bpy.types.BlendDataTexts.html#bpy.types.BlendDataTexts.remove "bpy.types.BlendDataTexts.remove") - [`Camera.custom_shader`](bpy.types.Camera.html#bpy.types.Camera.custom_shader "bpy.types.Camera.custom_shader") | - [`FreestyleModuleSettings.script`](bpy.types.FreestyleModuleSettings.html#bpy.types.FreestyleModuleSettings.script "bpy.types.FreestyleModuleSettings.script") - [`NodeFrame.text`](bpy.types.NodeFrame.html#bpy.types.NodeFrame.text "bpy.types.NodeFrame.text") - [`ShaderNodeScript.script`](bpy.types.ShaderNodeScript.html#bpy.types.ShaderNodeScript.script "bpy.types.ShaderNodeScript.script") - [`ShaderNodeTexIES.ies`](bpy.types.ShaderNodeTexIES.html#bpy.types.ShaderNodeTexIES.ies "bpy.types.ShaderNodeTexIES.ies") - [`SpaceTextEditor.text`](bpy.types.SpaceTextEditor.html#bpy.types.SpaceTextEditor.text "bpy.types.SpaceTextEditor.text") |
user: How do I use Blender: Present And Future in Blender? Include parameters, examples, warnings and best practices.

assistant: In total, the Blender organization numbers some twenty-eight employees, working from Amsterdam, remotely, and on a
grant basis. For Blender, this team represents only a small part of a much wider community, which it defines as
everyone who contributes to Blender’s development, earns their living from Blender, or simply downloads it.

The Blender mission can be summed up as “get the world’s best 3d technology in the hands of artists as open-source,
and make amazing things with it.”

Going forward, Blender hopes to become a sustainable, future proof organization, dedicated to furthering its
open-source philosophy, its values of curiosity and innovation, a commitment to technical excellence, and increasingly
ambitious creative goals.
user: Describe References from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| - [`BlenderRNA.structs`](bpy.types.BlenderRNA.html#bpy.types.BlenderRNA.structs "bpy.types.BlenderRNA.structs") - [`CollectionProperty.fixed_type`](bpy.types.CollectionProperty.html#bpy.types.CollectionProperty.fixed_type "bpy.types.CollectionProperty.fixed_type") - [`PointerProperty.fixed_type`](bpy.types.PointerProperty.html#bpy.types.PointerProperty.fixed_type "bpy.types.PointerProperty.fixed_type") | - [`Property.srna`](bpy.types.Property.html#bpy.types.Property.srna "bpy.types.Property.srna") - [`Struct.base`](#bpy.types.Struct.base "bpy.types.Struct.base") - [`Struct.nested`](#bpy.types.Struct.nested "bpy.types.Struct.nested") |
user: Show practical ways to work with NodeTreeInterfaceSocketMatrix(NodeTreeInterfaceSocket) in a Blender add-on or script – include code.

assistant: # NodeTreeInterfaceSocketMatrix(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.NodeTreeInterfaceSocketMatrix(*NodeTreeInterfaceSocket*)
:   Matrix value socket of a node

    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: Give a detailed overview of System Requirements: syntax, arguments, return values, common patterns.

assistant: Blender is available for download on Windows, macOS, and Linux. Always check that your graphics drivers are up to date
and that OpenGL is properly supported. Blender has a set of [minimum and recommended requirements](https://www.blender.org/download/requirements/); so make sure these are met before trying to install Blender.

Support for other hardware such as graphic tablets and 3D mice are covered later in
[Configuring Hardware](../configuration/hardware.xhtml).
user: Explain Weight Table in complete detail according to the official Blender documentation.

assistant: The Weight Table shows all the weights associated with the *active vertex*, which is the
vertex that was selected last (and is highlighted in white). If there is no active vertex,
or it isn’t part of any vertex group, the panel is not displayed.

### Set the Active Group

You can click the name of a vertex group to make it the active one.

[image reference removed]

Changing the active vertex group.

### Display Weights in Edit Mode

[image reference removed]

Enable display of weights in Edit Mode.

When you are in Edit Mode, you can make the weights of the active group visible on the mesh:
open the *Mesh Edit Mode Overlays* popover and enable the *Vertex Group Weights* option.

[image reference removed]

Weights in Edit Mode.

### Change a Weight

You can change the weight for a vertex group by either clicking the number and typing a new
one or by dragging left and right with `LMB`. You can also click the arrows
(only shown when hovering) to change the weight in steps of 0.01.

[image reference removed]

Changing a weight value.

### Copy a Weight

The *Paste Weight to Selected* button copies the weight from the active vertex to the other selected
vertices. Note that, even though it uses the word “paste,” it doesn’t interact with the *Copy* button
and in fact doesn’t use the clipboard at all.

[image reference removed]

Copying a weight.

### Delete a Weight

The *Delete Weight* button removes the active vertex from the vertex group,
making the row disappear from the list.

[image reference removed]

Deleting a weight.
user: Provide the full official documentation entry for IMAGE_UL_udim_tiles(UIList), preserving all code examples.

assistant: # IMAGE_UL_udim_tiles(UIList)

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

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of MeshNormalValue(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # MeshNormalValue(bpy_struct)

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

*class* bpy.types.MeshNormalValue(*bpy_struct*)
:   Vector in a mesh normal array

    vector
    :   3D vector

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: What is Blender Makes Open Movies and how is it used in Blender Python scripting?

assistant: As a way to stress-test Blender’s increasing power, the Blender Foundation challenged its community’s most talented
artists to make an animated 3D short film. The only criterion was that they had to use open source tools, with Blender
prime among them.

Under the codename “Project Orange,” this project began in 2005, resulting in Elephants Dream, a surreal adventure
through a gigantic machine. The film and all its assets were made freely available under a Creative Commons license.

After the success of Elephants Dream, the Blender Institute was established in the summer of 2007. As well as helping
to define the Blender Foundation’s goals, the Blender Institute comprised a permanent office and studio, with the
express intention of generating Open Projects related to 3D movies, games or visual effects. As part of its output,
the Blender Institute has created a series of Open Movies in collaboration with leading artists. They include the
comedy Big Buck Bunny (2008), science fiction thriller Tears of Steel (2012), a poetic fantasy Spring (2019), and
horror-comedy Sprite Fright (2021).
user: Explain Apply in complete detail according to the official Blender documentation.

assistant: # Apply

These operations lets you apply several transformations to the selected objects.
The object transformation coordinates are transferred to the object data.
If the objects have hierarchical descendants, it also applies those transformations to their children.
user: Explain MeshUVLoopLayer(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # MeshUVLoopLayer(bpy_struct)

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

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

        Type:
        :   boolean, default False

    active_clone
    :   Set the map as active for cloning

        Type:
        :   boolean, default False

    active_render
    :   Set the UV map as active for rendering

        Type:
        :   boolean, default False

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

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

    name
    :   Name of UV map

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

    pin
    :   UV pinned state in the UV editor

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

    uv
    :   UV coordinates on face corners

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

    pin_ensure()
    :   pin_ensure

        Returns:
        :   The boolean attribute

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: What is BezierSplinePoint(bpy_struct) and how is it used in Blender Python scripting?

assistant: # BezierSplinePoint(bpy_struct)

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

*class* bpy.types.BezierSplinePoint(*bpy_struct*)
:   Bézier curve point with two handles

    co
    :   Coordinates of the control point

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

    handle_left
    :   Coordinates of the first handle

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

    handle_left_type
    :   Handle types

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

    handle_right
    :   Coordinates of the second handle

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

    handle_right_type
    :   Handle types

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

    hide
    :   Visibility status

        Type:
        :   boolean, default False

    radius
    :   Radius for beveling

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

    select_control_point
    :   Control point selection status

        Type:
        :   boolean, default False

    select_left_handle
    :   Handle 1 selection status

        Type:
        :   boolean, default False

    select_right_handle
    :   Handle 2 selection status

        Type:
        :   boolean, default False

    tilt
    :   Tilt in 3D View

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

    weight_softbody
    :   Softbody goal weight

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type