PGCRYPT/OpenBlender_Train huggingface dataset:
user: Provide the full official documentation entry for ShaderNodeSubsurfaceScattering(ShaderNode), preserving all code examples.

assistant: # ShaderNodeSubsurfaceScattering(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.ShaderNodeSubsurfaceScattering(*ShaderNode*)
:   Subsurface multiple scattering shader to simulate light entering the surface and bouncing internally.
    Typically used for materials such as skin, wax, marble or milk

    falloff
    :   Method for rendering subsurface scattering

        - `BURLEY`
          Christensen-Burley – Approximation to physically based volume scattering.
        - `RANDOM_WALK`
          Random Walk – Volumetric approximation to physically based volume scattering, using the scattering radius as specified.
        - `RANDOM_WALK_SKIN`
          Random Walk (Skin) – Volumetric approximation to physically based volume scattering, with scattering radius automatically adjusted to match color textures. Designed for skin shading..

        Type:
        :   enum in [`'BURLEY'`, `'RANDOM_WALK'`, `'RANDOM_WALK_SKIN'`], default `'BURLEY'`

    *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/render_shader-nodes_shader_transparent_example.jpg   Transparent shader (pure white). | <../../../_images/render_shader-nodes_shader_transparent_behavior.svg>   Transparent shader behavior. |
| ../../../_images/render_shader-nodes_shader_transparent_example-dark.jpg   Transparent shader (gray). |  |
user: Provide the full official documentation entry for Parent Inverse Transform, preserving all code examples.

assistant: The *Parent Inverse* transform defines how the child object’s local space
is offset relative to its parent. It ensures that when parenting is created,
the child keeps its current world position, even though it now inherits
transforms from the parent.

The matrix is displayed decomposed into **Location**, **Rotation**, and **Scale** values.
These represent the offset needed to maintain the child’s position relative to its parent.
The values are read-only and shown for inspection only.

