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

assistant: # NodeSocketVirtual(NodeSocketStandard)

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

*class* bpy.types.NodeSocketVirtual(*NodeSocketStandard*)
:   Virtual socket of a node

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

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

        (readonly)

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of Locked Track Constraint: syntax, arguments, return values, common patterns.

assistant: # Locked Track Constraint

The *Locked Track* constraint makes an object or bone point towards a certain target.
It’s typically called “Look At” or “Aim” in other 3D software.

The word “locked” means that the object or bone can only rotate around one axis.
The orientation of this axis always stays the same, and the other two axes always
stay in their original plane.

One example use case is distant tree billboards, which should turn to face the camera
while also staying upright. Another example is a compass on a table with a nearby magnet:
the needle spins horizontally to point at the magnet, but it can never point up or down.
user: Describe Separate from the Blender manual or Python API, including usage steps and snippets.

assistant: Disconnects the selected sub grid from the rest of the surface and moves it into
a new Surface object. The control points at the border are duplicated so that both
the original surface and the disconnected surface have them.

The sub grid must consist of one or more complete rows or columns of the surface grid.
user: Show practical ways to work with Settings and Controls in a Blender add-on or script – include code.

assistant: For the precise list of options, see [Spline IK](../../../../constraints/tracking/spline_ik.xhtml) constraint.
This section is intended to introduce the workflow.

### Roll Control

