PGCRYPT/OpenBlender_Train huggingface dataset:
user: Explain Animation Player in complete detail according to the official Blender documentation.

assistant: # Animation Player

The animation player is a utility typically used for previewing rendered animations,
supporting all image and video formats also supported by Blender.
This is a convenient way to play back image sequences at the correct frame rate.

Launching the animation player opens a new window,
playing back images or a video located at the render output of the current scene.
You can also drop images or movie files in a running animation player.
It will then restart the player with the new data.
user: Give a detailed overview of FunctionNodeBooleanMath(FunctionNode): syntax, arguments, return values, common patterns.

assistant: # FunctionNodeBooleanMath(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.FunctionNodeBooleanMath(*FunctionNode*)
:   Perform a logical operation on the given boolean inputs

    operation
    :   Type:
        :   enum in [Node Boolean Math Items](bpy_types_enum_items/node_boolean_math_items.html#rna-enum-node-boolean-math-items), default `'AND'`

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

assistant: [image reference removed]

The Dot Dash modifier.

Offset
:   Determines the starting offset of the pattern.

Segment
:   Makes up individual stroke of a dot dash pattern.

    Use the plus/minus button on the side of the list to add/remove segments.

Dash
:   The number of consecutive points from the original stroke to include in this segment.

Gap
:   The number of points skipped after the segment ends.

Radius
:   The factor to apply to the original point’s radius for the new points.

Opacity
:   The factor to apply to the original point’s opacity for the new points.

Material Index
:   Use this index on generated segment, use -1 for existing material.

Use Cyclic
:   Close the segment.

### Influence Filters

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

assistant: Modal operators exist as a concept in between [Tools](tool_system.xhtml)
and regular operators.
They require some sort of interactive input.

|  |  |
| --- | --- |
| `Esc`, `RMB` | Cancels a modal operator. |
| `Return`, `LMB` | Confirms the action of a modal operator. |

### Slider Operators

Slider operators are used to interactively adjust a percentage value
in the editor’s [Header](window_system/regions.xhtml#ui-region-header).

You can adjust the percentage by dragging the slider left or right.
This can be made coarser (snapping in 10% increments) by holding `Ctrl`
and more precise by holding `Shift`.
For some sliders, you can toggle “overshoot” with `E`, which lets
you go beyond the 0-100% range.
user: Give a detailed overview of BlendDataMaterials(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # BlendDataMaterials(bpy_struct)

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

*class* bpy.types.BlendDataMaterials(*bpy_struct*)
:   Collection of materials

    new(*name*)
    :   Add a new material to the main database

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

        Returns:
        :   New material data-block

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

    create_gpencil_data(*material*)
    :   Add Grease Pencil material settings

        Parameters:
        :   **material** ([`Material`](bpy.types.Material.html#bpy.types.Material "bpy.types.Material"), (never None)) – Material

    remove_gpencil_data(*material*)
    :   Remove Grease Pencil material settings

        Parameters:
        :   **material** ([`Material`](bpy.types.Material.html#bpy.types.Material "bpy.types.Material"), (never None)) – Material

    remove(*material*, *\**, *do_unlink=True*, *do_id_user=True*, *do_ui_user=True*)
    :   Remove a material from the current blendfile

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

    tag(*value*)
    :   tag

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

    *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: |  |  |
| --- | --- |
| - [`BlendData.annotations`](bpy.types.BlendData.html#bpy.types.BlendData.annotations "bpy.types.BlendData.annotations") - [`BlendDataAnnotations.new`](bpy.types.BlendDataAnnotations.html#bpy.types.BlendDataAnnotations.new "bpy.types.BlendDataAnnotations.new") - [`BlendDataAnnotations.remove`](bpy.types.BlendDataAnnotations.html#bpy.types.BlendDataAnnotations.remove "bpy.types.BlendDataAnnotations.remove") - [`MovieClip.annotation`](bpy.types.MovieClip.html#bpy.types.MovieClip.annotation "bpy.types.MovieClip.annotation") - [`MovieTrackingTrack.annotation`](bpy.types.MovieTrackingTrack.html#bpy.types.MovieTrackingTrack.annotation "bpy.types.MovieTrackingTrack.annotation") | - [`NodeTree.annotation`](bpy.types.NodeTree.html#bpy.types.NodeTree.annotation "bpy.types.NodeTree.annotation") - [`Scene.annotation`](bpy.types.Scene.html#bpy.types.Scene.annotation "bpy.types.Scene.annotation") - [`SpaceImageEditor.annotation`](bpy.types.SpaceImageEditor.html#bpy.types.SpaceImageEditor.annotation "bpy.types.SpaceImageEditor.annotation") - [`SpaceSequenceEditor.annotation`](bpy.types.SpaceSequenceEditor.html#bpy.types.SpaceSequenceEditor.annotation "bpy.types.SpaceSequenceEditor.annotation") |
user: Show practical ways to work with Transform Pivot Point in a Blender add-on or script – include code.

assistant: # Transform Pivot Point

The *Pivot Point* determines the location of the
[Object Gizmo](../../display/gizmo.xhtml).
Changing this location can make it easier to perform
transformations around the point you want.

[image reference removed]

With the default “Median Point” pivot point (left) it’s tricky to
bring the second wheel spoke into place, but with “3D Cursor” (right)
it’s easy.

The Pivot Point can be changed using a selector in the 3D Viewport’s header:

[image reference removed]
user: Provide the full official documentation entry for ForeachGeometryElementInputItem(bpy_struct), preserving all code examples.

assistant: # ForeachGeometryElementInputItem(bpy_struct)

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

*class* bpy.types.ForeachGeometryElementInputItem(*bpy_struct*)
:   color
    :   Color of the corresponding socket type in the node editor

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

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

    socket_type
    :   Type:
        :   enum in [Node Socket Data Type Items](bpy_types_enum_items/node_socket_data_type_items.html#rna-enum-node-socket-data-type-items), default `'FLOAT'`

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Image
:   Standard color input.

Brightness
:   An additive-type factor by which to increase the overall brightness
    of the image. Use a negative number to darken an image.

Contrast
:   A scaling type factor by which to make brighter pixels brighter, but keeping the darker pixels dark.
    Higher values make details stand out. Use a negative number to decrease the overall contrast in the image.
user: Describe FunctionNodeSeparateMatrix(FunctionNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # FunctionNodeSeparateMatrix(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.FunctionNodeSeparateMatrix(*FunctionNode*)
:   Split a 4x4 matrix into its individual values

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

assistant: Start by placing, finger by finger, all the knuckles in place.

[image reference removed]

Knuckles Edge Loops and Cursor Snapping.

Finalize the positioning by taking care of bone rolls (the X axis is set as bend axis).

[image reference removed]

Fingers Bend Axis.

When the fingers are in place proceed placing the palm bones.

[image reference removed]

Palm Alignment.
user: Explain Operators in complete detail according to the official Blender documentation.

assistant: There are several transformation operations included in Blender.
Here are some of the main operations available:

### Move

This operations allows you to move elements along the X, Y, and Z axes in the scene.

### Rotate

You can use this function to rotate elements around the X, Y, and Z axes.

### Scale

Scaling allows you to increase or decrease the size of an object along the X, Y, and Z axes.

### Align to View

This is useful for aligning objects with the view from the camera or another specific viewpoint.

### Mirror

Mirrors objects along one or more axes.
user: Show practical ways to work with Collection in a Blender add-on or script – include code.

assistant: Include or exclude objects for line calculation,
based on their belonging to a [Collection](../../../scene_layout/collections/index.xhtml).

Line Set Collection
:   The name of the object collection to use.

Negation
:   Whether to include or exclude lines from those objects in this line set.
user: What is Stereo 3D Display and how is it used in Blender Python scripting?

assistant: If you have a real 3D display at some point, you can change the 3D display mode in the Window menu,
by calling the Stereo 3D operator.
Be aware that some modes require a fullscreen editor to work.

[image reference removed]

Window menu, stereo 3D operator.
user: Give a detailed overview of Selecting Text: syntax, arguments, return values, common patterns.

assistant: # Selecting Text

[[image reference removed]](../../_images/modeling_texts_selecting_cursor.png)

Text in Edit Mode.

In Edit Mode, your text has a white cursor, and as in any text editor,
it determines where new chars will be inserted.

Select All `Ctrl`-`A`
:   Selects the full text.

Top/Bottom `Shift`-`Ctrl`-`Home`/ `Shift`-`Ctrl`-`End`
:   Moves the cursor to the start or end of the text object.

Next/Previous Character `Left`/ `Right`
:   You can move the cursor with the arrow keys.

Next/Previous Word `Ctrl`-`Left`/ `Ctrl`-`Right`
:   To move the cursor on a word’s boundary.

Line Begin/End `Home`/ `End`
:   Move the cursor to the beginning and end of a line respectively.

Next/Previous Line `Up`/ `Down`
:   To jump between lines.

Next/Previous Block `PageUp`/ `PageDown`
:   To jump back/forward ten lines at a time.

Hold `Shift` while using the arrow keys to select a part of the text.
You can use it to specify different materials, the normal/bold/italic style…
user: What is GeometryNodeBlurAttribute(GeometryNode) and how is it used in Blender Python scripting?

assistant: # GeometryNodeBlurAttribute(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.GeometryNodeBlurAttribute(*GeometryNode*)
:   Mix attribute values of neighboring elements

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

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: How do I use BoolProperty(Property) in Blender? Include parameters, examples, warnings and best practices.

assistant: # BoolProperty(Property)

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

*class* bpy.types.BoolProperty(*Property*)
:   RNA boolean property definition

    array_dimensions
    :   Length of each dimension of the array

        Type:
        :   int array of 3 items in [0, inf], [default](#bpy.types.BoolProperty.default "bpy.types.BoolProperty.default") (0, 0, 0), (readonly)

    array_length
    :   Maximum length of the array, 0 means unlimited

        Type:
        :   int in [0, inf], default 0, (readonly)

    default
    :   Default value for this number

        Type:
        :   boolean, default False, (readonly)

    default_array
    :   Default value for this array

        Type:
        :   boolean array of 3 items, [default](#bpy.types.BoolProperty.default "bpy.types.BoolProperty.default") (False, False, False), (readonly)

    is_array
    :   Type:
        :   boolean, default False, (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: Give a detailed overview of RenderPasses(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # RenderPasses(bpy_struct)

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

*class* bpy.types.RenderPasses(*bpy_struct*)
:   Collection of render passes

    find_by_name(*name*, *view*)
    :   Get the render pass for a given name and view

        Parameters:
        :   - **name** (*string**,* *(**never None**)*) – Pass
            - **view** (*string**,* *(**never None**)*) – View, Render view to get pass from

        Returns:
        :   The matching render pass

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

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

assistant: # Clay Thumb

Similar to the [Clay](clay.xhtml) brush.
It imitates the effect of deforming clay with the finger, accumulating material during the stroke.
The sculpt plane tilts during the stroke in the front part of the brush to achieve this effect.
user: How do I use Properties in Blender? Include parameters, examples, warnings and best practices.

assistant: Dimensions
:   The dimensions of the space to evaluate the noise in.

    1D:
    :   Evaluate the noise in 1D space at the input *W*.

    2D:
    :   Evaluate the noise in 2D space at the input *Vector*. The Z component is ignored.

    3D:
    :   Evaluate the noise in 3D space at the input *Vector*.

    4D:
    :   Evaluate the noise in 4D space at the input *Vector* and the input *W* as the fourth dimension.

Normalize
:   If enabled, ensures that the output values stay in the range 0.0 to 1.0.
    When disabled, output values are in the range -1.0 to 1.0.

Type
:   Type of Noise texture, with different ways to combine octaves.

    FBM:
    :   Fractal Brownian motion, produces a homogeneous and isotropic result.
        Values from octaves are added together.

    Multifractal:
    :   More uneven, varying by location similar to real terrain.
        Values from octaves are multiplied together.

    Hybrid Multifractal:
    :   Creates peaks and valleys with different roughness values, like real mountains rise out of flat plains.
        Combines octaves using both addition and multiplication.

    Ridged Multifractal:
    :   Creates sharp peaks. Calculates the absolute value of the noise,
        creating “canyons”, and then flips the surface upside down.

    Hetero Terrain:
    :   Similar to *Hybrid Multifractal* creates a heterogeneous terrain, but with the likeness of river channels.
user: Explain Inputs in complete detail according to the official Blender documentation.

assistant: Surface Geometry
:   The surface geometry to which the hair curves are attached.
    This is typically the same mesh used during hair generation or interpolation.

Surface UV Map
:   The UV map on the surface mesh used to locate the curve attachment points.
    It allows retrieving the stored attachment coordinates for each curve.
user: Give a detailed overview of Normalize: syntax, arguments, return values, common patterns.

assistant: This tool only works on the active vertex group. All vertices keep their relative weights,
but the entire set of weights is scaled up such that the highest weight value is 1.0.

[image reference removed]

Normalize example.
user: Describe NodeCompositorFileOutputItems(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # NodeCompositorFileOutputItems(bpy_struct)

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

*class* bpy.types.NodeCompositorFileOutputItems(*bpy_struct*)
:   Collection of file output items

    new(*socket_type*, *name*)
    :   Add an item at the end

        Parameters:
        :   - **socket_type** (enum in [Node Socket Data Type Items](bpy_types_enum_items/node_socket_data_type_items.html#rna-enum-node-socket-data-type-items)) – Socket Type, Socket type of the item
            - **name** (*string**,* *(**never None**)*) – Name

        Returns:
        :   Item, New item

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

    remove(*item*)
    :   Remove an item

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

    clear()
    :   Remove all items

    move(*from_index*, *to_index*)
    :   Move an item to another position

        Parameters:
        :   - **from_index** (*int in* *[**0**,* *inf**]*) – From Index, Index of the item to move
            - **to_index** (*int in* *[**0**,* *inf**]*) – To Index, Target index for the item

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

assistant: The *Target* is the object which the constraint should refer to.
For example, the [Copy Location Constraint](../transform/copy_location.html) copies the location of the
target object to the constrained object.

Initially, the *Target* is empty and the constraint’s icon is red, indicating it’s inactive:

[image reference removed]

Once a target is selected, the icon will turn gray and the constraint will start working.

By default, the constraint uses the location of the target’s [Origin](../../../glossary/index.html#term-Object-Origin),
but if the target is a [Mesh](../../../glossary/index.html#term-Mesh) or [Lattice](../../../glossary/index.html#term-Lattice), it’s possible to change this by
selecting a [Vertex Group](../../../glossary/index.html#term-Vertex-Group). The constraint will then use the weighted average of
the target’s vertex positions.

[image reference removed]

Alternatively, if the target is an [Armature](../../../glossary/index.html#term-Armature), it’s possible to select a [Bone](../../../glossary/index.html#term-Bone)
and choose an interpolated position between its [Head](../../../glossary/index.html#term-Head) and [Tail](../../../glossary/index.html#term-Tail).
The  button enables following the curved shape of
[Bendy Bones](../../armatures/bones/properties/bendy_bones.html).

[image reference removed]
user: Describe Example from the Blender manual or Python API, including usage steps and snippets.

assistant: The example below extracts the white Suzanne monkey head from the render, colors it red, and
composites it back onto the render at an offset. Notice that the motion-blurred edges
get handled correctly (when rendering with Cycles).
Also notice that the *CryptoObject* render passes are not connected to Cryptomatte node;
this was needed with the [Cryptomatte Node (Legacy)](cryptomatte_legacy.html),
but not any longer.

[image reference removed]
user: Describe Usage from the Blender manual or Python API, including usage steps and snippets.

assistant: ### Selecting a Brush and Material

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

### Creating Polylines

1. Click (`LMB` or the `Pen` tip) and drag the start point.
2. Release on the desired end point.
3. Click multiple times on different locations to create multiple connected lines.
4. Then confirm (`Return`/`MMB`) or cancel (`Esc`/`RMB`).

While dragging you can use `Shift` to snapping the line to horizontal, vertical or 45° angle.

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

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

|  |  |  |
| --- | --- | --- |
| ../../../../_images/grease-pencil_modes_draw_tools_polyline_example-01.png   click and dragging the start point. | ../../../../_images/grease-pencil_modes_draw_tools_polyline_example-02.png   Click multiple times to create multiple connected lines. | ../../../../_images/grease-pencil_modes_draw_tools_polyline_example-03.png   The polyline after confirming. |
user: Provide the full official documentation entry for USERPREF_UL_extension_repos(UIList), preserving all code examples.

assistant: # USERPREF_UL_extension_repos(UIList)

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

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

    filter_items(*_context*, *data*, *propname*)

    *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 Controls and how is it used in Blender Python scripting?

assistant: ### Overlap Mode

Overlap Mode defines the result of transforming a strip so that it overlaps another strip.

Expand:
:   All strips on the right side of (each) transformed will be shifted forward to accommodate the overlapping strip.

Overwrite:
:   The overlapped strip will be overwritten, trimmed or split by the overlapping strip.

Shuffle:
:   The overlapping strip will be moved to the nearest free space so that it does not overlap.

### Snapping

Snapping can be toggled by clicking  (Snap Off) /  (Snap On)
in the 3D Viewport’s header, or temporarily by holding `Ctrl` after starting to drag a strip.

The drop-down arrow offers the following options:

Snap to
:   Frame Range
    :   Snap to preview or scene start and end frame.

    Current Frame
    :   Snaps the transformed selection to the Playhead.

    Hold Offset
    :   Snaps the transformed selection to the [Hold Offset](../../../editors/video_sequencer/sequencer/sidebar/strip.xhtml#sequencer-duration-hard).

    Markers
    :   Snaps the transformed selection to [Markers](../../../animation/markers.xhtml).

    Retiming Keys
    :   Snaps the transformed selection to [Retiming Keys](#sequencer-editing-retiming).

Ignore
:   Muted Strips
    :   Muted Strips are not considered as snap targets.

    Sound Strips
    :   Sound Strips are not considered as snap targets.
user: Explain Select Edge Loop in complete detail according to the official Blender documentation.

assistant: Holding `Alt` while clicking an edge selects that edge and then expands the selection as far as
possible in the two directions parallel to it. (While this of course works for selecting edge “loops”
that go all the way around a mesh, it also works if there’s no loop.)

You can additionally hold `Shift` to extend the current selection rather than replacing it.
user: Show practical ways to work with MovieTrackingObjects(bpy_struct) in a Blender add-on or script – include code.

assistant: # MovieTrackingObjects(bpy_struct)

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

*class* bpy.types.MovieTrackingObjects(*bpy_struct*)
:   Collection of movie tracking objects

    active
    :   Active object in this tracking data object

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

    new(*name*)
    :   Add tracking object to this movie clip

        Parameters:
        :   **name** (*string**,* *(**never None**)*) – Name of new object

        Returns:
        :   New motion tracking object

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

    remove(*object*)
    :   Remove tracking object from this movie clip

        Parameters:
        :   **object** ([`MovieTrackingObject`](bpy.types.MovieTrackingObject.html#bpy.types.MovieTrackingObject "bpy.types.MovieTrackingObject"), (never None)) – Motion tracking object to be removed

    *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 NodeSocketVectorEuler2D(NodeSocketStandard), preserving all code examples.

assistant: # NodeSocketVectorEuler2D(NodeSocketStandard)

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

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

    default_value
    :   Input value used for unconnected socket

        Type:
        :   float array of 2 items in [-inf, inf], default (0.0, 0.0)

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

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

        (readonly)

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: How do I use Attributes in Blender? Include parameters, examples, warnings and best practices.

assistant: Geometry attributes can be read through the `getattribute()` function.
This includes UV maps, color attributes and any attributes output from geometry nodes.

The following built-in attributes are available through `getattribute()` as well.

`geom:generated`
:   Automatically generated texture coordinates, from non-deformed mesh.

`geom:uv`
:   Default render UV map.

`geom:tangent`
:   Default tangent vector along surface, in object space.

`geom:undisplaced`
:   Position before displacement, in object space.

`geom:dupli_generated`
:   For instances, generated coordinate from instancer object.

`geom:dupli_uv`
:   For instances, UV coordinate from instancer object.

`geom:trianglevertices`
:   Three vertex coordinates of the triangle.

`geom:numpolyvertices`
:   Number of vertices in the polygon (always returns three currently).

`geom:polyvertices`
:   Vertex coordinates array of the polygon (always three vertices currently).

`geom:name`
:   Name of the object.

`geom:is_smooth`
:   Is mesh face smooth or flat shaded.

`geom:is_curve`
:   Is object a curve or not.

`geom:curve_intercept`
:   0..1 coordinate for point along the curve, from root to tip.

`geom:curve_thickness`
:   Thickness of the curve in object space.

`geom:curve_length`
:   Length of the curve in object space.

`geom:curve_tangent_normal`
:   Tangent Normal of the strand.

`geom:is_point`
:   Is point in a point cloud or not.

`geom:point_radius`
:   Radius of point in point cloud.

`geom:point_position`
:   Center position of point in point cloud.

`geom:point_random`
:   Random number, different for every point in point cloud.

`path:ray_length`
:   Ray distance since last hit.

`object:random`
:   Random number, different for every object instance.

`object:index`
:   Object unique instance index.

`object:location`
:   Object location.

`material:index`
:   Material unique index number.

`particle:index`
:   Particle unique instance number.

`particle:age`
:   Particle age in frames.

`particle:lifetime`
:   Total lifespan of particle in frames.

`particle:location`
:   Location of the particle.

`particle:size`
:   Size of the particle.

`particle:velocity`
:   Velocity of the particle.

`particle:angular_velocity`
:   Angular velocity of the particle.
user: Provide the full official documentation entry for Limited Dissolve, preserving all code examples.

assistant: This tool can simplify your mesh by dissolving vertices and edges separating flat regions.

|  |  |
| --- | --- |
| ../../../../_images/modeling_meshes_editing_mesh_delete_limited-dissolve-before.png   Original mesh. | ../../../../_images/modeling_meshes_editing_mesh_delete_limited-dissolve-after.png   Result of Limited Dissolve. |

Max Angle
:   Reduces detail on planar faces and linear edges with an adjustable angle threshold.

All Boundaries
:   Always dissolve vertices that have two edge users at boundaries.

Delimit
:   Prevent faces from joining when they don’t share certain properties (material for e.g.).
user: How do I use References in Blender? Include parameters, examples, warnings and best practices.

assistant: |  |  |
| --- | --- |
| - [`Curves.position_data`](bpy.types.Curves.html#bpy.types.Curves.position_data "bpy.types.Curves.position_data") | - [`FloatVectorAttribute.data`](bpy.types.FloatVectorAttribute.html#bpy.types.FloatVectorAttribute.data "bpy.types.FloatVectorAttribute.data") |
user: How do I use Arrange/Align Islands in Blender? Include parameters, examples, warnings and best practices.

assistant: Arranges the selected UV islands along a straight line on the UV grid.
This operator can align islands horizontally or vertically, with customizable
starting positions, alignment reference, sorting order, and spacing.

This is useful for organizing UV layouts, aligning modular texture pieces, or
arranging UDIM tiles consistently.

Initial Position
:   Determines the reference point used to calculate the initial alignment.

    Bounding Box:
    :   Uses the bounding boxes of the selected islands.

    UV Grid:
    :   Aligns islands relative to the UV grid origin (0-1 UV tile).

    Active UDIM:
    :   Aligns islands based on the active UDIM tile.

    2D Cursor:
    :   Uses the current position of the 2D cursor as the origin.

Axis
:   The axis along which to arrange UV islands.

    X:
    :   Align UV islands horizontally.

    Y:
    :   Align UV islands vertically.

Align
:   Determines how the islands are aligned relative to each other.

    Min:
    :   Aligns islands by their minimum boundary.

    Max:
    :   Aligns islands by their maximum boundary.

    Center:
    :   Aligns islands by the center of the largest island.

    None:
    :   Keeps each island’s original offset and alignment.

Order
:   Specifies how to order the islands along the chosen axis.

    Largest to Smallest:
    :   Sorts islands by area, from largest to smallest.

    Smallest to Largest:
    :   Sorts islands by area, from smallest to largest.

    Fixed:
    :   Keeps the current selection order.

Margin
:   Defines the space between arranged islands, measured in UV units.
user: What is Interactive Mirror and how is it used in Blender Python scripting?

assistant: The *Mirror* operator flips the selected elements across a chosen axis.
Mirroring is equivalent to scaling the selection by -1 along the selected axis,
but it offers a faster and more direct workflow.

The mirror is relative to the [Transformation Orientation](../../../../editors/3dview/controls/orientation.html)
and [Pivot Point](../../../../editors/3dview/controls/pivot_point/index.html)
This gives full control over how and where the mirroring occurs, for example:

- Position the pivot point wherever you want the center of symmetry.
- Choose a transformation orientation (e.g. *Global*, *Local*, *Normal*).
- Select an axis (X, Y, or Z) along which to mirror.

### Usage

To mirror along a specific axis:

- Press `Ctrl`-`M`, then `X`, `Y`, or `Z` to select an axis.
- Pressing the same key again toggles the orientation between the active
  [Transform Orientation](../../../../editors/3dview/controls/orientation.html) and the global orientation.
- Hold `MMB` and drag to mirror interactively in the desired direction.

### Properties

Orientation
:   The [Transform Orientation](../../../../editors/3dview/controls/orientation.html) used to align the X, Y, and Z axes.

Constraint Axis
:   The axis (or axes) to mirror across.
    For example, mirroring across the X axis flips the selection horizontally.
user: Describe Inputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Color
:   Tint for AO output color.

Distance
:   Distance up to which other objects are considered to occlude the shading point.

Normal
:   Normal used for ambient occlusion; if nothing is connected the default shading normal is used.
user: Describe Toolbar Selection Tools from the Blender manual or Python API, including usage steps and snippets.

assistant: All the Toolbar selection tools behave the same when clicking an item: they select it
(and deselect any previously selected items). If you hold `Shift` while clicking,
the item will be added to the selection (if it’s not selected) or removed from the selection
(if it is selected).

What makes the tools different is what happens when you drag.

### Tweak

Dragging an item will move it around.

### Select Box

Dragging will create a rectangle, and select all the items that are partially or completely inside it
once you release. (Any other items will be deselected.)

Holding `Shift` while dragging will add the items to the selection.
Holding `Ctrl` will remove them.

While dragging, you can additionally hold `Spacebar` to move the rectangle around with the mouse.

Select Box example (Edit Mode).

|  |  |  |
| --- | --- | --- |
| ../_images/interface_selecting_border-select1.png   Start. | ../_images/interface_selecting_border-select2.png   Selecting vertices. | ../_images/interface_selecting_border-select3.png   Complete. |

### Select Circle

Dragging will select all the items which the circle passed over.
Items which you didn’t pass over will be deselected.

Holding `Shift` while dragging will add the items to the selection.
Holding `Ctrl` will remove them.

You can change the radius of the circle in the tool settings (which can be found
in the area header, the Tool tab of the Sidebar `N`, or the Active Tool tab
of the [Properties editor](../editors/properties_editor.xhtml)).

Select Circle example (Edit Mode).

|  |  |  |
| --- | --- | --- |
| ../_images/interface_selecting_circle-select1.png   Start. | ../_images/interface_selecting_circle-select2.png   Selecting vertices. | ../_images/interface_selecting_circle-select3.png   Complete. |

### Select Lasso

Dragging will create a freeform shape, and select all the items inside it once you release.
(Any other items will be deselected.)

Holding `Shift` while dragging will add the items to the selection.
Holding `Ctrl` will remove them.

While dragging, you can additionally hold `Spacebar` to move the shape around with the mouse.

Select Lasso example (Edit Mode).

|  |  |  |
| --- | --- | --- |
| ../_images/interface_selecting_lasso-select1.png   Start. | ../_images/interface_selecting_lasso-select2.png   Selecting vertices. | ../_images/interface_selecting_lasso-select3.png   Complete. |

### Selection Modes

Each of the Toolbar selection tools has a mode to configure
how it interacts with existing selections.
Note that not every tool supports all of these modes.

Set
:   Sets a new selection (the previous selection is discarded).
    This is the default.

Extend
:   Adds newly selected items to the existing selection.

Subtract
:   Removes newly selected items from the existing selection.

Invert `Ctrl`-`I`
:   Inverts the selection (unselected items become selected and vice versa).

Intersect
:   Selects items that intersect with the existing selection.
user: Provide the full official documentation entry for Updating Extensions, preserving all code examples.

assistant: You need to manually check for available updates.
Once an update is found, Blender will let you update any of the available extensions.

The current available version of an extension on the repository will always be considered the latest version.
user: Explain References in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`PathCompareCollection.new`](bpy.types.PathCompareCollection.html#bpy.types.PathCompareCollection.new "bpy.types.PathCompareCollection.new") - [`PathCompareCollection.remove`](bpy.types.PathCompareCollection.html#bpy.types.PathCompareCollection.remove "bpy.types.PathCompareCollection.remove") | - [`Preferences.autoexec_paths`](bpy.types.Preferences.html#bpy.types.Preferences.autoexec_paths "bpy.types.Preferences.autoexec_paths") |
user: What is Action Track and how is it used in Blender Python scripting?

assistant: The topmost track with the orange header holds the action that’s being edited. Normally this is the
object’s active action, but if you select a strip and press `Tab` to enter Tweak Mode,
you can temporarily make that one editable instead –
in the [Action Editor](../dope_sheet/modes/action.html)
or the [Graph Editor](../graph_editor/introduction.html), for example.

The Action Track has one of the following buttons:

Push Down Action
:   Not available in Tweak Mode. Creates a new track below the Action Track and moves the active action
    into it as a strip, leaving the Action Track empty. (If you create a keyframe after this,
    Blender will automatically create a new active action to hold it.)

    [image reference removed]

    Push Down Action button.

Pin
:   Only available in Tweak Mode. When unchecked, the action’s keyframes are shown at their original
    time points, rather than their new time points resulting from the strip being moved and scaled.

    [image reference removed]

    Strip at its original time point.

    [image reference removed]

    Strip moved. Notice that the keyframes are now shown to start at frame 20, which is also
    how the animation will behave. Within the action, however, they still start at frame 1.

    [image reference removed]

    After unchecking the Pin icon, the keyframes are shown at their original time points.