The *Rotation Mode* determines how the rotation component is displayed,
and can be switched between systems such as *XYZ Euler*, *Axis Angle*, or *Quaternion*.
This behaves identically to the [Rotation Mode](#bpy-types-object-rotation-mode) selector used in the main transform panel.

### Clear Parent Inverse Transform

Clears the *Parent Inverse* matrix from the selected objects. With an empty matrix,
the location, rotation, and scale properties of the children are interpreted
directly in the coordinate space of the parent.

This effectively makes the child’s transforms relative to the parent’s origin,
potentially moving the object in world space.

See [Clear Parent](../editing/parent.xhtml#bpy-ops-object-parent-clear) for additional methods to clear or manage parent-child relationships.
user: Describe Inputs from the Blender manual or Python API, including usage steps and snippets.

assistant: The inputs of the node are dynamic. In particular, the *Location* input is only available in
the *Texture* and *Point* vector types.

Vector
:   The vector to be transformed.

Location
:   The amount of translation along each axis.

Rotation
:   The amount of rotation along each axis. XYZ order.

Scale
:   The amount of scaling along each axis.
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`bpy.context.world`](bpy.context.html#bpy.context.world "bpy.context.world") - [`BlendData.worlds`](bpy.types.BlendData.html#bpy.types.BlendData.worlds "bpy.types.BlendData.worlds") - [`BlendDataWorlds.new`](bpy.types.BlendDataWorlds.html#bpy.types.BlendDataWorlds.new "bpy.types.BlendDataWorlds.new") | - [`BlendDataWorlds.remove`](bpy.types.BlendDataWorlds.html#bpy.types.BlendDataWorlds.remove "bpy.types.BlendDataWorlds.remove") - [`Scene.world`](bpy.types.Scene.html#bpy.types.Scene.world "bpy.types.Scene.world") - [`ViewLayer.world_override`](bpy.types.ViewLayer.html#bpy.types.ViewLayer.world_override "bpy.types.ViewLayer.world_override") |
user: Show practical ways to work with Project Point Node in a Blender add-on or script – include code.

assistant: # Project Point Node

[image reference removed]

Applies a projection matrix to a point. Specifically, this node turns the given
Euclidean vector (X, Y, Z) into the homogeneous vector (X, Y, Z, 1),
multiplies the given projection matrix by it,
and turns the resulting homogeneous vector back into a Euclidean one by dividing
it by the absolute value of its W component. This last step is also known as
perspective division.
user: Give a detailed overview of Options: syntax, arguments, return values, common patterns.

assistant: [[image reference removed]](../../../_images/modeling_modifiers_deform_curve_panel.png)

The Curve modifier.

Curve Object
:   The name of the curve object that will affect the deformed object.

Deformation Axis
:   This is the axis that the curve deforms along.

    X/Y/Z/-X/-Y/-Z

Vertex Group
:   If set, restrict the effect to the only vertices in that vertex group.

    Invert
    :   Inverts the influence of the selected vertex group, meaning that the group
        now represents vertices that will not be deformed by the modifier.

        The setting reverses the weight values of the group.
user: Give a detailed overview of SpaceDopeSheetOverlay(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # SpaceDopeSheetOverlay(bpy_struct)

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

*class* bpy.types.SpaceDopeSheetOverlay(*bpy_struct*)
:   show_overlays
    :   Display overlays

        Type:
        :   boolean, default True

    show_scene_strip_range
    :   When using scene time synchronization in the sequence editor, display the range of the current scene strip

        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: Provide the full official documentation entry for LayerObjects(bpy_struct), preserving all code examples.

assistant: # LayerObjects(bpy_struct)

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

*class* bpy.types.LayerObjects(*bpy_struct*)
:   Collections of objects

    active
    :   Active object for this layer

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

    selected
    :   All the selected objects of this layer

        Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object"), (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: How do I use GeometryNodeGetNamedGrid(GeometryNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # GeometryNodeGetNamedGrid(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.GeometryNodeGetNamedGrid(*GeometryNode*)
:   Get volume grid from a volume geometry with the specified name

    data_type
    :   Node socket data type

        Type:
        :   enum in [Node Socket Data Type Items](bpy_types_enum_items/node_socket_data_type_items.html#rna-enum-node-socket-data-type-items), default `'FLOAT'`

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

assistant: In this example we will use a UV sphere with an extruded “north pole” as our base object and
a cube as our parent mesh. To parent the sphere to the cube, in *Object Mode*,
first `LMB` select the sphere, then `Shift`-`LMB` select the cube
(order is very important here), and finally `Ctrl`-`P` to parent.

|  |  |
| --- | --- |
| <../../../../_images/scene-layout_object_properties_instancing_faces_cube-before.png>   A cube and a sphere. | <../../../../_images/scene-layout_object_properties_instancing_faces_cube-after.png>   Instancing Faces applied to the cube. |

Next, in the Properties ‣ Object Properties ‣ Instancing,
select *Faces*. The sphere is instanced, one for each face of the cube.

Both the parent object and original are displayed as editable “templates” in 3D Viewport,
but neither is rendered.
user: Provide the full official documentation entry for SDF Grid Mean Node, preserving all code examples.

assistant: # SDF Grid Mean Node

[image reference removed]

The *SDF Grid Mean* node applies mean (box) filter smoothing to amSigned Distance Field (SDF) grid.
This operation averages voxel values within a local neighborhood to smooth
out small variations and noise while preserving the overall shape of the field.

The filter works as a fast, separable averaging operation—sometimes called a
*box filter*—and is well suited for general-purpose smoothing or softening of
SDF data after boolean, voxelization, or other volumetric operations.
user: Describe Platform Builds from the Blender manual or Python API, including usage steps and snippets.

assistant: Wheels can severely impact the size of an extension. To mitigate this, it is possible to build different
extension zip files for each unique required platform.

For this you need to use the `--split-platforms` option from the
[build](../command_line/extension_arguments.html#command-line-args-extension-build) command.

```
blender --command extension build --split-platforms
```

### Example

Manifest file excerpt:

```
id = "my_addon_with_wheels"
version = "1.0.0"

platforms = ["windows-x64", "macos-x64"]
wheels = [
   "./wheels/pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl",
   "./wheels/pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl",
   "./wheels/pillow-10.3.0-cp311-cp311-win_amd64.whl",
]
```

Generated files from `--split-platforms`:

- my_addon_with_wheels-1.0.0-windows_x64.zip
- my_addon_with_wheels-1.0.0-macos_x64.zip
user: How do I use Simplify in Blender? Include parameters, examples, warnings and best practices.

assistant: Reduces the complexity of Grease Pencil strokes by strategically removing points.
This is useful for cleaning up strokes, optimizing performance,
and preparing drawings for further editing or animation.
There are multiple modes; described below:

### Fixed

Deletes alternated points in the strokes, except the start and end points.

Steps
:   The number of times to repeat the procedure.

### Adaptive

Uses the RDP algorithm (Ramer-Douglas-Peucker algorithm) for points deletion.
The algorithm tries to obtain a similar line shape with fewer points.

Factor
:   Controls the amount of recursively simplifications applied by the algorithm.

### Sample

Recreates the stroke geometry with a predefined length between points.

Length
:   The distance between points on the recreated stroke.
    Smaller values will require more points to recreate the stroke,
    while larger values will result in fewer points needed to recreate the curve.

### Merge

Simplifies the stroke by merging points that are closer than the specified distance.

Distance
:   The maximum distance between vertices to determine which ones will be merged.
user: Show practical ways to work with Select Pattern in a Blender add-on or script – include code.

assistant: Selects all bones whose name matches a given pattern.
Supported wild-cards: \* matches everything, ? matches any single character,
[abc] matches characters in “abc”, and [!abc] match any character not in “abc”.
As an example \*house\* matches any name that contains “house”,
while floor\* matches any name starting with “floor”.

Case Sensitive
:   The matching can be chosen to be case sensitive or not.

Extend
:   When *Extend* checkbox is checked the selection is extended instead of generating a new one.
user: How do I use Nodes in Blender? Include parameters, examples, warnings and best practices.

assistant: # Nodes

Blender contains different node-based editors with different purposes,
so this section only explains how to work with nodes in general.
The list below shows the different types of nodes and where they’re documented.

[image reference removed]

Example of a node editor.

| Icon | Name | Description |
| --- | --- | --- |
|  | [Geometry Nodes](../../../modeling/geometry_nodes/index.xhtml) | Used for procedural modeling. |
|  | [Shader Nodes](../../../render/shader_nodes/index.xhtml) | Used to create materials for objects. |
|  | [Composite Nodes](../../../compositing/index.xhtml) | Used to edit rendered images. |
|  | [Texture Nodes](../../../editors/texture_node/introduction.xhtml) | Used to create custom textures. |
user: Show practical ways to work with Operator Context Items in a Blender add-on or script – include code.

assistant: # Operator Context Items

INVOKE_DEFAULT:
:   Invoke Default.

INVOKE_REGION_WIN:
:   Invoke Region Window.

INVOKE_REGION_CHANNELS:
:   Invoke Region Channels.

INVOKE_REGION_PREVIEW:
:   Invoke Region Preview.

INVOKE_AREA:
:   Invoke Area.

INVOKE_SCREEN:
:   Invoke Screen.

EXEC_DEFAULT:
:   Exec Default.

EXEC_REGION_WIN:
:   Exec Region Window.

EXEC_REGION_CHANNELS:
:   Exec Region Channels.

EXEC_REGION_PREVIEW:
:   Exec Region Preview.

EXEC_AREA:
:   Exec Area.

EXEC_SCREEN:
:   Exec Screen.
user: What is Strip Proxy & Timecode and how is it used in Blender Python scripting?

assistant: [image reference removed]

Contains strip-specific proxy settings. The checkbox in the header can be used to
enable/disable proxy generation.

Custom Proxy
:   Directory
    :   By default, all generated proxy videos are stored to
        the folder `<path of original footage>/BL_proxy/<clip name>`,
        but this can be changed to a custom directory using this option.

    File
    :   Allows you to use preexisting proxies.

Resolutions
:   The resolution(s) of the proxy videos to generate; multiple sizes can be selected.

Overwrite
:   Whether to overwrite existing proxy files or keep them.

Quality
:   Controls the level of lossy compression applied to the image, expressed as a percentage.
    Lossy compression reduces file size by discarding some image data, which may result in a loss of detail.

    - **0%**: Maximum compression, producing the smallest file size but the most noticeable quality loss.
    - **100%**: No compression, preserving full image quality at the cost of a larger file size.

[Timecode](../../../../glossary/index.xhtml#term-Timecode) Index
:   When you are working with footage directly copied from a camera without preprocessing it,
    there might be numerous artifacts, mostly due to seeking to a given frame in the sequence.
    This happens because such footage usually does not have correct frame rate values in the file header.
    This issue can still arise when the source clip has the same frame rate as the scene settings.
    In order for Blender to correctly calculate the frames and frame rate there are two possible solutions:

    1. Preprocess your video with e.g. MEncoder to repair the file header and insert the correct keyframes.
    2. Use the Timecode Index option in Blender.

    None:
    :   Ignore generated timecodes, seek in movie stream based on calculated timestamp.

    Record Run:
    :   Seek based on timestamps read from movie stream, giving the best match between scene and movie times.

    Record Run No Gaps:
    :   Effectively convert movie to an image sequence,
        ignoring incomplete or dropped frames, and changes in frame rate.
user: Describe Useful Constructs from the Blender manual or Python API, including usage steps and snippets.

assistant: - `|BLENDER_VERSION|`:
  Inserts the current Blender version number automatically. e.g. “4.5”.
- `|BLENDER_VERSION_LABEL|`:
  Inserts the current Blender version label automatically. e.g. “4.5 LTS”.
- `` :abbr:`SSAO (Screen Space Ambient Occlusion)` ``:
  Abbreviation displays the full text on hover.
- `` :term:`Manifold` ``:
  Links to the corresponding entry in the [Glossary](../../../glossary/index.html).
- `` :bl-icon:`icon_name` ``:
  Include Blender icons as inline text, see the full list at [Icons](icons.html).
user: Show practical ways to work with Limitations in a Blender add-on or script – include code.

assistant: - [Path Guiding](render_settings/sampling.xhtml#bpy-types-cyclesrendersettings-use-guiding) is not supported on any GPU.
- [Open Shading Language](osl/index.xhtml) is only supported for OptiX, with some limitations listed in the documentation.
user: Show practical ways to work with Example in a Blender add-on or script – include code.

assistant: Rim Effect samples (Mode: Add).

|  |  |  |  |
| --- | --- | --- | --- |
| <../../_images/grease-pencil_visual-effects_rim_original.png>   Original image. | <../../_images/grease-pencil_visual-effects_rim_no-blur.png>   No blur. | <../../_images/grease-pencil_visual-effects_rim_blur.png>   Blur. | <../../_images/grease-pencil_visual-effects_rim_mask.png>   Mask color: Black. |
user: How do I use Shader AOV in Blender? Include parameters, examples, warnings and best practices.

assistant: Shader AOVs (Arbitrary Output Variables) are custom render passes that can hold additional
information for use in compositing. Create a pass in the *Shader AOV* panel,
write to it from a material using the [AOV Output Node](../shader_nodes/output/aov.xhtml),
and finally read from it in the Compositor using the socket on the Render Layers node.

Name
:   The name of the render pass. Used in both the AOV Output node and the
    Render Layers node. The name can be anything as long as it doesn’t conflict
    with other (enabled) passes.

Data Type
:   The type of data that the render pass stores per pixel.
    Use *Color* to store a color, normal, or other type of vector.
    Use *Value* to store a single number.
user: What is Metaball Properties and how is it used in Blender Python scripting?

assistant: # Metaball Properties

All metaball objects of a same [family](editing.html#meta-ball-object-families) in a scene interact with each other.
The settings in the *Metaball* section apply to all meta objects of the active family. In Edit Mode,
the *Active Element* panel is shown for [editing](editing.html#meta-ball-editing) individual metaball elements.
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: Geometry
:   Standard geometry input.

Selection
:   The selection of elements to sort, if left blank, all elements are sorted.
    Non-selected elements will keep their current indices.

Group ID
:   Elements with the same group ID are sorted together.
    If this is not a field, the node has no effect.

Sort Weight
:   The sorted values used to do the reordering.
    If this is not a field, the node has no effect.
user: Explain References in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`CompositorNodeOutputFile.format`](bpy.types.CompositorNodeOutputFile.html#bpy.types.CompositorNodeOutputFile.format "bpy.types.CompositorNodeOutputFile.format") - [`NodeCompositorFileOutputItem.format`](bpy.types.NodeCompositorFileOutputItem.html#bpy.types.NodeCompositorFileOutputItem.format "bpy.types.NodeCompositorFileOutputItem.format") - [`BakeSettings.image_settings`](bpy.types.BakeSettings.html#bpy.types.BakeSettings.image_settings "bpy.types.BakeSettings.image_settings") | - [`RenderSettings.image_settings`](bpy.types.RenderSettings.html#bpy.types.RenderSettings.image_settings "bpy.types.RenderSettings.image_settings") - [`UILayout.template_image_settings`](bpy.types.UILayout.html#bpy.types.UILayout.template_image_settings "bpy.types.UILayout.template_image_settings") - [`UILayout.template_image_views`](bpy.types.UILayout.html#bpy.types.UILayout.template_image_views "bpy.types.UILayout.template_image_views") |
user: What is Mask From Cavity and how is it used in Blender Python scripting?

assistant: Generates a mask based on the cavity of the surface. The settings of the operation can be changed
in the [Adjust Last Operation](../../../interface/undo_redo.html) panel.

Mode
:   Choose how the newly created mask is mixed with the existing one. By default it will replace the old mask via
    “Mix”.

Mix Factor
:   The factor of the mix effect. Choose how strong the new mask is applied on the existing one.

Automask Settings
:   The same settings as the [Auto-Masking](../controls.html) settings are applied.

Factor
:   Same as [Auto-Masking](../controls.html).

Blur
:   Same as [Auto-Masking](../controls.html).

Invert
:   Same as [Auto-Masking](../controls.html).

Custom Curve
:   Same as [Auto-Masking](../controls.html).
user: Show practical ways to work with Geometry Node in a Blender add-on or script – include code.

assistant: # Geometry Node

[image reference removed]

The *Geometry* node gives geometric information about the current shading point.
All vector coordinates are in *World Space*. For volume shaders,
only the position and incoming vector are available.
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: Mesh
:   Standard Mesh input.

Density
:   Value of voxels inside the generated fog volume.

Resolution Mode
:   How the voxel size is specified.

    Amount:
    :   Specify the approximate number of voxels along the diagonal.

    Size:
    :   Specify the voxel side length. It is recommended to be careful when tweaking this value,
        because small changes can have a large effect on the processing time.

Voxel Amount Amount
:   Specify the approximate number of voxels along the diagonal.

Voxel Size Size
:   Specify the voxel side length.

Interior Band Width
:   The maximum distance of the included voxels to the surface on the inside of the mesh.
user: Provide the full official documentation entry for Simulation Stability, preserving all code examples.

assistant: The simplest way of improving simulation stability is to increase the steps per second.
However, care has to be taken since making too many steps can cause problems and
make the simulation even less stable
(if you need more than 1000 steps, you should look at other ways to improve stability).

Increasing the number of solver iterations helps making constraints stronger and
also improves object stacking stability.

It is best to avoid small objects, as they are currently unstable.
Ideally, objects should be at least 20 cm in diameter.
If it is still necessary, setting the collision margin to 0,
while generally not recommended, can help making small object behave more naturally.

When objects are small and/or move very fast, they can pass through each other.
Besides what is mentioned above it’s also good to avoid using mesh shapes in this case.
Mesh shapes consist of individual triangles and therefore do not
really have any thickness, so objects can pass through more easily.
You can give them some thickness by increasing the collision margin.
user: Describe Properties from the Blender manual or Python API, including usage steps and snippets.

assistant: Movie Clip
:   Used to select a Movie Clip data-block to use, for controls see [Data-Block Menu](../../../interface/controls/templates/data_block.xhtml#ui-data-block).

Tracking Object
:   Camera object to get track information from.

Track
:   The name of the track to get track information from.
user: Show practical ways to work with NodeGroupInput(NodeInternal) in a Blender add-on or script – include code.

assistant: # NodeGroupInput(NodeInternal)

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

*class* bpy.types.NodeGroupInput(*NodeInternal*)
:   Expose connected data from inside a node group as inputs to its interface

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: What is Sound Crossfade and how is it used in Blender Python scripting?

assistant: # Sound Crossfade

The *Sound Crossfade* transition works by animating the *Volume*
of two overlapping Sound strips to evenly fade between them.
Because this simply animates a value it does not create a strip like other effects or transitions.
user: Describe Nla Mode Blend Items from the Blender manual or Python API, including usage steps and snippets.

assistant: # Nla Mode Blend Items

REPLACE:
:   Replace.

    The strip values replace the accumulated results by amount specified by influence.

COMBINE:
:   Combine.

    The strip values are combined with accumulated results by appropriately using addition, multiplication, or quaternion math, based on channel type.

---

ADD:
:   Add.

    Weighted result of strip is added to the accumulated results.

SUBTRACT:
:   Subtract.

    Weighted result of strip is removed from the accumulated results.

MULTIPLY:
:   Multiply.

    Weighted result of strip is multiplied with the accumulated results.
user: What is NodeTreeInterfaceSocketVectorXYZ(NodeTreeInterfaceSocket) and how is it used in Blender Python scripting?

assistant: # NodeTreeInterfaceSocketVectorXYZ(NodeTreeInterfaceSocket)

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

*class* bpy.types.NodeTreeInterfaceSocketVectorXYZ(*NodeTreeInterfaceSocket*)
:   3D vector socket of a node

    default_value
    :   Input value used for unconnected socket

        Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    dimensions
    :   Dimensions of the vector socket

        Type:
        :   int in [2, 4], default 0

    max_value
    :   Maximum value

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

    min_value
    :   Minimum value

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

    subtype
    :   Subtype of the default value

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

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

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

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

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

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

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: |  |  |
| --- | --- |
| - [`BlendData.hair_curves`](bpy.types.BlendData.html#bpy.types.BlendData.hair_curves "bpy.types.BlendData.hair_curves") - [`BlendDataHairCurves.new`](bpy.types.BlendDataHairCurves.html#bpy.types.BlendDataHairCurves.new "bpy.types.BlendDataHairCurves.new") | - [`BlendDataHairCurves.remove`](bpy.types.BlendDataHairCurves.html#bpy.types.BlendDataHairCurves.remove "bpy.types.BlendDataHairCurves.remove") - [`Curves.unit_test_compare`](#bpy.types.Curves.unit_test_compare "bpy.types.Curves.unit_test_compare") |
user: How do I use Set Spline Cyclic Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Set Spline Cyclic Node

[image reference removed]

The *Set Spline Cyclic* node changes whether splines loop back on themselves –
that is, whether their first and last control points are connected.

You can use the [Is Spline Cyclic Node](../read/is_spline_cyclic.xhtml)
to read this property.
user: Give a detailed overview of Performance: syntax, arguments, return values, common patterns.

assistant: Playback performance can be improved in several ways.

The method with the most impact is to allow the Video Sequencer to cache generated frames.
There are two levels of cache: a memory cache, which is enabled by default
(and can be enlarged if RAM allows), and a disk cache, which is slower but has more capacity.
Both of these can be configured in the [Preferences](../preferences/system.html#prefs-system-video-sequencer).

Another way to improve performance is by using [Strip Proxies](sequencer/sidebar/proxy.html#bpy-types-stripproxy).
These are copies of source images and videos with a lower resolution and/or quality,
making them faster to load than the originals.
user: Show practical ways to work with Outputs in a Blender add-on or script – include code.

assistant: Volume
:   The resulting volume geometry containing the newly stored grid.
    If a grid with the same name previously existed, it is replaced with the
    new one; otherwise, the grid is added as a new entry.
user: What is GeometryNodeCurveQuadraticBezier(GeometryNode) and how is it used in Blender Python scripting?

assistant: # GeometryNodeCurveQuadraticBezier(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.GeometryNodeCurveQuadraticBezier(*GeometryNode*)
:   Generate a poly spline in a parabola shape with control points positions

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

assistant: # Shade Smooth & Flat

The appearance of the mesh edges are determined to be evened out or well defined within the 3D Viewport and render.
In Edit Mode, individual faces can be selected to determine which faces are smoothed or flattened.
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

assistant: Tone Compositor Only
:   Standard:
    :   The Combined curve is applied to each channel individually, which may result in a change of hue.

    Filmlike:
    :   Keeps the hue constant.

Channel
:   The curve to show.

    C:
    :   Combined

    R:
    :   Red

    G:
    :   Green

    B:
    :   Blue

Curve
:   A Bézier curve that maps each input level (X axis) to an output level (Y axis).
    For the curve controls, see [Curve widget](../../../../interface/controls/templates/curve.xhtml#ui-curve-widget).
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: Data Type
:   The data type that is used for mixing.
    The node supports float, vector, color, and rotation data types.

Factor Mode (Vector only)
:   The factor mode can be set to *Uniform* and *Non-Uniform*.
    In uniform mode, a single float controls the factor.
    In non-uniform mode, a vector controls the factor for
    each XYZ channel separately.

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

    Add, Subtract, Multiply, Screen, Divide, Difference,
    Darken, Lighten, Overlay, Color Dodge, Color Burn,
    Hue, Saturation, Value, Color, Soft Light, Linear Light

Clamp Factor
:   Limit the factor value between 0.0 and 1.0. If this option is
    unchecked then the node operates using *Extrapolation*.

Clamp Result (Color only)
:   Limit the Result to the range between 0.0 and 1.0.
user: Explain Example in complete detail according to the official Blender documentation.

assistant: Results with the nodes applied to an image from
the [Mango Open Movie](https://mango.blender.org/).

|  |  |
| --- | --- |
| ../../../_images/compositing_types_matte_color-spill_example-before.jpg   Before: green border and green reflections. | ../../../_images/compositing_types_matte_color-spill_example-after.jpg   After: no unwanted green. |
user: What is ThemeGradientColors(bpy_struct) and how is it used in Blender Python scripting?

assistant: # ThemeGradientColors(bpy_struct)

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

*class* bpy.types.ThemeGradientColors(*bpy_struct*)
:   Theme settings for background colors and gradient

    background_type
    :   Type of background in the 3D viewport

        - `SINGLE_COLOR`
          Single Color – Use a solid color as viewport background.
        - `LINEAR`
          Linear Gradient – Use a screen space vertical linear gradient as viewport background.
        - `RADIAL`
          Vignette – Use a radial gradient as viewport background.

        Type:
        :   enum in [`'SINGLE_COLOR'`, `'LINEAR'`, `'RADIAL'`], default `'SINGLE_COLOR'`

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

    high_gradient
    :   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: Describe GeometryNodeUVTangent(GeometryNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GeometryNodeUVTangent(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.GeometryNodeUVTangent(*GeometryNode*)
:   Generate tangent directions based on a UV map

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Convolve Node

[image reference removed]

The *Convolve* node performs a 2D convolution operation on an image
using a custom [Image Kernel](../../image_kernels.xhtml).
This allows for a wide range of effects such as blurring, sharpening,
and edge detection, depending on the kernel values provided.

The node multiplies a neighborhood of pixels around each image pixel by the kernel values
and sums the results to compute the output pixel color.
This process is often used in image processing to emphasize or suppress certain spatial features.
user: Describe SimulationStateItem(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # SimulationStateItem(bpy_struct)

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

*class* bpy.types.SimulationStateItem(*bpy_struct*)
:   attribute_domain
    :   Attribute domain where the attribute is stored in the simulation state

        Type:
        :   enum in [Attribute Domain Items](bpy_types_enum_items/attribute_domain_items.html#rna-enum-attribute-domain-items), default `'POINT'`

    color
    :   Color of the corresponding socket type in the node editor

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

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

    socket_type
    :   Type:
        :   enum in [Node Socket Data Type Items](bpy_types_enum_items/node_socket_data_type_items.html#rna-enum-node-socket-data-type-items), default `'FLOAT'`

    *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