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

assistant: # CompositorNodeColorSpill(CompositorNode)

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

*class* bpy.types.CompositorNodeColorSpill(*CompositorNode*)
:   Remove colors from a blue or green screen, by reducing one RGB channel compared to the others

    *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")

    update()

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

assistant: # NodeClosureInputItems(bpy_struct)

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

*class* bpy.types.NodeClosureInputItems(*bpy_struct*)
:   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:
        :   [`NodeClosureInputItem`](bpy.types.NodeClosureInputItem.html#bpy.types.NodeClosureInputItem "bpy.types.NodeClosureInputItem")

    remove(*item*)
    :   Remove an item

        Parameters:
        :   **item** ([`NodeClosureInputItem`](bpy.types.NodeClosureInputItem.html#bpy.types.NodeClosureInputItem "bpy.types.NodeClosureInputItem"), (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: Explain References in complete detail according to the official Blender documentation.

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: Give a detailed overview of Intersect (Knife): syntax, arguments, return values, common patterns.

assistant: # Intersect (Knife)

The Intersect tool lets you cut intersections into geometry.
It is a bit like the Boolean tool, but, does not calculate interior/exterior geometry.
Faces are split along the intersections, leaving new edges selected.

Source
:   Self Intersect:
    :   Operate on the overlapping geometry of the mesh.

    Selected/Unselected:
    :   Operate between the selected and unselected geometry.

Separate Mode
:   All:
    :   Splits the geometry at the new edge.

    Cut:
    :   Keep each side of the intersection separate without splitting the faces in half.

    Merge:
    :   Merge all the geometry from the intersection.

Solver
:   Algorithm used to calculate the intersections.

    Float:
    :   Uses a simple solver which offers the good performance;
        however, this solver lacks support for overlapping geometry.

        Merge Threshold
        :   Tolerance for close faces to be considered touching.
            It may be useful to increase this when some intersections aren’t detected that should be and
            when extra geometry is being created because edges aren’t detected as overlapping.

    Exact:
    :   Uses a complex solver which offers the best results and has full
        support for overlapping geometry; however, this solver is much slower.
user: How do I use Undo History in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

The Undo History menu.

There is also an Undo History of the last actions taken, recorded by Blender.

The top of the list corresponds to the most recent actions.
A small icon of a dot next to one of the entries indicates the current status.
Rolling back actions using the *Undo History* feature will take you back to
the action you choose. Much like how you can alternate between going backward in
time with *Undo* and then forward with *Redo*,
you can hop around on the Undo timeline as much as you want as long as you do not make a new change.
Once you do make a new change, the Undo History is truncated at that point.
Selecting one of the entries in the list takes the current status to that position.
user: How do I use Requirements in Blender? Include parameters, examples, warnings and best practices.

assistant: - Wheels must be bundled unmodified from [Python’s package index](https://pypi.org).
- Wheels must include their dependencies.
- Wheels filenames must match Python’s binary distribution specification:
  [see docs](https://packaging.python.org/en/latest/specifications/binary-distribution-format/#file-name-convention).
  *Wheels downloaded from Python’s package index will follow this convention.*
- Use forward slashes as path separators when listing them on the
  [manifest](getting_started.xhtml#extensions-manifest).
user: Give a detailed overview of Example: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

The above example generates a pyramid with a configurable number of levels.
Each iteration creates a cube, brings it into position, and
[joins](../geometry/join_geometry.xhtml) it with the result of
the previous iteration.
user: How do I use Python Wheels in Blender? Include parameters, examples, warnings and best practices.

assistant: # Python Wheels

[Python wheels](https://pythonwheels.com/) (`*.whl`) are the standard way of distributing Python modules.
They are supported in Blender to make self-contained Python [Extensions](index.html#extensions-index).
user: Explain Fire in complete detail according to the official Blender documentation.

assistant: Reaction Speed
:   How fast fuel burns. Larger values result in smaller flames (fuel burns before it can go very far),
    smaller values result in larger flames (fuel has time to flow farther before being fully consumed).

Flame Smoke
:   Amount of extra smoke created automatically to simulate burnt fuel. This smoke is best visible
    when using a “Fire + Smoke” [Flow Object](../flow.xhtml#bpy-types-fluidflowsettings-flow-type).

Vorticity
:   Vorticity for flames in addition to the global fluid
    [Vorticity](#bpy-types-fluiddomainsettings-vorticity).

Temperature Maximum
:   Maximum temperature of flames. Larger values result in faster rising flames.

Minimum
:   Minimum temperature of flames. Larger values result in faster rising flames.

Smoke Color
:   Color of smoke emitted from burning fuel.
user: How do I use Hotkeys in Blender? Include parameters, examples, warnings and best practices.

assistant: Free-Align Toggle
:   Hold `LeftCtrl` while dragging a handle to switch between `Free` and `Align` handle types.
    Can be used to create sharp corners along the curve.

Move Entire Point
:   Hold `LeftAlt` while dragging a handle to move the entire point.

Snap Handle Angle
:   Hold `LeftShift` while dragging a handle to limit the movement of the handle to multiples 45 degrees,
    so the handle can only be vertical, horizontal or diagonal.
user: Describe Interface from the Blender manual or Python API, including usage steps and snippets.

assistant: ### View Menu

Area
:   Area controls. See the [user interface](../interface/window_system/areas.html)
    documentation for more information.

### Info Menu

Select All `A`
:   Selects all entries.

Deselect All `Alt`-`A`
:   Deselects all entries.

Invert Selection `Ctrl`-`I`
:   Selects non-selected entries and deselects selected ones.

Toggle Selection
:   Selects all entries if there are currently no selected ones,
    and deselects them otherwise.

Box Select `B`
:   Lets you drag a box and adds the entries that overlap it to the selection.

Delete `X`, `Delete`
:   Removes the selected entries from the log.

Copy `Ctrl`-`C`
:   Copies the selected entries to the clipboard.
user: Provide the full official documentation entry for GeometryNodeSortElements(GeometryNode), preserving all code examples.

assistant: # GeometryNodeSortElements(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.GeometryNodeSortElements(*GeometryNode*)
:   Rearrange geometry elements, changing their indices

    domain
    :   - `POINT`
          Point – Attribute on point.
        - `EDGE`
          Edge – Attribute on mesh edge.
        - `FACE`
          Face – Attribute on mesh faces.
        - `CURVE`
          Spline – Attribute on spline.
        - `INSTANCE`
          Instance – Attribute on instance.

        Type:
        :   enum in [`'POINT'`, `'EDGE'`, `'FACE'`, `'CURVE'`, `'INSTANCE'`], default `'POINT'`

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

assistant: |  |  |
| --- | --- |
| - [`Palette.colors`](bpy.types.Palette.html#bpy.types.Palette.colors "bpy.types.Palette.colors") - [`PaletteColors.active`](bpy.types.PaletteColors.html#bpy.types.PaletteColors.active "bpy.types.PaletteColors.active") | - [`PaletteColors.new`](bpy.types.PaletteColors.html#bpy.types.PaletteColors.new "bpy.types.PaletteColors.new") - [`PaletteColors.remove`](bpy.types.PaletteColors.html#bpy.types.PaletteColors.remove "bpy.types.PaletteColors.remove") |
user: Give a detailed overview of Select Random: syntax, arguments, return values, common patterns.

assistant: Randomly selects unselected points or strokes.

Ratio
:   The likelihood of an unselected elements being selected.
    Note that, this is not the percentage amount of elements that will be selected.

Random Seed
:   [Seed](../../../glossary/index.html#term-Seed) used by the pseudo-random number generator.

Action
:   Selection or deselection of elements.
user: What is Info Operators and how is it used in Blender Python scripting?

assistant: # Info Operators

bpy.ops.info.report_copy()
:   Copy selected reports to clipboard

bpy.ops.info.report_delete()
:   Delete selected reports

bpy.ops.info.report_replay()
:   Replay selected reports

bpy.ops.info.reports_display_update()
:   Update the display of reports in Blender UI (internal use)

bpy.ops.info.select_all(*\**, *action='SELECT'*)
:   Change selection of all visible reports

    Parameters:
    :   **action** (enum in [`'TOGGLE'`, `'SELECT'`, `'DESELECT'`, `'INVERT'`], (optional)) –

        Action, Selection action to execute

        - `TOGGLE`
          Toggle – Toggle selection for all elements.
        - `SELECT`
          Select – Select all elements.
        - `DESELECT`
          Deselect – Deselect all elements.
        - `INVERT`
          Invert – Invert selection of all elements.

bpy.ops.info.select_box(*\**, *xmin=0*, *xmax=0*, *ymin=0*, *ymax=0*, *wait_for_input=True*, *mode='SET'*)
:   Toggle box selection

    Parameters:
    :   - **xmin** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – X Min
        - **xmax** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – X Max
        - **ymin** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – Y Min
        - **ymax** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – Y Max
        - **wait_for_input** (*boolean**,* *(**optional**)*) – Wait for Input
        - **mode** (enum in [`'SET'`, `'ADD'`, `'SUB'`], (optional)) –

          Mode

          - `SET`
            Set – Set a new selection.
          - `ADD`
            Extend – Extend existing selection.
          - `SUB`
            Subtract – Subtract existing selection.

bpy.ops.info.select_pick(*\**, *report_index=0*, *extend=False*)
:   Select reports by index

    Parameters:
    :   - **report_index** (*int in* *[**0**,* *inf**]**,* *(**optional**)*) – Report, Index of the report
        - **extend** (*boolean**,* *(**optional**)*) – Extend, Extend report selection
user: Provide the full official documentation entry for GeometryNodeObjectInfo(GeometryNode), preserving all code examples.

assistant: # GeometryNodeObjectInfo(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.GeometryNodeObjectInfo(*GeometryNode*)
:   Retrieve information from an object

    transform_space
    :   The transformation of the vector and geometry outputs

        - `ORIGINAL`
          Original – Output the geometry relative to the input object transform, and the location, rotation and scale relative to the world origin.
        - `RELATIVE`
          Relative – Bring the input object geometry, location, rotation and scale into the modified object, maintaining the relative position between the two objects in the scene.

        Type:
        :   enum in [`'ORIGINAL'`, `'RELATIVE'`], default `'ORIGINAL'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Points to SDF Grid

[image reference removed]

The *Points to SDF Grid* node generates a Signed Distance Field (SDF)\*grid
from a set of input points. Each voxel in the resulting grid stores the
shortest signed distance to the nearest point, allowing points to be
represented as smooth, volumetric shapes.

Positive values represent distances outside the influence of the points,
negative values represent distances inside, and zero corresponds to the surface
of the generated implicit sphere around each point.

This node is useful for constructing volumetric fields or collision volumes
from particles, instances, or procedurally generated point clouds.
user: How do I use Introduction in Blender? Include parameters, examples, warnings and best practices.

assistant: # Introduction

The Workbench Engine is a render engine optimized for fast rendering during modeling and animation preview.
It is not intended to be a render engine that will render final images for a project.
Its primary task is to display a scene in the 3D Viewport when it is being worked on.

By default the 3D Viewport uses Workbench to shade and light objects.
Unlike other render engines such as EEVEE or Cycles, the Workbench engine does not use shader nodes.
Instead, shading settings can be tweaked in the 3D Viewport’s [Shading popover](../../editors/3dview/display/shading.xhtml)
or the render properties when doing final renders.

Workbench supports assigning random colors to objects to make each visually distinct.
Other coloring mechanisms also exist, including; materials, Color Attributes, and textures.

Workbench also has an X-ray mode to see through objects,
along with cavity and shadow shading to help display details in objects.
Workbench supports several lighting mechanisms including studio lighting and MatCaps.

The image below is an excellent example of the Workbench engine’s capabilities
using random coloring and shadows to show the details of the model.

[image reference removed]

Workbench example.
user: Provide the full official documentation entry for Pose Breakdowner, preserving all code examples.

assistant: Creates a suitable breakdown pose on the current frame.

The Breakdowner tool can be constrained to work on specific transforms and axes,
by pressing the following keys while the tool is active:

- `G`, `R`, `S`: move, rotate, scale
- `B`: Bendy bones
- `C`: custom properties
- `X`, `Y`, `Z`: to the corresponding axes
user: Describe Node Editor from the Blender manual or Python API, including usage steps and snippets.

assistant: Auto-Offset
:   Automatically offset the following or previous nodes in a chain when inserting a new node.
    See [Auto-Offset](../../interface/controls/nodes/arranging.xhtml#editors-nodes-usage-auto-offset) for more information.

    Auto-offset Margin
    :   Margin to use for [offsetting nodes](../../interface/controls/nodes/arranging.xhtml#editors-nodes-usage-auto-offset).
user: Explain Action Editor in complete detail according to the official Blender documentation.

assistant: # Action Editor

While the *Dope Sheet* mode lets you work with keyframes of all animation in the
scene at the same time, the *Action Editor* mode focuses on the keyframes inside
a single [action](../../../animation/actions.xhtml).

[image reference removed]

The Action Editor.

Actions are Blender’s container for animation data. Objects and other animatable
data-blocks reference actions to get animated by the animation data inside.
Data-blocks can reference one action as their *active action* and additional
actions through [Nonlinear Animation tracks](../../nla/tracks.xhtml).
user: How do I use Property Flag Enum Items in Blender? Include parameters, examples, warnings and best practices.

assistant: # Property Flag Enum Items

READ_ONLY:
:   Read Only.

    When set, the property cannot be edited.

HIDDEN:
:   Hidden.

    For operators: hide from places in the user interface where Blender would add the property automatically, like Adjust Last Operation. Also this property is not written to presets..

SKIP_SAVE:
:   Skip Save.

    For operators: the value of this property will not be remembered between invocations of the operator; instead, each invocation will start by using the default value. Also this property is not written to presets..

ANIMATABLE:
:   Animatable.

LIBRARY_EDITABLE:
:   Library Editable.

    This property can be edited, even when it is used on linked data (which normally is read-only). Note that edits to the property will not be saved to the blend file..

ENUM_FLAG:
:   Enum Flag.
user: Explain Brush in complete detail according to the official Blender documentation.

assistant: # Brush

The Brush type makes object apply paint on the canvas.

[image reference removed]

Brush main panel.

From the first brush panel you can define how brush affects canvas color surfaces.

Paint Color
:   Color of the paint.

Alpha
:   Defines brush alpha or visibility. Final wetness is also affected by alpha.

Wetness
:   Defines how “wet” new paint is. Wetness is visible on “Paint” surface “wetmap”.
    Speed of “Drip” and “Spread” effects also depends on how wet the paint is.

Absolute Alpha
:   This setting limits brush alpha influence.
    Without it, brush is “added” on surface over and over again each frame,
    increasing alpha and therefore influence of brush on canvas. In many cases however,
    it is preferred to not increase brush alpha if it already is on brushes level.

Erase Paint
:   Makes brush dissolve existing paint instead of adding it.
user: Give a detailed overview of FModifierEnvelope(FModifier): syntax, arguments, return values, common patterns.

assistant: # FModifierEnvelope(FModifier)

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

*class* bpy.types.FModifierEnvelope(*FModifier*)
:   Scale the values of the modified F-Curve

    control_points
    :   Control points defining the shape of the envelope

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

    default_max
    :   Upper distance from Reference Value for 1:1 default influence

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

    default_min
    :   Lower distance from Reference Value for 1:1 default influence

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

    reference_value
    :   Value that envelope’s influence is centered around / based on

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: [image reference removed]

Hue/Saturation Modifier.

Mode
:   The color transformation will be applied on the stroke and/or the fill color.

    Stroke & Fill, Stroke, Fill

Hue
:   Specifies the hue rotation of the image. 360° are mapped to (0 to 1).
    The hue shifts of 0 (-180°) and 1 (+180°) have the same result.

Saturation
:   A saturation of 0 removes hues from the image, resulting in a grayscale image.
    A shift greater than 1.0 increases saturation.

Value
:   Value is the overall brightness of the image.
    De/Increasing values shift an image darker/lighter.

### Influence

See [Influence Filters](../introduction.xhtml#grease-pencil-modifier-influence-filters).
user: Describe BlendDataCurves(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # BlendDataCurves(bpy_struct)

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

*class* bpy.types.BlendDataCurves(*bpy_struct*)
:   Collection of curves

    new(*name*, *type*)
    :   Add a new curve to the main database

        Parameters:
        :   - **name** (*string**,* *(**never None**)*) – New name for the data-block
            - **type** (enum in [Object Type Curve Items](bpy_types_enum_items/object_type_curve_items.html#rna-enum-object-type-curve-items)) – Type, The type of curve to add

        Returns:
        :   New curve data-block

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

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

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

    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: How do I use Importing & Exporting Files in Blender? Include parameters, examples, warnings and best practices.

assistant: # Importing & Exporting Files

Sometimes you may want to utilize files that either came from other 2D or 3D software,
or you may want to use the things you have made in Blender and edit them in other software.
Luckily, Blender offers a wide range of file formats (e.g. ABC, USD, OBJ, FBX, PLY, STL, etc.)
that can be used to import and export.

Popular formats are enabled by default, other formats are also supported and distributed with Blender,
these can be enabled in the Preferences through the use of [Add-ons](../../editors/preferences/extensions.html).
user: Give a detailed overview of Options: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Wave Distortion Effect.

Orientation
:   Sets horizontal or vertical direction for the waves.

Amplitude
:   Controls the strength and the depth of the wave.

Period
:   Controls the wave period. The time it takes to complete one cycle.

Phase
:   Shifts the wave pattern over the Object.
user: Show practical ways to work with The Current File Asset Library in a Blender add-on or script – include code.

assistant: To help with the management of assets in the current blend-file, you can set the Asset Browser
to show the **Current File asset library**. This always shows the assets in the current file,
even when the current file is not saved in an asset library.
This also makes it possible to create assets and use them in the same file,
for small single-file projects.

When the current blend-file is part of an asset library, you can also see its assets in that library, of course.
The assets that are in the current file are marked with an icon; only those are editable.
user: Show practical ways to work with Preset Management in a Blender add-on or script – include code.

assistant: Theme Presets
:   Select the Theme from a list of predefined Themes.

Add Theme
:   Adds a custom theme to the preset list.

Remove Theme
:   Removes a custom theme from the preset list.

Save Theme
:   Save a custom theme in the preset list.

    This will save the theme to an XML file in the `./scripts/presets/interface_theme/` subdirectory of one of
    the [configuration directories](../../advanced/blender_directory_layout.xhtml).

Install
:   Load and apply a Blender XML theme file and add it to the list of theme presets.

Reset
:   Reset to the default theme colors.

Blender comes bundled with a small selection of themes.

[image reference removed]

This is an example of the theme *Blender Light*.
user: Show practical ways to work with ShaderNodeWireframe(ShaderNode) in a Blender add-on or script – include code.

assistant: # ShaderNodeWireframe(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.ShaderNodeWireframe(*ShaderNode*)
:   Retrieve the edges of an object as it appears to Cycles.
    Note: as meshes are triangulated before being processed by Cycles, topology will always appear triangulated

    use_pixel_size
    :   Use screen pixel size instead of world units

        Type:
        :   boolean, default False

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

assistant: There are some important visualization features in the 3D Viewport that can help animation.

When the current frame is a keyframe for the current active object, the name of this object
(shown in the upper left corner of the 3D Viewport) turns yellow.

[image reference removed]

Top: Current frame is a keyframe for Cube. Bottom: Current frame isn’t a keyframe.
user: Describe MaskStripModifier(StripModifier) from the Blender manual or Python API, including usage steps and snippets.

assistant: # MaskStripModifier(StripModifier)

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

*class* bpy.types.MaskStripModifier(*StripModifier*)
:   Mask modifier for sequence strip

    *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 Virtual Machines, preserving all code examples.

assistant: Running Blender inside a virtual machine is known to have problems when OpenGL drawing calls are forwarded to the host
operating system.

To resolve this, configure the system to use PCI passthrough.

Some VM hosts may require turning on GPU paravirtualization. Some GPU vendors restrict this function to higher-priced
cards or models.

# Information

To find out which graphics card and driver Blender is using, use Help ‣ Save System Info inside
Blender. The OpenGL section will have information about your graphics card, vendor and driver version.
user: What is Usage and how is it used in Blender Python scripting?

assistant: The tool is interactive and has two steps:

1. Pre-Visualizing the Cut

   After the tool is activated, move the cursor over a desired edge.
   The cut to be made is marked with a magenta colored line as you move the mouse over the various edges.
   The to be created edge loop stops at the poles (triangles and n-gons) where the existing face loop terminates.
2. Perform the Cut

   Once the desired location of the new edge loop is found, the edge loop can be created via `LMB`.

|  |  |  |
| --- | --- | --- |
| ../../../_images/modeling_meshes_tools_loop_before.png   Mesh before inserting edge loop. | ../../../_images/modeling_meshes_tools_loop_preview.png   Preview of edge loop location. | ../../../_images/modeling_meshes_tools_loop_placement.png   Interactive placement of edge loop between adjacent loops. |
user: What is Data Access (bpy.data) and how is it used in Blender Python scripting?

assistant: # Data Access (bpy.data)

This module is used for all Blender/Python access.

bpy.data.data
:   Access to Blender’s internal data

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

```
import bpy

# Print all objects.
for obj in bpy.data.objects:
    print(obj.name)

# Print all scene names in a list.
print(bpy.data.scenes.keys())

# Remove mesh Cube.
if "Cube" in bpy.data.meshes:
    mesh = bpy.data.meshes["Cube"]
    print("removing mesh", mesh)
    bpy.data.meshes.remove(mesh)

# Write images into a file next to the blend.
import os
with open(os.path.splitext(bpy.data.filepath)[0] + ".txt", 'w') as fs:
    for image in bpy.data.images:
        fs.write("{:s} {:d} x {:d}\n".format(image.filepath, image.size[0], image.size[1]))
```
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`CompositorNodeOutputFile.file_output_items`](bpy.types.CompositorNodeOutputFile.html#bpy.types.CompositorNodeOutputFile.file_output_items "bpy.types.CompositorNodeOutputFile.file_output_items") - [`NodeCompositorFileOutputItems.new`](bpy.types.NodeCompositorFileOutputItems.html#bpy.types.NodeCompositorFileOutputItems.new "bpy.types.NodeCompositorFileOutputItems.new") | - [`NodeCompositorFileOutputItems.remove`](bpy.types.NodeCompositorFileOutputItems.html#bpy.types.NodeCompositorFileOutputItems.remove "bpy.types.NodeCompositorFileOutputItems.remove") |
user: What is Inputs and how is it used in Blender Python scripting?

assistant: Grid
:   The input grid to optimize.

Mode
:   The pruning method used to simplify the grid structure:

    Inactive:
    :   Turns inactive voxels and tiles into inactive background tiles.
        This is the simplest mode and provides basic cleanup for grids with
        empty or unused regions.

    Threshold:
    :   Collapses regions where all voxels have approximately the same value and
        active state (within a given tolerance threshold) into background tiles.
        This is useful for fog or scalar grids where smooth variations may leave
        near-uniform areas that can be simplified.

    SDF:
    :   Specialized mode for signed distance field (SDF) grids.
        Replaces inactive tiles with inactive nodes, providing faster and more
        targeted pruning without the need for threshold comparison.
        This mode is efficient for narrow-band SDFs that contain large interior
        or exterior regions of constant sign.

Threshold Threshold
:   Voxels within a region are considered uniform if the difference between
    their values is less than this amount. Higher thresholds allow more
    aggressive simplification, while smaller values preserve finer details.
user: How do I use Set Face Set Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Set Face Set Node

[image reference removed]

The *Set Face Set* node controls which [face set](../../../../sculpt_paint/sculpting/introduction/visibility_masking_face_sets.xhtml#face-sets) that faces are in.

The input node for this data is the [Face Set Node](../read/face_set.xhtml).
user: Explain Tags and Translations in complete detail according to the official Blender documentation.

assistant: If you are planning to use a different set of [tags](../tags.xhtml#extensions-tags) than the ones used by
Blender Extensions Platform, remember to submit a pull request to
[tags.py](https://projects.blender.org/blender/blender/src/scripts/modules/_bpy_internal/extensions/tags.py).

This way they can be shown translated within Blender.
user: What is References and how is it used in Blender Python scripting?

assistant: |  |  |
| --- | --- |
| - [`ImageStrip.elements`](bpy.types.ImageStrip.html#bpy.types.ImageStrip.elements "bpy.types.ImageStrip.elements") - [`MovieStrip.elements`](bpy.types.MovieStrip.html#bpy.types.MovieStrip.elements "bpy.types.MovieStrip.elements") | - [`Strip.strip_elem_from_frame`](bpy.types.Strip.html#bpy.types.Strip.strip_elem_from_frame "bpy.types.Strip.strip_elem_from_frame") - [`StripElements.append`](bpy.types.StripElements.html#bpy.types.StripElements.append "bpy.types.StripElements.append") |
user: Describe Motionpath Display Type Items from the Blender manual or Python API, including usage steps and snippets.

assistant: # Motionpath Display Type Items

CURRENT_FRAME:
:   Around Frame.

    Display Paths of poses within a fixed number of frames around the current frame.

RANGE:
:   In Range.

    Display Paths of poses within specified range.
user: Give a detailed overview of Curl Hair Curves: syntax, arguments, return values, common patterns.

assistant: # Curl Hair Curves

The *Curl Hair Curves* node deforms existing hair curves into curls by wrapping them
around nearby guide curves.
It is useful for creating coiled, spiral, or wavy hair patterns and for adding stylized
variation or realism to a groom.
The curls can vary in radius, frequency, and start position, with optional random offsets
for natural variation.
user: How do I use GeometryNodeInputSceneTime(GeometryNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # GeometryNodeInputSceneTime(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.GeometryNodeInputSceneTime(*GeometryNode*)
:   Retrieve the current time in the scene’s animation in units of seconds or frames

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Name
:   By default, modifiers are named after their function, but this can be changed.

Mute
:   Click the checkbox in a modifier’s header to disable it.

Delete
:   Click the cross in a modifier’s header to delete it.

Influence
:   Lets you blend between the original curve and the modified one.

Restrict Frame Range
:   Start/End
    :   The frame on which the modifier’s effect starts/ends.

    Blend In/Out
    :   The number of frames, relative the start/end values above, it takes the modifier to fade in/out.
user: Give a detailed overview of Animation: syntax, arguments, return values, common patterns.

assistant: Masks can be animated with the shape keying system.
This can be useful when there are not enough good feature points to track in the footage,
or the mask is not based on footage.
Mask animation timing can be edited from the *Dope Sheet’s* [Mask Mode](../../editors/dope_sheet/modes/mask.xhtml#dope-sheet-mask).

Insert Shape Key `I`
:   Will insert a shape key for the active mask layer at the current frame.
    This works on the level of mask layers,
    so inserting a shape key will keyframe all the splines and points contained in it.

Clear Shape Key `Alt`-`I`
:   Will clear the shape key for the active mask layer at the current frame.

Feather Reset Animation
:   Resets the feather offset across all animated frames.

Re-Key Points of Selected Shapes
:   Re-interpolate selected points on across the range of keys selected in the *Dope Sheet*.
user: Explain Delete Geometry Node in complete detail according to the official Blender documentation.

assistant: # Delete Geometry Node

[image reference removed]

The *Delete Geometry* node removes the selected part of a geometry.
It behaves similarly to the [Delete](../../../meshes/editing/mesh/delete.xhtml#bpy-ops-mesh-delete) tool in Edit Mode.
The type of elements to be deleted can be specified with the domain and mode properties.
user: Describe References from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| - [`DynamicPaintCanvasSettings.canvas_surfaces`](bpy.types.DynamicPaintCanvasSettings.html#bpy.types.DynamicPaintCanvasSettings.canvas_surfaces "bpy.types.DynamicPaintCanvasSettings.canvas_surfaces") |  |