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

assistant: # CompositorNodeCornerPin(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.CompositorNodeCornerPin(*CompositorNode*)
:   Plane warp transformation using explicit corner 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 Move to Nodes Operator in a Blender add-on or script – include code.

assistant: Creates a new geometry node tree with the name of the current node tree with `.wrapper` appended to the name.
This operation moves all inputs and outputs from the old modifier into a new node group.
In order for this operator to function, there **must** be a Group Input **and** a Group Output
each with a Geometry socket attached to the node group.
This action causes all *Output Attributes* to become *Internal Dependencies* utilizing the
[Store Named Attribute Node](../geometry_nodes/attribute/store_named_attribute.html).
All modifier “inputs” will then also become inputs of the newly created node group.

This operator is useful to easily allow a node tree to be reused in other trees
or to mark it as an [Asset](../../glossary/index.html#term-Asset) to be reused in other projects.
user: How do I use Collisions in Blender? Include parameters, examples, warnings and best practices.

assistant: # Collisions

In most cases, a piece of cloth does not just hang there in 3D space,
it collides with other objects in the environment. To ensure proper simulation,
there are several items that have to be set up and working together:

- The *Cloth* object must be told to participate in collisions.
- Optionally (but recommended) tell the cloth to collide with itself.
- Other objects must be visible to the *Cloth* object *via* shared layers.
- The other objects must be mesh objects.
- The other objects may move or be themselves deformed by other objects (like an armature or shape key).
- The other mesh objects must be told to deflect the cloth object.
- The blend-file must be saved in a directory so that simulation results can be saved.
- You then *Bake* the simulation. The simulator computes the shape of the cloth for a frame range.
- You can then edit the simulation results, or make adjustments to the cloth mesh, at specific frames.
- You can make adjustments to the environment or deforming objects,
  and then re-run the cloth simulation from the current frame forward.

[image reference removed]

Cloth Collisions panel.

Quality
:   A general setting for how fine and good a simulation you wish.
    Higher numbers take more time but ensure less tears and penetrations through the cloth.
user: Describe Bézier Curve from the Blender manual or Python API, including usage steps and snippets.

assistant: # Bézier Curve

The *Bézier Curve* modifier replaces the stroke by a Bézier approximation of it.

Error
:   The maximum distance allowed between the new Bézier curve and the original stroke.

[image reference removed]

Bézier Curve modifier demo by T.K.
([blend-file](https://archive.blender.org/wiki/2015/index.php/File:Toycar_bezier.zip)).
user: What is NodeTreeInterfaceSocketFloatAngle(NodeTreeInterfaceSocket) and how is it used in Blender Python scripting?

assistant: # NodeTreeInterfaceSocketFloatAngle(NodeTreeInterfaceSocket)

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

*class* bpy.types.NodeTreeInterfaceSocketFloatAngle(*NodeTreeInterfaceSocket*)
:   Floating-point number socket of a node

    default_value
    :   Input value used for unconnected socket

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

    max_value
    :   Maximum value

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

    min_value
    :   Minimum value

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

    subtype
    :   Subtype of the default value

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

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

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

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

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

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

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Explain BlendDataCurves(bpy_struct) in complete detail according to the official Blender documentation.

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: Show practical ways to work with Usage in a Blender add-on or script – include code.

assistant: glTF™ (GL Transmission Format) is used for transmission and loading of 3D models
in web and native applications. glTF reduces the size of 3D models and
the runtime processing needed to unpack and render those models.
This format is commonly used on the web, and has support in various 3D engines
such as Unity3D, Unreal Engine 4, and Godot.

This importer/exporter supports the following glTF 2.0 features:

- Meshes
- Materials (Principled BSDF) and Shadeless (Unlit)
- Textures
- Cameras
- Punctual lights (point, spot, and directional)
- Extensions (listed below)
- Extras (custom properties)
- Animation (keyframe, shape key, and skinning)
user: Explain Pass Index in complete detail according to the official Blender documentation.

assistant: Pass Index
:   Index number for the *Material Index* [render pass](../layers/passes.html).
    This can be used to give a mask to a material and then be read with
    the [ID Mask Node](../../compositing/types/mask/id_mask.html) in the Compositor.
user: Provide the full official documentation entry for Smooth Hair Curves, preserving all code examples.

assistant: # Smooth Hair Curves

The *Smooth Hair Curves* node relaxes and evens out the shape of hair curves by averaging
their control points over multiple iterations.
It is useful for reducing noise, smoothing deformation artifacts, or refining groomed hair shapes
after other operations such as frizz or noise deformation.
user: Describe Options from the Blender manual or Python API, including usage steps and snippets.

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

assistant: # SequencerTonemapModifierData(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.SequencerTonemapModifierData(*StripModifier*)
:   Tone mapping modifier

    adaptation
    :   If 0, global; if 1, based on pixel intensity

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

    contrast
    :   Set to 0 to use estimate from input image

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

    correction
    :   If 0, same for all channels; if 1, each independent

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

    gamma
    :   If not used, set to 1

        Type:
        :   float in [0.001, 3], default 0.0

    intensity
    :   If less than zero, darkens image; otherwise, makes it brighter

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

    key
    :   The value the average luminance is mapped to

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

    offset
    :   Normally always 1, but can be used as an extra control to alter the brightness curve

        Type:
        :   float in [0.001, 10], default 0.0

    open_mask_input_panel
    :   Type:
        :   boolean, default False

    tonemap_type
    :   Tone mapping algorithm

        Type:
        :   enum in [`'RD_PHOTORECEPTOR'`, `'RH_SIMPLE'`], default `'RH_SIMPLE'`

    *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 Creating a Soft Body in complete detail according to the official Blender documentation.

assistant: Soft body simulation works for all objects that have vertices or control points
(meshes, curves, surfaces, and lattices).

To add a soft body simulation to an object,
go to the *Physics* tab in the Properties and activate the *Soft Body* button.
For a reference of all the settings see [this page](settings/index.xhtml).

You start a soft body simulation by playback animation with `Alt`-`A`,
and stop the simulation with `Esc` or `Alt`-`A`.
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: ionState.html#bpy.types.XrSessionState.action_set_create "bpy.types.XrSessionState.action_set_create") - [`XrSessionState.action_state_get`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.action_state_get "bpy.types.XrSessionState.action_state_get") - [`XrSessionState.active_action_set_set`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.active_action_set_set "bpy.types.XrSessionState.active_action_set_set") - [`XrSessionState.controller_aim_location_get`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.controller_aim_location_get "bpy.types.XrSessionState.controller_aim_location_get") - [`XrSessionState.controller_aim_rotation_get`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.controller_aim_rotation_get "bpy.types.XrSessionState.controller_aim_rotation_get") - [`XrSessionState.controller_grip_location_get`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.controller_grip_location_get "bpy.types.XrSessionState.controller_grip_location_get") - [`XrSessionState.controller_grip_rotation_get`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.controller_grip_rotation_get "bpy.types.XrSessionState.controller_grip_rotation_get") - [`XrSessionState.controller_pose_actions_set`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.controller_pose_actions_set "bpy.types.XrSessionState.controller_pose_actions_set") - [`XrSessionState.haptic_action_apply`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.haptic_action_apply "bpy.types.XrSessionState.haptic_action_apply") - [`XrSessionState.haptic_action_stop`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.haptic_action_stop "bpy.types.XrSessionState.haptic_action_stop") - [`XrSessionState.is_running`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.is_running "bpy.types.XrSessionState.is_running") - [`XrSessionState.reset_to_base_pose`](bpy.types.XrSessionState.html#bpy.types.XrSessionState.reset_to_base_pose "bpy.types.XrSessionState.reset_to_base_pose") |
user: Describe Bpy.Types.Nodetreeinterfacesocketvectoracceleration4D from the Blender manual or Python API, including usage steps and snippets.

assistant: eeInterfaceSocketVectorAcceleration4D.bl_rna_get_subclass_py() Inherited Properties Inherited Functions
user: What is In Object Mode and how is it used in Blender Python scripting?

assistant: When in Object Mode,
rotation and scaling happen around the origin of the active object,
which is the element with a lighter outline than the others.

The effect of the pivot point is shown in the image below, where the active object (the cube)
remains in the same location while the others move.

[image reference removed]

Starting point, rotation, and scaling.
user: Provide the full official documentation entry for Extension Settings, preserving all code examples.

assistant: Visit Extensions Platform
:   Opens [extensions.blender.org](https://extensions.blender.org/) in a web browser.

Refresh Remote
:   Manually check the online repositories for available updates.

Refresh Local
:   Scan extension & legacy add-ons for changes to modules & meta-data
    (similar to restarting). Any issues are reported as warnings.

Install Available Updates
:   Update all the extensions that have an update available.

Install from Disk
:   Install an extension from a `.zip` package.
    This is installed to a Local Repository and no updates will be available.

    This can also be used to install legacy Add-ons, for more information see:
    [Installing Legacy Add-ons](addons.html#prefs-extensions-install-legacy-addon).
user: How do I use Properties in Blender? Include parameters, examples, warnings and best practices.

assistant: Distance
:   A probe object only influences the lighting of surfaces inside its influence zone.
    This influence zone is defined by the distance parameter and the object’s scale.

    For light probe planes, the influence distance is the distance from the plane.
    Only surfaces whose normals are aligned with the Reflection Plane will receive the captured reflection.

### Capture

Clipping Offset
:   Define how far below the plane the near clip is when capturing the scene.
    Increasing this can fix reflection contact problems.

### Viewport Display

Arrow Size
:   Size of the arrow showing the reflection plane normal.

Capture
:   Show the captured reflected image onto a fully reflective plane in the 3D Viewport.

Influence
:   Show the influence bounds in the 3D Viewport.
user: Describe Set Grid Transform Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Set Grid Transform Node

[image reference removed]

The *Set Grid Transform* node defines the spatial transform of a voxel grid,
converting its index space (voxel coordinates) into object space.

By default, voxel grids use a transform that maps integer voxel indices
directly to object space coordinates. This node allows specifying a custom
transform, enabling operations such as repositioning, rotating, or scaling
a grid relative to an object or scene.
user: Describe Controls from the Blender manual or Python API, including usage steps and snippets.

assistant: Disable `O`
:   Proportional Editing is off, only selected vertices will be affected.

Enable `O`
:   Vertices other than the selected vertex are affected, within a defined radius.

### Proportional Size

You can increase or decrease the radius of the tool’s influence during a transform operation
from the Proportional Editing popover or with `WheelUp`/`WheelDown`, or `PageUp`/`PageDown`
respectively. As you change the radius, the points surrounding your selection will adjust their positions
accordingly.

[image reference removed]

Influence circle.

### Falloff

While editing, you can change the curve profile by either clicking the *Falloff* icon in the header
or pressing `Shift`-`O` to get a pie menu.

|  |  |  |
| --- | --- | --- |
| ../../../_images/editors_3dview_controls_proportional-editing_falloff-constant.png   Constant, No Falloff. | ../../../_images/editors_3dview_controls_proportional-editing_falloff-random.png   Random Falloff. | ../../../_images/editors_3dview_controls_proportional-editing_falloff-linear.png   Linear Falloff. |
| ../../../_images/editors_3dview_controls_proportional-editing_falloff-sharp.png   Sharp Falloff. | ../../../_images/editors_3dview_controls_proportional-editing_falloff-root.png   Root Falloff. | ../../../_images/editors_3dview_controls_proportional-editing_falloff-sphere.png   Sphere Falloff. |
| ../../../_images/editors_3dview_controls_proportional-editing_falloff-smooth.png   Smooth Falloff. | ../../../_images/editors_3dview_controls_proportional-editing_falloff-inverse-square.png   Inverse Square Falloff. |  |
user: Show practical ways to work with StripElement(bpy_struct) in a Blender add-on or script – include code.

assistant: # StripElement(bpy_struct)

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

*class* bpy.types.StripElement(*bpy_struct*)
:   Sequence strip data for a single frame

    filename
    :   Name of the source file

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

    orig_fps
    :   Original frames per second

        Type:
        :   float in [-inf, inf], default 0.0, (readonly)

    orig_height
    :   Original image height

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

    orig_width
    :   Original image width

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Enable
:   A boolean field controlling whether the connected output socket is visible and active.
    When *False*, the corresponding output socket in the group is hidden.

Value
:   The value to pass to the output when it is enabled.
    This input can be any supported data type depending on the node’s *Data Type* property.
user: Show practical ways to work with Introduction in a Blender add-on or script – include code.

assistant: # Introduction

Hair type particle system can be used for strand-like objects,
such as hair, fur, grass, quills, etc.

[image reference removed]

Particle hair systems example. Used for the grass and fur.
user: Describe Outputs from the Blender manual or Python API, including usage steps and snippets.

assistant: The *Main Geometry* outputs create attributes on the “main” output geometry (the first output).
Every single value on the inside of the zone becomes a value of the attribute at the current index.

The outputs in the *Generated* panel, including the default *Geometry* output are joined together from the
geometry generated from each element. Any non-geometry type below a specific geometry in this list will output
as an [anonymous attribute](../attributes_reference.xhtml#anonymous-attributes) on that joined geometry (and not the others).
Attributes from the zone’s input geometry are also propagated to these geometry outputs.
user: Provide the full official documentation entry for MovieClipProxy(bpy_struct), preserving all code examples.

assistant: # MovieClipProxy(bpy_struct)

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

*class* bpy.types.MovieClipProxy(*bpy_struct*)
:   Proxy parameters for a movie clip

    build_100
    :   Build proxy resolution 100% of the original footage dimension

        Type:
        :   boolean, default False

    build_25
    :   Build proxy resolution 25% of the original footage dimension

        Type:
        :   boolean, default False

    build_50
    :   Build proxy resolution 50% of the original footage dimension

        Type:
        :   boolean, default False

    build_75
    :   Build proxy resolution 75% of the original footage dimension

        Type:
        :   boolean, default False

    build_record_run
    :   Build record run time code index

        Type:
        :   boolean, default False

    build_undistorted_100
    :   Build proxy resolution 100% of the original undistorted footage dimension

        Type:
        :   boolean, default False

    build_undistorted_25
    :   Build proxy resolution 25% of the original undistorted footage dimension

        Type:
        :   boolean, default False

    build_undistorted_50
    :   Build proxy resolution 50% of the original undistorted footage dimension

        Type:
        :   boolean, default False

    build_undistorted_75
    :   Build proxy resolution 75% of the original undistorted footage dimension

        Type:
        :   boolean, default False

    directory
    :   Location to store the proxy files

        Type:
        :   string, default “”, (never None, blend relative `//` prefix supported)

    quality
    :   JPEG quality of proxy images

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

    timecode
    :   - `NONE`
          None – Ignore generated timecodes, seek in movie stream based on calculated timestamp.
        - `RECORD_RUN`
          Record Run – Seek based on timestamps read from movie stream, giving the best match between scene and movie times.
        - `FREE_RUN_NO_GAPS`
          Record Run No Gaps – Effectively convert movie to an image sequence, ignoring incomplete or dropped frames, and changes in frame rate.

        Type:
        :   enum in [`'NONE'`, `'RECORD_RUN'`, `'FREE_RUN_NO_GAPS'`], default `'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: Describe Outputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Curve Instances
:   Geometry output containing one instance per character.

Remainder
:   The part of the text that did not fit in the box described by the *Text Box Height* and
    *Text Box Width* inputs. Only used in the *Truncate* overflow mode.

Line
:   An attribute field containing the line index of each character
    (on the [instance domain](../../attributes_reference.xhtml#attribute-domains)).

Pivot Point
:   Outputs the position described by the *Pivot Point* drop-down in the local space of each instance.
user: Describe Extrude to Cursor or Add from the Blender manual or Python API, including usage steps and snippets.

assistant: # Extrude to Cursor or Add

Interactively places new vertices with `Ctrl`-`RMB` at the mouse cursor position.

The most basic element, a vertex, can be added with a `Ctrl`-`RMB` click
when no other vertices are selected.
Because the camera space (computer screen) is two-dimensional,
Blender cannot determine all three vertex coordinates from a single mouse click,
so the new vertex is placed at the depth of the 3D cursor.

To create interconnected vertices, you can add a vertex and continuously make subsequent `Ctrl`-`RMB`
operations with the last vertex selected.
This will link the last selected vertex with the vertex created at the mouse position with an edge
(see Fig. [Adding vertices one by one.](#fig-mesh-basics-add-one)),
and will continuously create and connect new vertices if you continue repeating this operation.

[image reference removed]

Adding vertices one by one.
user: What is Capture Attribute Node and how is it used in Blender Python scripting?

assistant: # Capture Attribute Node

[image reference removed]

The *Capture Attribute* node stores one or more fields on a geometry,
and outputs those same fields so they can be read by other nodes.

This storing and retrieving of a field can also be done with the
[Store Named Attribute Node](store_named_attribute.xhtml)
and the [Named Attribute Node](../geometry/read/named_attribute.xhtml)
respectively. The difference is that the *Capture Attribute* node creates
an [anonymous attribute](../attributes_reference.xhtml#anonymous-attributes), meaning there’s no
need to specify a name and there’s no clutter at the end.
This makes the node ideal for temporary data storage.

A common use case is saving information that would normally be lost while
converting geometry – see the example below.
user: Give a detailed overview of LimitScaleConstraint(Constraint): syntax, arguments, return values, common patterns.

assistant: # LimitScaleConstraint(Constraint)

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

*class* bpy.types.LimitScaleConstraint(*Constraint*)
:   Limit the scaling of the constrained object

    max_x
    :   Highest X value to allow

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

    max_y
    :   Highest Y value to allow

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

    max_z
    :   Highest Z value to allow

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

    min_x
    :   Lowest X value to allow

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

    min_y
    :   Lowest Y value to allow

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

    min_z
    :   Lowest Z value to allow

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

    use_max_x
    :   Use the maximum X value

        Type:
        :   boolean, default False

    use_max_y
    :   Use the maximum Y value

        Type:
        :   boolean, default False

    use_max_z
    :   Use the maximum Z value

        Type:
        :   boolean, default False

    use_min_x
    :   Use the minimum X value

        Type:
        :   boolean, default False

    use_min_y
    :   Use the minimum Y value

        Type:
        :   boolean, default False

    use_min_z
    :   Use the minimum Z value

        Type:
        :   boolean, default False

    use_transform_limit
    :   Transform tools are affected by this constraint as well

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Introduction

This chapter explains how to change Blender’s default configuration with the *Preferences* editor.

The Blender *Preferences* contains settings to control how Blender behaves.
At the left of the editor, the available options are grouped into sections.

[image reference removed]

Blender Preferences window.
user: Show practical ways to work with BlendDataScreens(bpy_struct) in a Blender add-on or script – include code.

assistant: # BlendDataScreens(bpy_struct)

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

*class* bpy.types.BlendDataScreens(*bpy_struct*)
:   Collection of screens

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

assistant: Vector
:   The coordinates at which Gabor noise will be evaluated. The Z component is ignored in the 2D
    case. Defaults to *Generated* texture coordinates if the socket is left unconnected.

Scale
:   Scale of the Gabor noise.

Frequency
:   The rate at which the Gabor noise changes across space. This is different from the Scale input
    in that it only scales perpendicular to the Gabor noise direction.

Anisotropy
:   The directionality of Gabor noise. 1 means the noise is completely directional, while 0 means
    the noise is omnidirectional.

Orientation
:   The direction of anisotropic Gabor noise. This is an angle for the 2D case, while it is a unit
    direction vector for the 3D case.
user: Describe BlendDataTextures(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # BlendDataTextures(bpy_struct)

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

*class* bpy.types.BlendDataTextures(*bpy_struct*)
:   Collection of textures

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

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

        Returns:
        :   New texture data-block

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

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

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

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

assistant: How the UVs are warped is determined by the difference between the transforms (location, rotation and scale)
of the *from* and *to* objects.

If the *to* object has the same transforms as the *from* object, the UVs will not be changed.

Assuming the *UV Axis* of the modifier is X/Y and the scale of the objects is (1, 1, 1), if the *to* object is
one unit away from the *from* object on the X axis, the UVs will be transformed on the U axis (horizontally)
by one full UV space (the entire width of the image).
user: Explain ShaderNodeBsdfSheen(ShaderNode) in complete detail according to the official Blender documentation.

assistant: # ShaderNodeBsdfSheen(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.ShaderNodeBsdfSheen(*ShaderNode*)
:   Reflection for materials such as cloth.
    Typically mixed with other shaders (such as a Diffuse Shader) and is not particularly useful on its own

    distribution
    :   Sheen shading model

        - `ASHIKHMIN`
          Ashikhmin – Classic Ashikhmin velvet (legacy model).
        - `MICROFIBER`
          Microfiber – Microflake-based model of multiple scattering between normal-oriented fibers.

        Type:
        :   enum in [`'ASHIKHMIN'`, `'MICROFIBER'`], default `'ASHIKHMIN'`

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

assistant: Realistic smoke can be rendered with
the [Principled Volume](../../render/shader_nodes/shader/volume_principled.html) shader.

[Smoke Material Example Animation](https://www.youtube.com/watch?v=hxV_bHG4fl8)
user: Show practical ways to work with CompositorNodePremulKey(CompositorNode) in a Blender add-on or script – include code.

assistant: # CompositorNodePremulKey(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.CompositorNodePremulKey(*CompositorNode*)
:   Convert to and from premultiplied (associated) alpha

    *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: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`bpy.context.active_nla_track`](bpy.context.html#bpy.context.active_nla_track "bpy.context.active_nla_track") - [`AnimData.nla_tracks`](bpy.types.AnimData.html#bpy.types.AnimData.nla_tracks "bpy.types.AnimData.nla_tracks") - [`NlaTracks.active`](bpy.types.NlaTracks.html#bpy.types.NlaTracks.active "bpy.types.NlaTracks.active") | - [`NlaTracks.new`](bpy.types.NlaTracks.html#bpy.types.NlaTracks.new "bpy.types.NlaTracks.new") - [`NlaTracks.new`](bpy.types.NlaTracks.html#bpy.types.NlaTracks.new "bpy.types.NlaTracks.new") - [`NlaTracks.remove`](bpy.types.NlaTracks.html#bpy.types.NlaTracks.remove "bpy.types.NlaTracks.remove") |
user: Provide the full official documentation entry for Crease, preserving all code examples.

assistant: # Crease

Create sharp indents or ridges by pushing or pulling the mesh, while pinching the vertices together.

Crease can also be used to sharpen and polish existing creases.
Enable pressure sensitivity on Strength to regulate the add/subtract effect while pinching creases.
user: Show practical ways to work with Types with Custom Property Support in a Blender add-on or script – include code.

assistant: # Types with Custom Property Support

The following types (and their sub-types) have custom-property access.

For examples on using custom properties see the quick-start section on
[Custom Properties](info_quickstart.html#info-quickstart-custom-properties).

- [`bpy.types.Bone`](bpy.types.Bone.html#bpy.types.Bone "bpy.types.Bone")
- [`bpy.types.BoneCollection`](bpy.types.BoneCollection.html#bpy.types.BoneCollection "bpy.types.BoneCollection")
- [`bpy.types.EditBone`](bpy.types.EditBone.html#bpy.types.EditBone "bpy.types.EditBone")
- [`bpy.types.GizmoGroupProperties`](bpy.types.GizmoGroupProperties.html#bpy.types.GizmoGroupProperties "bpy.types.GizmoGroupProperties")
- [`bpy.types.GizmoProperties`](bpy.types.GizmoProperties.html#bpy.types.GizmoProperties "bpy.types.GizmoProperties")
- [`bpy.types.ID`](bpy.types.ID.html#bpy.types.ID "bpy.types.ID")
- [`bpy.types.KeyConfigPreferences`](bpy.types.KeyConfigPreferences.html#bpy.types.KeyConfigPreferences "bpy.types.KeyConfigPreferences")
- [`bpy.types.Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node")
- [`bpy.types.NodeSocket`](bpy.types.NodeSocket.html#bpy.types.NodeSocket "bpy.types.NodeSocket")
- [`bpy.types.NodeTreeInterfaceSocket`](bpy.types.NodeTreeInterfaceSocket.html#bpy.types.NodeTreeInterfaceSocket "bpy.types.NodeTreeInterfaceSocket")
- [`bpy.types.NodesModifier`](bpy.types.NodesModifier.html#bpy.types.NodesModifier "bpy.types.NodesModifier")
- [`bpy.types.OperatorProperties`](bpy.types.OperatorProperties.html#bpy.types.OperatorProperties "bpy.types.OperatorProperties")
- [`bpy.types.PoseBone`](bpy.types.PoseBone.html#bpy.types.PoseBone "bpy.types.PoseBone")
- [`bpy.types.PropertyGroup`](bpy.types.PropertyGroup.html#bpy.types.PropertyGroup "bpy.types.PropertyGroup")
- [`bpy.types.Strip`](bpy.types.Strip.html#bpy.types.Strip "bpy.types.Strip")
- [`bpy.types.TimelineMarker`](bpy.types.TimelineMarker.html#bpy.types.TimelineMarker "bpy.types.TimelineMarker")
- [`bpy.types.View3DShading`](bpy.types.View3DShading.html#bpy.types.View3DShading "bpy.types.View3DShading")
- [`bpy.types.ViewLayer`](bpy.types.ViewLayer.html#bpy.types.ViewLayer "bpy.types.ViewLayer")
user: How do I use Blueprint in Blender? Include parameters, examples, warnings and best practices.

assistant: # Blueprint

The *Blueprint* modifier produces blueprint-like strokes using either circular,
elliptical, or square contours. A blueprint here refers to those lines drawn at the beginning
of free-hand drawing to capture the silhouette of objects with a simple shape such as circles,
ellipses and squares.

Shape
:   Which base shapes to use for this blueprint: *Circles*, *Ellipses* or *Squares*.

Rounds
:   How many rounds are generated, as if the pen draws the same stroke several times
    (i.e. how many times the process is repeated).

Random Radius, Center
:   For the *Circles* and *Ellipses* shapes.
    Adds some randomness to each round in the relevant aspect.
    Using more than one round with no randomness would be meaningless, as they would draw over each other exactly.

Backbone Length, Backbone
:   For the *Squares* shapes.
    The first adds some extra length to each edge of the generated squares (also affected by the second parameter).
    The second adds some randomness to the squares.

Note that the *Min 2D Length* feature from the *Strokes* settings is quite
handy here, to avoid the noise generated by small strokes…
user: Show practical ways to work with VIEW3D_AST_brush_gpencil_sculpt(AssetShelf) in a Blender add-on or script – include code.

assistant: # VIEW3D_AST_brush_gpencil_sculpt(AssetShelf)

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

*class* bpy.types.VIEW3D_AST_brush_gpencil_sculpt(*AssetShelf*)
:   *classmethod* brush_type_poll(*context*, *asset*)

    *static* draw_popup_selector(*layout*, *context*, *brush*, *show_name=True*)

    *static* get_shelf_name_from_context(*context*)

    *classmethod* has_tool_with_brush_type(*context*, *brush_type*)

    *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