To control the [Roll](../../../../../glossary/index.xhtml#term-Roll) of the Spline IK chain,
the standard methods of rotating the bones in the chain along their local Y axes still apply.
For example, start at the farthest bone and simply rotate the bones in the chain around their
local Y axes to adjust the roll of the chain from that point onward.

Applying Copy Rotation constraints on the bones also works.

### Offset Controls

The entire bone chain can be made to follow the shape of the curve while still being able to
be placed at an arbitrary point in 3D space when the *Chain Offset* option is enabled.
By default, this option is not enabled,
and the bones will be made to follow the curve in its untransformed position.

### Length Control

The *Y Scale Mode* setting can be used to choose the way bones are scaled length-wise.
The available options allow stretching the bone chain to fit the curve, using the pre-IK
scaling, or doing neither. In addition, the scale of the curve Object affects the result.

### Thickness Controls

The thickness of the bones in the chain is controlled using the constraint’s *XZ Scale Mode* setting.
This setting determines the method used for determining the scaling on
the X and Z axes of each bone in the chain.

The available modes are:

None
:   This option keeps the X and Z scaling factors as 1.0.

Volume Preserve
:   The X and Z scaling factors are taken as the inverse of the Y scaling factor (length of the bone),
    maintaining the ‘volume’ of the bone.

Bone Original
:   This options just uses the X and Z scaling factors the bone would have after being evaluated in the standard way.

In addition to these modes, there is an option, *Use Curve Radius*.
When this option is enabled, the average radius of the radii of the points on the curve where
the joints of each bone are placed, are used to derive X and Z scaling factors.
This allows the scaling effects, determined using the modes above,
to be tweaked as necessary for artistic control.
user: Show practical ways to work with Curvature 3D in a Blender add-on or script – include code.

assistant: # Curvature 3D

A modifier based on radial curvatures of the underlying 3D surface.
The [curvature](https://en.wikipedia.org/wiki/Curvature) of a 2D curve
at a point is a measure of how quickly the curve turns at the point.
The quicker the turn is, the larger the curvature is at the point.
The curvature is zero if the curve is a straight line.
Radial curvatures are those computed for a 2D curve that appears at the cross section
between the 3D surface and a plane defined by the view point (camera location)
and the normal direction of the surface at the point.

For radial curvatures to be calculated (and therefore for this modifier to have any effect),
the *Face Smoothness* option has to be turned on and the object needs to have *Smooth Shading*.

Curvature Min, Max
:   The limits of the mapping.
    If the current point of the stroke is at *Min Curvature* or less from the target,
    it will take the start point of the mapping. And conversely,
    if it is at *Max Curvature* or more from the target, it will take the end-point value of the mapping.

[image reference removed]

Curvature 3D modifier demo by T.K.
([blend-file](https://archive.blender.org/wiki/2015/index.php/File:Render_freestyle_modifier_curvature_3d.blend)).
user: Describe Bpy.Types.Splineikconstraint from the Blender manual or Python API, including usage steps and snippets.

assistant: int.use_chain_offset SplineIKConstraint.use_curve_radius SplineIKConstraint.use_even_divisions SplineIKConstraint.use_original_scale SplineIKConstraint.xz_scale_mode SplineIKConstraint.y_scale_mode SplineIKConstraint.bl_rna_get_subclass() SplineIKConstraint.bl_rna_get_subclass_py() Inherited Properties Inherited Functions
user: Show practical ways to work with Introduction in a Blender add-on or script – include code.

assistant: # Introduction

Rigify helps automate the creation of character rigs. It is based around a building-block approach,
where you build complete rigs out of smaller rig parts (e.g. arms, legs, spines, fingers…).
The rig parts are currently few in number, but as more rig parts are added to
Rigify it should become more and more capable of rigging a large variety of characters and creatures.

Rigify also operates on the principle that once a rig is created, that rig should no longer need Rigify.
This means you can always distribute rigs created with Rigify to people
who do not have it and the rigs will still function completely.

It is important to note that Rigify only automates the creation of the rig controls and bones.
It does not attach the rig to a mesh, so you still have to do skinning etc. yourself.
user: What is Node Socket Data Type Items and how is it used in Blender Python scripting?

assistant: # Node Socket Data Type Items

FLOAT:
:   Float.

INT:
:   Integer.

BOOLEAN:
:   Boolean.

VECTOR:
:   Vector.

RGBA:
:   Color.

ROTATION:
:   Rotation.

MATRIX:
:   Matrix.

STRING:
:   String.

MENU:
:   Menu.

SHADER:
:   Shader.

OBJECT:
:   Object.

IMAGE:
:   Image.

GEOMETRY:
:   Geometry.

COLLECTION:
:   Collection.

TEXTURE:
:   Texture.

MATERIAL:
:   Material.

BUNDLE:
:   Bundle.

CLOSURE:
:   Closure.
user: Describe Writing Configurations for Blender from the Blender manual or Python API, including usage steps and snippets.

assistant: OpenColorIO configurations do not strictly specify all information needed for Blender to work optimally.
These guidelines help ensure a configuration works well:

- Use OpenColorIO v2 `display_colorspaces` and `view_transforms` with `cie_xyz_d65_interchange`
  intermediate display linear space. This is used to emulate the chosen display on the actual display.
  In older configs without this, display emulation will be disabled and wide gamut and HDR display will
  not work well. Saving colorspace metadata for images and video also depends on this.
- For every display, include a view transform without tone mapping. Blender will look for a view
  transform named `Standard` or `Un-tone-mapped` or the config wide `default_view_transform`.
  If not found, the first view transform of the display will be used. This is more important
  for OpenColorIO v1 configs without `display_colorspaces`, to determine the color space of an image
  after applying a view transform.
- Include the interop ID from the [Color Interop Forum](https://github.com/AcademySoftwareFoundation/ColorInterop)
  for every color space and display color space that you can. This helps save image and video
  with correct colorspace information. Add the interop ID as an alias of the colorspace. For
  OpenColor 2.5 configs, additionally set the native `interop_id` attribute but keep the alias
  for compatibility with older software.
- Mark HDR displays by setting `encoding: hdr-video` on the corresponding colorspace.
- For HDR view transforms, use `HDR 500 nits`, `HDR 1000 nits`, `HDR 2000 nits` or `HDR 4000 nits`
  as part of the name to automatically determine maximum luminance for mastering display metadata.
user: Give a detailed overview of Introduction: syntax, arguments, return values, common patterns.

assistant: # Introduction

The geometry of a scene is constructed from one or more objects.
These objects can range from lights to illuminate your scene, basic 2D and 3D shapes to fill it with models,
armatures to animate those models, to cameras to take pictures or make video of it all.

Each Blender [object type](types.xhtml) (mesh, light, curve, camera, etc.)
is composed from two parts: an *Object* and *Object Data* (sometimes abbreviated to “ObData”):

Object
:   Holds information about the position, rotation and size of a particular element.

Object Data
:   Holds everything else. For example:

    Meshes:
    :   Store geometry, material list, vertex groups, etc.

    Cameras:
    :   Store focal length, depth of field, sensor size, etc.

    Each object has a link to its associated [object-data](../../editors/properties_editor.xhtml#properties-data-tabs),
    and a single object-data may be shared by many objects.
user: Provide the full official documentation entry for Usage, preserving all code examples.

assistant: Bundles are useful in many workflows:

- **Simplified interfaces** – group inputs into a single socket for clarity.
- **Physics simulations** – package all entities and constraints for a solver.
- **Declarative systems** – store complex structured data for evaluation later.
- **Texture sets** – combine PBR maps (Base Color, Roughness, Normal) into one socket.
user: How do I use Link & Append in Blender? Include parameters, examples, warnings and best practices.

assistant: # Link & Append

These functions help you reuse objects, materials and other [data-blocks](../data_blocks.html)
from another blend-file.
You can build libraries of common content and share them across multiple referencing files.
user: Show practical ways to work with Distortion vs Undistortion in a Blender add-on or script – include code.

assistant: Although, both, distortion of render and undistortion of movie clip are possible, and produce similar results,
there is a difference between these two methods.

There are two kinds of lens distortion possible and, in simple terms, they can be said as:

1. When the movie clip is bulging out.
2. When the movie clip is bulging in.

For the first case, it is recommended to distort the render and leave the movie clip as it is, because,
undistorting the movie clip will require extra pixel information, which is not available to Blender.
Similarly, in the second case, it is recommended to undistort the movie clip and leave the render as it is,
because, distorting the render will require those extra unavailable pixels.
Doing the wrong method in the wrong case can create weird results around the edges, such as in the image shown.

[image reference removed]

Problems (notice the edges?)
user: Explain Tool Settings in complete detail according to the official Blender documentation.

assistant: [image reference removed]

Curve Stroke panel.

Type
:   Type of curve to use for drawing.

    Poly:
    :   Bézier Curve with straight line segments (auto handles).

    Bézier:
    :   Tolerance
        :   Lower values give a result that is closer to the drawing stroke,
            while higher values give more smoothed results.

        Method
        :   Refit:
            :   Incrementally refits the curve (gives best results).

            Split:
            :   Splits the curve until the tolerance is met (gives a better drawing performance).

        Detect Corners
        :   Detects corners while drawing based on a specified angle;
            Any angles above the specified value are considered corners.
            If a corner is detected, the curve uses non-aligned handles
            for the corner resulting in a more crisp corner.

Taper Start, End
:   Taper factor for the radius of the start and end points along the curve.

Radius Min
:   Minimum radius when the minimum pressure is applied (also the minimum when tapering).

Max
:   Radius to use when the maximum pressure is applied (or when a tablet is not used).

Use Pressure
:   Uses stylus pressure to control the radius of the curve.

Depth
:   Controls where and how the curves are drawn.

    Cursor:
    :   Uses the depth under the cursor to draw curves.

    Surface:
    :   Used to draw on top of other objects.

        Project Onto Selected
        :   Only project the strokes onto selected objects.

        Offset
        :   Distance to offset the curve from the surface.

        Absolute Offset
        :   Applies a fixed offset (does not scale by the curve radius).

        Only First
        :   Only uses the start of the stroke for the depth.

        Plane
        :   The orientation plane to draw on, available when *Only First* is enabled.

            Normal to Surface:
            :   Draws aligned to the surface.

            Tangent to Surface:
            :   Draws perpendicular to the surface.

            View:
            :   Draws aligned to the viewport.

Curve 2D
:   Project the curve on the Z axis.

As NURBS
:   Draw curves as a NURBS curve with Bézier knot mode, instead of a Bézier curve.
user: Explain Axis Locking Types in complete detail according to the official Blender documentation.

assistant: ### Axis Locking

Axis locking limits the transformation to a single axis (or forbids transformations along two axes).
An object, face, vertex or other selectable item will only be able to move,
scale or rotate in a single dimension.

### Plane Locking

[[image reference removed]](../../../../../_images/scene-layout_object_editing_transform_control_axis-locking_plane-locking.png)

Plane locking.

Plane locking locks the transformation to *two* axes
(or forbids transformations along one axis),
thus creating a plane in which the element can be moved or scaled freely.
Plane locking only affects translation and scaling.

Note that for rotation, both axis and plane locking have the same effect because a rotation is
always constrained around one axis.
*Trackball* type rotations `R` `R` cannot be locked at all.

### Axis Locking Modes

A single key press constrains movement to the current transform orientation selection.
A second key press of the *same* key constrains movement to the corresponding *Global* axis
(except if the transform orientation is set to *Global*, in which case the *Local* orientation is used).
A third key press of the same key removes constraints.

The orientation can be set
in the [Transform Orientation](../../../../../editors/3dview/controls/orientation.html)
selector of the 3D Viewport header.

For example, if the current transform orientation is set to *Normal*,
pressing `G` to start translation, followed by `Z` will lock translation
in the Z direction relative to the *Normal* orientation, pressing `Z`
again will lock translation to the Z axis relative to the *Global* orientation.
Pressing `Z` again will remove all constraints.
The current mode will be displayed in the left-hand side of the 3D Viewport header.

Axis locking modes.

|  |  |  |  |
| --- | --- | --- | --- |
| <../../../../../_images/scene-layout_object_editing_transform_control_axis-locking_modes-1.png>   Z axis locking in Global orientation. | <../../../../../_images/scene-layout_object_editing_transform_control_axis-locking_modes-2.png>   Z axis locking in Local orientation. | <../../../../../_images/scene-layout_object_editing_transform_control_axis-locking_modes-3.png>   Z axis locking in Global orientation with vertex selection. | <../../../../../_images/scene-layout_object_editing_transform_control_axis-locking_modes-4.png>   Z axis locking in Normal orientation with vertex selection. |

As can be seen in the *Axis locking modes* image,
the direction of the transform also takes into account the selection.

Note that using a locked axis does not prevent you from using the keyboard to enter
[numeric transformation](numeric_input.html) values.
user: Describe ShaderNodeBrightContrast(ShaderNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # ShaderNodeBrightContrast(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.ShaderNodeBrightContrast(*ShaderNode*)
:   Control the brightness and contrast of the input color

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Point Count
:   The size of the *Point* domain on any supported geometry.

Edge Count
:   The size of the *Edge* domain on meshes.

Face Count
:   The size of the *Face* domain on meshes.

Face Corner Count
:   The size of the *Face Corner* domain on meshes.

Spline Count
:   The size of the *Spline* domain on curves.

Instance Count
:   The number of top-level instances in the geometry. [Nested instances](../instances.xhtml#geometry-nodes-nested-instancing)
    are not considered.
user: What is TextureNodeDecompose(TextureNode) and how is it used in Blender Python scripting?

assistant: # TextureNodeDecompose(TextureNode)

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

*class* bpy.types.TextureNodeDecompose(*TextureNode*)
:   *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Operation
:   Operation to use against the input mask.

    Add:
    :   This yields the *union* of the input mask and the generated mask:
        Areas covered by the generated mask are set to the specified *Value*.
        Other parts of the input masked are passed through unchanged, or set to black if there is no input mask.

    Subtract:
    :   Values of the input mask have the specified *Value* subtracted from them.

    Multiply:
    :   This yields the *intersection* of this generated mask and the input mask:
        Values of the input mask are multiplied by the specified *Value* for the area covered by the generated mask.
        All other areas become black.

    Not:
    :   Any area covered by both the input mask and the generated mask becomes black.
        Areas covered by the generated mask that are black on the input mask become the specified *Value*.
        Areas uncovered by the generated mask remain unchanged.

Mask
:   An optional mask to use as the base for mask operations.

Value
:   Intensity of the generated mask.

Position
:   Position of the center of the ellipse as a fraction of the total width or height.
    (0.5, 0.5 creates a centered ellipse; 0.0, 0.0 creates an ellipse with its center in the lower left.)

Size
:   Width/Height of the ellipse as a fraction of the total image *width*, not height.
    Equal *Width* and *Height* values with produce a circle.

Rotation
:   Rotation of the ellipse around its center point.
user: Give a detailed overview of Scopes(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # Scopes(bpy_struct)

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

*class* bpy.types.Scopes(*bpy_struct*)
:   Scopes for statistical view of an image

    accuracy
    :   Proportion of original image source pixel lines to sample

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

    histogram
    :   Histogram for viewing image statistics

        Type:
        :   [`Histogram`](bpy.types.Histogram.html#bpy.types.Histogram "bpy.types.Histogram"), (readonly)

    use_full_resolution
    :   Sample every pixel of the image

        Type:
        :   boolean, default False

    vectorscope_alpha
    :   Opacity of the points

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

    vectorscope_mode
    :   Type:
        :   enum in [`'LUMA'`, `'RGB'`], default `'RGB'`

    waveform_alpha
    :   Opacity of the points

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

    waveform_mode
    :   Type:
        :   enum in [`'LUMA'`, `'PARADE'`, `'YCBCR601'`, `'YCBCR709'`, `'YCBCRJPG'`, `'RGB'`], default `'LUMA'`

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

assistant: [image reference removed]

Swirl Visual Effect.

Object
:   Sets the object to use as the center of the swirl.

Radius
:   External radius size of the swirl.

Angle
:   Rotation angle of the swirl. A value of 0 shows no swirl.
user: Give a detailed overview of Features: syntax, arguments, return values, common patterns.

assistant: - **File Browser:**
  Preconfigured to display only relevant file types, making it easier to locate and import video, image,
  and audio files.
- **Preview:**
  The Preview area provides an interactive viewer where you can select, transform, and preview strips
  directly in the video output.
- **Sequencer:**
  The Sequencer is where you assemble and edit video, image, and sound strips.
- **Properties Editor:**
  Simplified to display only essential tabs: *Render*, *Output*, *Scene*, and *Strip Modifiers*.
user: Explain BoidRuleGoal(BoidRule) in complete detail according to the official Blender documentation.

assistant: # BoidRuleGoal(BoidRule)

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

*class* bpy.types.BoidRuleGoal(*BoidRule*)
:   object
    :   Goal object

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

    use_predict
    :   Predict target movement

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Direction
:   A vector that defines the reference direction to compare against the element normals.
    The direction should typically be normalized.

Threshold
:   The maximum angular difference between the element normal and the given direction
    for the element to be included in the selection.
user: Show practical ways to work with Rigid Body World in a Blender add-on or script – include code.

assistant: # Rigid Body World

The *Rigid Body World* is a group of rigid body objects,
which holds settings that apply to all rigid bodies in this simulation.

When you add rigid body physics to an object,
primary there is created a group of objects with default “RigidBodyWorld” name.
Rigid body objects automatically are added to this group when you add rigid body physics for them.
You can create several Rigid Body World [Collections](../../scene_layout/collections/collections.html)
and allocate the rigid body objects with the [Collections panel](../../scene_layout/collections/collections.html#scene-layout-collections-collections-panel).

Rigid body objects and constraints are only taken into account by the simulation
if they are in the collection specified in the *Collection* field of the *Rigid Body World* panel in the *Scene* tab.
user: Explain Inputs in complete detail according to the official Blender documentation.

assistant: Image
:   Standard color input image.

Contrast
:   Adjusts the tonal contrast of the sepia effect.
    Higher values produce deeper shadows and brighter highlights,
    enhancing the image’s dynamic range.

Tone
:   Controls the hue of the sepia tint.
    Lower values shift the tone toward reddish-brown,
    while higher values create a more yellow or golden sepia appearance.

Saturation
:   Controls the intensity of the sepia color.
    A value of 0 results in a purely monochrome look,
    while higher values yield a richer, more pronounced color tint.
user: Give a detailed overview of ThemeSpaceGradient(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # ThemeSpaceGradient(bpy_struct)

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

*class* bpy.types.ThemeSpaceGradient(*bpy_struct*)
:   gradients
    :   Type:
        :   [`ThemeGradientColors`](bpy.types.ThemeGradientColors.html#bpy.types.ThemeGradientColors "bpy.types.ThemeGradientColors"), (readonly, never None)

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

    header_text
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    header_text_hi
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    text
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    text_hi
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    title
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of Options: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Spline IK constraint.

[Target](../interface/common.xhtml#rigging-constraints-interface-common-target)
:   The Curve whose shape to match.

[Influence](../interface/common.xhtml#bpy-types-constraint-influence)
:   How strongly the constraint affects the bone chain.

### Fitting

Chain Length
:   The number of bones affected by the constraint, starting with the owner bone
    and walking up its chain of ancestors. A value of 1 will only fit the bone
    itself, a value of 2 will fit the bone and its parent, and so on.

Even Divisions
:   When disabled, each bone will cover a distance along the curve relative to its
    rest length. When enabled, each bone will cover the same distance regardless
    of its rest length.

Chain Offset
:   When disabled, the bone chain will move to match the position of the curve.
    When enabled, the bone chain will stay at its original starting location and
    mimic the shape of the curve from there.

### Chain Scaling

Use Curve Radius
:   Whether to use the [radii](../../../modeling/curves/editing/curve.xhtml#modeling-curve-radius) of the curve control points
    as additional X and Z scaling factors for the bones.

Y Scale Mode
:   How to stretch the bones along the length of the curve.

    None:
    :   Reset the bones to their rest length.

    Fit Curve:
    :   Stretch the bones to cover the entire length of the curve.

    Bone Original:
    :   Keep the bones’ original length (including their Pose Mode scale).

XZ Scale Mode
:   How to scale the bones along the normals of the curve (or in other words, how to determine
    the thickness of the bones).

    None:
    :   Reset the bones’ X and Z scales to 1.

    Bone Original:
    :   Keep the bones’ original X and Z scales from Pose Mode.

    Inverse Scale:
    :   Set the X and Z scales to the inverse of the Y scale.

    Volume Preservation:
    :   Similar to the [Stretch To](stretch_to.xhtml#constraints-stretch-to-volume-preservation) constraint.

Use Original Scale
:   Apply *Inverse Scale* or *Volume Preservation* on top of the Pose Mode bone scales,
    like in the Stretch To constraint.
user: Show practical ways to work with Grid Laplacian Node in a Blender add-on or script – include code.

assistant: # Grid Laplacian Node

[image reference removed]

The *Grid Laplacian* node computes the Laplacian of a scalar voxel grid.
The Laplacian measures how a value at each voxel differs from the average
of its neighbors—essentially, how much the field “curves” or deviates locally.

Mathematically, the Laplacian is defined as the divergence of the gradient
of a scalar field. It is commonly used in physics and geometry for diffusion,
smoothing, curvature analysis, and solving partial differential equations.

For a scalar field \(f(x, y, z)\), the Laplacian \(\nabla^2 f\)
is given by:

\[\nabla^2 f = \nabla f =
\frac{\partial^2 f}{\partial x^2} +
\frac{\partial^2 f}{\partial y^2} +
\frac{\partial^2 f}{\partial z^2}\]

The Laplacian is positive where the field has a local minimum (value smaller
than its surroundings) and negative where it has a local maximum (value
larger than its surroundings).
user: Explain Inputs in complete detail according to the official Blender documentation.

assistant: Image
:   Standard color input image.

Factor
:   Controls the overall strength of the vignette effect.
    A value of 0 disables the effect, while higher values increase the darkness or intensity of the vignette.

Feather
:   Determines the softness of the vignette transition from the center to the edges.
    Higher values result in a smoother, more gradual fade.

### Transform

Corner Roundness
:   Adjusts the shape of the vignette corners.
    A value of 0 produces square corners, while 1 makes the vignette fully circular.

Scale
:   Controls the size of the vignette area.
    Smaller values make the vignette tighter and more focused near the center.

Offset
:   Shifts the vignette center position along the X and Y axes.
    Useful for emphasizing a specific area of the image instead of the center.

Angle
:   Rotates the vignette mask around the image center.
user: Give a detailed overview of Anonymous Attributes: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

The *Normal* and *Rotation* outputs are examples of attribute fields,
which refer to an attribute stored on a geometry.

An anonymous attribute is a set of generic data stored on a geometry that doesn’t have a name.
Usually, attributes exposed in Blender’s interface all have names. However,
in geometry nodes, attributes can be passed around with node sockets.
In these cases, an *Attribute Field* output is created, which is used by
nodes to find attribute data in an input geometry.

Anonymous attributes are still stored on the geometry like other attributes, and they are even
automatically interpolated when the geometry changes with other nodes, except for a few cases.
So generally, if the node link is still accessible, the attribute it references will be available
too. However, anonymous attributes cannot be connected to a completely separate geometry
that was created from a different source. To transfer attributes between separate geometries,
the [Sample Index Node](geometry/sample/sample_index.html) or other similar nodes like the
[Sample Nearest Surface Node](mesh/sample/sample_nearest_surface.html) can be used.
user: Describe CompositorNodeBokehBlur(CompositorNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # CompositorNodeBokehBlur(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.CompositorNodeBokehBlur(*CompositorNode*)
:   Generate a bokeh type blur similar to Defocus. Unlike defocus an in-focus region is defined in the compositor

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

assistant: If the language you want to translate has not been started by someone else already and you wish to create a set of new
files for the desired language, say ‘fr’ (French), then you must first use the environment you have created, as guided
in [Getting Started](../manual/index.xhtml#about-getting-started), in particular
[Installing Dependencies](../manual/getting_started/local_editing/install/index.xhtml) and
[Building the Manual](../manual/getting_started/local_editing/build.xhtml) sections.

This will give you a foundation environment for:

- Creating a new set of translation language from English source.
- Perform `make` command to turn translated texts in po files into html files for testing locally.
- Update changes in English texts which have been added by other contributors.

Below examples show the process to create a new set of files for French, language code `fr`, on Linux platform.
Other platforms might vary slightly but should be mainly the same.

1. [Create a Blender ID](https://id.blender.org/register/) if you have not done so already.
2. Log into [projects.blender.org](https://projects.blender.org/) and
   [Create an Issue](https://projects.blender.org/blender/documentation/issues/new)
   requesting for commit access in order to transfer changes to the central repository of the translation team.
3. Open an instance of a console application.
4. Change the current working directory to the directory of `blender-manual`, where the instance of `Makefile`
   resides.
user: Describe Scripted Expression from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

A security warning in the Drivers panel.

[image reference removed]

An Auto-run warning in the Info editor’s header.

By default Blender will restrict execution of Python scripts.

If using a *Scripted Expression* Driver Type that doesn’t follow
the [Simple Expressions](drivers_panel.html#drivers-simple-expressions)
subset, you will have to open the file as *Trusted Source*,
or set *Auto Run Python Scripts* in Preferences ‣ Save & Load ‣ Blender Files.

|  |  |
| --- | --- |
| ../../_images/animation_drivers_troubleshooting_autorun-file-browser.png   The Trusted Source checkbox in the File Browser. | ../../_images/animation_drivers_troubleshooting_autorun-user-preference.png   The Auto Run Python Scripts checkbox in the Preferences. |
user: How do I use Introduction in Blender? Include parameters, examples, warnings and best practices.

assistant: # Introduction

Blender’s physics system allows you to simulate a number of different real-world physical phenomena.
You can use these systems to create a variety of static and dynamic effects such as:

- Hair, grass, and flocks
- Rain
- Smoke and dust
- Water
- Cloth
- Jello
- etc.
user: Give a detailed overview of Usage: syntax, arguments, return values, common patterns.

assistant: Draw a dotted line around the strokes you want to trim.
After releasing the mouse button all the points on the selected strokes
will be deleted until another intersecting stroke is found.

|  |  |  |
| --- | --- | --- |
| <../../../../_images/grease-pencil_modes_draw_tools_cutter_example-01.png>   Original drawing. | <../../../../_images/grease-pencil_modes_draw_tools_cutter_example-02.png>   Lasso Selecting the strokes to be trimmed. | <../../../../_images/grease-pencil_modes_draw_tools_cutter_example-03.png>   Final result. |
user: Explain Set Selection Node in complete detail according to the official Blender documentation.

assistant: # Set Selection Node

[image reference removed]

The *Set Selection* node controls which geometry is [selected](../../../../interface/selecting.xhtml).

The input node for this data is the [Selection Node](../read/selection.xhtml).
user: Explain MovieClipUser(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # MovieClipUser(bpy_struct)

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

*class* bpy.types.MovieClipUser(*bpy_struct*)
:   Parameters defining how a MovieClip data-block is used by another data-block

    frame_current
    :   Current frame number in movie or image sequence

        Type:
        :   int in [-1048574, 1048574], default 1

    proxy_render_size
    :   Display preview using full resolution or different proxy resolutions

        Type:
        :   enum in [`'PROXY_25'`, `'PROXY_50'`, `'PROXY_75'`, `'PROXY_100'`, `'FULL'`], default `'FULL'`

    use_render_undistorted
    :   Render preview using undistorted proxy

        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: Give a detailed overview of Temporary Directory: syntax, arguments, return values, common patterns.

assistant: The temporary directory is used to store various files at run-time
(including render layers, physics cache, copy-paste buffer and crash logs).

The temporary directory is selected based on the following priority:

- User Preference (see [File Paths](../editors/preferences/file_paths.xhtml#prefs-file-paths)).
- Environment variables (`TEMP` on Windows, `TMP` & `TMP_DIR` on other platforms).
- The `/tmp/` directory.
user: Give a detailed overview of Bpy.Types.Nodetreeinterfacesocketvectortranslation4D: syntax, arguments, return values, common patterns.

assistant: tVectorTranslation4D.bl_rna_get_subclass_py() Inherited Properties Inherited Functions
user: Explain References in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`Object.local_view_get`](bpy.types.Object.html#bpy.types.Object.local_view_get "bpy.types.Object.local_view_get") - [`Object.local_view_set`](bpy.types.Object.html#bpy.types.Object.local_view_set "bpy.types.Object.local_view_set") - [`Object.visible_get`](bpy.types.Object.html#bpy.types.Object.visible_get "bpy.types.Object.visible_get") | - [`Object.visible_in_viewport_get`](bpy.types.Object.html#bpy.types.Object.visible_in_viewport_get "bpy.types.Object.visible_in_viewport_get") - [`SpaceView3D.local_view`](#bpy.types.SpaceView3D.local_view "bpy.types.SpaceView3D.local_view") |
user: What is Repeat Last and how is it used in Blender Python scripting?

assistant: The Repeat Last feature will repeat your last action when you press `Shift`-`R`.

In the example images below, we duplicated a *Monkey* mesh and moved it a bit.
Using repeat `Shift`-`R`, the *Monkey* was duplicated and moved a second time.

|  |  |  |
| --- | --- | --- |
| ../_images/interface_undo-redo_repeat-last1.png   Suzanne. | ../_images/interface_undo-redo_repeat-last2.png   After a `Shift`-`D` and move. | ../_images/interface_undo-redo_repeat-last3.png   After a `Shift`-`R`. |