PGCRYPT/OpenBlender_Train huggingface dataset:
user: Give a detailed overview of View2D(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # View2D(bpy_struct)

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

*class* bpy.types.View2D(*bpy_struct*)
:   Scroll and zoom for a 2D region

    region_to_view(*x*, *y*)
    :   Transform region coordinates to 2D view

        Parameters:
        :   - **x** (*float in* *[**-inf**,* *inf**]*) – x, Region x coordinate
            - **y** (*float in* *[**-inf**,* *inf**]*) – y, Region y coordinate

        Returns:
        :   Result, View coordinates

        Return type:
        :   float array of 2 items in [-inf, inf]

    view_to_region(*x*, *y*, *\**, *clip=True*)
    :   Transform 2D view coordinates to region

        Parameters:
        :   - **x** (*float in* *[**-inf**,* *inf**]*) – x, 2D View x coordinate
            - **y** (*float in* *[**-inf**,* *inf**]*) – y, 2D View y coordinate
            - **clip** (*boolean**,* *(**optional**)*) – Clip, Clip coordinates to the visible region

        Returns:
        :   Result, Region coordinates

        Return type:
        :   int array of 2 items in [-inf, inf]

    *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 Argument Order: syntax, arguments, return values, common patterns.

assistant: Arguments are executed in the order they are given. eg:

```
blender --background test.blend --render-frame 1 --render-output "/tmp"
```

…will not render to `/tmp` because `--render-frame 1` renders before the output path is set.

```
blender --background --render-output /tmp test.blend --render-frame 1
```

…will not render to `/tmp` because loading the blend-file overwrites the render output that was set.

```
blender --background test.blend --render-output /tmp --render-frame 1
```

…works as expected.
user: Explain TextureNodeImage(TextureNode) in complete detail according to the official Blender documentation.

assistant: # TextureNodeImage(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.TextureNodeImage(*TextureNode*)
:   image
    :   Type:
        :   [`Image`](bpy.types.Image.html#bpy.types.Image "bpy.types.Image")

    image_user
    :   Parameters defining the image duration, offset and related settings

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

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: |  |  |
| --- | --- |
| - [`bpy.context.selected_editable_keyframes`](bpy.context.html#bpy.context.selected_editable_keyframes "bpy.context.selected_editable_keyframes") - [`FCurve.keyframe_points`](bpy.types.FCurve.html#bpy.types.FCurve.keyframe_points "bpy.types.FCurve.keyframe_points") | - [`FCurveKeyframePoints.insert`](bpy.types.FCurveKeyframePoints.html#bpy.types.FCurveKeyframePoints.insert "bpy.types.FCurveKeyframePoints.insert") - [`FCurveKeyframePoints.remove`](bpy.types.FCurveKeyframePoints.html#bpy.types.FCurveKeyframePoints.remove "bpy.types.FCurveKeyframePoints.remove") |
user: Provide the full official documentation entry for Nodes, preserving all code examples.

assistant: ### UV Along Stroke Node

[image reference removed]

UV Along Stroke Node.

The *UV Along Stroke* input node is maps textures along the stroke length,
making it possible to mimic pencil, paintbrush, and other art medium marks.

#### Inputs

This node has no inputs.

#### Properties

Use Tips
:   Allows to use lower quarters of a texture image for the head and tail tips of a stroke,
    while the upper half for the stroke body.

#### Outputs

UV
:   UV maps defined along strokes.

### Line Style Output Node

[image reference removed]

Line Style Output Node.

The *Line Style Output* node specifies how to mix the texture information
into the base color of line styles.

#### Inputs

Color
:   Color input for the texture.

Color Factor
:   Standard mix factor of the *Color* value.

Alpha
:   Alpha input for the texture.

Alpha Factor
:   Standard mix factor of the *Alpha* value.

#### Properties

Mix
:   The Blend mode can be selected in the select menu.
    See [Color Blend Modes](../../../../glossary/index.xhtml#term-Color-Blend-Modes) for details on each blending mode.

Clamp
:   Limit the highest color value to not exceed 1.0.

#### Outputs

This node has no outputs.
user: How do I use Light Settings (Cycles) in Blender? Include parameters, examples, warnings and best practices.

assistant: # Light Settings (Cycles)

Next to lighting from the background and any object with an emission shader,
lights are another way to add light into the scene.
The difference is that they are not directly visible in the rendered image,
and can be more easily managed as objects of their own type.
user: Explain Recovering Data in complete detail according to the official Blender documentation.

assistant: # Recovering Data

Computer crashes, power outages, or simply forgetting to save can result in the loss or corruption of your work. You
can use Blender’s *Auto Save* feature to reduce the chance of losing files when such events occur.

There are three options to help prevent accidental data loss:

- *Save Prompt* prompts you to save unsaved changes on exit
- *Save Versions* saves additional copies of your blend file with a number appended to the extension
- *Auto Save* saves your file automatically every few minutes (by default, every 2 minutes)
user: Describe GeometryNodeCornersOfEdge(GeometryNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GeometryNodeCornersOfEdge(GeometryNode)

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

*class* bpy.types.GeometryNodeCornersOfEdge(*GeometryNode*)
:   Retrieve face corners connected to edges

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

assistant: Value
:   The data retrieved and interpolated from the *Mesh* geometry, mapped based on the node’s settings and inputs.

Is Valid
:   Whether the node could find a single face to sample at the UV coordinate.
user: How do I use Clear Transform in Blender? Include parameters, examples, warnings and best practices.

assistant: # Clear Transform

Once you have transformed some bones, if you want to return to their rest position,
just clear their transformations.

All
:   Resets location, rotation, and scaling of selected bones to their default values.

Location, Rotation, Scale `Alt`-`G`, `Alt`-`R`, `Alt`-`S`
:   Clears individual transforms.

    Note that in *Envelope* visualization, `Alt`-`S` does not clear the scale,
    but rather scales the *Distance* influence area of the selected bones.
    (This is also available through the Pose ‣ Scale Envelope Distance menu entry,
    which is only effective in *Envelope* visualization, even though it is always available…)

Reset Unkeyed
:   Clears the transforms to their keyframe state.

    Only Selected
    :   Operate on just the selected or all bones.
user: Explain Fur in complete detail according to the official Blender documentation.

assistant: Adds a fur setup to the selected objects.
The fur setup is based on [Geometry Nodes](../geometry_nodes/index.xhtml) and built with
[Hair Node Groups](../geometry_nodes/hair/index.xhtml) that come with Blender as bundled assets.

See [Quick Fur](../../physics/introduction.xhtml#bpy-ops-object-quick-fur) for more information.
user: Give a detailed overview of Interpolation Utilities (mathutils.interpolate): syntax, arguments, return values, common patterns.

assistant: # Interpolation Utilities (mathutils.interpolate)

The Blender interpolate module.

mathutils.interpolate.poly_3d_calc(*veclist*, *pt*, */*)
:   Calculate barycentric weights for a point on a polygon.

    Parameters:
    :   - **veclist** (*Sequence**[**Sequence**[**float**]**]*) – Sequence of 3D positions.
        - **pt** – 2D or 3D position. :type pt: Sequence[float] :return: list of per-vector weights.

    Return type:
    :   list[float]
user: How do I use Add/Subtract Brushes in Blender? Include parameters, examples, warnings and best practices.

assistant: These brushes generally push vertices outwards and inwards and are the most customizable to achieve a wide variety of
effects. They typically don’t use a color in their thumbnail.

[image reference removed]

Draw
:   Brush Type: [Draw](draw.xhtml)

    Shortcut: `V`

    The standard brush for pushing vertices inwards and outwards from the surface direction.

Draw Sharp
:   Brush Type: [Draw Sharp](draw_sharp.xhtml)

    Shortcut: `Shift` `V`

    Same as *Draw* but with a much sharper [Falloff](../../brush/falloff.xhtml).
    Useful for creating creases and sharp angles.

Clay
:   Brush Type: [Clay](clay.xhtml)

    Similar to the *Draw* brush but with a flattening effect and subtle smoothing.
    Useful for polishing and building volumes.

Clay Strips
:   Brush Type: [Clay Strips](clay_strips.xhtml)

    Shortcut: `C`

    The same as the *Clay* brush, but more aggressive with a square falloff.
    A common standard for building rough volumes.

Clay Thumb
:   Brush Type: [Clay Thumb](clay_thumb.xhtml)

    The same as the *Clay* brush, but specifically for emulating the effect of running your thumb over surfaces.
    Pushes geometry in and sideways.

Layer
:   Brush Type: [Layer](layer.xhtml)

    Draw with a fixed height. Useful for adding flat layers to a surface.

Inflate/Deflate
:   Brush Type: [Inflate](inflate.xhtml)

    Shortcut: `I`

    Moves the mesh in multiple direction. Useful for inflating or shrinking surfaces and volumes.

Blob
:   Brush Type: [Blob](blob.xhtml)

    Magnifies the mesh as you draw. Useful for an additional inflation effect on the stroke.

Crease Polish
:   Brush Type: [Crease](crease.xhtml)

    Shortcut: `Shift` `C`

    A Draw brush with a pinching effect. Useful for polishing existing creases or carefully creating new ones.

Crease Sharp
:   Brush Type: [Crease](crease.xhtml)

    Much sharper and stronger Crease brush. Great for creating thin and deep pinches.
user: Show practical ways to work with PrimitiveString(bpy_struct) in a Blender add-on or script – include code.

assistant: # PrimitiveString(bpy_struct)

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

*class* bpy.types.PrimitiveString(*bpy_struct*)
:   RNA wrapped string

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: |  |  |
| --- | --- |
| - [`ParticleSettings.texture_slots`](bpy.types.ParticleSettings.html#bpy.types.ParticleSettings.texture_slots "bpy.types.ParticleSettings.texture_slots") - [`ParticleSettingsTextureSlots.add`](bpy.types.ParticleSettingsTextureSlots.html#bpy.types.ParticleSettingsTextureSlots.add "bpy.types.ParticleSettingsTextureSlots.add") | - [`ParticleSettingsTextureSlots.create`](bpy.types.ParticleSettingsTextureSlots.html#bpy.types.ParticleSettingsTextureSlots.create "bpy.types.ParticleSettingsTextureSlots.create") |
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`NodeTreeInterface.active`](bpy.types.NodeTreeInterface.html#bpy.types.NodeTreeInterface.active "bpy.types.NodeTreeInterface.active") - [`NodeTreeInterface.copy`](bpy.types.NodeTreeInterface.html#bpy.types.NodeTreeInterface.copy "bpy.types.NodeTreeInterface.copy") - [`NodeTreeInterface.copy`](bpy.types.NodeTreeInterface.html#bpy.types.NodeTreeInterface.copy "bpy.types.NodeTreeInterface.copy") - [`NodeTreeInterface.items_tree`](bpy.types.NodeTreeInterface.html#bpy.types.NodeTreeInterface.items_tree "bpy.types.NodeTreeInterface.items_tree") | - [`NodeTreeInterface.move`](bpy.types.NodeTreeInterface.html#bpy.types.NodeTreeInterface.move "bpy.types.NodeTreeInterface.move") - [`NodeTreeInterface.move_to_parent`](bpy.types.NodeTreeInterface.html#bpy.types.NodeTreeInterface.move_to_parent "bpy.types.NodeTreeInterface.move_to_parent") - [`NodeTreeInterface.remove`](bpy.types.NodeTreeInterface.html#bpy.types.NodeTreeInterface.remove "bpy.types.NodeTreeInterface.remove") - [`NodeTreeInterfacePanel.interface_items`](bpy.types.NodeTreeInterfacePanel.html#bpy.types.NodeTreeInterfacePanel.interface_items "bpy.types.NodeTreeInterfacePanel.interface_items") |
user: How do I use Relative or Absolute Shape Keys in Blender? Include parameters, examples, warnings and best practices.

assistant: Every object with shape keys maintains a stack of keys.
This stack may be of *Relative* or *Absolute* type.

### Relative

Relative shape keys are mainly used for muscles, limb joints, and facial animation.
Each shape is defined relative to the *Basis* or to another specified shape key.

The final result visible in the 3D Viewport, also called the *Mix*,
is the cumulative effect of each shape key with its current value.
Starting from the *Basis* shape, Blender applies each shape’s weighted offset
relative to its reference key.

Value
:   Controls the blend between a shape key and its reference key.

    - `0.0` = 100% influence of the reference key
    - `1.0` = 100% influence of the shape key

    Blender can extrapolate blends above 1.0 and below 0.0,
    which may amplify or invert the deformation.

Basis
:   The *Basis* is the first (top-most) key in the stack.

    - Represents the object’s vertices in their original positions.
    - Has no weight value and cannot be keyed.
    - Serves as the default *Reference Key* when creating new shape keys.

### Absolute

Absolute shape keys are mainly used to deform an object into different shapes *over time*.
Instead of being blended together, each key corresponds to a specific *Evaluation Time*.

The resulting shape, or *Mix*, is computed by interpolating between the previous and next keys
according to the current *Evaluation Time*.

Value
:   Represents the *Evaluation Time* (in frames) at which the shape key will be active.

Basis
:   The *Basis* is the first (top-most) key in the stack.

    - Represents the object’s vertices in their original positions.
    - Defines the starting shape for the absolute sequence.
user: Describe Edge Angle Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Edge Angle Node

[image reference removed]

The *Edge Angle* node calculates the angle in radians between two faces that meet at an edge.
For the Face, Face Corner, and Point [domains](../../attributes_reference.xhtml#attribute-domains),
the node uses simple domain interpolation to move values from the mesh’s edges.
user: Provide the full official documentation entry for ShaderNodeVolumeScatter(ShaderNode), preserving all code examples.

assistant: # ShaderNodeVolumeScatter(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.ShaderNodeVolumeScatter(*ShaderNode*)
:   Scatter light as it passes through the volume, often used to add fog to a scene

    phase
    :   Phase function for the scattered light

        - `HENYEY_GREENSTEIN`
          Henyey-Greenstein – Henyey-Greenstein, default phase function for the scattering of light.
        - `FOURNIER_FORAND`
          Fournier-Forand – Fournier-Forand phase function, used for the scattering of light in underwater environments.
        - `DRAINE`
          Draine – Draine phase functions, mostly used for the scattering of light in interstellar dust.
        - `RAYLEIGH`
          Rayleigh – Rayleigh phase function, mostly used for particles smaller than the wavelength of light, such as scattering of sunlight in earth’s atmosphere.
        - `MIE`
          Mie – Approximation of Mie scattering in water droplets, used for scattering in clouds and fog.

        Type:
        :   enum in [`'HENYEY_GREENSTEIN'`, `'FOURNIER_FORAND'`, `'DRAINE'`, `'RAYLEIGH'`, `'MIE'`], default `'HENYEY_GREENSTEIN'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # NodeSocketMaterial(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.NodeSocketMaterial(*NodeSocketStandard*)
:   Material socket of a node

    default_value
    :   Input value used for unconnected socket

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

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

assistant: [image reference removed]

Choosing closest pixels.

In the example above, the render output from two scenes are mixed using the Depth Combine node,
one from a sphere of size 1.3, and the other a cube of size 1.0.
The sphere and square are located at the same place. The cube is tipped forward,
so the corner in the center is closer to the camera than the sphere surface;
so Depth Combine chooses to use the cube’s pixels. But the sphere is slightly larger
(a size of 1.3 versus 1.0), so it does not fit totally inside the cube. At some point,
as the cube’s sides recede back away from the camera, the sphere’s sides are closer.
When this happens, Depth Combine uses the sphere’s pixels to form the resulting picture.

This node can be used to combine a foreground with a background matte painting.
Walt Disney pioneered the use of multi-plane mattes, where three or four partial mattes were
painted on glass and placed on the left and right at different depth positions; minimal camera
moves to the right created the illusion of depth as Bambi moved through the forest.

[image reference removed]

Mix and match images.

The Depth Combine can be used to merge two images as well.
Using the depth values from the sphere and cube scenes above, but inputting different images,
yields the example to the right.

[image reference removed]

Depth Combine in action.

In this node setup a render scene is mixed with a flat image. In the side view of the scene,
the orange cube is 10 units away from the camera, and the blue ball is at a depth of 20.
The 3D cursor is about 15 units away from the camera.
The image depth is 15, thus inserting it in between the cube and the ball.
The resulting image appears to have the cube on the green image.
user: How do I use Examples in Blender? Include parameters, examples, warnings and best practices.

assistant: ### Creating an Alpha Mask

An often overlooked use case of the Color Ramp is to turn a black-and-white image
into a colored image with transparency.

[image reference removed]

In the example above, a black-and-white swirl image, which is lacking an alpha channel,
is fed into the Color Ramp node as a *Factor*.

The Color Ramp node is set to a purely transparent color on the left end of the gradient,
and a fully red color on the right. As you can see in the Viewer node,
the Color Ramp node outputs an image that is transparent where the input is black,
and opaque where the input is white.

### Colorizing an Image

In this example, multiple colors are added to the color gradient,
converting a black-and-white image into a flaming swirl.

[image reference removed]

The shades of gray in the input image are mapped to three colors:
blue, yellow, and red, all fully opaque. Where the image is black,
the Color Ramp substitutes blue (the first color stop). Where it is some shade of gray,
the Color Ramp outputs a corresponding color from the gradient (bluish, yellow, to reddish).
Where the image is fully white, the Color Ramp outputs red.
user: Give a detailed overview of UDIM Tiles: syntax, arguments, return values, common patterns.

assistant: In this panel UDIM tiles are managed;
new tiles can be added, tiles can be removed, or tiles can filled with a generated texture.

UDIM Tile List
:   List all UDIM tiles associated with the main index (`1000` tile).
    Double clicking on the tile name allows you to alter the tiles *Label*.

Add Tile
:   Adds new UDIM tiles to the group.

    Number
    :   The starting tile index number.
        UDIMs must start with the `1001` tile and typically increase in incremental order.

    Count
    :   The number of tiles to add.

    Label
    :   An optional label can be used instead of the index number.
        These labels are shown in the 2D Viewport.

    Fill
    :   Occupy the UDIM tile with a generated image; see *Fill Tile* below.

Remove Tile
:   Deletes the selected UDIM tile from the group.
    If this tile is not saved and contains data, that data will be lost.

Fill Tile
:   Occupy the UDIM tile with a [Generated Image](../../../../editors/image/image_settings.xhtml#image-generated).
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`ParticleSystem.active_particle_target`](bpy.types.ParticleSystem.html#bpy.types.ParticleSystem.active_particle_target "bpy.types.ParticleSystem.active_particle_target") | - [`ParticleSystem.targets`](bpy.types.ParticleSystem.html#bpy.types.ParticleSystem.targets "bpy.types.ParticleSystem.targets") |
user: Give a detailed overview of PoseBone(bpy_struct): syntax, arguments, return values, common patterns.

assistant: ive’
        but saved generating a list.

    translate(*vec*)
    :   Utility function to add *vec* to the head and tail of this bone.

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

assistant: The *Spin* operator only works for one dimensional [surface](../../surfaces/index.xhtml) objects.
Its use for curves is currently not possible,
the full feature is documented in [Surface editing](../../surfaces/editing/surface.xhtml#bpy-ops-curve-spin).
user: Describe GeometryNodeInputSplineCyclic(GeometryNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GeometryNodeInputSplineCyclic(GeometryNode)

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

*class* bpy.types.GeometryNodeInputSplineCyclic(*GeometryNode*)
:   Retrieve whether each spline endpoint connects to the beginning

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

assistant: |  |  |  |  |
| --- | --- | --- | --- |
| ../../../_images/modeling_modifiers_deform_laplacian-smooth_repeat0.jpg   Femme front view [blend-file](https://archive.blender.org/wiki/2015/uploads/8/8f/Apinzonf_GSOC_2012_Media_femme_front.blend). | ../../../_images/modeling_modifiers_deform_laplacian-smooth_border0-0.jpg   Femme side view [blend-file](https://archive.blender.org/wiki/2015/uploads/4/47/Apinzonf_GSOC_2012_Media_femme_side.blend). | ../../../_images/modeling_modifiers_deform_laplacian-smooth_t-wgroup.png   Cube smooth [blend-file](https://archive.blender.org/wiki/2015/uploads/5/54/Apinzonf_GSOC_2012_Media_cube_smooth.blend). | ../../../_images/modeling_modifiers_deform_laplacian-smooth_camel-repeat0.jpg   Shape enhanced [blend-file](https://archive.blender.org/wiki/2015/uploads/4/44/Apinzonf_Shape_Enhanced_camel.blend). |
user: How do I use Custom Properties in Blender? Include parameters, examples, warnings and best practices.

assistant: Custom properties are always imported, and will be exported from most objects
if the Include ‣ Custom Properties option is selected before export.
These are stored in the `extras` field on the corresponding object in the glTF file.

Unlike glTF extensions, custom properties (extras) have no defined namespace,
and may be used for any user-specific or application-specific purposes.
user: What is Commit Guidelines and how is it used in Blender Python scripting?

assistant: # Commit Guidelines

Access to directly submit changes is limited to people with commit access to the repository. Once you are provided
with commit access you can start committing directly instead of creating a patch file.

You can make commits from your Git client or using the Git command line tool. The following command will create a
commit and send it to the central repository:

```
git commit -m "This is what I did"
git push
```

If you leave out `-m "message"`, you will be prompted to type the message in a text editor.
user: Give a detailed overview of Smooth: syntax, arguments, return values, common patterns.

assistant: # Smooth

Smooths the positions of the vertices to either polish surfaces or remove volume from larger shapes.
Because this brush is so essential, it’s always accessible by holding `Shift` and sculpting.

Also available as a [Mesh Filter](../tools/mesh_filter.xhtml)
to smooth all unmasked areas at once.
user: Provide the full official documentation entry for Auto-Name, preserving all code examples.

assistant: The three *AutoName* entries of the Armature ‣ Names menu allow you to
automatically add a suffix to all selected bones, based on the position of their root
relative to the armature’s origin and its local coordinates:

AutoName Left/Right
:   Will add the “.L” suffix to all bones with a *positive* X coordinate root,
    and the “.R” suffix to all bones with a *negative* X coordinate root.
    If the root is exactly at 0.0 on the X axis, the X coordinate of the tip is used.
    If both joints are at 0.0 on the X axis, the bone will just get a period suffix, with no “L”/ “R”
    (as Blender cannot decide whether it is a left or right bone…).

AutoName Front/Back
:   Will add the “.Bk” suffix to all bones with a *positive* Y coordinate root,
    and the “.Fr” suffix to all bones with a *negative* Y coordinate root.
    The same as with *AutoName Left-Right* goes for 0.0 Y coordinate bones…

AutoName Top/Bottom
:   Will add the “.Top” suffix to all bones with a *positive* Z coordinate root,
    and the “.Bot” suffix to all bones with a *negative* Z coordinate root.
    The same as with *AutoName Left-Right* goes for 0.0 Z coordinate bones…
user: Explain NodeGeometrySimulationOutputItems(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # NodeGeometrySimulationOutputItems(bpy_struct)

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

*class* bpy.types.NodeGeometrySimulationOutputItems(*bpy_struct*)
:   Collection of simulation items

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

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

        Returns:
        :   Item, New item

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

    remove(*item*)
    :   Remove an item

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

    clear()
    :   Remove all items

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

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Speed Control Strip

Speed Control time-warps the strip, making it play faster or slower than it normally would.
Playing faster means that some frames are skipped,
and the strip will run out of frames before the end frame.
When the strip runs out of frames to display, it will just keep repeating
the last one action that will appear to be frozen. To avoid this,
position the next strip under the original at a point where you want the motion to continue.
user: Describe Creating the Language Entry in the HTML Menu from the Blender manual or Python API, including usage steps and snippets.

assistant: 1. Create an entry for the language in the html menu by opening file `./build_files/theme/js/version_switch.js`
   (assuming you are at the `blender-manual` subdirectory).
2. Find the table for the languages in `var all_langs = {..};`.
3. Add the entry: `"fr": "Fran&ccedil;ais",`, (`"fr": "Français"`). (Notice the Unicode characters.)
4. Commit the updated file:

   ```
   git add ./build_files/theme/js/version_switch.js
   git commit -m "HTML: Add French to language menu"
   ```
5. Push your changes to the upstream repository:

   ```
   git push
   ```
user: Describe Properties from the Blender manual or Python API, including usage steps and snippets.

assistant: Transform Space
:   The transformation of the output instances. The instances are transformed, but not the geometry of the
    collection in them.

    Original:
    :   Output the instances relative to the collection offset.

    Relative:
    :   Join the input collection instances with the modified object as geometry,
        maintaining the relative position between the objects in the scene.
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`bpy.context.edit_mask`](bpy.context.html#bpy.context.edit_mask "bpy.context.edit_mask") - [`BlendData.masks`](bpy.types.BlendData.html#bpy.types.BlendData.masks "bpy.types.BlendData.masks") - [`BlendDataMasks.new`](bpy.types.BlendDataMasks.html#bpy.types.BlendDataMasks.new "bpy.types.BlendDataMasks.new") - [`BlendDataMasks.remove`](bpy.types.BlendDataMasks.html#bpy.types.BlendDataMasks.remove "bpy.types.BlendDataMasks.remove") - [`CompositorNodeMask.mask`](bpy.types.CompositorNodeMask.html#bpy.types.CompositorNodeMask.mask "bpy.types.CompositorNodeMask.mask") - [`MaskStrip.mask`](bpy.types.MaskStrip.html#bpy.types.MaskStrip.mask "bpy.types.MaskStrip.mask") | - [`SpaceClipEditor.mask`](bpy.types.SpaceClipEditor.html#bpy.types.SpaceClipEditor.mask "bpy.types.SpaceClipEditor.mask") - [`SpaceImageEditor.mask`](bpy.types.SpaceImageEditor.html#bpy.types.SpaceImageEditor.mask "bpy.types.SpaceImageEditor.mask") - [`StripModifier.input_mask_id`](bpy.types.StripModifier.html#bpy.types.StripModifier.input_mask_id "bpy.types.StripModifier.input_mask_id") - [`StripsMeta.new_mask`](bpy.types.StripsMeta.html#bpy.types.StripsMeta.new_mask "bpy.types.StripsMeta.new_mask") - [`StripsTopLevel.new_mask`](bpy.types.StripsTopLevel.html#bpy.types.StripsTopLevel.new_mask "bpy.types.StripsTopLevel.new_mask") |
user: Provide the full official documentation entry for Options, preserving all code examples.

assistant: [[image reference removed]](../../../_images/modeling_modifiers_deform_volume-displace_panel.png)

The Volume Displace modifier.

Texture
:   The texture that is evaluated at every voxel to determine how far and in what direction to displace.

Strength
:   Controls how far voxels are displaced.

Sample Radius
:   Smaller values result in better performance, but might cut off the volume outside.

Mid Level
:   This should be modified if the texture offsets the entire volume in one direction and you want to center it again.
    For performance reasons, the displaced volume should stay close to its original position.
user: Describe Introduction from the Blender manual or Python API, including usage steps and snippets.

assistant: # Introduction

To be able to work in the three-dimensional space that Blender uses,
you must be able to change your viewpoint as well as the viewing direction of the scene.
While we will describe the *3D Viewport* editor, most of the other editors have similar functions.
For example, it is possible to pan and zoom in the Image editor.
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`WorkSpace.owner_ids`](bpy.types.WorkSpace.html#bpy.types.WorkSpace.owner_ids "bpy.types.WorkSpace.owner_ids") - [`wmOwnerIDs.new`](bpy.types.wmOwnerIDs.html#bpy.types.wmOwnerIDs.new "bpy.types.wmOwnerIDs.new") | - [`wmOwnerIDs.remove`](bpy.types.wmOwnerIDs.html#bpy.types.wmOwnerIDs.remove "bpy.types.wmOwnerIDs.remove") |
user: How do I use Plane Track in Blender? Include parameters, examples, warnings and best practices.

assistant: # Plane Track

[[image reference removed]](../../../../../_images/movie-clip_tracking_clip_sidebar_track_plane-track_panel.png)

Plane Track panel.

Its properties are shown only when a plane track is selected.

Name
:   The name of the selected plane track is shown. It can also be changed from here.

Auto Keyframe
:   Toggles the auto-keyframing for corners of the plane track.
    With this enabled, keyframes will automatically get inserted when any corner is moved.

Image
:   Field to select or create an image which will be displayed inside the plane track.
    This image is for preview purposes in the Movie Clip editor only.
    To include it in your final render,
    see [Plane Track Deform node](../../../../../compositing/types/tracking/plane_track_deform.html).

New Image from Plane Track
:   Creates an image from the pixels of the Movie Clip that the plane marker “sees” at the current frame.
    This allows to create an unwarped texture of any flat surface in the footage.
    The resulting image can then be used for editing and retouching, for example to paint out certain parts
    of the footage.

Update Image from Plane Track
:   Updates the pixels of the active Plane Track’s image.

Opacity
:   Used to set the opacity of this image. Again,
    this is for display purposes only, and will not affect your final render.
user: How do I use Options in Blender? Include parameters, examples, warnings and best practices.

assistant: Auto-Velocity Emitter
:   Recalculate velocities of particles according to their edited paths.
    Otherwise, the original velocities values remains unchanged
    regardless of the actual distance that the particles moves.

Mirror X
:   Enable mirror editing across the local X axis.

Preserve
:   Strand Length
    :   Keep the length of the segments between the keypoints when combing or smoothing the hair.
        This is done by moving all the other keypoints.

    Root Positions
    :   Keep first key unmodified, so you cannot transplant hair.

### Cut Particles to Shape

Shape Object
:   A mesh object which boundary is used by the *Shape Cut* tool.

Cut
:   This grooming tool trims hairs to a shape defined by the *Shape Object*.
    This is a quicker way of avoiding protruding hair sections from lengthening than using the Cutting tool.
    It works especially well for characters with extensive fur,
    where working in a single plane with the Cutting tool becomes tedious.

Shape Cut example.

|  |  |
| --- | --- |
| ../../_images/physics_particles_mode_shapecut-before.png   Before. | ../../_images/physics_particles_mode_shapecut-after.png   After. |

### Viewport Display

Path Steps
:   The number of steps used to draw the path; improves the smoothness of the particle path.

Children Hair
:   Displays the children of the particles too.
    This allows to fine-tune the particles and see their effects on the result,
    but it may slow down your system if you have many children.

Particles Emitter
:   Displays the actual particles on top of the paths.

Fade Time
:   Fade out paths and keys further away from current time.

    Frames
    :   How many frames to fade.
user: What is CompositorNodeDisplace(CompositorNode) and how is it used in Blender Python scripting?

assistant: # CompositorNodeDisplace(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.CompositorNodeDisplace(*CompositorNode*)
:   Displace pixel position using an offset vector

    *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