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

assistant: Buoyancy Density
:   Buoyant force based on gas density.

    - Values above 0 will cause the gas to rise (simulating gas which is lighter than ambient air).
    - Values below 0 will cause gas to sink (simulating gas which is heavier than ambient air).

Buoyancy Heat
:   Controls how much gas is affected by temperature.
    The effect this setting has on gas depends on the per flow object
    [Initial Temperature](../flow.xhtml#bpy-types-fluidflowsettings-temperature):

    - Values above 0 will result in the gas rising when the flow object *Initial Temperature* is
      set to a positive value, and gas sinking when the flow object *Initial Temperature* is
      set to a negative value.
    - Values below 0 will result in the opposite of positive values,
      i.e. gas emitted from flow objects with a positive *Initial Temperature* will sink,
      and gas from flow objects with a negative *Initial Temperature* will rise.

    Note that gas from multiple flow objects with different temperatures will mix and warm up or
    cool down until an equilibrium is reached.

Vorticity
:   Controls the amount of turbulence in the gas. Higher values will make lots of small swirls,
    while lower values make smoother shapes.

    Comparison of different amounts of vorticity.

    |  |  |
    | --- | --- |
    | ../../../../_images/physics_fluid_type_domain_settings_vorticity-off.png   Domain with a vorticity of 0.0. | ../../../../_images/physics_fluid_type_domain_settings_vorticity-on.png   Domain with a vorticity of 0.2. |

### Dissolve

Allow gas to dissipate over time.

Time
:   Speed of gas dissipation in frames.

Slow
:   Dissolve gas in a logarithmic fashion. Dissolves quickly at first, but lingers longer.
user: How do I use Parenting in Blender? Include parameters, examples, warnings and best practices.

assistant: # Parenting

You can edit the relationships between bones (and hence create/modify the chains of bones)
both from the 3D Viewport and the Properties. Whatever method you prefer,
it’s always a matter of deciding, for each bone, if it has to be parented to another one,
and if so, if it should be connected to it.

To parent and/or connect bones, you can:

In the *3D Viewport*, select the bone and *then* its future parent, and press `Ctrl`-`P`
(or Armature ‣ Parent ‣ Make Parent…).
In the small *Make Parent* menu that pops up, choose *Connected*
if you want the child to be connected to its parent, else click on *Keep Offset*.
If you have selected more than two bones, they will all be parented to the last selected one.
If you only select one already-parented bone, or all selected bones are already parented to the last selected one,
your only choice is to connect them, if not already done.
If you select only one non-parented bone, you will get the *Need selected bone(s)* error message…

In the *Properties*, Bones tab, for each selected bone,
you can select its parent in the *Parent* data ID to the upper right corner of its Relations panel.
If you want them to be connected, just enable the checkbox to the right of the list.

Parenting example.

|  |  |
| --- | --- |
| ../../../../_images/animation_armatures_bones_editing_parenting_start.png   The starting armature, with Bone.005 parented and connected to Bone.004. | ../../../../_images/animation_armatures_bones_editing_parenting_unconnected.png   Bone.005 re-parented to Bone.002, but not connected to it (same result, using either `Ctrl`-`P` `2` in 3D Viewport, or the Bones tab settings). |
| ../../../../_images/animation_armatures_bones_editing_parenting_connected.png   Bone.005 parented and connected to Bone.002, using `Ctrl`-`P` `1` in 3D Viewport. | ../../../../_images/animation_armatures_bones_editing_parenting_data-id.png   Bone.005 parented and connected to Bone.002.  Using the Parent data ID of Bone.005 Relations panel. |

To disconnect and/or free bones, you can:

- In a 3D Viewport, select the desired bones, and press `Alt`-`P`
  (or Armature ‣ Parent ‣ Clear Parent…).
  In the small *Clear Parent* menu that pops up, choose *Clear Parent* to completely free all selected bones,
  or *Disconnect Bone* if you just want to break their connections.
- In the Properties, *Bones* tab, for each selected bone, you can select no parent
  in the *Parent* data ID of its Relations panel, to free it completely.
  If you just want to disconnect it from its parent, disable the *Connected* checkbox.

Note that relationships with non-selected children are never modified.
user: What is Tool Settings and how is it used in Blender Python scripting?

assistant: If your tool requires any input from the user apart from the geometry to transform,
you can [add sockets](../../interface/controls/nodes/groups.html#bpy-ops-node-interface-item-new) to the *Group Input* node.
These will be exposed in the [Adjust Last Operation](../../interface/undo_redo.html#bpy-ops-screen-redo-last) panel when running the tool.
user: What is Properties and how is it used in Blender Python scripting?

assistant: Data Type
:   Float:
    :   The output will be a *Float* field.

    Integer:
    :   The output will be an *Integer* field.

    Vector:
    :   The output will be a *Vector* field.

    Boolean:
    :   The output will be a *Boolean* field.
user: Show practical ways to work with Subdivide and Smooth in a Blender add-on or script – include code.

assistant: Subdivides and smooths the strokes by inserting points between the selected points.

Number of Cuts
:   The number of subdivisions to perform.

Selected Points
:   When enabled, limits the effect to only the selected points within the stroke.

Iterations
:   Number of times to repeat the procedure.

Factor
:   The amount of the smoothness on subdivided points.

Smooth Endpoints
:   Smooths the stroke’s endpoints.

Keep Shape
:   Preserves the strokes shape.

Position
:   When enabled, the operator affect the points location.

Radius
:   When enabled, the operator affect the points thickness.

Opacity
:   When enabled, the operator affect the points strength (alpha).
user: How do I use Inherited Properties in Blender? Include parameters, examples, warnings and best practices.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`FileHandler.bl_idname`](bpy.types.FileHandler.html#bpy.types.FileHandler.bl_idname "bpy.types.FileHandler.bl_idname") - [`FileHandler.bl_import_operator`](bpy.types.FileHandler.html#bpy.types.FileHandler.bl_import_operator "bpy.types.FileHandler.bl_import_operator") | - [`FileHandler.bl_export_operator`](bpy.types.FileHandler.html#bpy.types.FileHandler.bl_export_operator "bpy.types.FileHandler.bl_export_operator") - [`FileHandler.bl_label`](bpy.types.FileHandler.html#bpy.types.FileHandler.bl_label "bpy.types.FileHandler.bl_label") - [`FileHandler.bl_file_extensions`](bpy.types.FileHandler.html#bpy.types.FileHandler.bl_file_extensions "bpy.types.FileHandler.bl_file_extensions") |
user: Explain Group Output in complete detail according to the official Blender documentation.

assistant: # Group Output

[image reference removed]

The *Group Output* node defines the final output of a node group.
It determines which values are passed out of the node group to the parent node tree
(or to the renderer, in the case of the Compositor).

In the Compositor, this node defines the image result that is sent to the renderer or to
image output after rendering.

This node is updated automatically after each evaluation or render,
and updates interactively when connected inputs are changed—provided that all inputs are fully evaluated.
user: How do I use Bézier in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

Active Spline panel: Bézier Spline.

Cyclic U
:   See [Common Options](#spline-common-options).

Resolution U
:   See [Common Options](#spline-common-options).

Interpolation Tilt
:   Alters how the tilt of a segment is calculated.

Radius
:   Alters how the radius of a beveled curve is calculated.
    The effects are easier to see after [increasing the radius](../editing/curve.html#modeling-curve-radius).

Smooth
:   See [Common Options](#spline-common-options).
user: Provide the full official documentation entry for GeometryNodeTriangulate(GeometryNode), preserving all code examples.

assistant: # GeometryNodeTriangulate(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.GeometryNodeTriangulate(*GeometryNode*)
:   Convert all faces in a mesh to triangular faces

    *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 Switch View Node, preserving all code examples.

assistant: # Switch View Node

[image reference removed]

The *Switch View* node combines the *views* (left and right) into a single stereo 3D output.
This can be useful if for example, you need to treat the view as separate images by combining each of the views.
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Mesh
:   Standard geometry input.

Shade Smooth
:   When true, the selected faces will be marked to render smooth shaded.
    Otherwise the faces will be rendered flat shaded.

Selection
:   Boolean input for selecting which faces will have the Shade Smooth value applied.
user: What is Version/Revision Milestones and how is it used in Blender Python scripting?

assistant: ad/releases/4-1/) – March 2024
:   Geometry Nodes baking support, Menu Switch node, OpenImageDenoise GPU acceleration, more realtime viewport
    compositor functions, simpler animation keyframe insertion, hierarchical bone collections, graph editor
    click-and-slide, video sequencer performance and color scope improvements, alignment to the [VFX Reference Platform
    2024](https://vfxplatform.com/), armature and shape key export to USD.

[4.2 LTS](https://www.blender.org/download/releases/4-2/) – July 2024
:   Next generation of EEVEE with major upgrades to lighting, sun lights, displacement, subsurface, volumetrics, and
    motion blur, Cycles gains Ray Portal BSDF and Thin-Film Interference, better soft volume rendering with reduced
    noise, blue noise-based sampling, Blender Extensions platform launched, Khronos PBR Neutral Tone Mapper, sculpting
    selection improvements, Node inputs support matrices, Node Tools can use mouse position and viewport, video
    sequencer graphical overhaul, additional USD export options, native portable installation support.
    **First LTS of the 4.0 series.**

[4.3](https://www.blender.org/download/releases/4-3/) – November 2024
:   Light linking and shadow linking in EEVEE, Metallic BSDF, Gabor noise texture, EEVEE render passes in the
    compositor, minimum stretch (SLIM) UV unwrapping, numerous Geometry Nodes updates including for…each zone,
    physics nodes, Grease Pencil engine rewritten for speed and features, over 100 default brushes now included for
    painting and sculpting, UI area docking.
user: How do I use Gas Simulations in Blender? Include parameters, examples, warnings and best practices.

assistant: Gas or smoke simulations are a subset of the fluids system, and can be used for simulating collections
of airborne solids, liquid particulates and gases, such as those that make up smoke.
It simulates the fluid movement of air and generates animated [Voxel](../../glossary/index.xhtml#term-Voxel)
textures representing the density, heat, and velocity of other fluids or suspended particles
(e.g. smoke) which can be used for rendering.

[image reference removed]

Example of a fire simulation.

Gases or smoke are emitted inside of a [Domain](type/domain/index.xhtml) from
a mesh object or particle system. The smoke movement is controlled by airflow inside the domain,
which can be influenced by [Effector](type/effector.xhtml) objects.
Smoke will also be affected by the scene’s gravity and [force fields](../forces/force_fields/index.xhtml).
Airflow inside the domain can affect other physics simulations
via the [Fluid Flow](../forces/force_fields/types/fluid_flow.xhtml) force field.
user: Describe FBX from the Blender manual or Python API, including usage steps and snippets.

assistant: # FBX

The *FBX* (Filmbox) format is widely used for exchanging 3D data between applications,
especially for animated characters and complex scene data. It is supported by software
such as Autodesk Maya, 3ds Max, Cinema 4D, and game engines like Unity and Unreal Engine.

Blender’s FBX importer supports a broad range of FBX features and is designed to be
fast, memory-efficient, and highly compatible with both modern and legacy FBX files.
user: How do I use Image or Movie in Blender? Include parameters, examples, warnings and best practices.

assistant: # Image or Movie

The term *Image Texture* simply means that a graphic image,
which is a pixel grid composed of R, G, B, and sometimes Alpha values.
It is used as the input source to the texture.
As with other types of textures, this information can be used in a number of ways,
not only as a simple “decal”.

*Video textures* are a some kind of Image textures and
based on movie file or sequence of successive numbered separate images.
They are added in the same way that image textures are.

When the Texture Type *Image or Movie* is selected, three new panels present
themselves allowing to control most aspects of how image textures are applied:
*Image*, *Image Sampling*, and *Image Mapping*.
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Instances
:   Standard geometry input.

Selection
:   The instances used to generate points. True values mean a point is created for the instance,
    false values mean the instance is skipped.

Position
:   Overrides the default position of generated point.

Radius
:   Controls the radius of the result points.
user: How do I use Properties in Blender? Include parameters, examples, warnings and best practices.

assistant: Type
:   *Bands* or *Rings* shaped waves.

Bands/Rings Direction
:   The axis the bands or rings propagate from i.e. which axis they are perpendicular to.
    When using *Bands* a *Diagonal* axis is an option and when using *Rings* the rings
    can propagate outwards from a single point by using *Spherical* direction.

Wave Profile
:   Controls the look of the wave type.

    Saw:
    :   Uses a sawtooth profile.

    Sine:
    :   Uses the standard sine profile.
user: Give a detailed overview of Pose Options: syntax, arguments, return values, common patterns.

assistant: ### Auto IK

Automatic IK is a tool for quick posing, when enabled, translating a bone will activate
inverse kinematics and rotate the parent bone, and the parent’s parent, and so on, to
follow the selected bone. The IK chain can only extend from a child to a parent bone
if the child is *connected* to it.

While moving bones, the length of the chain (the number of affected bones)
can be increased or decreased using keyboard hotkeys.
Pressing `PageUp` will increase in chain length by one
and `PageDown` decreases the length by one.
The chain length can also be controlled with `WheelUp` or `WheelDown`.

The initial chain length is 0, which effectively means follow
the connections to parent bones as far as possible, with no length limit.
So pressing increasing the chain length the first time sets the length to 1 (move only the selected bone),
and at this point, decreasing the length point sets it back to 0 (unlimited) again.
Thus, you have to increase the chain length *more than once* from the initial state
to set a finite chain length greater than 1.

This is a more limited feature than using an IK constraint,
which can be configured, but it can be useful for quick posing.

### X-Axis Mirror

This option enables automatic mirroring of editing actions along the X axis.
You can enable this option in the Tool tab ‣ Options panel,
while the armature is selected in *Edit Mode*.
When you have pairs of bones of the same name with just a different “side suffix”
(e.g. “.R”/”.L”, or “_right”/”_left” …), once this option is enabled,
each time you transform (move, rotate, scale…) a bone,
its “other side” counterpart will be transformed accordingly,
through a symmetry along the armature local X axis.
As most rigs have at least one axis of symmetry (animals, humans, …),
it is an easy way to keep the model symmetrical.

### Relative Mirror

Accounts for any relative transformations when using *X-Axis Mirror*.
user: Explain Outputs in complete detail according to the official Blender documentation.

assistant: Location
:   Location of the particle.

Radius
:   Size of the particle.

Random
:   A random per-point value in the range from 0 to 1.
    It can for example be used in combination with a color ramp, to randomize the point color.
user: Show practical ways to work with Split Node in a Blender add-on or script – include code.

assistant: # Split Node

[image reference removed]

The *Split* node combines two input images into a single output image,
displaying them side by side or along a rotated split line.
This is useful for comparing two versions of an image, such as before and after
a color correction, compositing effect, or render adjustment.
user: Provide the full official documentation entry for Palette(ID), preserving all code examples.

assistant: # Palette(ID)

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

*class* bpy.types.Palette(*ID*)
:   colors
    :   Type:
        :   [`PaletteColors`](bpy.types.PaletteColors.html#bpy.types.PaletteColors "bpy.types.PaletteColors") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`PaletteColor`](bpy.types.PaletteColor.html#bpy.types.PaletteColor "bpy.types.PaletteColor"), (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 ShaderNodeMath(ShaderNode), preserving all code examples.

assistant: # ShaderNodeMath(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.ShaderNodeMath(*ShaderNode*)
:   Perform math operations

    operation
    :   Type:
        :   enum in [Node Math Items](bpy_types_enum_items/node_math_items.html#rna-enum-node-math-items), default `'ADD'`

    use_clamp
    :   Clamp result of the node to 0.0 to 1.0 range

        Type:
        :   boolean, default False

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

assistant: # NodeGeometryForeachGeometryElementGenerationItems(bpy_struct)

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

*class* bpy.types.NodeGeometryForeachGeometryElementGenerationItems(*bpy_struct*)
:   Collection of generation items

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

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

        Returns:
        :   Item, New item

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

    remove(*item*)
    :   Remove an item

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

    clear()
    :   Remove all items

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

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: While shading nodes control the appearance, these settings control the quality and algorithms
that each renderer uses to render the material.

- [EEVEE specific settings](../eevee/material_settings.xhtml)
- [Cycles specific settings](../cycles/material_settings.xhtml)
user: Give a detailed overview of Face Area Node: syntax, arguments, return values, common patterns.

assistant: # Face Area Node

[image reference removed]

The *Face Area* node outputs the surface area of a mesh’s faces.
The units are in Blender units no matter the unit system,
equivalent to meters-squared at the default unit scale.
user: Provide the full official documentation entry for Exterior, preserving all code examples.

assistant: # Exterior

Exterior forces are applied to the vertices (and nearly exclusively to the vertices)
of soft body objects. This is done using Newton’s Laws of Physics:

- If there is no force on a vertex, it stays either unmoved or moves with constant speed in a straight line.
- The acceleration of a vertex depends on its mass and the force.
  The heavier the mass of a vertex the slower the acceleration. The larger the force the greater the acceleration.
- For every action there is an equal and opposite reaction.

Well, this is done only in the range of computing accurateness,
there is always a little damping to avoid overshoot of the calculation.
user: Explain Short2AttributeValue(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # Short2AttributeValue(bpy_struct)

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

*class* bpy.types.Short2AttributeValue(*bpy_struct*)
:   2D value in geometry attribute

    value
    :   2D vector

        Type:
        :   int array of 2 items in [-32768, 32767], 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 References in Blender? Include parameters, examples, warnings and best practices.

assistant: |  |  |
| --- | --- |
| - [`Gizmo.target_set_operator`](bpy.types.Gizmo.html#bpy.types.Gizmo.target_set_operator "bpy.types.Gizmo.target_set_operator") - [`KeyConfigurations.find_item_from_operator`](bpy.types.KeyConfigurations.html#bpy.types.KeyConfigurations.find_item_from_operator "bpy.types.KeyConfigurations.find_item_from_operator") - [`KeyMapItem.properties`](bpy.types.KeyMapItem.html#bpy.types.KeyMapItem.properties "bpy.types.KeyMapItem.properties") - [`KeyMapItems.find_from_operator`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.find_from_operator "bpy.types.KeyMapItems.find_from_operator") - [`Macro.properties`](bpy.types.Macro.html#bpy.types.Macro.properties "bpy.types.Macro.properties") - [`Operator.description`](bpy.types.Operator.html#bpy.types.Operator.description "bpy.types.Operator.description") - [`Operator.properties`](bpy.types.Operator.html#bpy.types.Operator.properties "bpy.types.Operator.properties") - [`OperatorMacro.properties`](bpy.types.OperatorMacro.html#bpy.types.OperatorMacro.properties "bpy.types.OperatorMacro.properties") | - [`UILayout.operator`](bpy.types.UILayout.html#bpy.types.UILayout.operator "bpy.types.UILayout.operator") - [`UILayout.operator_menu_enum`](bpy.types.UILayout.html#bpy.types.UILayout.operator_menu_enum "bpy.types.UILayout.operator_menu_enum") - [`UILayout.operator_menu_hold`](bpy.types.UILayout.html#bpy.types.UILayout.operator_menu_hold "bpy.types.UILayout.operator_menu_hold") - [`UILayout.template_popup_confirm`](bpy.types.UILayout.html#bpy.types.UILayout.template_popup_confirm "bpy.types.UILayout.template_popup_confirm") - [`WindowManager.operator_properties_last`](bpy.types.WindowManager.html#bpy.types.WindowManager.operator_properties_last "bpy.types.WindowManager.operator_properties_last") - [`WorkSpaceTool.operator_properties`](bpy.types.WorkSpaceTool.html#bpy.types.WorkSpaceTool.operator_properties "bpy.types.WorkSpaceTool.operator_properties") - [`XrActionMapItem.op_properties`](bpy.types.XrActionMapItem.html#bpy.types.XrActionMapItem.op_properties "bpy.types.XrActionMapItem.op_properties") |
user: Provide the full official documentation entry for Star Node, preserving all code examples.

assistant: # Star Node

[image reference removed]

The *Star* node generates a poly spline in a star pattern by connecting alternating points of two circles.
The points on the inner circle are offset by a rotation so that they lie in between the points on the outer circle.
This offset can be changed with the twist input.
user: How do I use References in Blender? Include parameters, examples, warnings and best practices.

assistant: |  |  |
| --- | --- |
| - [`ClothSettings.rest_shape_key`](bpy.types.ClothSettings.html#bpy.types.ClothSettings.rest_shape_key "bpy.types.ClothSettings.rest_shape_key") - [`Key.key_blocks`](bpy.types.Key.html#bpy.types.Key.key_blocks "bpy.types.Key.key_blocks") - [`Key.reference_key`](bpy.types.Key.html#bpy.types.Key.reference_key "bpy.types.Key.reference_key") - [`Object.active_shape_key`](bpy.types.Object.html#bpy.types.Object.active_shape_key "bpy.types.Object.active_shape_key") | - [`Object.shape_key_add`](bpy.types.Object.html#bpy.types.Object.shape_key_add "bpy.types.Object.shape_key_add") - [`Object.shape_key_remove`](bpy.types.Object.html#bpy.types.Object.shape_key_remove "bpy.types.Object.shape_key_remove") - [`ShapeKey.relative_key`](#bpy.types.ShapeKey.relative_key "bpy.types.ShapeKey.relative_key") |
user: Give a detailed overview of Sharing: syntax, arguments, return values, common patterns.

assistant: Data-blocks can be shared among other data-blocks.

Examples where sharing data is common:

- Sharing textures among materials.
- Sharing meshes between objects (instances).
- Sharing animated actions between objects,
  for example to make all the lights dim together.

You can also share data-blocks between files, see
[linked libraries](linked_libraries/index.xhtml).
user: Provide the full official documentation entry for Tool-specific Nodes, preserving all code examples.

assistant: The following nodes are only supported in the *Tool* context:

- [3D Cursor Node](input/scene/3d_cursor.html)
- [Mouse Position Node](input/scene/mouse_position.html)
- [Viewport Transform Node](input/scene/viewport_transform.html)
- [Active Element Node](geometry/read/active_element.html)
- [Selection Node](geometry/read/selection.html)
- [Set Selection Node](geometry/write/set_selection.html)
- [Face Set Node](mesh/read/face_set.html)
- [Set Face Set Node](mesh/write/set_face_set.html)
user: Explain CompositorNodeCombineColor(CompositorNode) in complete detail according to the official Blender documentation.

assistant: # CompositorNodeCombineColor(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.CompositorNodeCombineColor(*CompositorNode*)
:   Combine an image from its composite color channels

    mode
    :   Mode of color processing

        - `RGB`
          RGB – Use RGB (Red, Green, Blue) color processing.
        - `HSV`
          HSV – Use HSV (Hue, Saturation, Value) color processing.
        - `HSL`
          HSL – Use HSL (Hue, Saturation, Lightness) color processing.
        - `YCC`
          YCbCr – Use YCbCr (Y - luma, Cb - blue-difference chroma, Cr - red-difference chroma) color processing.
        - `YUV`
          YUV – Use YUV (Y - luma, U V - chroma) color processing.

        Type:
        :   enum in [`'RGB'`, `'HSV'`, `'HSL'`, `'YCC'`, `'YUV'`], default `'RGB'`

    ycc_mode
    :   Color space used for YCbCrA processing

        Type:
        :   enum in [`'ITUBT601'`, `'ITUBT709'`, `'JFIF'`], default `'ITUBT601'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

    update()

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Unpack Method Items

REMOVE:
:   Remove Pack.

USE_LOCAL:
:   Use Local File.

WRITE_LOCAL:
:   Write Local File (overwrite existing).

USE_ORIGINAL:
:   Use Original File.

WRITE_ORIGINAL:
:   Write Original File (overwrite existing).
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`AOVs.add`](bpy.types.AOVs.html#bpy.types.AOVs.add "bpy.types.AOVs.add") - [`AOVs.remove`](bpy.types.AOVs.html#bpy.types.AOVs.remove "bpy.types.AOVs.remove") | - [`ViewLayer.active_aov`](bpy.types.ViewLayer.html#bpy.types.ViewLayer.active_aov "bpy.types.ViewLayer.active_aov") - [`ViewLayer.aovs`](bpy.types.ViewLayer.html#bpy.types.ViewLayer.aovs "bpy.types.ViewLayer.aovs") |
user: How do I use Interpolate Curves Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Interpolate Curves Node

[image reference removed]

Generate new curves on points by interpolating between existing curves.
This is useful to have a smaller set of original curves to make editing easier and faster
while still generating high-density curves for the viewport or a final render.
user: Describe Extrude Repeat from the Blender manual or Python API, including usage steps and snippets.

assistant: This tool behaves similar to the [Array Modifier](../../../modifiers/generate/array.xhtml),
by extruding the selection along the Z axis of the view.
If the selection is not [Manifold](../../../../glossary/index.xhtml#term-Manifold) it’s extruded the specified number of times.

Offset X, Y, Z
:   Distance between the instances.

Steps
:   Number of instances.

Scale Offset
:   Multiplication factor to increase or decrease the offset.
user: Describe Script Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Script Node

Cycles Only

[image reference removed]

The *Script Node* allows you to load and use custom shaders written in
[Open Shading Language (OSL)](../../cycles/osl/index.html) within the Cycles renderer.
This node acts as a bridge between OSL shader code and the node-based material system in Blender.

Each Script node represents a single OSL shader, with its inputs
and outputs defined by the parameters in the shader script.
These shaders can be stored directly within the blend-file or referenced externally.

This feature is ideal for technical artists and shader developers
who need fine-grained control over shading behavior beyond what the standard shader nodes provide.
user: Explain Bpy.Types.Musgravetexture in complete detail according to the official Blender documentation.

assistant: _struct.property_unset bpy_struct.rna_ancestors bpy_struct.type_recast bpy_struct.values ID.bl_system_properties_get ID.rename ID.evaluated_get ID.copy ID.asset_mark ID.asset_clear ID.asset_generate_preview ID.override_create ID.override_hierarchy_create ID.user_clear ID.user_remap ID.make_local ID.user_of_id ID.animation_data_create ID.animation_data_clear ID.update_tag ID.preview_ensure ID.bl_rna_get_subclass ID.bl_rna_get_subclass_py Texture.evaluate Texture.bl_rna_get_subclass Texture.bl_rna_get_subclass_py Next NDOFMotionEventData(bpy_struct) Previous MultiresModifier(Modifier) Copyright &#169; Blender Authors Made with Furo Report issue on this page On this page MusgraveTexture(Texture) MusgraveTexture MusgraveTexture.dimension_max MusgraveTexture.gain MusgraveTexture.lacunarity MusgraveTexture.musgrave_type MusgraveTexture.nabla MusgraveTexture.noise_basis MusgraveTexture.noise_intensity MusgraveTexture.noise_scale MusgraveTexture.octaves MusgraveTexture.offset MusgraveTexture.users_material MusgraveTexture.users_object_modifier MusgraveTexture.bl_rna_get_subclass() MusgraveTexture.bl_rna_get_subclass_py() Inherited Properties Inherited Functions
user: Show practical ways to work with Sequencer Preview Overlays in a Blender add-on or script – include code.

assistant: # Sequencer Preview Overlays

Clicking  (Show Overlays) toggles all overlays in the Video Sequencer.
The drop-down button displays a popover with more detailed settings,
which are described below.

Image Outline
:   Shows an outline around the selected images.

2D Cursor
:   Shows the [2D Cursor](../sidebar.html#editors-sequencer-preview-2d-cursor).

Frame Overlay
:   Shows the [Frame Overlay](../sidebar.html#bpy-types-sequenceeditor-show-overlay)
    for comparing the current frame to a reference frame.

Safe Areas
:   Shows guides indicating the video area where content can be seen across all screens.

Metadata
:   Shows [file metadata](../sidebar.html#editors-vse-preview-sidebar-metadata).

Annotations
:   Shows [Annotations](../../../../interface/annotate_tool.html).
user: What is ActionStrips(bpy_struct) and how is it used in Blender Python scripting?

assistant: # ActionStrips(bpy_struct)

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

*class* bpy.types.ActionStrips(*bpy_struct*)
:   Collection of animation strips

    new(*\**, *type='KEYFRAME'*)
    :   Add a new strip to the layer. Currently a layer can only have one strip, with infinite boundaries.

        Parameters:
        :   **type** (enum in [`'KEYFRAME'`], (optional)) –

            Type, The type of strip to create

            - `KEYFRAME`
              Keyframe – Strip containing keyframes on F-Curves.

        Returns:
        :   Newly created animation strip

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

    remove(*anim_strip*)
    :   Remove the strip from the animation layer

        Parameters:
        :   **anim_strip** ([`ActionStrip`](bpy.types.ActionStrip.html#bpy.types.ActionStrip "bpy.types.ActionStrip")) – Animation Strip, The strip 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 NodeTreeInterfaceItem(bpy_struct) in a Blender add-on or script – include code.

assistant: # NodeTreeInterfaceItem(bpy_struct)

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

subclasses —
[`NodeTreeInterfacePanel`](bpy.types.NodeTreeInterfacePanel.html#bpy.types.NodeTreeInterfacePanel "bpy.types.NodeTreeInterfacePanel"), [`NodeTreeInterfaceSocket`](bpy.types.NodeTreeInterfaceSocket.html#bpy.types.NodeTreeInterfaceSocket "bpy.types.NodeTreeInterfaceSocket")

*class* bpy.types.NodeTreeInterfaceItem(*bpy_struct*)
:   Item in a node tree interface

    index
    :   Global index of the item among all items in the interface

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

    item_type
    :   Type of interface item

        Type:
        :   enum in [Node Tree Interface Item Type Items](bpy_types_enum_items/node_tree_interface_item_type_items.html#rna-enum-node-tree-interface-item-type-items), default `'PANEL'`, (readonly)

    parent
    :   Panel that contains the item

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

    position
    :   Position of the item in its parent panel

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of MeshDeformModifier(Modifier): syntax, arguments, return values, common patterns.

assistant: # MeshDeformModifier(Modifier)

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

*class* bpy.types.MeshDeformModifier(*Modifier*)
:   Mesh deformation modifier to deform with other meshes

    invert_vertex_group
    :   Invert vertex group influence

        Type:
        :   boolean, default False

    is_bound
    :   Whether geometry has been bound to control cage

        Type:
        :   boolean, default False, (readonly)

    object
    :   Mesh object to deform with

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

    precision
    :   The grid size for binding

        Type:
        :   int in [2, 10], default 5

    use_dynamic_bind
    :   Recompute binding dynamically on top of other deformers (slower and more memory consuming)

        Type:
        :   boolean, default False

    vertex_group
    :   Vertex group name

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: What is Inverse Kinematics and how is it used in Blender Python scripting?

assistant: # Inverse Kinematics

Inverse Kinematics (IK) simplifies the animation process,
and makes it possible to make more advanced animations with lesser effort.

Inverse Kinematics allow you to position the last bone in a bone chain and
the other bones are positioned automatically.
This is like how moving someone’s finger would cause their arm to follow it.
By normal posing techniques, you would have to start from the root bone,
and set bones sequentially until you reach the tip bone:
When each parent bone is moved, its child bone would inherit its location and rotation.
Thus making tiny precise changes in poses becomes harder farther down the chain,
as you may have to adjust all the parent bones first.

This effort is effectively avoided by use of IK.

IK is mostly done with bone constraints although there is also
a simple [Auto IK](../../tool_settings.xhtml#bpy-types-pose-use-auto-ik) feature in Pose Mode.
They work by the same method but the constraints offer more options and control.
Please refer to the following pages for details about these constraints:

- [Inverse Kinematics Constraint](../../../../constraints/tracking/ik_solver.xhtml)
- [Spline IK Constraint](../../../../constraints/tracking/spline_ik.xhtml)
user: What is Elaborate Movements and how is it used in Blender Python scripting?

assistant: When the footage builds on elaborate intended movement of the camera,
the process of stabilization becomes more involved –
especially when there is a shift in the main area of interest within the shot.
When working with many tracks and fine-grained animation,
it is easy to get into a situation where additional manipulations actually decrease the quality,
while it might be hard to spot and locate the root cause of problems.
Recommendation is to proceed systematically, starting from the general outline down to tweaking of specific aspects.

1. Understand the nature of the movements in the shot, both the intended and the accidental.
2. Track some relevant features for location.
3. Establish the basic location stabilization.
   This includes the decision, which feature to use for what segment of the shot.
   Work with the track weights to get an overall consistent movement of the weight center,
   in accordance with the inherent focus of the shot.
4. Define the panning movements of the virtual camera (through animation of the *Expected Position* parameter).
5. Add tracking for rotation and zoom stabilization.
6. Fine-tuning pass:

   Break down the whole duration of the shot into logical segments to define the intended camera movement.
   Then refine those segments incrementally step-by-step, until the overall result looks satisfactory…