PGCRYPT/OpenBlender_Train huggingface dataset:
user: Describe Scaling Rigid Bodies from the Blender manual or Python API, including usage steps and snippets.

assistant: Rigid body objects can be scaled, also during the simulation.
This work well in most cases, but can sometimes cause problems.

If dynamic scaling is not needed, rigid body objects should have the scale applied by
using the *Apply Scale* tool `Ctrl`-`A`.
user: How do I use BlendDataGreasePencilsV3(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # BlendDataGreasePencilsV3(bpy_struct)

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

*class* bpy.types.BlendDataGreasePencilsV3(*bpy_struct*)
:   Collection of Grease Pencils

    tag(*value*)
    :   tag

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

    new(*name*)
    :   Add a new Grease Pencil data-block to the main database

        Parameters:
        :   **name** (*string**,* *(**never None**)*) – New name for the data-block

        Returns:
        :   New Grease Pencil data-block

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

    remove(*grease_pencil*, *\**, *do_unlink=True*, *do_id_user=True*, *do_ui_user=True*)
    :   Remove a Grease Pencil instance from the current blendfile

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

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

assistant: # Text Editor Operators

bpy.ops.text_editor.preset_add(*\**, *name=''*, *remove_name=False*, *remove_active=False*)
:   Add or remove a Text Editor Preset

    Parameters:
    :   - **name** (*string**,* *(**optional**,* *never None**)*) – Name, Name of the preset, used to make the path name
        - **remove_name** (*boolean**,* *(**optional**)*) – remove_name
        - **remove_active** (*boolean**,* *(**optional**)*) – remove_active

    File:
    :   [startup/bl_operators/presets.py:119](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/presets.py#L119)
user: Describe Set Position Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Set Position Node

[image reference removed]

The *Set Position* node controls the location of each point, the same way as controlling
the `position` attribute.
If the input geometry contains instances, this node will affect the location of the origin of each instance.

The input node for this data is the [Position Node](../read/position.html).
user: What is Rendering Animations and how is it used in Blender Python scripting?

assistant: # Rendering Animations

While rendering stills will allow you to view and save the image from the render buffer when
it is complete, animations are a series of images, or frames,
and are automatically saved directly out to a drive after being rendered.

After rendering the frames, you may need to edit the clips,
or first use the Compositor to do green-screen masking, matting, color correction, DOF,
and so on to the images. That result is then fed to the Sequencer where the strips are cut and
mixed and a final overlay is done.

Finally you can render out from the Sequencer and compress the frames into a playable movie clip.
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: Sky Type
:   Sky model to use.

    Single Scattering
    :   Improved version of the 1993
        [model](https://www.scratchapixel.com/lessons/procedural-generation-virtual-worlds/simulating-sky/simulating-colors-of-the-sky.html)
        by Nishita et al, accounts for single bounces in the atmosphere.
        This is legacy and may be removed in a future version.

    Multiple Scattering
    :   Based on [this](https://fgarlin.com/blog/spectral-sky/) work by Fernando García Liñán, it is the most accurate model as it accounts for multiple bounces of light in the atmosphere.

    Preetham
    :   Based on the 1999 [paper](https://doi.org/10.1145/311535.311545) by Preetham et al.
        This is legacy and will be removed in a future version.

    Hosek/Wilkie
    :   Based on the 2012 [paper](https://cgg.mff.cuni.cz/projects/SkylightModelling/) by Hosek and Wilkie.
        This is legacy and will be removed in a future version.

Sun Direction
:   Sun direction vector.

Turbidity
:   Atmospheric turbidity.

    - 2: Arctic like
    - 3: clear sky
    - 6: warm/moist day
    - 10: hazy day

Ground Albedo
:   Amount of light reflected from the planet surface back into the atmosphere.

Sun Disc Cycles Only
:   Enable/Disable sun disc lighting.

Sun Size
:   Angular diameter of the sun disc (in degrees).

Sun Intensity
:   Multiplier for sun disc lighting.

Sun Elevation
:   Rotation of the sun from the horizon (in degrees).

Sun Rotation
:   Rotation of the sun around the zenith (in degrees).

Altitude
:   The distance from sea level to the location of the camera.
    For example, if the camera is placed on a beach then a value of 0 should be used.
    However, if the camera is in the cockpit of a flying airplane then a value of 10 km will be more suitable.

Air
:   Density of air molecules.
    A value of 1 corresponds roughly to urban city air, while 0 is no air.

Aerosols
:   Density of aerosol particles (water droplets).
    A value of 1 corresponds roughly to urban city aerosols, while 0 is no aerosols.

Ozone
:   Density of ozone molecules; useful to make the sky appear bluer.
    A value of 1 corresponds roughly to urban city ozone, while 0 is no ozone.
user: How do I use Usage in Blender? Include parameters, examples, warnings and best practices.

assistant: Closures define reusable logic that can be injected into another node tree. They are commonly used in procedural systems
where part of the behavior should remain user-defined.

Typical use cases include:

- Defining a custom scattering rule for a terrain generator.
- Describing how to distribute or modify instances procedurally.
- Providing adjustable mappings, field evaluations, or transformation logic.

### Using External Values

Closures can *capture* values from outside their zone. A captured value is stored as part of the closure definition and
remains available even when the closure is evaluated in a different context.

Captured values make it possible to preserve external parameters—such as scale, density, or color—without creating
explicit input sockets. This makes closures cleaner and easier to reuse in different node trees.

[image reference removed]

Capturing an external input value inside a closure.

### Example

1. In a terrain generator node group, replace the tree distribution logic with an
   [Evaluate Closure](evaluate_closure.xhtml) node.
2. Expose the closure input on the group’s interface.
3. In the main node tree, create a *Closure Zone* and connect it to that input.
4. Inside the closure zone, define the desired tree placement logic.

When the generator evaluates the closure, the custom distribution defined in the zone is executed instead of the
default behavior.

[image reference removed]

A *Closure Zone* defining a custom distribution pattern for tree scattering.
user: How do I use Options in Blender? Include parameters, examples, warnings and best practices.

assistant: Distance Metric
:   This procedural texture has seven Distance Metric options.
    These determine the algorithm to find the distance between cells of the texture. These options are:

    - Minkowski
    - Minkowski 4
    - Minkowski 1/2
    - Chebychev
    - Manhattan
    - Distance Squared
    - Actual Distance

    The *Minkowski* setting has a user definable value (the *Exponent* button)
    which determines the Minkowski exponent *e* of the distance function:

    > (*x*e + *y*e + *z*e)1/e

    A value of one produces the *Manhattan* distance metric, a value less than one produces stars
    (at 0.5, it gives a *Minkowski 1/2*), and higher values produce square cells
    (at 4.0, it gives a *Minkowski 4*, at 10.0, a *Chebychev*).
    So nearly all Distance Settings are basically the same – a variation of *Minkowski*.

    You can get irregularly-shaped rounded cells with
    the *Actual Distance* / *Distance Squared* options.

|  |  |  |
| --- | --- | --- |
| ../../../../_images/render_materials_legacy-textures_types_voronoi_minkowski0-5.jpg   Minkowski Exponent: 0.5 (Minkowski 1/2). | ../../../../_images/render_materials_legacy-textures_types_voronoi_minkowski1.jpg   Minkowski Exponent: 1 (Manhattan). | ../../../../_images/render_materials_legacy-textures_types_voronoi_minkowski2.jpg   Minkowski Exponent: 2 (Actual Distance). |
| ../../../../_images/render_materials_legacy-textures_types_voronoi_minkowski4.jpg   Minkowski Exponent: 4 (Minkowski 4). | ../../../../_images/render_materials_legacy-textures_types_voronoi_minkowski10.jpg   Minkowski Exponent: 10 (Chebychev). | ../../../../_images/render_materials_legacy-textures_types_voronoi_distancesquared.jpg   Distance Squared (more contrast than Actual Distance). |

Feature Weights
:   These four sliders at the bottom of the Voronoi panel represent the values of the four Worley constants,
    which are used to calculate the distances between each cell in the texture based on the distance metric.
    Adjusting these values can have some interesting effects on the end result…

Coloring
:   Four settings (*Intensity*, *Position*, *Position and Outline*, and *Position, Outline, and Intensity*)
    that can use four different noise basis as methods to calculate color and intensity of the texture output.
    This gives the Voronoi texture you create with the “Worley Sliders”
    a completely different appearance and is the equivalent of the noise basis setting found on the other textures.
user: Explain Outputs in complete detail according to the official Blender documentation.

assistant: Segment Length
:   The distance between the current point and its previous point on the same curve.
    This can be used for evaluating curve smoothness, detecting segment stretching,
    or applying deformation relative to curve length.

Segment Direction
:   A normalized vector pointing from the previous point toward the current point.
    It represents the local tangent direction of the curve segment.

Neighbor Index
:   The index of the previous neighboring point along the curve.
    This can be used to reference or sample attributes from adjacent points.
user: Provide the full official documentation entry for Vertex Paint Brushes, preserving all code examples.

assistant: # Vertex Paint Brushes

Brushes for Grease Pencil *Vertex Paint* mode bundled in the *Essentials* library.

Paint Point Color
:   Paints a specified color over the object.

Blur Point Color
:   Smooths out the colors of adjacent vertices. In this mode the Color
    Value is ignored. The strength defines how much the colors are blurred.

Average Point Color
:   Smooths color by painting the average resulting color from all colors under the brush.

Smear Point Color
:   Smudges colors by grabbing the colors under the brush and “dragging” them.
    This can be imagined as a finger painting tool.

Replace Point Color
:   Change the color only to the stroke points that already have a color applied.
user: Show practical ways to work with Inherited Properties in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") | - [`ActionStrip.type`](bpy.types.ActionStrip.html#bpy.types.ActionStrip.type "bpy.types.ActionStrip.type") |
user: How do I use Properties in Blender? Include parameters, examples, warnings and best practices.

assistant: Color Attribute
:   The target Color Attribute.
    The listed Color Attributes are those of the mesh of the active object.
    If the active object has no mesh, a warning will be displayed.
    If the property is marked in red, it means the Color Attribute is not available in
    the mesh of the active object, but it may be available in other meshes of
    objects that share this material!
user: How do I use GeometryNodeSeparateComponents(GeometryNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # GeometryNodeSeparateComponents(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.GeometryNodeSeparateComponents(*GeometryNode*)
:   Split a geometry into a separate output for each type of data in the geometry

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Curve
:   Standard geometry input, containing curves.

Selection
:   Whether or not to change the handle position on each control point.
    True values mean the resolution will be changed, false values mean
    the resolution will remain the same.

Position
:   The new handle position.

Offset
:   An optional translation for each handle. This is evaluated at the same time as the *Position* input,
    meaning that fields evaluated for it will not reflect the changed position.
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.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: What is AreaSpaces(bpy_struct) and how is it used in Blender Python scripting?

assistant: # AreaSpaces(bpy_struct)

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

*class* bpy.types.AreaSpaces(*bpy_struct*)
:   Collection of spaces

    active
    :   Space currently being displayed in this area

        Type:
        :   [`Space`](bpy.types.Space.html#bpy.types.Space "bpy.types.Space"), (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: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`AssetShelf.get_active_asset`](bpy.types.AssetShelf.html#bpy.types.AssetShelf.get_active_asset "bpy.types.AssetShelf.get_active_asset") - [`Paint.brush_asset_reference`](bpy.types.Paint.html#bpy.types.Paint.brush_asset_reference "bpy.types.Paint.brush_asset_reference") | - [`Paint.eraser_brush_asset_reference`](bpy.types.Paint.html#bpy.types.Paint.eraser_brush_asset_reference "bpy.types.Paint.eraser_brush_asset_reference") |
user: Provide the full official documentation entry for Duplicate, preserving all code examples.

assistant: # Duplicate

As in mesh editing, by pressing `Shift`-`D` the selected bones will be duplicated.
The duplicates become the selected elements and they are placed in select mode,
so you can move them wherever you like.

If you select part of a chain, by duplicating it you will get a copy of the selected chain,
so the copied bones are interconnected exactly like the original ones.

The duplicate of a bone which is parented to another bone will also be parented to the same
bone, even if the root bone is not selected for the duplication. Be aware, though,
that if a bone is parented **and** connected to an unselected bone,
its copy will be parented, but **not** connected to the unselected bone
(see Fig. [Duplication example.](#fig-rig-bone-duplication)).

Duplication example.

|  |  |
| --- | --- |
| ../../../../_images/animation_armatures_bones_editing_duplicate_example-1.png   An armature with three selected bones and a selected single root. | ../../../../_images/animation_armatures_bones_editing_duplicate_example-2.png   The three duplicated bones. Note that the selected chain is preserved in the copy, and that Bone.006 is parented but not connected to Bone.001, as indicated by the black dashed line. Similarly, Bone.007 is parented but not connected to Bone.003. |
user: Provide the full official documentation entry for Bounding Box Center, preserving all code examples.

assistant: # Bounding Box Center

In this mode, the pivot point lies at the center of the bounding box, which is a box that’s
wrapped as tightly as possible around the selection while still being aligned to the world axes.
user: Provide the full official documentation entry for GeometryNodeCurveToMesh(GeometryNode), preserving all code examples.

assistant: # GeometryNodeCurveToMesh(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.GeometryNodeCurveToMesh(*GeometryNode*)
:   Convert curves into a mesh, optionally with a custom profile shape defined by curves

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Provide the full official documentation entry for Options, preserving all code examples.

assistant: These options are available while the tool is in use, and later in
the [Adjust Last Operation](../../../../interface/undo_redo.html#bpy-ops-screen-redo-last) panel.

Number of Cuts `Wheel`
:   During the first step, you can change the number of cuts to create by
    scrolling `Wheel`, typing a number, or pressing `PageUp`/`PageDown`.

    |  |  |
    | --- | --- |
    | ../../../../_images/modeling_meshes_editing_edge_loopcut-slide_multicut.png   Preview of multiple edge loops. | ../../../../_images/modeling_meshes_editing_edge_loopcut-slide_multicut-after.png   Result of using multiple cuts. |

Smoothness
:   How much to offset the newly created edges along their normals to maintain surface curvature.
    You can change this in the first step using `Alt`-`Wheel`, but because the smoothness
    isn’t previewed at that stage, it’s typically better to change it afterwards in the
    *Adjust Last Operation* panel.

    |  |  |
    | --- | --- |
    | ../../../../_images/modeling_meshes_editing_edge_loopcut-slide_unsmooth.png   Added edge loop without smoothing. | ../../../../_images/modeling_meshes_editing_edge_loopcut-slide_smooth.png   Same edge loop, but with smoothing value. |

Falloff
:   Falloff type for *Smoothness*. Changes the shape of the profile.

Factor
:   Position of the edge loop relative to the surrounding ones.

Even `E`
:   Makes the new edge loop have an even distance to an existing adjacent one
    (instead of a distance that’s proportional to the length of each
    perpendicular edge it crosses). You can press `E` during the second
    step to toggle it.

Flipped `F`
:   Keep an *Even* distance to the other adjacent edge. You can press `F`
    during the second step to toggle it.

|  |  |  |
| --- | --- | --- |
| ../../../../_images/modeling_meshes_editing_edge_loopcut-slide_uneven.png   Cut with *Even* disabled. | ../../../../_images/modeling_meshes_editing_edge_loopcut-slide_even.png   Cut with *Even* enabled. The red dot shows the side to which an even distance is kept. | ../../../../_images/modeling_meshes_editing_edge_loopcut-slide_even_flipped.png   Cut with *Even* and *Flipped* enabled. |

Clamp `C`
:   When unchecked, the new edge loop can go outside the face loop’s boundary edges.
    You can press `C` or hold `Alt` during the second step to toggle it.

Mirror Editing
:   When checked, sliding the newly created edges will also slide any existing edges
    on the other side of the mesh. [Mesh Symmetry](../../tools/tool_settings.html#modeling-meshes-tools-settings-mirror)
    needs to be enabled for this to work.

Correct UVs
:   When unchecked, the faces in the [UV map](../../../../editors/uv/introduction.html) will be split
    uniformly even if the cut was placed off-center on the 3D mesh.
user: Show practical ways to work with FunctionNodeRotationToEuler(FunctionNode) in a Blender add-on or script – include code.

assistant: # FunctionNodeRotationToEuler(FunctionNode)

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

*class* bpy.types.FunctionNodeRotationToEuler(*FunctionNode*)
:   Convert a standard rotation value to an Euler rotation

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Describe Weight Paint Tools from the Blender manual or Python API, including usage steps and snippets.

assistant: # Weight Paint Tools

Brush
:   Tool to use for any of the weight paint [brushes](brushes.html).

Gradient
:   Applies a linear/radial weight gradient;
    this is useful at times when painting gradual changes in weight becomes difficult.
    Blends the weights of selected vertices with unselected vertices.

    [image reference removed]

    Example of the Gradient tool being used with selected vertices.

    Weight
    :   The gradient starts at the current selected weight value, blending out to nothing.

    Strength
    :   Lower values can be used so the gradient mixes in with the existing weights (just like with the brush).

    Type
    :   The shape of the gradient.

        Linear:
        :   Create gradient that forms a straight line.

        Radial:
        :   Create gradient that forms a circle.

Sample
:   Weights
    :   Sets the brush *Weight* as the weight selected under the cursor.
        The sampled weight is displayed in the tool settings.

    Vertex Group
    :   Displays a list of possible vertex groups to select that are under the cursor.

[Annotate](../../interface/annotate_tool.html#tool-annotate-freehand)
:   Draw free-hand annotation.

    [Annotate Line](../../interface/annotate_tool.html#tool-annotate-line)
    :   Draw straight line annotation.

    [Annotate Polygon](../../interface/annotate_tool.html#tool-annotate-polygon)
    :   Draw a polygon annotation.

    [Annotate Eraser](../../interface/annotate_tool.html#tool-annotate-eraser)
    :   Erase previous drawn annotations.
user: How do I use Examples in Blender? Include parameters, examples, warnings and best practices.

assistant: You can do just about anything with images using nodes.

Raw footage from a foreground actor in front of a blue screen,
or a rendered object doing something, can be layered on top of a background.
Composite both together, and you have composited footage.

You can change the mood of an image:

- To make an image ‘feel’ colder, a blue tinge is added.
- To convey a flashback or memory, the image may be softened.
- To convey hatred and frustration, add a red tinge or enhance the red.
- A startling event may be sharpened and contrast-enhanced.
- To convey a happy feeling add yellow (equal parts red and green, no blue).
- Dust and airborne dirt are often added as a cloud texture over the image to give a little more realism.
user: Provide the full official documentation entry for Scale Cage, preserving all code examples.

assistant: # Scale Cage

The *Scale Cage* tool is a bounding box around the object(s) which scales objects from a particular point or axis.
The tool works by selecting a scale point and dragging inwards or outwards to adjust the scale accordingly.
The origin for the scale will be from the point on the cube directly opposite from the point selected.
Selecting points on the faces of the cube scales along one axis,
selecting points on the edges of the cube scales along two axes,
and selecting points on the vertices of the cube scales along all three axes.

[image reference removed]

Scale Cage tool.
user: Give a detailed overview of <no title> - Blender 5.0 Manual: syntax, arguments, return values, common patterns.

assistant: A lot of fixes for AMD and Intel GPUs are backported into the Mesa drivers. Therefore it is recommended to install or upgrade to their latest point [releases](https://docs.mesa3d.org/relnotes.html). For certain Linux distribution versions this can be done using custom repositories. For example, using the [kisak-mesa PPA](https://launchpad.net/~kisak/+archive/ubuntu/kisak-mesa) for Ubuntu.
user: How do I use IDPropertyWrapPtr(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # IDPropertyWrapPtr(bpy_struct)

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

*class* bpy.types.IDPropertyWrapPtr(*bpy_struct*)
:   bl_system_properties_get(*\**, *do_create=False*)
    :   DEBUG ONLY. Internal access to runtime-defined RNA data storage, intended solely for testing and debugging purposes. Do not access it in regular scripting work, and in particular, do not assume that it contains writable data

        Parameters:
        :   **do_create** (*boolean**,* *(**optional**)*) – Ensure that system properties are created if they do not exist yet

        Returns:
        :   The system properties root container, or None if there are no system properties stored in this data yet, and its creation was not requested

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

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

assistant: ### Web Links

The first options of this menu provide direct links to Blender-related websites. The same links can also be found in
the [Splash Screen](../interface/window_system/splash.xhtml#splash).

[Manual](../index.xhtml)
:   This is a link to the Official Blender Manual (which you are now reading).

[Support](https://www.blender.org/support)
:   Links to various sites, providing both community and professional support.

[User Communities](https://www.blender.org/community/)
:   Lists of many different community sites and support venues.

[Get Involved](https://www.blender.org/get-involved)
:   Learn how to give back to the Blender community by contributing to projects or donating.

[Release Notes](https://developer.blender.org/docs/release_notes/)
:   Link to the release notes for the current Blender version.

---

[Report a Bug](https://projects.blender.org/blender/blender/issues/new?template=.gitea%2fissue_template%2fbug.yaml)
:   The Blender Bug Tracker (registration needed). For more information on bug reporting, please see
    [Reporting a Bug](../troubleshooting/report_bug.xhtml).

### Save System Info

This extracts system information which can be useful for including in bug reports, inspecting the configuration, or
diagnosing problems.

You will be prompted to save a text file called `system-info.txt`.

It contains the following sections:

Blender
:   This section shows you the Blender version, details about the build configuration, and the path in which Blender is
    running.

Python
:   The version and path of your Python installation.

Directories
:   Paths used for scripts, data files, presets and temporary files.

    Those directories are configured using the [Preferences](../editors/preferences/file_paths.xhtml) Editor.

FFmpeg
:   The version of the installed FFmpeg components and codecs.

Other Libraries
:   The version of other libraries used by Blender such as OpenColorIO, Alembic, USD, etc.

GPU
:   Shows the GPU vendor, version and the capabilities of your hardware and driver.

Implementation Dependent GPU Limits
:   Specific limits on GPU functions related to how the current version of Blender was compiled.

Cycles
:   The instruction sets and capabilities of each hardware render device available for use with Cycles.

Enabled Add-Ons
:   Lists add-ons currently in use along with their versions and paths.
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: Level
:   H (Hue), S (Saturation), V (Value)

Curve
:   For the curve controls see: [Curve widget](../../../../interface/controls/templates/curve.xhtml#ui-curve-widget).
    By default, the curve is a straight line, meaning there is no change.
    The spectrum allows you to raise or lower HSV levels for each range of pixel colors.
    To change an H, S, or V level, move the curve points up or down. Pixels with hue values each
    point in the horizontal position of the graph will be changed depending on the shape of the curve.
user: Describe Select Sharp Edges from the Blender manual or Python API, including usage steps and snippets.

assistant: # Select Sharp Edges

Selects edges whose faces intersect at an acute angle. This can be useful to find hard edges in a mesh.

Sharpness
:   Determines how sharp of an angle at an edge needs to be in order for it to be selected.
user: Describe GeometryNodeAttributeDomainSize(GeometryNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GeometryNodeAttributeDomainSize(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.GeometryNodeAttributeDomainSize(*GeometryNode*)
:   Retrieve the number of elements in a geometry for each attribute domain

    component
    :   Type:
        :   enum in [Geometry Component Type Items](bpy_types_enum_items/geometry_component_type_items.html#rna-enum-geometry-component-type-items), default `'MESH'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: How do I use Using Image Output vs Using Original Image in Blender? Include parameters, examples, warnings and best practices.

assistant: Using Image output scales, moves, and skews the input image according to the track
while using the original image and mixing it with the movie clip using Plane output as factor
will display the part of the image that lies inside that mask. This image shows the difference:

[image reference removed]

Comparison between image output and original image (see Viewer nodes carefully).
user: What is Close and how is it used in Blender Python scripting?

assistant: Close or open strokes by connecting the last and first point.

Type
:   Close All:
    :   Close all open selected strokes.

    Open All:
    :   Open all closed selected strokes.

    Toggle:
    :   Close or Open selected strokes as required.

Match Point Density
:   Add point in the new segment to keep the same density.
user: How do I use Radial Tiling Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Radial Tiling Node

[[image reference removed]](../../../../_images/node-types_ShaderNodeRadialTiling.png)

The *Radial Tiling Node* provides the ability to divide a 2D cartesian input coordinate system
into as many radial segments as specified by the *Sides* input.
Each segment has its own affinely transformed segment coordinate system,
which can be used to tile textures in a radially symmetric manner.
user: How do I use Window Options in Blender? Include parameters, examples, warnings and best practices.

assistant: `-w`, `--window-border`
:   Force opening with borders.

`-W`, `--window-fullscreen`
:   Force opening in full-screen mode.

`-p`, `--window-geometry` `<sx>` `<sy>` `<w>` `<h>`
:   Open with lower left corner at `<sx>`, `<sy>` and width and height as `<w>`, `<h>`.

`-M`, `--window-maximized`
:   Force opening maximized.

`-con`, `--start-console`
:   Start with the console window open (ignored if `-b` is set), (Windows only).

`--no-native-pixels`
:   Do not use native pixel size, for high resolution displays (MacBook `Retina`).

`--no-window-focus`
:   Open behind other windows and without taking focus.
user: Provide the full official documentation entry for Options, preserving all code examples.

assistant: [image reference removed]

The Mirror modifier.

Axis
:   The X, Y, Z axis along which to mirror, i.e. the axis perpendicular to the mirror plane of symmetry.

    To understand how the axis applies to the mirror direction, if you were to mirror on the X axis,
    the positive X values of the original stroke would become the negative X values on the mirrored side.

    You can select more than one of these axes. And will then get more mirrored copies.
    With one axis you get a single mirror, with two axes four mirrors, and with all three axes eight mirrors.

Object
:   A [Data ID](../../../interface/controls/templates/data_block.xhtml#ui-data-id) to select an object (usually an empty),
    which position and rotation will be used to define mirror planes
    (instead of using the ones from the modified object).

### Influence

See [Influence Filters](../introduction.xhtml#grease-pencil-modifier-influence-filters).
user: Give a detailed overview of Warp: syntax, arguments, return values, common patterns.

assistant: # Warp

[image reference removed]

Warp options.

The *Warp* transformation takes selected elements and
warps them around the 3D cursor by a certain angle.
Note that this transformation is always dependent on the location of the 3D cursor.
The Pivot Point is not taken into account.
The results of the *Warp* transformation are also view dependent.
user: Describe Auto-Masking from the Blender manual or Python API, including usage steps and snippets.

assistant: [Auto-Masking](../controls.xhtml) is also a fast way of only editing specific geometry
without having to manually create a new mask or hide geometry.
This feature is especially useful in combination with face sets.

[image reference removed]
user: Give a detailed overview of Options: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Lattice Modifier.

Object
:   The [Lattice](../../../animation/lattice.xhtml) object with which to deform the base object.

Strength
:   A factor to control blending between original and deformed points positions.

### Influence

See [Influence Filters](../introduction.xhtml#grease-pencil-modifier-influence-filters).
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Curve
:   Standard geometry input with a curve component.

Group ID
:   Value used to group curves together.
    Curves with different Group ID are treated separately.

Mode
:   The type of geometry the output consists of.

    Triangles:
    :   The output is made up of triangles.

    N-gons:
    :   The output is made up of n-gons.
user: Explain File Browser in complete detail according to the official Blender documentation.

assistant: # File Browser

The File Browser is used in all file-related operations. These include:

- Opening and saving blend-files.
- Browsing the content of other blend-files when appending or linking data-blocks
  (see [Linked Libraries](../files/linked_libraries/index.html)).
- Importing from/exporting to other file formats.
- Updating the locations of previously imported media (images, videos, fonts…).

The most common way to use this editor is through modal operators (like opening or saving a blend-file).
The File Browser will appear in a new window, wait for you to select a file, and then close again.

You can also use the File Browser like a regular, permanently visible editor. In fact,
the predefined Video Editing [workspace](../interface/window_system/workspaces.html) uses it this way.
This lets you drag-and-drop media from the browser straight into e.g. the
[3D Viewport](3dview/introduction.html) or the
[Video Sequencer](video_sequencer/introduction.html), saving you some overhead.

[image reference removed]

The File Browser.
user: Show practical ways to work with Physics Menu in a Blender add-on or script – include code.

assistant: Also you can create *Rigid Body Constraint* on one of the two constrained objects with
*Rigid Body Constraint* button of the *Physics* tab in the Properties.
This constraint is dependent on the object location and rotation on which it was created.
This way, there are no empty object created for the constraint.
The role of the empty object is put on this object.
The constrained object can be then be set as a *Passive* type for better driving of the constraint.

Additional parameters appear in the *Rigid Body Constraint* panel of the *Physics* tab in the Properties
for the selected empty object or the one of the two constrained objects with the created constraint.
user: How do I use Installation on Windows in Blender? Include parameters, examples, warnings and best practices.

assistant: # Installation on Windows

This guide covers the following topics:

1. [Installing Python](#installing-python) (used to “convert” the source files to HTML)
2. [Installing Git and Downloading the Repository](#installing-git-and-downloading-the-repository)
3. [Setting up the Build Environment](#setting-up-the-build-environment)
user: Describe View from the Blender manual or Python API, including usage steps and snippets.

assistant: ### 2D Cursor

The 2D Cursor is the dashed crosshair in the main region. It can be used as a
transformation [pivot point](../3dview/controls/pivot_point/index.xhtml)
by selecting the corresponding option in the editor’s header.

Note that the 2D Cursor is only available in Mask mode, not in Tracking mode.

Location X, Y
:   The relative location of the 2D Cursor, going from (0, 0) for the bottom left
    corner to (1, 1) for the top right corner.

    You can also position the 2D Cursor by clicking `Shift`-`RMB`
    in (or around) the video.

### Annotations

See [Annotations](../../interface/annotate_tool.xhtml).
user: Show practical ways to work with Despeckle Node in a Blender add-on or script – include code.

assistant: # Despeckle Node

[image reference removed]

The *Despeckle* node is used to smooth areas of an image in which noise is noticeable,
while leaving complex areas untouched.

This works by the standard deviation of each pixel and its neighbors is calculated to determine
if the area is one of high complexity or low complexity.
If the complexity is lower than the threshold then the area is smoothed using a simple mean filter.
user: What is Transparent and how is it used in Blender Python scripting?

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

Transparent Glass
:   Render transmissive surfaces as transparent, for compositing glass over another background.

Roughness Threshold
:   For transparent glass, keep surfaces with roughness above the threshold opaque.