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

assistant: # ActionChannelbagGroups(bpy_struct)

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

*class* bpy.types.ActionChannelbagGroups(*bpy_struct*)
:   Collection of f-curve groups

    new(*name*)
    :   Create a new action group and add it to the action

        Parameters:
        :   **name** (*string**,* *(**never None**)*) – New name for the action group

        Returns:
        :   Newly created action group

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

    remove(*action_group*)
    :   Remove action group

        Parameters:
        :   **action_group** ([`ActionGroup`](bpy.types.ActionGroup.html#bpy.types.ActionGroup "bpy.types.ActionGroup"), (never None)) – Action group to remove

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

assistant: # Parenting Objects

When modeling a complex object, such as a watch, you may choose to model the different parts as separate objects.
To make all the parts move as one (“the watch”), you can designate one object as the *parent* of all the other parts.
These other parts become its *children*, and any translation, rotation, or scale of the parent will also
affects its children.

Contrary to most biological lifeforms, each object or bone in Blender has at most one parent.
If an object already has a parent object and you give it another parent then Blender will remove
the previous parent relationship. When the plural “parents” is used in this chapter,
it references the hierarchy of parents, so the parent, the grandparent, great grandparent,
and so on, of an object.
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

assistant: Normalize
:   If enabled, the X-coordinates of the *Segment Coordinates* output are remapped into a 0.0 to 1.0 range
    and a constant value of 1.0 is added to the Y-coordinates which makes the output range non-negative.

    |  |  |
    | --- | --- |
    | ../../../../_images/render_shader-nodes_radial_tiling_normalize-disabled.png   Normalize: Disabled. | ../../../../_images/render_shader-nodes_radial_tiling_normalize-enabled.png   Normalize: Enabled. |
user: Describe Importing from the Blender manual or Python API, including usage steps and snippets.

assistant: ### General

Scale
:   Value by which to scale the imported objects in relation to the world’s origin.

Scene Unit
:   Apply current scene’s unit (as defined by unit scale) to imported data.

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

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

### Options

Facet Normals
:   Use (import) facet normals (note that this will still give flat shading).

Validate Mesh
:   Check the imported mesh for corrupt data and fix it if necessary.
    When disabled, erroneous data may cause crashes displaying or editing the meshes.
    This option will make the importing slower but is recommended, as data errors are not always obvious.
user: Provide the full official documentation entry for Asset Bundles, preserving all code examples.

assistant: *Asset bundles* are blend-files that do not reference any other file,
and whose name ends in `_bundle.blend`. Any textures and other external
files need to be [packed](../files/blend/packed_data.xhtml) into the current blend-file.

Asset bundles can be copied to an asset library via the [Asset Browser](#bpy-ops-asset-bundle-install):

- Open the asset bundle blend-file.
- Switch its Asset Browser to *Current File* (if it’s not set to that already).
- Click on *Copy Bundle to Asset Library*.
- Choose the asset library to copy it to.
- A File Browser will open at the root folder of the selected asset library.
  Choose the desired location of the blend-file, and click the *Copy to Asset Library* button.
- The blend-file will be saved at the chosen location, and any [catalogs](../files/asset_libraries/catalogs.xhtml) of
  the asset bundle will be merged into the target asset library.
user: Provide the full official documentation entry for Example, preserving all code examples.

assistant: In the image below, notice that:

- The light gray disk has turned white and the dark gray rectangle has turned black
  because of the *Mode*.
- The shapes have become thicker – dilated because of the positive *Size*.
- The shapes appear blurred because of the positive *Falloff Size*.

[image reference removed]
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`CompositorNodeConvertToDisplay.view_settings`](bpy.types.CompositorNodeConvertToDisplay.html#bpy.types.CompositorNodeConvertToDisplay.view_settings "bpy.types.CompositorNodeConvertToDisplay.view_settings") - [`ImageFormatSettings.view_settings`](bpy.types.ImageFormatSettings.html#bpy.types.ImageFormatSettings.view_settings "bpy.types.ImageFormatSettings.view_settings") | - [`Scene.view_settings`](bpy.types.Scene.html#bpy.types.Scene.view_settings "bpy.types.Scene.view_settings") |
user: How do I use Internal Data & Their Python Objects in Blender? Include parameters, examples, warnings and best practices.

assistant: # Internal Data & Their Python Objects

The Python objects wrapping Blender internal data have some limitations and constraints,
compared to ‘pure Python’ data. The most common things to keep in mind are documented here.
user: What is Relax and how is it used in Blender Python scripting?

assistant: # Relax

The Relax tool can be used to distribute UVs more evenly.
It works by pulling vertices along UV edges to bring the UV unwrap into balance.

The Relax tool can be compared with the [Minimize Stretch](../editing.xhtml#bpy-ops-uv-minimize-stretch) tool which works directly
on faces to reduce texture stretching and shearing.
You may find that sometimes minimize stretch works better, sometimes the unwrap
tool and other times the Relax tool.

First using Unwrap, then Minimize Stretch and touching up with the Relax tool often gives the best results.
Remember, you can use “Undo” at any time to return to an earlier state.
user: Give a detailed overview of Manage Brushes: syntax, arguments, return values, common patterns.

assistant: # Manage Brushes

Brush assets are stored in [asset libraries](../../files/asset_libraries/introduction.xhtml) to make them accessible from
any Blender session. There are two ways of managing brush assets:

- Using [asset operators](#brush-management-utility-operators): Create and update brush assets
  using utility operators from any Blender file. Storage is managed by Blender. Convenient for
  simple “on the fly” management of personal brush
  asset libraries.
- Using [manual storage](#brush-management-manual): Create and update brush assets by opening
  blend files within asset libraries, and managing brush asset data-blocks in there. Useful for
  careful curation of asset libraries, especially to prepare them for sharing with others.
user: Give a detailed overview of Spline Length Node: syntax, arguments, return values, common patterns.

assistant: # Spline Length Node

[image reference removed]

The *Spline Length* node outputs the total length of each spline, as a distance, or a number of points.
This is different than the [Curve Length](curve_length.html) node,
which adds up the total length for all of the curve’s splines.

The output values correspond to the spline domain, but the node can be used to output a value for every
curve control point as well.
user: Explain CompositorNodeImageCoordinates(CompositorNode) in complete detail according to the official Blender documentation.

assistant: # CompositorNodeImageCoordinates(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.CompositorNodeImageCoordinates(*CompositorNode*)
:   Returns the coordinates of the pixels of an image

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

    update()

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Get Named Grid Node

[image reference removed]

The *Get Named Grid* node retrieves a specific voxel grid from a volume geometry by its name.
Each volume object can contain multiple grids (for example, *density*, *color*,
*temperature*, or *velocity*), and this node allows accessing one of them for
further processing in the node tree.

The retrieved grid can then be sampled, modified, or converted to geometry
using other grid or SDF nodes.
user: Provide the full official documentation entry for Spline Length Node, preserving all code examples.

assistant: # Spline Length Node

[image reference removed]

The *Spline Length* node outputs the total length of each spline, as a distance, or a number of points.
This is different than the [Curve Length](curve_length.xhtml) node,
which adds up the total length for all of the curve’s splines.

The output values correspond to the spline domain, but the node can be used to output a value for every
curve control point as well.
user: How do I use Examples in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

Noise Texture with high detail.

Different Noise types with the same parameters.

|  |  |
| --- | --- |
| ../../../_images/render_shader-nodes_textures_musgrave_example-type-fbm.jpg   fBM (fractal Brownian Motion). | ../../../_images/render_shader-nodes_textures_musgrave_example-type-multifractal.jpg   Multifractal. |
| ../../../_images/render_shader-nodes_textures_musgrave_example-type-hybrid.jpg   Hybrid Multifractal. | ../../../_images/render_shader-nodes_textures_musgrave_example-type-terrain.jpg   Heterogeneous Terrain. |
| ../../../_images/render_shader-nodes_textures_musgrave_example-type-ridged.jpg   Ridged Multifractal. |  |
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Color
:   Color of the surface, or physically speaking, the probability that light is reflected for each wavelength.

Size
:   Parameter between 0.0 and 1.0 that gives an angle of reflection between 0° and 90°.

Smooth
:   This value specifies an angle over which a smooth transition from full to no reflection happens.

Normal
:   Normal used for shading; if nothing is connected the default shading normal is used.
user: Give a detailed overview of NodeSocketTexture(NodeSocketStandard): syntax, arguments, return values, common patterns.

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

    default_value
    :   Input value used for unconnected socket

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

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

assistant: # Transform Panel

When nothing is selected, the panel is empty.
When more than one vertex is selected, the median values are edited
and “Median” is added in front of the labels.

Control Point, Vertex
:   The first controls (X, Y, Z) show the coordinates of the selected point or handle (vertex).
    In case of a NURBS curve, there is a fourth component available (W),
    which defines the [weight](../structure.html#curves-structure-nurbs-weight)
    of the selected control point or the median weight.

Space
:   The Space radio buttons let you choose if those coordinates are relative
    to the object origin (local) or the global origin (global).

    Global, Local

Weight
:   Controls the “goal weight” of selected control points,
    which is used when a curve has [Soft Body](../../../physics/soft_body/index.html) physics,
    forcing the curve to “stick” to their original positions, based on the weight.

Radius
:   Controls the width of the extrusion/bevel along the “spinal” curve.
    The radius will be interpolated from point to point (you can check it with the normals).

Tilt
:   Controls how the normals (visualized as arrows)
    twist around each control point – so it is only relevant with 3D curves!
    The tilt will be interpolated from point to point (you can check it with the normals).
user: Describe Output Nodes from the Blender manual or Python API, including usage steps and snippets.

assistant: # Output Nodes

Output nodes are the final node in every node tree.
Although you can add more than one, only one will be used (indicated by a colored or darkened header).
Output nodes are always preceded by [Shaders](../shader/index.xhtml)
except in the case of the [Displacement](../../materials/components/displacement.xhtml) of a Material Output.
user: Give a detailed overview of Working with Multiple Objects: syntax, arguments, return values, common patterns.

assistant: # Working with Multiple Objects

Unlike Edit Mode, there is no multi-object editing supported for Sculpt Mode. Since sculpting often involves editing
many separate objects, it is recommended to use the shortcut `Alt` `Q` while pointing at other objects, for
[Switching Objects](../../../editors/3dview/modes.xhtml#bpy-ops-object-transfer-mode) quickly.

[image reference removed]

The advantage of using multiple objects is that each can have its own origin and modifiers.
Splitting the geometry among multiple objects can also improve the sculpt mode performance.
Alternatively objects can also be [joined](../../../scene_layout/object/editing/join.xhtml)
so there is no need to switch objects.

[image reference removed]

In the case that Face Sets were already used, joining objects or creating new geometry in Edit Mode will
automatically assign new Face Sets. This makes it immediately possible to target each new geometry, for example via
auto-masking. If no Face Sets are created, use the [Initialize Face Sets](../editing/face_sets.xhtml#bpy-ops-sculpt-face-sets-init) operator to create them.

Face Sets and Masked geometry can also be extracted via [Mask Extract](../editing/mask.xhtml#bpy-ops-sculpt-paint-mask-extract)
or sliced into a new object via [Mask Slice](../editing/mask.xhtml#bpy-ops-sculpt-paint-mask-slice).
user: Give a detailed overview of Adjust Last Operation: syntax, arguments, return values, common patterns.

assistant: You can tweak the parameters of an [operator](operators.xhtml) after running it.
In editors that support it, there is a “head-up display” panel in the bottom left
based on the last performed operation.
Alternatively, you can create a pop-up with `F9` which does the same thing.

For example, if your last operation was a rotation in *Object Mode*,
Blender will show you the last value changed for the angle
(see Fig. [Rotation (Object Mode, 60 degrees).](#fig-interface-redo-last-object-mode) left),
where you can change your action back completely by typing `Numpad0` in the *Angle* Field.
There are other useful options, based on the operator,
and you cannot only Undo actions, but change them completely using the available options.

If you are in *Edit Mode*,
Blender will also change its contents based on your last action taken.
In the second example (on the right), the last operation was a Move in Object Mode;
but a *Scale* on a Face in Edit Mode, and, as you can see,
the contents of *Adjust Last Operation* are different, because of the mode (Edit Mode)
(See Fig. [Scale (Edit Mode, Resize face).](#fig-interface-redo-last-edit-mode) right).

Adjust Last Operation.

|  |  |
| --- | --- |
| ../_images/interface_undo-redo_redo-last-object-mode.png   Rotation (Object Mode, 60 degrees). | ../_images/interface_undo-redo_redo-last-edit-mode.png   Scale (Edit Mode, Resize face). |
user: How do I use Brush in Blender? Include parameters, examples, warnings and best practices.

assistant: # Brush

The Brush type makes object apply paint on the canvas.

[image reference removed]

Brush main panel.

From the first brush panel you can define how brush affects canvas color surfaces.

Paint Color
:   Color of the paint.

Alpha
:   Defines brush alpha or visibility. Final wetness is also affected by alpha.

Wetness
:   Defines how “wet” new paint is. Wetness is visible on “Paint” surface “wetmap”.
    Speed of “Drip” and “Spread” effects also depends on how wet the paint is.

Absolute Alpha
:   This setting limits brush alpha influence.
    Without it, brush is “added” on surface over and over again each frame,
    increasing alpha and therefore influence of brush on canvas. In many cases however,
    it is preferred to not increase brush alpha if it already is on brushes level.

Erase Paint
:   Makes brush dissolve existing paint instead of adding it.
user: Give a detailed overview of OpenVDB File: syntax, arguments, return values, common patterns.

assistant: File Path
:   The VDB file to use.

Sequence
:   Loads further VDB files, one for each frame in an animation. Much like with image sequences,
    all the files should have a numerical suffix in their name; so if you selected smoke-000.vdb
    in the *File Path*, there should be a smoke-001.vdb, a smoke-002.vdb and so on.

    Frames
    :   How many frames of the sequence to use.

    Start
    :   Scene frame at which the sequence should start.

    Offset
    :   How many frames of the sequence to skip at the beginning.

    Mode
    :   How the volume should behave before the sequence’s first frame (*Start*) and after its
        last (*Start* + *Frames*).

        Clip:
        :   Show nothing.

        Extend:
        :   Keep showing the first/last frame of the sequence.

        Repeat:
        :   Play the sequence again (and again, and again…).

        Ping-Pong:
        :   Play the sequence forwards, then backwards, then forwards again and so on.
user: How do I use Make Meta in Blender? Include parameters, examples, warnings and best practices.

assistant: Groups the selected NLA-strips into a meta strip.

|  |  |
| --- | --- |
| ../../../_images/editors_nla_strips_meta1.png   Select two or more strips. | ../../../_images/editors_nla_strips_meta2.png   Combine them into a meta strip. |
user: How do I use Remeshing in Blender? Include parameters, examples, warnings and best practices.

assistant: # Remeshing

Blender offers several tools for regenerating a mesh so that it has (approximately) the same
shape but fewer faces, more faces, or better topology.

[image reference removed]

Remeshing to clean up messy geometry.
user: Show practical ways to work with Outputs in a Blender add-on or script – include code.

assistant: Result
:   If both depth values are equal, it will use the foreground image.
    Whichever depth value is less decides which image pixel is used.
    See [Z-buffer](../../../glossary/index.xhtml#term-Z-buffer).

Depth
:   The combined depth, which allows to thread multiple Depth Combine nodes together.
user: What is Attributes and how is it used in Blender Python scripting?

assistant: An attribute is data stored per mesh element. Every attribute has a data type, domain and name.
This panel only lists custom attributes which excludes all the built-in attributes like `position` and
other attributes like vertex groups.

See [Attributes Reference](../../geometry_nodes/attributes_reference.html) for more information.
user: Show practical ways to work with Scenes in the Video Sequencer in a Blender add-on or script – include code.

assistant: Scenes can also be used as [Scene Strips](../../video_editing/edit/montage/strips/scene.html) in the
[Video Sequencer](../../editors/video_sequencer/index.html).
This allows you to composite or edit multiple scenes together in one timeline.

For example, each shot of an animation can be stored in its own scene,
and then combined in a master scene that uses scene strips to sequence them in order.
This workflow is useful for multi-shot projects, trailers,
or layout editing without the need to render intermediate files.

When used as strips, scenes are rendered dynamically during playback or rendering,
and they share the same data-blocks unless they were created as full copies.
user: Describe Display Settings from the Blender manual or Python API, including usage steps and snippets.

assistant: The mask display can be toggled as a [viewport overlay](../../../editors/3dview/display/overlays.xhtml).
In the overlay popover, the opacity of the mask overlay can be adjusted to make it more or less visible on the mesh.
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`bpy.context.active_nla_strip`](bpy.context.html#bpy.context.active_nla_strip "bpy.context.active_nla_strip") - [`bpy.context.selected_nla_strips`](bpy.context.html#bpy.context.selected_nla_strips "bpy.context.selected_nla_strips") - [`NlaStrip.strips`](#bpy.types.NlaStrip.strips "bpy.types.NlaStrip.strips") | - [`NlaStrips.new`](bpy.types.NlaStrips.html#bpy.types.NlaStrips.new "bpy.types.NlaStrips.new") - [`NlaStrips.remove`](bpy.types.NlaStrips.html#bpy.types.NlaStrips.remove "bpy.types.NlaStrips.remove") - [`NlaTrack.strips`](bpy.types.NlaTrack.html#bpy.types.NlaTrack.strips "bpy.types.NlaTrack.strips") |
user: Describe ShaderNodeBsdfTransparent(ShaderNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # ShaderNodeBsdfTransparent(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.ShaderNodeBsdfTransparent(*ShaderNode*)
:   Transparency without refraction, passing straight through the surface as if there were no geometry

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Index

[**Symbols**](#Symbols)
| [**A**](#A)
| [**B**](#B)
| [**C**](#C)
| [**D**](#D)
| [**E**](#E)
| [**F**](#F)
| [**G**](#G)
| [**H**](#H)
| [**I**](#I)
| [**K**](#K)
| [**L**](#L)
| [**M**](#M)
| [**N**](#N)
| [**O**](#O)
| [**P**](#P)
| [**Q**](#Q)
| [**R**](#R)
| [**S**](#S)
| [**T**](#T)
| [**U**](#U)
| [**V**](#V)
| [**W**](#W)
| [**Z**](#Z)
user: Show practical ways to work with Bpy.Ops.Buttons in a Blender add-on or script – include code.

assistant: onal ) ) – Filter USD files filter_obj ( boolean , ( optional ) ) – Filter OBJ files filter_volume ( boolean , ( optional ) ) – Filter OpenVDB volume files filter_folder ( boolean , ( optional ) ) – Filter folders filter_blenlib ( boolean , ( optional ) ) – Filter Blender IDs filemode ( int in [ 1 , 9 ] , ( optional ) ) – File Browser Mode, The setting for the file browser mode to load a .blend file, a library or a special file relative_path ( boolean , ( optional ) ) – Relative Path, Select the file relative to the blend file display_type (enum in [ 'DEFAULT' , 'LIST_VERTICAL' , 'LIST_HORIZONTAL' , 'THUMBNAIL' ], (optional)) – Display Type DEFAULT Default – Automatically determine display type for files. LIST_VERTICAL Short List – Display files as short list. LIST_HORIZONTAL Long List – Display files as a detailed list. THUMBNAIL Thumbnails – Display files as thumbnails. sort_method ( enum in [ ] , ( optional ) ) – File sorting mode filter_glob ( string , ( optional , never None ) ) – Glob Filter, Custom filter bpy.ops.buttons. start_filter ( ) ¶ Start entering filter text bpy.ops.buttons. toggle_pin ( ) ¶ Keep the current data-block displayed Next Cachefile Operators Previous Brush Operators Copyright &#169; Blender Authors Made with Furo Report issue on this page On this page Buttons Operators clear_filter() context_menu() directory_browse() file_browse() start_filter() toggle_pin()
user: Provide the full official documentation entry for Properties, preserving all code examples.

assistant: Mode
:   Element-Wise:
    :   Compare each axis of the input vectors separately, and output true only when the result is true
        for each axis.

    Length:
    :   Compare the length of the two input vectors.

    Average:
    :   Compare the average of the elements of the input vectors. This is the same as the implicit
        conversion used when setting the node’s data type to *Float*.

    Dot Product:
    :   Compare the dot product of the two vectors with the separate *C* input, using the selected operation.
        The dot product outputs a single value that says how much the two vectors “agree”.

    Direction:
    :   Compare the angle between the two vectors with the separate *Angle* input, using the selected operation.
        The vectors are normalized, so their length does not matter.

Operation
:   Less Than:
    :   True when the first input is smaller than second input.

    Less Than or Equal:
    :   True when the first input is smaller than the second input or equal.

    Greater Than:
    :   True when the first input is greater than the second input.

    Greater Than or Equal:
    :   True when the first input is greater than the second input or equal.

    Equal:
    :   True when both the difference between the two inputs is smaller than the *Epsilon* input.

    Not Equal:
    :   True when both the difference between the two inputs is larger than the *Epsilon* input.

    Brighter:
    :   True when the first color input is brighter than the second.

    Darker:
    :   True when the first color input is darker than the second.
user: Show practical ways to work with Options in a Blender add-on or script – include code.

assistant: [image reference removed]

UI for a Turbulence force field.

Size
:   Indicates the scale of the noise.

Global
:   Makes the size and strength of the noise relative to the world, instead of the object it is attached to.
user: Explain Inpaint Node in complete detail according to the official Blender documentation.

assistant: # Inpaint Node

[image reference removed]

The *Inpaint node* is used to extend borders of an image into transparent or masked regions.
This can be useful to solve problems like “wire removal” and holes created during chroma keying.
user: Give a detailed overview of NodeSocketRotation(NodeSocketStandard): syntax, arguments, return values, common patterns.

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

    default_value
    :   Input value used for unconnected socket

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

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

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

        (readonly)

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Annotation tool strokes can be enabled/disabled with the checkbox in the panel header.
It is a standard annotations panel where annotation layers and frames can be controlled.
There is one difference in the behavior of the annotation tools from other areas –
when a new layer is created “on-demand” (when making a stroke without adding a layer before this)
the default color for the layer is set to pink. This heightens the color contrast to make
the stroke more noticeable on all kinds of movies.

Data Source
:   Determines the data-block type the current annotation layer is stored.

    Clip:
    :   Store the current annotation layer with the active *Movie Clip* data-block.

    Track:
    :   Store the current annotation layer with the active *Track* data-block.
user: What is Bpy.Types.Hydrarenderengine and how is it used in Blender Python scripting?

assistant: isplay_space_shader RenderEngine.unbind_display_space_shader RenderEngine.support_display_space_shader RenderEngine.get_preview_pixel_size RenderEngine.free_blender_memory RenderEngine.tile_highlight_set RenderEngine.tile_highlight_clear_all RenderEngine.register_pass RenderEngine.bl_rna_get_subclass RenderEngine.bl_rna_get_subclass_py Next ID(bpy_struct) Previous HueCorrectModifier(StripModifier) Copyright &#169; Blender Authors Made with Furo Report issue on this page On this page HydraRenderEngine(RenderEngine) USD Hydra Based Renderer HydraRenderEngine HydraRenderEngine.get_render_settings() HydraRenderEngine.render() HydraRenderEngine.update() HydraRenderEngine.view_draw() HydraRenderEngine.view_update() HydraRenderEngine.bl_rna_get_subclass() HydraRenderEngine.bl_rna_get_subclass_py() Inherited Properties Inherited Functions
user: Give a detailed overview of Inherited Properties: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") | - [`LineStyleGeometryModifier.name`](bpy.types.LineStyleGeometryModifier.html#bpy.types.LineStyleGeometryModifier.name "bpy.types.LineStyleGeometryModifier.name") |
user: Describe Outputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Geometry
:   The resulting geometry with duplicated hair curves.

Guide Index
:   An integer attribute storing the index of the original guide curve for each duplicate.
    This can be used for further operations such as matching colors or following guide motion.
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`GeometryNodeForeachGeometryElementOutput.main_items`](bpy.types.GeometryNodeForeachGeometryElementOutput.html#bpy.types.GeometryNodeForeachGeometryElementOutput.main_items "bpy.types.GeometryNodeForeachGeometryElementOutput.main_items") - [`NodeGeometryForeachGeometryElementMainItems.new`](bpy.types.NodeGeometryForeachGeometryElementMainItems.html#bpy.types.NodeGeometryForeachGeometryElementMainItems.new "bpy.types.NodeGeometryForeachGeometryElementMainItems.new") | - [`NodeGeometryForeachGeometryElementMainItems.remove`](bpy.types.NodeGeometryForeachGeometryElementMainItems.html#bpy.types.NodeGeometryForeachGeometryElementMainItems.remove "bpy.types.NodeGeometryForeachGeometryElementMainItems.remove") |
user: What is ShaderNodeBsdfToon(ShaderNode) and how is it used in Blender Python scripting?

assistant: # ShaderNodeBsdfToon(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.ShaderNodeBsdfToon(*ShaderNode*)
:   Diffuse and Glossy shaders with cartoon light effects

    component
    :   Toon BSDF component to use

        - `DIFFUSE`
          Diffuse – Use diffuse BSDF.
        - `GLOSSY`
          Glossy – Use glossy BSDF.

        Type:
        :   enum in [`'DIFFUSE'`, `'GLOSSY'`], default `'DIFFUSE'`

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

assistant: A “goal” is a shape that a soft body object tries to conform to.
It acts like a pin on a chosen set of vertices, controlling how much of an effect soft body has on them.

Enabling *Soft Body Goal* tells Blender to use the position (or animated position) of a vertex in the simulation.
Animating the vertices can be done in all the usual ways (F-Curves, armatures, parents, lattices, etc.)
before the soft body simulation is applied. The “goal” is the desired end position for vertices.
How a soft body tries to achieve this goal can be defined using stiffness forces and damping.

See the [Goal Settings](../settings/goal.xhtml) for details.

### Goal Strength

The *Goal Strength* defines how much motion from an animation system gets applied.

A *Goal* value of 1.0 means no soft body simulation,
the object act like any regular animated object (i.e. the vertex is kept at its original position).
When setting *Goal* to 0.0 (or no goal), the vertex is only influenced by physical laws
according to soft body simulation.

By setting goal values between 0.0 and 1.0,
you can blend between having the object affected only by the animation system,
and having the object affected only by the soft body effect.

Goal also serves as a memory, to make sure soft objects don’t deform too much,
ending up in the non-soft animated shape. Using the *Vertex Group* weight system,
you can define a *Goal* weight per vertex. To make this look more natural,
spring forces can be defined to control how far vertices can move from their original position.

Often [Weight Paint](../../../sculpt_paint/weight_paint/index.xhtml#painting-weight-index) is used to adjust the weight comfortably.
For non-mesh objects the *Weight* parameter of their vertices/control points is used instead;
Use the Context menu in Edit Mode or the *Transform* panel in the Sidebar region.
The weight of *Hair* particles can also be painted in [Particle Edit Mode](../../particles/mode.xhtml).
user: How do I use Audio in Blender? Include parameters, examples, warnings and best practices.

assistant: Options to control global audio settings.
To control how sounds is played back from within Blender, see the audio settings
in the [Preferences](../../editors/preferences/system.xhtml#prefs-system-sound).

Volume
:   Volume for the scene.

Distance Model
:   Changes how the sound attenuation is calculated based on the distance.
    Most physically correct is the *Inverse* model,
    but it’s also possible to choose a linear and an exponential falloff.
    The clamped modes limit the volume to be lower than 100% (1.0),
    that means if the distance is smaller than the reference distance, the volume is always 100%.
    For an exact description of each option
    see the [OpenAL documentation](https://www.openal.org/documentation/).

Doppler Speed
:   Speed of the sound for the Doppler effect calculations.
    The typical value is 343.3 m/s in air, in water for example this value is around 1560 m/s.

Doppler Factor
:   Controls how strong the Doppler effect is.
    You can exaggerate or attenuate the change of pitch, but physically correct is a factor of 1.0.

Update Animation Cache
:   Updates the audio animation cache. This is useful if you start noticing artifact in the audio.
user: Describe Troubleshoot an Override Hierarchy from the Blender manual or Python API, including usage steps and snippets.

assistant: These operations are only available from the Outliner contextual menu. They can help fixing a broken
override hierarchy.

### Resync

The hierarchy of the linked data (the relationships between linked data-blocks) can change.
Overrides need to be resynced to match the new hierarchy. This operator will resync the override
to match the new hierarchy in the library.

### Resync Enforce

In some cases, especially with older blend-files that were saved with ‘broken’ (non-hierarchy-matching) overrides,
a regular resync itself cannot rebuild properly the override as expected (e.g. some objects might go missing).
To solve this issue, this operator rebuilds the local override from its linked reference,
as well as its hierarchy of dependencies, enforcing that hierarchy to match the linked data
(i.e. ignoring existing overrides on data-blocks properties).
This is similar to a regular resync, but is more forceful, aggressive,
at the cost of a potential loss of some overrides on ID pointers properties.

### Delete

Remove the whole library override hierarchy, and replace all of these override data-blocks by
their original linked data-blocks. This fully reverts the *Make* operation.
user: Provide the full official documentation entry for ThemeFontStyle(bpy_struct), preserving all code examples.

assistant: # ThemeFontStyle(bpy_struct)

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

*class* bpy.types.ThemeFontStyle(*bpy_struct*)
:   Theme settings for Font

    character_weight
    :   Weight of the characters. 100-900, 400 is normal.

        Type:
        :   int in [100, 900], default 400

    points
    :   Font size in points

        Type:
        :   float in [6, 32], default 0.0

    shadow
    :   Shadow type (0 none, 3, 5 blur, 6 outline)

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

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

    shadow_offset_x
    :   Shadow offset in pixels

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

    shadow_offset_y
    :   Shadow offset in pixels

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

    shadow_value
    :   Shadow color in gray value

        Type:
        :   float in [0, 1], default 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: How do I use Usage in Blender? Include parameters, examples, warnings and best practices.

assistant: Extrude Point
:   `LMB` click to add a new point connected to the currently selected point.
    The new point will have [handle type](../../curves/structure.xhtml#curve-bezier-handle-type) of *Vector*.
    `Shift`-`LMB` click will add point as type *Auto*.
    However, the handle type switches to *Align* when handles are moved (See *Move Point*).

Delete Point
:   `Ctrl`-`LMB` click on an existing point to delete it.

Insert Point
:   `Ctrl`-`LMB` click on a [Curve Segment](../../../glossary/index.xhtml#term-Curve-Segment) to insert a new control point between the two
    adjacent control points. `Ctrl`-`LMB` click and drag to control the handles of the inserted points.

Move Segment
:   `LMB` drag on a segment in between two control points to adjust the handles, changing the shape of the
    curve without affecting the location of any control points.

Select Point
:   `LMB` click to select a single point or handle at a time.

Move Point
:   `LMB` drag to move existing points or handles. With an endpoint of a stroke selected,
    click and drag on empty space to *Extrude Point* and move the handle at the same time.

Close Stroke
:   Make the stroke [Cyclic](../../../glossary/index.xhtml#term-Cyclic) by clicking the endpoints.

Cycle Handle Type
:   Double `LMB` click on the control point to cycle through all handle types.