PGCRYPT/OpenBlender_Train huggingface dataset:
user: How do I use Selecting in Blender? Include parameters, examples, warnings and best practices.

assistant: Select
:   Click `LMB` to select a single item. Additionally hold `Ctrl` to add/remove that item
    to/from the selection, or `Shift` to select a range of items.

Dragging
:   Dragging with `LMB` starts a [box selection](../interface/selecting.xhtml#tool-select-box).

### Arrow Keys

It is also possible to select/deselect files by “walking” through them using the arrow keys:

- Press an arrow key to select the next/previous file in the list and deselect all the others.
- Hold `Shift` to keep the current selection (and add to it).
- Hold `Shift`-`Ctrl` to invert the selection as you pass over it.

If no file is selected, the arrow key navigation selects the first or last file in the directory,
depending on the arrow direction.
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`FreestyleLineStyle.geometry_modifiers`](bpy.types.FreestyleLineStyle.html#bpy.types.FreestyleLineStyle.geometry_modifiers "bpy.types.FreestyleLineStyle.geometry_modifiers") - [`LineStyleGeometryModifiers.new`](bpy.types.LineStyleGeometryModifiers.html#bpy.types.LineStyleGeometryModifiers.new "bpy.types.LineStyleGeometryModifiers.new") | - [`LineStyleGeometryModifiers.remove`](bpy.types.LineStyleGeometryModifiers.html#bpy.types.LineStyleGeometryModifiers.remove "bpy.types.LineStyleGeometryModifiers.remove") |
user: How do I use Select Menu in Blender? Include parameters, examples, warnings and best practices.

assistant: All
:   Select all control points or curves.

None
:   Deselect all control points or curves.

Invert
:   Invert the selection.

Random
:   Randomizes inside the existing selection or create new random selection if nothing is selected already.

Endpoints
:   Select endpoints of curves.
    Only supported in the Control Point selection mode.

    Amount Start, End
    :   Number of points to select from the front or back of the curve.

Grow
:   Select points or curves which are close to already selected elements.
user: Give a detailed overview of Inherited Properties: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`ID.name`](bpy.types.ID.html#bpy.types.ID.name "bpy.types.ID.name") - [`ID.name_full`](bpy.types.ID.html#bpy.types.ID.name_full "bpy.types.ID.name_full") - [`ID.id_type`](bpy.types.ID.html#bpy.types.ID.id_type "bpy.types.ID.id_type") - [`ID.session_uid`](bpy.types.ID.html#bpy.types.ID.session_uid "bpy.types.ID.session_uid") - [`ID.is_evaluated`](bpy.types.ID.html#bpy.types.ID.is_evaluated "bpy.types.ID.is_evaluated") - [`ID.original`](bpy.types.ID.html#bpy.types.ID.original "bpy.types.ID.original") - [`ID.users`](bpy.types.ID.html#bpy.types.ID.users "bpy.types.ID.users") - [`ID.use_fake_user`](bpy.types.ID.html#bpy.types.ID.use_fake_user "bpy.types.ID.use_fake_user") - [`ID.use_extra_user`](bpy.types.ID.html#bpy.types.ID.use_extra_user "bpy.types.ID.use_extra_user") - [`ID.is_embedded_data`](bpy.types.ID.html#bpy.types.ID.is_embedded_data "bpy.types.ID.is_embedded_data") | - [`ID.is_linked_packed`](bpy.types.ID.html#bpy.types.ID.is_linked_packed "bpy.types.ID.is_linked_packed") - [`ID.is_missing`](bpy.types.ID.html#bpy.types.ID.is_missing "bpy.types.ID.is_missing") - [`ID.is_runtime_data`](bpy.types.ID.html#bpy.types.ID.is_runtime_data "bpy.types.ID.is_runtime_data") - [`ID.is_editable`](bpy.types.ID.html#bpy.types.ID.is_editable "bpy.types.ID.is_editable") - [`ID.tag`](bpy.types.ID.html#bpy.types.ID.tag "bpy.types.ID.tag") - [`ID.is_library_indirect`](bpy.types.ID.html#bpy.types.ID.is_library_indirect "bpy.types.ID.is_library_indirect") - [`ID.library`](bpy.types.ID.html#bpy.types.ID.library "bpy.types.ID.library") - [`ID.library_weak_reference`](bpy.types.ID.html#bpy.types.ID.library_weak_reference "bpy.types.ID.library_weak_reference") - [`ID.asset_data`](bpy.types.ID.html#bpy.types.ID.asset_data "bpy.types.ID.asset_data") - [`ID.override_library`](bpy.types.ID.html#bpy.types.ID.override_library "bpy.types.ID.override_library") - [`ID.preview`](bpy.types.ID.html#bpy.types.ID.preview "bpy.types.ID.preview") |
user: Describe Loading Factory Settings from the Blender manual or Python API, including usage steps and snippets.

assistant: You can revert your customizations to Blender’s defaults:

Preferences
:   The [Preferences](../../editors/preferences/introduction.html#prefs-menu) Load Factory Settings.

Startup File & Preferences
:   File ‣ Defaults ‣ Load Factory Settings.
user: What is Usage and how is it used in Blender Python scripting?

assistant: ### Selecting a Brush and Material

In the Tool Settings select the brush, material and color type to use with the tool.
The Box tool uses *Draw Brush* types.
See [Brush Settings](../brushes/draw.xhtml#grease-pencil-draw-common-options) for more information.

### Creating Boxes

1. Click (`LMB` or the `Pen` tip) and drag the start point.
2. Release on the desired end point.
3. After releasing you can move the start and end point by clicking and dragging on the yellow manipulators.
4. Then confirm (`Return`/`MMB`) or cancel (`Esc`/`RMB`).

While dragging you can use `Shift` to make a perfect square
or use `Alt` to create the box from a center point.

`NumpadPlus` and `NumpadMinus` or using the mouse `Wheel`
will increase or decrease the amount of points in the final box.

`F` will adjust the line thickness and `Shift`-`F` will adjust the opacity of the strokes.

|  |  |  |
| --- | --- | --- |
| ../../../../_images/grease-pencil_modes_draw_tools_box_example-01.png   click and dragging the start point. | ../../../../_images/grease-pencil_modes_draw_tools_box_example-02.png   Moving start and end points with manipulators. | ../../../../_images/grease-pencil_modes_draw_tools_box_example-03.png   The box after confirming. |
user: Give a detailed overview of Mesh Primitives: syntax, arguments, return values, common patterns.

assistant: # Mesh Primitives

Meshes are the most common object type used in 3D scenes.
Blender provides a variety of built-in mesh primitives that serve as starting points for modeling.
These primitives can be added in both Object Mode and Edit Mode, where they appear at the location of the 3D Cursor.

[image reference removed]

Blender’s standard mesh primitives.
user: Give a detailed overview of Refine: syntax, arguments, return values, common patterns.

assistant: This operator will run a tracker from previous keyframe to current frame for all selected markers.
Current markers positions are considering initial position guess
which could be updated by a tracker for better match.

Useful in cases when feature disappears from the frame and then appears again. Usage in this case is the following:

- When feature point re-appeared on frame, manually place marker on it.
- Use Refine Markers operation to allow tracker to find a better match.

Depending on direction of tracking use either *Forwards* or *Backwards* refining.
Accordingly if tracking happens forwards, use *Refine Forwards*, otherwise use *Refine Backwards*.

### Backwards

Refine the track backwards.

### Forwards

Refine the track forwards.
user: Provide the full official documentation entry for Short2Attribute(Attribute), preserving all code examples.

assistant: # Short2Attribute(Attribute)

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

*class* bpy.types.Short2Attribute(*Attribute*)
:   Geometry attribute that stores 2D integer vectors

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`ID.name`](bpy.types.ID.html#bpy.types.ID.name "bpy.types.ID.name") - [`ID.name_full`](bpy.types.ID.html#bpy.types.ID.name_full "bpy.types.ID.name_full") - [`ID.id_type`](bpy.types.ID.html#bpy.types.ID.id_type "bpy.types.ID.id_type") - [`ID.session_uid`](bpy.types.ID.html#bpy.types.ID.session_uid "bpy.types.ID.session_uid") - [`ID.is_evaluated`](bpy.types.ID.html#bpy.types.ID.is_evaluated "bpy.types.ID.is_evaluated") - [`ID.original`](bpy.types.ID.html#bpy.types.ID.original "bpy.types.ID.original") - [`ID.users`](bpy.types.ID.html#bpy.types.ID.users "bpy.types.ID.users") - [`ID.use_fake_user`](bpy.types.ID.html#bpy.types.ID.use_fake_user "bpy.types.ID.use_fake_user") - [`ID.use_extra_user`](bpy.types.ID.html#bpy.types.ID.use_extra_user "bpy.types.ID.use_extra_user") - [`ID.is_embedded_data`](bpy.types.ID.html#bpy.types.ID.is_embedded_data "bpy.types.ID.is_embedded_data") | - [`ID.is_linked_packed`](bpy.types.ID.html#bpy.types.ID.is_linked_packed "bpy.types.ID.is_linked_packed") - [`ID.is_missing`](bpy.types.ID.html#bpy.types.ID.is_missing "bpy.types.ID.is_missing") - [`ID.is_runtime_data`](bpy.types.ID.html#bpy.types.ID.is_runtime_data "bpy.types.ID.is_runtime_data") - [`ID.is_editable`](bpy.types.ID.html#bpy.types.ID.is_editable "bpy.types.ID.is_editable") - [`ID.tag`](bpy.types.ID.html#bpy.types.ID.tag "bpy.types.ID.tag") - [`ID.is_library_indirect`](bpy.types.ID.html#bpy.types.ID.is_library_indirect "bpy.types.ID.is_library_indirect") - [`ID.library`](bpy.types.ID.html#bpy.types.ID.library "bpy.types.ID.library") - [`ID.library_weak_reference`](bpy.types.ID.html#bpy.types.ID.library_weak_reference "bpy.types.ID.library_weak_reference") - [`ID.asset_data`](bpy.types.ID.html#bpy.types.ID.asset_data "bpy.types.ID.asset_data") - [`ID.override_library`](bpy.types.ID.html#bpy.types.ID.override_library "bpy.types.ID.override_library") - [`ID.preview`](bpy.types.ID.html#bpy.types.ID.preview "bpy.types.ID.preview") |
user: What is Saving and how is it used in Blender Python scripting?

assistant: If the header menu item Image has an asterisk next to it
means that the image has been changed, but not saved.
Use [Save Image](../../editors/image/editing.html#bpy-ops-image-save) or [Save Image As](../../editors/image/editing.html#bpy-ops-image-save-as)
to save your work with a different name or overwrite the original image.

The image format for saving is independent of the format for rendering.
The format for saving a UV image is selected in the header of the File Browser,
and defaults to `PNG` (`.png`).

If Packing is enabled in the File Browser’s header, or if you [manually pack](../../editors/image/editing.html#bpy-ops-image-pack),
saving your images to a separate file is not necessary.
user: Provide the full official documentation entry for Array Node, preserving all code examples.

assistant: # Array Node

[image reference removed]

The *Array* node creates multiple copies of an input geometry and arranges them in
a linear, circular, or custom pattern. It offers flexible options for count, spacing,
and randomization, allowing for both precise and organic duplication of geometry.
user: Describe Inputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Geometry
:   The input geometry containing the hair curves to modify.

Cumulative Offset
:   When enabled, each point’s offset depends on the displacement of previous points along the curve.
    This results in more natural and continuous bending.

Factor
:   Controls the overall blending strength of the effect.
    A value of 0.0 applies no frizz, while 1.0 applies the full random displacement.

Distance
:   Scales the magnitude of the random displacement applied to the curve points.

Shape
:   Determines how the displacement strength changes along the length of each curve.
    A value of 0.0 applies a constant effect, while 0.5 results in a linear falloff from root to tip.

Seed
:   Defines the random seed used to generate unique displacement patterns.
    Changing this value alters the random variation between curves.

Preserve Length
:   When enabled, maintains the original length of each curve during deformation.
    When disabled, curves may stretch or shrink slightly as a result of the frizz.
user: What is GroupNodeViewerPathElem(ViewerPathElem) and how is it used in Blender Python scripting?

assistant: # GroupNodeViewerPathElem(ViewerPathElem)

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

*class* bpy.types.GroupNodeViewerPathElem(*ViewerPathElem*)
:   node_id
    :   Type:
        :   int in [-inf, inf], default 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: Provide the full official documentation entry for ShaderNodeAttribute(ShaderNode), preserving all code examples.

assistant: # ShaderNodeAttribute(ShaderNode)

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

*class* bpy.types.ShaderNodeAttribute(*ShaderNode*)
:   Retrieve attributes attached to objects or geometry

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

    attribute_type
    :   General type of the attribute

        - `GEOMETRY`
          Geometry – The attribute is associated with the object geometry, and its value varies from vertex to vertex, or within the object volume.
        - `OBJECT`
          Object – The attribute is associated with the object or mesh data-block itself, and its value is uniform.
        - `INSTANCER`
          Instancer – The attribute is associated with the instancer particle system or object, falling back to the Object mode if the attribute isn’t found, or the object is not instanced.
        - `VIEW_LAYER`
          View Layer – The attribute is associated with the View Layer, Scene or World that is being rendered.

        Type:
        :   enum in [`'GEOMETRY'`, `'OBJECT'`, `'INSTANCER'`, `'VIEW_LAYER'`], default `'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: Describe Inputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Vertex Index
:   The index of the vertex for which to find the edges.

Weights
:   The weights of the edges in the geometry. Unlike the other inputs which follow
    the context domain, this one is always evaluated in the Edge domain.

    The edges are sorted by their associated weight in ascending order.
    Edges with the same weight are sorted by their index.

Sort Index
:   The 0-based index of the edge to select from the vertex’s sorted edges.
    If this value is outside the range of valid indices, it wraps around.
user: Provide the full official documentation entry for Convolve Node, preserving all code examples.

assistant: # Convolve Node

[image reference removed]

The *Convolve* node performs a 2D convolution operation on an image
using a custom [Image Kernel](../../image_kernels.html).
This allows for a wide range of effects such as blurring, sharpening,
and edge detection, depending on the kernel values provided.

The node multiplies a neighborhood of pixels around each image pixel by the kernel values
and sums the results to compute the output pixel color.
This process is often used in image processing to emphasize or suppress certain spatial features.
user: Show practical ways to work with Usage in a Blender add-on or script – include code.

assistant: ### Managing Inputs/Outputs

You can add, remove, and reorder input and output sockets in the *Group* panel in the Sidebar.
New sockets can also be created directly by dragging a link to or from the hollow socket
on the *Group Input* or *Group Output* node to another socket in the node editor.

### Reusing Node Groups

Existing node groups can be placed again after they’re initially defined, be it in the same
node tree or a different one. It’s also possible to import node groups from a different blend-file
using File ‣ Link/Append.
user: Provide the full official documentation entry for Initialize Face Sets, preserving all code examples.

assistant: Initializes all face sets on the mesh at once based off one of several mesh attribute properties.

Mode
:   The mesh data attribute used to define the boundaries for the face sets.

    By Loose Parts:
    :   Creates a new face set per discontinuous part of the mesh.

    By Face Set Boundaries:
    :   Creates a face set for each isolated face set.
        This mode is useful for splitting the patterns created by [Face Set Expand](expand.xhtml#face-set-expand)
        into individual Face Sets for further editing.

    By Materials:
    :   Creates a face set per [Material Slot](../../../render/materials/assignment.xhtml#bpy-types-materialslot).

    By Normals:
    :   Creates face sets for Faces that have similar [Normals](../../../modeling/meshes/structure.xhtml#modeling-meshes-structure-normals).

    By UV Seams:
    :   Creates face sets using [UV Seams](../../../modeling/meshes/uv/unwrapping/seams.xhtml) as boundaries.

    By Edge Creases:
    :   Creates face sets using [Edge Creases](../../../modeling/meshes/editing/edge/edge_data.xhtml#bpy-ops-transform-edge-crease) as boundaries.

    By Edge Bevel Weight:
    :   Creates face sets using [Bevel Weights](../../../modeling/meshes/editing/edge/edge_data.xhtml#bpy-ops-transform-edge-bevelweight) as boundaries.

    By Sharp Edges:
    :   Creates face sets using [Sharp Edges](../../../modeling/meshes/editing/edge/edge_data.xhtml#bpy-ops-mesh-mark-sharp) as boundaries.

Threshold
:   The minimum value to consider a certain attribute a boundary when creating the face sets.
user: Explain Points to Volume Node in complete detail according to the official Blender documentation.

assistant: # Points to Volume Node

[image reference removed]

The *Points to Volume* node generates a fog volume sphere around every point in the input geometry.
The new volume grid is named “density”.

It usually makes sense to combine this node with the
[Volume to Mesh Node](../volume/operations/volume_to_mesh.html).
user: Provide the full official documentation entry for Introduction, preserving all code examples.

assistant: # Introduction

Constraints are a way of automatically controlling the location, rotation,
and scale of an [object](../../glossary/index.xhtml#term-Object) or [bone](../../glossary/index.xhtml#term-Bone). For example, they can
[attach](relationship/child_of.xhtml)
a sword to a knight’s hand, or make a tennis player’s eyes
[point towards](tracking/damped_track.xhtml) the ball.

Each object or bone can have a *stack* of constraints that’s evaluated from top to bottom.
In addition, each constraint has an [Influence](interface/common.xhtml#bpy-types-constraint-influence) factor
for weakening it or mixing it with other constraints. What’s more, this Influence can be
keyframed, which makes it possible to turn constraints on and off over the course of an animation.

|  |  |  |
| --- | --- | --- |
| ../../_images/animation_constraints_introduction_tab-object.png   Object | ../../_images/animation_constraints_introduction_tab-bone.png   Bone | ../../_images/animation_constraints_interface_stack_example.png   Constraint Stack |
user: Describe References from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| - [`ClothModifier.point_cache`](bpy.types.ClothModifier.html#bpy.types.ClothModifier.point_cache "bpy.types.ClothModifier.point_cache") - [`DynamicPaintSurface.point_cache`](bpy.types.DynamicPaintSurface.html#bpy.types.DynamicPaintSurface.point_cache "bpy.types.DynamicPaintSurface.point_cache") - [`ParticleSystem.point_cache`](bpy.types.ParticleSystem.html#bpy.types.ParticleSystem.point_cache "bpy.types.ParticleSystem.point_cache") | - [`RigidBodyWorld.point_cache`](bpy.types.RigidBodyWorld.html#bpy.types.RigidBodyWorld.point_cache "bpy.types.RigidBodyWorld.point_cache") - [`SoftBodyModifier.point_cache`](bpy.types.SoftBodyModifier.html#bpy.types.SoftBodyModifier.point_cache "bpy.types.SoftBodyModifier.point_cache") |
user: What is Properties and how is it used in Blender Python scripting?

assistant: Samples
:   Number of samples to use for ray-traced ambient occlusion sampling.
    Keep as low as possible for optimal performance.

Inside
:   Detect convex rather than concave shapes, by computing occlusion inside mesh.

Only Local Cycles Only
:   Only detect occlusion from the object itself, and not others.
user: Give a detailed overview of Trace: syntax, arguments, return values, common patterns.

assistant: CPU Only

We support the `trace(point pos, vector dir, ...)` function,
to trace rays from the OSL shader. The “shade” parameter is not supported currently,
but attributes can be retrieved from the object that was hit using the
`getmessage("trace", ..)` function. See the OSL specification for details on how to use this.

This function cannot be used instead of lighting;
the main purpose is to allow shaders to “probe” nearby geometry,
for example to apply a projected texture that can be blocked by geometry,
apply more “wear” to exposed geometry, or make other ambient occlusion-like effects.
user: What is Track and how is it used in Blender Python scripting?

assistant: # Track

These tools add a tracking constraint to the selected objects;
the target object of the constraint will be the active object, which won’t have a constraint added.

- [Damped Track Constraint](../../../animation/constraints/tracking/damped_track.xhtml)
- [Track To Constraint](../../../animation/constraints/tracking/track_to.xhtml)
- [Lock Track Constraint](../../../animation/constraints/tracking/locked_track.xhtml)
user: Describe Working with Content of Vertex Groups from the Blender manual or Python API, including usage steps and snippets.

assistant: ### Assigning Vertices to a Group

[image reference removed]

Assign weights to active group.

You add vertices to a group as follows:

- Select the group from the group list, thus making it the active group (1).
- From the 3D Viewport select `Shift`-`LMB` all vertices that you want to add to the group.
- Set the weight value that shall be assigned to all selected vertices (2).
- `LMB` the *Assign* button to assign the selected vertices to the active group using the given weight (3).

Note that weight assignment is not available for locked vertex groups.
The *Assign* button is grayed out in that case.

### Checking Assignments

To be sure the selected vertices are in the desired vertex group,
you can try press the deselect button.
If the vertices remain selected then they are not yet in the current vertex group.

At this point you may assign them, but take care since all selected vertices
will have their weight set to the value in the *Weight* field.

### Removing Assignments from a Group

You remove vertices from a group as follows:

- Select the group from the group list (make it the active group).
- Select all vertices that you want to remove from the group.
- `LMB` click the *Remove* button.

Note that removing weight assignments is not available for locked vertex groups.
The *Remove* button is grayed out in that case.

### Using Groups for Selecting/Deselecting

You can quickly select all assigned vertices of a group:

- (Optionally) press `Alt`-`A` to deselect all vertices.
- Select the group from the group list (make it the active group).
- When you now `LMB` click the *Select* button,
  then the vertices assigned to the active group will be selected and highlighted in the 3D Viewport.
- When you `LMB` click the *Deselect* button instead,
  then the vertices assigned to the active group will be deselected in the 3D Viewport.

### Finding Ungrouped Vertices

You can find ungrouped vertices as follows:

- Press `Alt`-`A` to deselect all vertices.
- In the header of the 3D Viewport, navigate to
  Select ‣ Select All by Trait ‣ Ungrouped Vertices.
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Path
:   The path to the CSV file. The file must be structured with one row per point and values separated by a delimiter.

Delimiter
:   The character used to separate values within each row of the CSV file,
    such as a comma (,), semicolon (;), or tab character.
user: What is Bounces and how is it used in Blender Python scripting?

assistant: In reality light will bounce a huge number of times due to the speed of light being very high.
In practice more bounces will introduce more noise, and it might be good to use something like
the Limited Global Illumination preset in the [Light Paths](../render_settings/light_paths.xhtml#render-cycles-integrator-light-paths)
Section that uses *fewer* bounces for different shader types.
Diffuse surfaces typically can get away with fewer bounces,
while glossy surfaces need a few more,
and transmission shaders such as glass usually need the most.

|  |  |  |
| --- | --- | --- |
| ../../../_images/render_cycles_optimizations_reducing-noise_0bounce.jpg   No bounces. | ../../../_images/render_cycles_optimizations_reducing-noise_2bounce.jpg   Two bounces at max. | ../../../_images/render_cycles_optimizations_reducing-noise_4bounce.jpg   Four bounces at max. |

Also important is to use shader colors that do **not** have components of value 1.0 or
values near that; try to keep the maximum value to 0.8 or less and make your lights brighter.
In reality, surfaces are rarely perfectly reflecting all light,
but there are of course exceptions; usually glass will let most light through,
which is why we need more bounces there. High values for the color components tend to
introduce noise because light intensity then does not decrease much as it bounces off each
surface.
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: The inputs of the node are dynamic. Some inputs are only available for certain operations.
For instance, the *Addend* input is only available for the *Multiply Add* operator.

Value
:   Input Value. Trigonometric functions read this value as radians.

Addend
:   Input Addend.

Base
:   Input Base.

Exponent
:   Input Exponent.

Epsilon
:   Input Epsilon.

Distance
:   Input Distance.

Min
:   Input Minimum.

Max
:   Input Maximum.

Increment
:   Input Increment.

Scale
:   Input Scale.

Degrees
:   Input Degrees.

Radians
:   Input Radians.
user: What is Painting Brushes and how is it used in Blender Python scripting?

assistant: [image reference removed]

Recognizable by their blue thumbnails.
These brushes are used for painting color attributes within sculpt mode.

Paint Hard
:   Brush Type: [Paint](paint.xhtml)

    A simple hard round falloff.

Paint Soft
:   Brush Type: [Paint](paint.xhtml)

    A soft round falloff with pressure sensitivity for only the strength.

Paint Hard Pressure
:   Brush Type: [Paint](paint.xhtml)

    A hard round falloff with pressure sensitivity for the brush size.

Paint Soft Pressure
:   Brush Type: [Paint](paint.xhtml)

    A soft round falloff with pressure sensitivity for both size and strength.

Paint Square
:   Brush Type: [Paint](paint.xhtml)

    A hard square brush falloff.

Airbrush
:   Brush Type: [Paint](paint.xhtml)

    A soft round brush that builds up over time instead of stroke distance.

Blend Hard
:   Brush Type: [Paint](paint.xhtml)

    Similar to Average brushes in other modes with a hard round falloff. Used to blend colors along the stroke.

Blend Soft
:   Brush Type: [Paint](paint.xhtml)

    Same as Blend Hard but with a soft round falloff.

Blend Square
:   Brush Type: [Paint](paint.xhtml)

    Same as Blend Hard but with a hard square falloff.

Paint Blend
:   Brush Type: [Paint](paint.xhtml)

    A mix of a Paint and Blend brush. On low pen pressure the brush averages colors and with high pen pressure it
    paints colors.

Smear
:   Brush Type: [Smear](smear.xhtml)

    Smears colors along the stroke.

Sharpen
:   Brush Type: [Smear](smear.xhtml)

    Pinches the colors inwards to create sharp edges or points.

Paint Pixel Art
:   Brush Type: [Paint](paint.xhtml)

    Paint specific pixels (Only supported in the Image Editor).

Erase Pixel Art
:   Brush Type: [Paint](paint.xhtml)

    Erase pixels in the alpha channel of the texture (Only supported in the Image Editor).
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

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

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

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

### Input Items

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

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

Remove Item
:   Delete the selected input socket.

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

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

### Output Items

Available when the closure’s output zone is selected.

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

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

Remove Item
:   Delete the selected output socket.

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

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

assistant: To start using a UDIM workflow, you should unwrap a mesh as you would for any other UV map.
After that you should decide how many textures you want to split your UV map into.
This will be different for every mesh and workflow but a good minimum is 3: one 4k, one 2k, and one 1k image.
Then create the desired textures to match how many textures you want.

After this it is the same process of moving UVs to the appropriate tile
and scaling and managing them like any other UV map.
See [Layout Workflow](layout.html) for information on laying out UVs.

When the UVs are correctly set up across the multiple UV islands it is time to add proper textures the UDIM array.
Currently, existing textures cannot be added to a tile,
to fill a tile with an existing texture you first must:

1. Create the desired tiles.
2. Save the image.
3. Replace the saved image file with the desire texture by deleting the file
   and replacing it with a new image file, keeping the old file name.
   Or by opening the image in another application and modifying the contents of the image.

Other than using a third-party application to edit the UDIM texture it is possible to paint on UDIM textures.
This works for either 2D Painting or [3D Painting](../../../../sculpt_paint/texture_paint/index.html).
user: Describe BoidRuleAvoid(BoidRule) from the Blender manual or Python API, including usage steps and snippets.

assistant: # BoidRuleAvoid(BoidRule)

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

*class* bpy.types.BoidRuleAvoid(*BoidRule*)
:   fear_factor
    :   Avoid object if danger from it is above this threshold

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

    object
    :   Object to avoid

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

    use_predict
    :   Predict target movement

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: What is Outputs and how is it used in Blender Python scripting?

assistant: Value
:   The voxel value retrieved at the specified grid indices.
    The output type matches the grid’s *Data Type*. No interpolation is
    performed—values are sampled exactly as stored in the grid.
user: What is Piston Constraint and how is it used in Blender Python scripting?

assistant: # Piston Constraint

A piston permits translation along the X axis of the constraint object.
It also allows rotation around the X axis of the constraint object.
It is like a combination of the freedoms of a slider with the freedoms of a hinge
(neither of which is very free alone).
user: How do I use Grease Pencil in Blender? Include parameters, examples, warnings and best practices.

assistant: Playback Only
:   Activates the simplification process only during animation playback.

Fill
:   Shows the fill component in Grease Pencil materials.

Modifiers
:   Shows Grease Pencil [modifiers](../../../grease_pencil/modifiers/index.xhtml).

Shader Effects
:   Shows Grease Pencil [visual effects](../../../grease_pencil/modifiers/index.xhtml).

Layer Tinting
:   Shows layers tint overrides.

Anti-Aliasing
:   Use [Anti-Aliasing](../../../glossary/index.xhtml#term-Anti-Aliasing) to smooth stroke edges. The amount of anti-aliasing can be adjusted by
    the [SMAA Threshold](grease_pencil.xhtml#bpy-types-scenegpencil-antialias-threshold).
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

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

Radius
:   The radius of the circle portion generated at each fillet.

Count
:   Only in *Poly* mode, the number of control points to add for each fillet.

Limit Radius
:   Whether to limit the maximum value of the radius in order to avoid overlapping fillets.

Mode
:   How to choose number of vertices on fillet

    Bézier:
    :   Only two control points will be generated for every filleted control point. The shape generated
        by the aligned handles on the generated control points on either side of the fillet is used to
        create the circle portion shape, meaning that the number of segments in the fillet shape depends on
        the [spline’s resolution value](../read/spline_resolution.xhtml).

    Poly:
    :   The number of control points generated for each field
        input is controlled directly with an integer field input.
        This mode works better for poly and NURBS splines.
user: Show practical ways to work with Technical Details in a Blender add-on or script – include code.

assistant: Blender treats the bone as a section of a Bézier curve passing through the bones’ joints.
Each of the *Segments* will bend and roll to follow this invisible curve
representing a tessellated point of the Bézier curve.
The control points at each end of the curve are the endpoints of the bone.
The shape of the B-Bones can be controlled using a series of properties or
indirectly through the neighboring bones (i.e. first child and parent).
The properties construct handles on either end of the bone to control the curvature.

When using the B-bone as a constraint target [Data ID](../../../../interface/controls/templates/data_block.xhtml#ui-data-id) offers an option to follow the curvature.
user: Give a detailed overview of Properties: syntax, arguments, return values, common patterns.

assistant: Image
:   Selection of different types of media. For controls see [Data-Block Menu](../../../interface/controls/templates/data_block.xhtml#ui-data-block).
    For the options see [Image Settings](../../../editors/image/image_settings.xhtml).
user: Describe SDF Grid Median Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # SDF Grid Median Node

[image reference removed]

The *SDF Grid Median* node applies a median filter to a Signed Distance Field (SDF) grid.
This operation smooths the field by replacing each voxel value with the
median of its neighboring values, effectively removing noise and small
artifacts while preserving sharp features and edges.

Unlike [mean](sdf_grid_mean.html)
or [Laplacian](sdf_grid_laplacian.html)
smoothing, the median filter is non-linear and
better suited for cleaning up impulsive noise (isolated spikes or dips) in
the grid. It maintains the overall structure and boundaries of the surface,
making it useful for refining SDFs generated from noisy or voxelized meshes.
user: Show practical ways to work with Object Mode in a Blender add-on or script – include code.

assistant: Proportional Editing is typically used in *Edit Mode*, but it can also be used in *Object Mode*.
The tool then works on entire objects rather than individual mesh components.

In the image below, the leftmost cylinder is being scaled up vertically,
which also affects the cylinders near it.

[image reference removed]

Proportional Editing in Object Mode.
user: What is Outputs and how is it used in Blender Python scripting?

assistant: Gradient
:   A vector grid representing the gradient of the input field.
    Each vector points toward the direction of greatest increase in the scalar
    value, with its length corresponding to the rate of change.
user: Show practical ways to work with NodeTreeInterfaceSocketFloatColorTemperature(NodeTreeInterfaceSocket) in a Blender add-on or script – include code.

assistant: # NodeTreeInterfaceSocketFloatColorTemperature(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.NodeTreeInterfaceSocketFloatColorTemperature(*NodeTreeInterfaceSocket*)
:   Floating-point number socket of a node

    default_value
    :   Input value used for unconnected socket

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

    max_value
    :   Maximum value

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

    min_value
    :   Minimum value

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

    subtype
    :   Subtype of the default value

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

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

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

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

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

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

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Explain Brush Settings in complete detail according to the official Blender documentation.

assistant: # Brush Settings

Painting needs paint brushes and Blender provides a Brush panel within the Toolbar
when in *Vertex Paint Mode*.

Brush
:   In the [Data-Block menu](../../../../interface/controls/templates/data_block.html#ui-data-block) you find predefined Brush presets.
    And you can create your own custom presets as needed.

Radius
:   This option controls the radius of the brush, measured in pixels.
    `F` allows you to change the brush size interactively by
    dragging the mouse and then `LMB` (the texture of the brush should be visible inside the circle).
    Typing a number then enter while using `F` allows you to enter the size numerically.

    (Size Pressure)
    :   Adjusts the brush radius based on the stylus pressure when using a [Graphics Tablet](../../../../getting_started/configuration/hardware.html#hardware-tablet).

Strength
:   How powerful the brush is when applied.

    (Strength Pressure)
    :   Adjusts the brush strength based on the stylus pressure when using a [Graphics Tablet](../../../../getting_started/configuration/hardware.html#hardware-tablet).

Mode
:   Stroke:
    :   Only paint over strokes.

    Fill:
    :   Only paint over fill areas.

    Stroke & Fill:
    :   Paint over strokes and fill areas.

Cursor
:   See the global brush settings for [Cursor](../../../../sculpt_paint/brush/cursor.html) settings.
user: What is Icosphere and how is it used in Blender Python scripting?

assistant: An icosphere is a sphere built from equilateral triangles
and has a more uniform distribution of vertices compared to a UV sphere.
This makes it ideal for sculpting, simulations, or applications where topological regularity is important.

It is created by recursively subdividing the faces of an icosahedron, which is a polyhedron with 20 triangular faces.

Subdivisions
:   Number of recursive subdivision steps.
    Each step splits every triangle into four new triangles, increasing the mesh resolution exponentially.

    - Subdivision Level 1 creates the base icosahedron.
    - Higher levels smooth the surface and increase vertex count.

Radius
:   Distance from the center to the outer surface of the sphere.
user: How do I use Custom Region in Blender? Include parameters, examples, warnings and best practices.

assistant: Enables or disables the use of a *Custom Region* for UV operations such as
[Pack Islands](#bpy-ops-uv-pack-islands).

When enabled, the previously defined user region (created using
[Set User Region](#bpy-ops-uv-custom-region-set)) becomes active and visible in the UV Editor.
This region defines the boundaries where UV islands are packed or manipulated.

Disabling this option restores the default behavior, where UV operations apply to the
standard unit square or the active UDIM tile.
user: Describe Inherited Properties from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`Space.type`](bpy.types.Space.html#bpy.types.Space.type "bpy.types.Space.type") | - [`Space.show_locked_time`](bpy.types.Space.html#bpy.types.Space.show_locked_time "bpy.types.Space.show_locked_time") - [`Space.show_region_header`](bpy.types.Space.html#bpy.types.Space.show_region_header "bpy.types.Space.show_region_header") |