PGCRYPT/OpenBlender_Train huggingface dataset:
user: Describe ShaderNodeBlackbody(ShaderNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # ShaderNodeBlackbody(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.ShaderNodeBlackbody(*ShaderNode*)
:   Convert a blackbody temperature to an RGB value

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

assistant: Upgrading to the latest graphics drivers often solves problems. Newer drivers have bug fixes that help Blender
function correctly.

On macOS, graphics drivers are built into the operating system and the only way to get newer drivers is to upgrade
macOS as a whole to the latest version.
user: How do I use Operator Buttons in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

Operator button.

Operator buttons execute an [Operator](../../operators.xhtml)
which in summary execute an action when clicked with `LMB`.
Operator buttons may be an icon, text, or text with an icon.
user: How do I use UVProjectModifier(Modifier) in Blender? Include parameters, examples, warnings and best practices.

assistant: # UVProjectModifier(Modifier)

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

*class* bpy.types.UVProjectModifier(*Modifier*)
:   UV projection modifier to set UVs from a projector

    aspect_x
    :   Horizontal aspect ratio (only used for camera projectors)

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

    aspect_y
    :   Vertical aspect ratio (only used for camera projectors)

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

    projector_count
    :   Number of projectors to use

        Type:
        :   int in [1, 10], default 1

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

    scale_x
    :   Horizontal scale (only used for camera projectors)

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

    scale_y
    :   Vertical scale (only used for camera projectors)

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

    uv_layer
    :   UV map name

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

    *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 Extensions Command Line Arguments, preserving all code examples.

assistant: # Extensions Command Line Arguments

Command for managing Blender extensions.

options:
:   `-h, --help`
    :   show this help message and exit

subcommands:

> [Package Management](#package-management)
> :   list:
>     :   List all packages.
>
>     sync:
>     :   Synchronize with remote repositories.
>
>     update:
>     :   Upgrade any outdated packages.
>
>     install:
>     :   Install packages.
>
>     install-file:
>     :   Install package from file.
>
>     remove:
>     :   Remove packages.
>
> [Repository Management](#repository-management)
> :   repo-list:
>     :   List repositories.
>
>     repo-add:
>     :   Add repository.
>
>     repo-remove:
>     :   Remove repository.
>
> [Extension Creation](#extension-creation)
> :   build:
>     :   Build a package.
>
>     validate:
>     :   Validate a package.
>
>     server-generate:
>     :   Create a listing from all packages.
user: Show practical ways to work with Glare Node in a Blender add-on or script – include code.

assistant: # Glare Node

[image reference removed]

The *Glare Node* enhances bright areas of an image by adding effects such as lens flares, bloom, and fog glow.
It simulates the way light interacts with lenses, creating realistic or artistic highlights and reflections.
user: Explain Known Limitations in complete detail according to the official Blender documentation.

assistant: ### Duplicate Vertices

If a cut creates duplicate vertices, this is often caused by the clipping range
being too large. Try increasing the [Clip Start](../../../../editors/3dview/sidebar.xhtml#bpy-types-spaceview3d-clip-start)
to avoid this problem.
Also see [Depth Troubleshooting](../../../../troubleshooting/3d_view.xhtml#troubleshooting-depth) for details.
user: Describe Keyframe Types from the Blender manual or Python API, including usage steps and snippets.

assistant: For visually distinguishing regular keyframes from different animation events or
states (extremes, breakdowns, or other in-betweens)
there is the possibility of applying different colors on them for visualization.

[image reference removed]

Left: not selected; Right: selected.

Keyframe (white / yellow diamond)
:   Normal keyframe.

Breakdown (small cyan diamond)
:   Breakdown state. e.g. for transitions between key poses.

Moving Hold (dark gray / orange diamond)
:   A keyframe that adds a small amount of motion around a holding pose.
    In the Dope Sheet it will also display a bar between them.

Extreme (big pink diamond)
:   An ‘extreme’ state, or some other purpose as needed.

Jitter (tiny green diamond)
:   A filler or baked keyframe for keying on ones, or some other purpose as needed.

Generated (dark diamond)
:   A key generated by some tool, for example [Copy Global Transform: Fix to
    Camera](../../editors/3dview/animation/copy_global_transform.xhtml#bpy-types-toolsettings-anim-fix-to-cam). This keyframe type indicates
    to Blender and add-ons that it is safe to remove and re-generate them, so be
    careful when manually marking your hand-made animation with this type.
user: Explain LineStyleGeometryModifier_PerlinNoise1D(LineStyleGeometryModifier) in complete detail according to the official Blender documentation.

assistant: # LineStyleGeometryModifier_PerlinNoise1D(LineStyleGeometryModifier)

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

*class* bpy.types.LineStyleGeometryModifier_PerlinNoise1D(*LineStyleGeometryModifier*)
:   Add one-dimensional Perlin noise to stroke backbone geometry

    amplitude
    :   Amplitude of the Perlin noise

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

    angle
    :   Displacement direction

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

    expanded
    :   True if the modifier tab is expanded

        Type:
        :   boolean, default False

    frequency
    :   Frequency of the Perlin noise

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

    octaves
    :   Number of octaves (i.e., the amount of detail of the Perlin noise)

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

    seed
    :   Seed for random number generation (if negative, time is used as a seed instead)

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

    type
    :   Type of the modifier

        Type:
        :   enum in [Linestyle Geometry Modifier Type Items](bpy_types_enum_items/linestyle_geometry_modifier_type_items.html#rna-enum-linestyle-geometry-modifier-type-items), default `'2D_OFFSET'`, (readonly)

    use
    :   Enable or disable this modifier during stroke rendering

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # ViewerPathElem(bpy_struct)

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

subclasses —
[`EvaluateClosureNodeViewerPathElem`](bpy.types.EvaluateClosureNodeViewerPathElem.html#bpy.types.EvaluateClosureNodeViewerPathElem "bpy.types.EvaluateClosureNodeViewerPathElem"), [`ForeachGeometryElementZoneViewerPathElem`](bpy.types.ForeachGeometryElementZoneViewerPathElem.html#bpy.types.ForeachGeometryElementZoneViewerPathElem "bpy.types.ForeachGeometryElementZoneViewerPathElem"), [`GroupNodeViewerPathElem`](bpy.types.GroupNodeViewerPathElem.html#bpy.types.GroupNodeViewerPathElem "bpy.types.GroupNodeViewerPathElem"), [`IDViewerPathElem`](bpy.types.IDViewerPathElem.html#bpy.types.IDViewerPathElem "bpy.types.IDViewerPathElem"), [`ModifierViewerPathElem`](bpy.types.ModifierViewerPathElem.html#bpy.types.ModifierViewerPathElem "bpy.types.ModifierViewerPathElem"), [`RepeatZoneViewerPathElem`](bpy.types.RepeatZoneViewerPathElem.html#bpy.types.RepeatZoneViewerPathElem "bpy.types.RepeatZoneViewerPathElem"), [`SimulationZoneViewerPathElem`](bpy.types.SimulationZoneViewerPathElem.html#bpy.types.SimulationZoneViewerPathElem "bpy.types.SimulationZoneViewerPathElem"), [`ViewerNodeViewerPathElem`](bpy.types.ViewerNodeViewerPathElem.html#bpy.types.ViewerNodeViewerPathElem "bpy.types.ViewerNodeViewerPathElem")

*class* bpy.types.ViewerPathElem(*bpy_struct*)
:   Element of a viewer path

    type
    :   Type of the path element

        Type:
        :   enum in [`'ID'`, `'MODIFIER'`, `'GROUP_NODE'`, `'SIMULATION_ZONE'`, `'VIEWER_NODE'`, `'REPEAT_ZONE'`, `'FOREACH_GEOMETRY_ELEMENT_ZONE'`, `'EVALUATE_CLOSURE'`], default `'ID'`, (readonly)

    ui_name
    :   Name that can be displayed in the UI for this element

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   [type](#bpy.types.ViewerPathElem.type "bpy.types.ViewerPathElem.type")
user: Show practical ways to work with Axis Angle to Rotation Node in a Blender add-on or script – include code.

assistant: # Axis Angle to Rotation Node

[image reference removed]

The *Axis Angle to Rotation* node converts a [axis angle](../../../../advanced/appendices/rotations.html#axis-angle-mode) rotation to a standard rotation
value.
user: Explain Directory Layout in complete detail according to the official Blender documentation.

assistant: Sections should be generally structured as follows:

- `directory_name/`

  - `index.rst` (contains links to internal files)
  - `introduction.rst`
  - `section_1.rst`
  - `section_2.rst`

For example:

- `rendering/`

  - `index.rst`
  - `cycles/`

    - `index.rst`
    - `introduction.rst`
    - `materials/`

      - `index.rst`
      - `introduction.rst`
      - `volumes.rst`

The idea is to enclose all the content of a section inside of a folder. Ideally every section should have an
`index.rst` (containing the TOC for that section) and an `introduction.rst` (introducing) to the contents of the
section.

### Table of Contents

By default, a table of contents should show two levels of depth:

```
.. toctree::
   :maxdepth: 2

   introduction.rst
   perspective.rst
   depth_of_field.rst
```
user: Provide the full official documentation entry for Instance Transform Node, preserving all code examples.

assistant: # Instance Transform Node

[image reference removed]

The *Instance Transform* outputs the [Transformation Matrix](../../../glossary/index.xhtml#term-Transformation-Matrix) of each top-level instance in the
local space of the modifier object.

The [Instances](../instances.xhtml) page contains more information about geometry instances.
user: Explain CompositorNodeDistanceMatte(CompositorNode) in complete detail according to the official Blender documentation.

assistant: # CompositorNodeDistanceMatte(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.CompositorNodeDistanceMatte(*CompositorNode*)
:   Create matte based on 3D distance between colors

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

assistant: [image reference removed]

Keyed Physics settings.

Loops
:   Sets the number of times the entire *Keys* list is repeated. Disabled if *Use Timing* is enabled.

Use Timing
:   Enabling this option allows you to specify the timing for each key independently,
    using the *Time* and *Duration* options.
    By default, the *Use Timing* option is deactivated, and the particles will pass through all keys
    for a time equal to its lifetime. A shorter lifetime means faster movement.
    The lifetime will be split equally between the keys,
    this may lead to varying particle speeds between the targets.
user: What is Placement and how is it used in Blender Python scripting?

assistant: If Backface Culling is not enabled, snapping the light probe plane to the planar surface
will effectively capture the underside of the surface.

You can manually move the light probe plane above the surface enough for it to not appear in the capture.
Alternatively you can disable the light probe visibility in the object visibility panel.
user: What is FunctionNodeHashValue(FunctionNode) and how is it used in Blender Python scripting?

assistant: # FunctionNodeHashValue(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.FunctionNodeHashValue(*FunctionNode*)
:   Generate a randomized integer using the given input value as a seed

    data_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 `'INT'`

    *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: Marble Type
:   Three settings for soft to more clearly defined *Marble*.

    Soft, Sharp, Sharper

Noise basis
:   Shape of wave to produce bands.

    Sine, Saw, Triangle

Noise Type
:   The noise function works with two methods.

    Soft, Hard

Size
:   The dimensions of the noise table.

Depth
:   The depth of the *Marble* calculation.
    A higher value results in greater calculation time, but also in finer details.

Turbulence
:   The turbulence of the sine bands.
user: Give a detailed overview of ShaderNodeVectorDisplacement(ShaderNode): syntax, arguments, return values, common patterns.

assistant: # ShaderNodeVectorDisplacement(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.ShaderNodeVectorDisplacement(*ShaderNode*)
:   Displace the surface along an arbitrary direction

    space
    :   Space of the input height

        - `TANGENT`
          Tangent Space – Tangent space vector displacement mapping.
        - `OBJECT`
          Object Space – Object space vector displacement mapping.
        - `WORLD`
          World Space – World space vector displacement mapping.

        Type:
        :   enum in [`'TANGENT'`, `'OBJECT'`, `'WORLD'`], default `'TANGENT'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Global Transform

Copy and paste object and bone transforms with ease.

When copying, the global ([World Space](../../../glossary/index.xhtml#term-World-Space)) transform is placed on the clipboard.
This can then be pasted onto any object or bone, at the current frame or at another one.

[image reference removed]

The figure on the right shows the main functionality of the Copy Global
Transform panel. The collapsed panels are described each in their own section
below.

Copy
:   Inspects the active Object (in Object mode) or Bone (in Pose mode) and places
    its current global transform onto the clipboard as a matrix.

Paste
:   Takes the copied global transform and applies it to the active Object or Bone.
    This is done by **adjusting its location, rotation, and scale properties**.

Mirrored
:   Same as ‘Paste’ above, but then mirrored relative to some other object or
    bone. This can be useful, for example, to copy the foot position of one foot
    to the other. See [Mirror](#copy-global-transform-mirror-options) below.

Paste to Selected Keys
:   Paste as described above and additionally use auto-keying to update one or
    more frames. The key selection is used to tell Blender *which frames* this
    should happen on; it does not influence which parts of the transform are
    keyed. *What* is keyed is determined by the active keying set.

Paste and Bake
:   Almost the same as *Paste to Selected Keys*. Instead of only pasting on the
    selected keys, *Paste and Bake* will paste & auto-key on every frame between
    the first and last selected keys.
user: Describe Properties from the Blender manual or Python API, including usage steps and snippets.

assistant: ### Import

Target
:   The motion capture data type.

    Armature:
    :   The bvh-file contains an animated rigged skeleton such as a walking motion capture.

    Object:
    :   The bvh-file contains a static (not animated) mesh object such as a character model.

#### Transform

Scale
:   Factor to increase the physical size of the BVH.

Rotation
:   Rotation order of the BVH.

Forward / Up
:   Since many applications use a different axis for pointing upwards, these are axis conversion for these settings,
    Forward and up axes – By mapping these to different axes you can convert rotations
    between applications default up and forward axes.

    Blender uses Y forward, Z up (since the front view looks along the +Y direction).
    For example, its common for applications to use Y as the up axis, in that case -Z forward, Y up is needed.

#### Animation

Start Frame
:   The start frame, in Blender, to start playback of the BVH animation.

Scale FPS
:   Scales the frame rate from the BVH file to the scene frame rate set in Blender,
    otherwise each BVH frame maps directly to a frame in Blender.

Loop
:   Cycles the animation playback.

Update Scene FPS
:   Set the scene’s frame rate to match the frame rate of the BVH file.

Update Scene Duration
:   Extend the scene’s duration to match the BVH’s duration.

### Export

#### Transform

Scale
:   Factor to increase the physical size of the BVH.

Rotation
:   Rotation order of the BVH.

Root Translation Only
:   Only write the translation animation channels for the root bone.

#### Animation

Start / End
:   Sets the range of animation to export to the BVH file.
user: Explain References in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`FreestyleLineStyle.alpha_modifiers`](bpy.types.FreestyleLineStyle.html#bpy.types.FreestyleLineStyle.alpha_modifiers "bpy.types.FreestyleLineStyle.alpha_modifiers") - [`LineStyleAlphaModifiers.new`](bpy.types.LineStyleAlphaModifiers.html#bpy.types.LineStyleAlphaModifiers.new "bpy.types.LineStyleAlphaModifiers.new") | - [`LineStyleAlphaModifiers.remove`](bpy.types.LineStyleAlphaModifiers.html#bpy.types.LineStyleAlphaModifiers.remove "bpy.types.LineStyleAlphaModifiers.remove") |
user: What is Recover and how is it used in Blender Python scripting?

assistant: ### Last Session

This will load the `quit.blend` file Blender automatically saved just before exiting.
This option enables you to recover your last work [session](../../glossary/index.html#term-Session) if, for example, you closed
Blender by accident.

### Auto Save

The *Auto Save* option allows you to recover the most recent automatically saved version of your file.
This is useful in the event of a crash or if you closed Blender without saving.

Selecting this option opens a file browser pointed to your system’s [Temporary Directory](../../advanced/blender_directory_layout.html#temp-dir).
Auto-saved files typically have a name such as `<filename>_autosave.blend` or a random identifier,
and use the `.blend` extension.

You can configure the autosave interval and behavior in the
[Auto Save Preferences](../../editors/preferences/save_load.html#bpy-types-preferencesfilepaths-use-auto-save-temporary-files).
user: Describe Outputs from the Blender manual or Python API, including usage steps and snippets.

assistant: X/Y
:   The marker’s X and Y location.

Speed
:   The velocity of the marker, measured in pixels per frame.
    This could be used to fake effects like motion blur by connecting it to the Vector Blur Node.
user: What is Flip Node and how is it used in Blender Python scripting?

assistant: # Flip Node

[image reference removed]

The *Flip* node flips the input image horizontally, vertically, or both, based on the inputs provided.

This node can be used to mirror an image or as part of a compositing setup that blends the original
image with a flipped version to achieve symmetry effects.
user: Describe Open Shading Language from the Blender manual or Python API, including usage steps and snippets.

assistant: If Open Shading Language is chosen as the rendering backend,
node shaders are translated to OSL code and then compiled and executed by the OSL runtime.
In the process it applies its own extensive set of optimizations, both at compile time and run-time.

Open Shading Language can optimize out Script nodes if their outputs are unused or constant,
even if their OSL shaders have side effects like debug tracing and message passing,
which may be confusing. For that reason message passing with `setmessage` and `getmessage`
should generally not be used for passing information forward in the graph;
explicitly passing information through sockets should be preferred.
user: How do I use Fly/Walk Navigation in Blender? Include parameters, examples, warnings and best practices.

assistant: # Fly/Walk Navigation

The standard navigation controls are sometimes limiting,
especially for large environments such as architectural models.
In these cases, it may be preferable to use first person controls instead,
where you can look around while “standing” in one place
rather than orbiting around a central viewpoint.

Blender offers two such alternative navigation methods: Flying and Walking.
You can initiate either method from the View ‣ Navigation
menu. You can also initiate your preferred one (configured
in the [Preferences](../../preferences/navigation.html))
by pressing `Shift`-`AccentGrave`.

[image reference removed]

View Navigation.

Common use cases for Fly/Walk include:

Navigating
:   This can be a quick way to navigate a large scene.

Positioning a camera
:   When activated from a camera view `Numpad0`,
    the camera will move along with you.

Recording camera movement
:   You can record the path you take by entering a camera view, enabling
    [Auto Keying](../../../animation/animation_editors.html#bpy-types-toolsettings-use-keyframe-insert-auto),
    starting animation playback, and finally activating Fly/Walk navigation.
    The path will be recorded as camera keyframes which can then be
    used for rendering.

    Animation playback can’t be controlled while Fly/Walk navigation is active,
    so when you’re done recording, you first need to exit the navigation
    with `LMB` before you can stop playback.
user: Describe In Edit Mode from the Blender manual or Python API, including usage steps and snippets.

assistant: When in Edit Mode, rotation and scaling happen around the centerpoint of
the active element, which is the element with a white outline.
That centerpoint remains in the same location while everything else
is transformed around it.

The image below illustrates rotation around the active vertex,
edge, and face. Each time, the active element rotates in place,
while the others “orbit” around it. In the case of vertices,
the active vertex is not changed at all, as a vertex on its own
is just a point that has no concept of rotation.

[image reference removed]

Left column: starting situation, right column: after rotation.
user: Describe Shortest Edge Paths Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Shortest Edge Paths Node

[image reference removed]

The *Shortest Edge Paths* node finds paths along mesh edges to a selection of end vertices.
The cost used to define “shortest” can be set to anything. By default there is a constant cost
for every edge, but a typical input would be the length of each edge.

The output is encoded with vertex indices, and is meant to be used on the vertex domain.
For each vertex, the *Next Vertex Index* output gives the index of the following vertex
in the path to the “closest” endpoint.

The node is implemented with [Dijkstra’s algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm).
user: Provide the full official documentation entry for Attribute Type With Auto Items, preserving all code examples.

assistant: # Attribute Type With Auto Items

AUTO:
:   Auto.

FLOAT:
:   Float.

    Floating-point value.

INT:
:   Integer.

    32-bit integer.

BOOLEAN:
:   Boolean.

    True or false.

FLOAT_VECTOR:
:   Vector.

    3D vector with floating-point values.

FLOAT_COLOR:
:   Color.

    RGBA color with 32-bit floating-point values.

QUATERNION:
:   Quaternion.

    Floating point quaternion rotation.

FLOAT4X4:
:   4x4 Matrix.

    Floating point matrix.

STRING:
:   String.

    Text string.

INT8:
:   8-Bit Integer.

    Smaller integer with a range from -128 to 127.

INT16_2D:
:   2D 16-Bit Integer Vector.

    16-bit signed integer vector.

INT32_2D:
:   2D Integer Vector.

    32-bit signed integer vector.

FLOAT2:
:   2D Vector.

    2D vector with floating-point values.

BYTE_COLOR:
:   Byte Color.

    RGBA color with 8-bit positive integer values.
user: Describe Example from the Blender manual or Python API, including usage steps and snippets.

assistant: The example below creates a cone at each vertex of a “cube,” aligned to the neighboring edge
that’s the most vertical.

First, we calculate a “verticality score” for each of the cube’s edges. To do this, we subtract the
positions of its vertices to get its direction vector, which we normalize and use to calculate
the dot product with the Z axis. The absolute value of that gives us a number between 0 and 1,
where 0 means fully horizontal and 1 means fully vertical.

Because the edges will be sorted by ascending weight, we set weight = 1 - verticality.
This way, the most vertical connected edge of each vertex will have the lowest weight
and come first in the list.

Next, in the point domain, we need to calculate the rotation of each cone.
By using the [Align Rotation to Vector Node](../../utilities/rotation/align_rotation_to_vector.html),
the problem gets simplified and we only need to calculate a direction vector.

The direction vector of each cone is the centerpoint of the most vertical neighboring edge
minus the position of the vertex. Finding that most vertical neighboring edge is where the
*Edges of Vertex* node comes in: for each vertex, it sorts the connected edges by their
weight and pick the first one (because the Sort Index is 0). Once we have the edge’s index,
we use the [Evaluate at Index Node](../../utilities/field/evaluate_at_index.html) to retrieve its
centerpoint.

With the rotations of the cones calculated, we use the
[Instance on Points Node](../../instances/instance_on_points.html) to create them.

[image reference removed]

Example node setup. (Right-click and choose “Open image in new tab” to see a larger version.)

[image reference removed]

The resulting geometry.
user: How do I use Controls in Blender? Include parameters, examples, warnings and best practices.

assistant: :   Adds a new stop between the selected stop and the one before it.
:   Deletes the selected color stop.

Tools
:   Contains more operators for the color ramp.

    Flip Color Ramp
    :   Flips the gradient, mirroring the positions of the stops.

    Distribute Stops from Left
    :   Distribute the stops so that every step has the same space to the right.
        This is mostly useful when used with Constant interpolation mode.

    Distribute Stops Evenly
    :   Distribute the stops so that all neighbors have the same space between them.

    Eyedropper `E`
    :   An [Eyedropper](../buttons/eyedropper.xhtml#ui-eyedropper) to sample a color or gradient from the interface to be used in the color ramp.

    Reset Color Ramp
    :   Resets the color ramp to its default state.

Color Mode
:   Selection of the [Color Model](../../../glossary/index.xhtml#term-Color-Model) used for interpolation.

    RGB:
    :   Blends color by mixing each color channel and combining.

    HSV/HSL:
    :   Blends colors by first converting to HSV or HSL, mixing, then combining again.
        This has the advantage of maintaining saturation between different hues,
        where RGB would de-saturate. This allows for a richer gradient.

Color Interpolation
:   The interpolation method to use across the ramp.

    RGB
    :   B-Spline:
        :   Uses a B-spline interpolation for the color stops.

        Cardinal:
        :   Uses a cardinal interpolation for the color stops.

        Linear:
        :   Uses a linear interpolation for the color stops.

        Ease:
        :   Uses an ease interpolation for the color stops.

        Constant:
        :   Uses a constant interpolation for the color stops.

    HSV/HSL
    :   Clockwise:
        :   Clockwise interpolation around the HSV/HSL wheel.

        Counter-Clockwise:
        :   Counterclockwise around the HSV/HSL wheel.

        Near:
        :   Nearest route around the wheel.

        Far:
        :   Furthest route around the wheel.

        [image reference removed]

        HSV and HSL interpolation options.

Active Color Stop
:   Index of the active color stop (shown as a dashed line).
    Offers an alternative way of selecting a stop in case it’s so close to others
    that it’s hard to select it directly.

Position
:   This slider controls the position of the selected color stop in the range.

Color
:   A [color field](../buttons/fields.xhtml) where you can
    specify the color and alpha of the selected stop.

### Shortcuts

- `LMB` (drag) moves color stops.
- `Ctrl`-`LMB` (click) adds a new color stop.
user: How do I use Cache in Blender? Include parameters, examples, warnings and best practices.

assistant: # Cache

The *Cache* is used to store preview frames in memory so they can be displayed much faster
during playback, rather than being re-rendered for each frame. This is especially useful for
maintaining smooth performance when editing or scrubbing through a sequence.

The total cache memory limit can be configured in the [System tab](../../../preferences/system.xhtml)
of the Preferences.
user: Show practical ways to work with Bpy.Types.Solidifymodifier in a Blender add-on or script – include code.

assistant: ly bpy_struct.is_property_set bpy_struct.items bpy_struct.keyframe_delete bpy_struct.keyframe_insert bpy_struct.keys bpy_struct.path_from_id bpy_struct.path_from_module bpy_struct.path_resolve bpy_struct.pop bpy_struct.property_overridable_library_set bpy_struct.property_unset bpy_struct.rna_ancestors bpy_struct.type_recast bpy_struct.values Modifier.bl_rna_get_subclass Modifier.bl_rna_get_subclass_py Next Sound(ID) Previous SoftBodySettings(bpy_struct) Copyright &#169; Blender Authors Made with Furo Report issue on this page On this page SolidifyModifier(Modifier) SolidifyModifier SolidifyModifier.bevel_convex SolidifyModifier.edge_crease_inner SolidifyModifier.edge_crease_outer SolidifyModifier.edge_crease_rim SolidifyModifier.invert_vertex_group SolidifyModifier.material_offset SolidifyModifier.material_offset_rim SolidifyModifier.nonmanifold_boundary_mode SolidifyModifier.nonmanifold_merge_threshold SolidifyModifier.nonmanifold_thickness_mode SolidifyModifier.offset SolidifyModifier.rim_vertex_group SolidifyModifier.shell_vertex_group SolidifyModifier.solidify_mode SolidifyModifier.thickness SolidifyModifier.thickness_clamp SolidifyModifier.thickness_vertex_group SolidifyModifier.use_even_offset SolidifyModifier.use_flat_faces SolidifyModifier.use_flip_normals SolidifyModifier.use_quality_normals SolidifyModifier.use_rim SolidifyModifier.use_rim_only SolidifyModifier.use_thickness_angle_clamp SolidifyModifier.vertex_group SolidifyModifier.bl_rna_get_subclass() SolidifyModifier.bl_rna_get_subclass_py() Inherited Properties Inherited Functions
user: Show practical ways to work with Outputs in a Blender add-on or script – include code.

assistant: Tip Selection
:   A boolean selection that is true only for the tip points of curves.
    This can be used to isolate operations that affect only the curve ends.

Tip Position
:   The position of each curve’s tip point in 3D space.
    Useful for determining the end location of curves, placing instances, or measuring curve length.

Tip Direction
:   A normalized vector representing the direction of the final segment of each curve,
    pointing toward the tip.
    This can be used for orienting instances or controlling effects based on curve direction.

Tip Index
:   The index of the tip point for each curve.
    This corresponds to the last point in the curve’s point list.
user: Explain Cryptomatte Node in complete detail according to the official Blender documentation.

assistant: # Cryptomatte Node

[image reference removed]

The Cryptomatte node uses a [Cryptomatte image](https://en.wikipedia.org/wiki/Cryptomatte)
to create a mask for one or more objects or materials. The input matte is typically generated by
Blender itself (see the [Cryptomatte render pass](../../../render/layers/passes.xhtml#render-layers-passes-cryptomatte)),
but can also come from other software that supports the standard.
user: How do I use CompositorNodeNormalize(CompositorNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # CompositorNodeNormalize(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.CompositorNodeNormalize(*CompositorNode*)
:   Map values to 0 to 1 range, based on the minimum and maximum pixel 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")

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

assistant: Vector
:   Vector to be rotated.

Center
:   Point to rotate around.

Axis
:   Axis to rotate around.

Angle
:   Angle to rotate the input vector by.

Rotation
:   When *Type* is set to *Euler*, rotate the input vector
    by these angles around the X, Y, then Z axes in that order.
user: How do I use Objects in Blender? Include parameters, examples, warnings and best practices.

assistant: ### New Objects

Link Materials To
:   To understand this option properly, you need to understand how Blender works with Objects.
    Almost everything in Blender is organized in a hierarchy of data-blocks.
    A data-block can be thought of as containers for certain pieces of information. For example,
    the Object data-block contains information about the Object’s location, rotation, and scale
    while the associated linked Object Data’s data-block contains information about the mesh.

    [image reference removed]

    Example for a mesh.

    A material may be linked in two different ways:

    Object Data:
    :   Any created material will be created as part of the Object Data’s data-block.

    Object:
    :   Any created material will be created as part of the Object’s data-block.

    [image reference removed]

    A material linked to Object Data (left) and Object (right).

Align to
:   World:
    :   New objects align with world coordinates.

    View:
    :   New object align with view coordinates.

    3D Cursor:
    :   New objects align to the 3D cursor’s orientation.

Enter Edit Mode
:   If selected, Edit Mode is automatically activated when you create a new object.

Instance Empty Size
:   The display size for empties when
    a new [collection instance](../../scene_layout/object/properties/instancing/collection.html) is created.

### Copy on Duplicate

The checkboxes define what data is copied with a duplicated object and
what data remains linked. Any boxes that are checked will have their data copied along with
the duplication of the object. Any boxes that are not checked will instead have their data linked
from the source object that was duplicated.

For example, if you have *Mesh* checked,
then a full copy of the mesh data is created with the new object,
and each mesh will behave independently of the duplicate.
If you leave the mesh box unchecked then when you change the mesh of one object,
the change will be mirrored in the duplicate object.

The same rules apply to each of the checkboxes in the data-block list.