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

assistant: # StudioLight(bpy_struct)

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

*class* bpy.types.StudioLight(*bpy_struct*)
:   Studio light

    has_specular_highlight_pass
    :   Studio light image file has separate “diffuse” and “specular” passes

        Type:
        :   boolean, default False, (readonly)

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

    is_user_defined
    :   Type:
        :   boolean, default False, (readonly)

    light_ambient
    :   Color of the ambient light that uniformly lit the scene

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

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

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

    solid_lights
    :   Lights used to display objects in solid draw mode

        Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`UserSolidLight`](bpy.types.UserSolidLight.html#bpy.types.UserSolidLight "bpy.types.UserSolidLight"), (readonly)

    type
    :   Type:
        :   enum in [`'STUDIO'`, `'WORLD'`, `'MATCAP'`], default `'STUDIO'`, (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](#bpy.types.StudioLight.type "bpy.types.StudioLight.type")
user: How do I use Set Origin in Blender? Include parameters, examples, warnings and best practices.

assistant: The object origin and geometry can be moved relative to each other and to the 3D cursor.

Type
:   Geometry to Origin
    :   Moves the model to the origin and this way the origin of the object will
        also be at the center of the object.

    Origin to Geometry
    :   Moves the origin to the center of the object.

    Origin to 3D Cursor
    :   Moves the origin of the model to the position of the 3D cursor.

    Origin to Center of Mass
    :   Moves the origin to the calculated center of mass of model
        (assuming the mesh has a uniform density).

Center
:   Median Point Center, Bounding Box Center
user: Describe Sinus Displacement from the Blender manual or Python API, including usage steps and snippets.

assistant: # Sinus Displacement

The *Sinus Displacement* modifier adds a sinusoidal displacement to the stroke.

Wavelength
:   How wide the undulations are along the stroke.

Amplitude
:   How high the undulations are across the stroke.

Phase
:   Allows “offsetting” (“moving”) the undulations along the stroke.

[[image reference removed]](../../../../../../_images/render_freestyle_parameter-editor_line-style_modifiers_geometry_sinus-displacement_example.png)

Sinus Displacement modifier demo by T.K.
([blend-file](https://archive.blender.org/wiki/2015/index.php/File:Toycar_Sinus.zip)).
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`bpy.context.active_editable_fcurve`](bpy.context.html#bpy.context.active_editable_fcurve "bpy.context.active_editable_fcurve") - [`bpy.context.editable_fcurves`](bpy.context.html#bpy.context.editable_fcurves "bpy.context.editable_fcurves") - [`bpy.context.selected_editable_fcurves`](bpy.context.html#bpy.context.selected_editable_fcurves "bpy.context.selected_editable_fcurves") - [`bpy.context.selected_visible_fcurves`](bpy.context.html#bpy.context.selected_visible_fcurves "bpy.context.selected_visible_fcurves") - [`bpy.context.visible_fcurves`](bpy.context.html#bpy.context.visible_fcurves "bpy.context.visible_fcurves") - [`Action.fcurve_ensure_for_datablock`](bpy.types.Action.html#bpy.types.Action.fcurve_ensure_for_datablock "bpy.types.Action.fcurve_ensure_for_datablock") - [`ActionChannelbag.fcurves`](bpy.types.ActionChannelbag.html#bpy.types.ActionChannelbag.fcurves "bpy.types.ActionChannelbag.fcurves") - [`ActionChannelbagFCurves.ensure`](bpy.types.ActionChannelbagFCurves.html#bpy.types.ActionChannelbagFCurves.ensure "bpy.types.ActionChannelbagFCurves.ensure") - [`ActionChannelbagFCurves.find`](bpy.types.ActionChannelbagFCurves.html#bpy.types.ActionChannelbagFCurves.find "bpy.types.ActionChannelbagFCurves.find") - [`ActionChannelbagFCurves.new`](bpy.types.ActionChannelbagFCurves.html#bpy.types.ActionChannelbagFCurves.new "bpy.types.ActionChannelbagFCurves.new") - [`ActionChannelbagFCurves.new_from_fcurve`](bpy.types.ActionChannelbagFCurves.html#bpy.types.ActionChannelbagFCurves.new_from_fcurve "bpy.types.ActionChannelbagFCurves.new_from_fcurve") | - [`ActionChannelbagFCurves.new_from_fcurve`](bpy.types.ActionChannelbagFCurves.html#bpy.types.ActionChannelbagFCurves.new_from_fcurve "bpy.types.ActionChannelbagFCurves.new_from_fcurve") - [`ActionChannelbagFCurves.remove`](bpy.types.ActionChannelbagFCurves.html#bpy.types.ActionChannelbagFCurves.remove "bpy.types.ActionChannelbagFCurves.remove") - [`ActionGroup.channels`](bpy.types.ActionGroup.html#bpy.types.ActionGroup.channels "bpy.types.ActionGroup.channels") - [`AnimData.drivers`](bpy.types.AnimData.html#bpy.types.AnimData.drivers "bpy.types.AnimData.drivers") - [`AnimDataDrivers.find`](bpy.types.AnimDataDrivers.html#bpy.types.AnimDataDrivers.find "bpy.types.AnimDataDrivers.find") - [`AnimDataDrivers.from_existing`](bpy.types.AnimDataDrivers.html#bpy.types.AnimDataDrivers.from_existing "bpy.types.AnimDataDrivers.from_existing") - [`AnimDataDrivers.from_existing`](bpy.types.AnimDataDrivers.html#bpy.types.AnimDataDrivers.from_existing "bpy.types.AnimDataDrivers.from_existing") - [`AnimDataDrivers.new`](bpy.types.AnimDataDrivers.html#bpy.types.AnimDataDrivers.new "bpy.types.AnimDataDrivers.new") - [`AnimDataDrivers.remove`](bpy.types.AnimDataDrivers.html#bpy.types.AnimDataDrivers.remove "bpy.types.AnimDataDrivers.remove") - [`NlaStrip.fcurves`](bpy.types.NlaStrip.html#bpy.types.NlaStrip.fcurves "bpy.types.NlaStrip.fcurves") - [`NlaStripFCurves.find`](bpy.types.NlaStripFCurves.html#bpy.types.NlaStripFCurves.find "bpy.types.NlaStripFCurves.find") |
user: Provide the full official documentation entry for Brush Types, preserving all code examples.

assistant: See [Brush Type](../brush/brush_settings.xhtml#sculpt-tool-settings-brush-type).

Available brush types are listed here, together with brushes from the
*Essentials* asset library using them.

Draw
:   Brushes: Paint

    Paints a specified weight over the object.

    Blend
    :   The brush [Blend Modes](../../glossary/index.xhtml#term-Blend-Modes) defines in which way the weight value is
        applied to the vertex group while painting.

        Mix
        :   In this Blending mode the Weight value defines the *target weight*
            that will eventually be reached when you paint long enough on the same
            location of the mesh. And the strength determines how many strokes
            you need to place at the target weight. Note that for strength = 1.0
            the target weight is painted immediately and for Weight = 0.0 the brush just does nothing.

        Add
        :   In this Blending mode the specified weight value is *added* to the vertex weights.
            The strength determines which fraction of the weight gets added per stroke.
            However, the brush will not paint weight values above 1.0.

        Subtract
        :   In this Blending mode the specified weight value is *subtracted* from the vertex weights.
            The strength determines which fraction of the weight gets removed per stroke.
            However, the brush will not paint weight values below 0.0.

        Lighten
        :   In this Blending mode the specified weight value is interpreted as the target weight.
            Very similar to the Mix Blending mode, but only weights below the target weight are affected.
            Weights above the target weight remain unchanged.

        Darken
        :   This Blending mode is very similar to the Lighten Blending mode.
            But only weights above the target weight are affected.
            Weights below the target weight remain unchanged.

        Multiply
        :   Multiplies the vertex weights with the specified weight value.
            This is somewhat like subtract, but the amount of removed weight is now
            dependent on the Weight value itself.

        Blur
        :   Smooths out the weighting of adjacent vertices. In this mode the Weight
            Value is ignored. The strength defines how much the smoothing is applied.

Blur
:   Brushes: Blur

    Smooths out the weighting of adjacent vertices. In this mode the Weight
    Value is ignored. The strength defines how much the smoothing is applied.

Average
:   Brushes: Average

    Smooths weights by painting the average resulting weight from all weights under the brush.

Smear
:   Brushes: Smear

    Smudges weights by grabbing the weights under the brush and “dragging” them.
    This can be imagined as a finger painting tool.
user: Show practical ways to work with Viewport Display in a Blender add-on or script – include code.

assistant: # Viewport Display

Rendered
:   Display hair as curves.

Path
:   Display just the end points of the hairs.

Steps
:   The number of segments (control points minus 1) of the hair strand.
    In between the control points the segments are interpolated. The number of control points is important:

    - For the soft body animation, because the control points are animated like vertices,
      so more control points mean longer calculation times.
    - For the interactive editing, because you can only move the control points
      (but you may recalculate the number of control points in *Particle Edit Mode*).
user: What is Drivers Editor and how is it used in Blender Python scripting?

assistant: # Drivers Editor

This editor lets you set up [Drivers](../animation/drivers/index.xhtml), which calculate the value for a property
based on other properties. In other words, they make a set of source properties “drive” the target property,
and can thus serve as an alternative to animating the property by hand.

[image reference removed]

The Drivers Editor, showing how you might drive a cube’s rotation based on its position.

The user interface is largely the same as that of the [Graph Editor](graph_editor/introduction.xhtml),
with two important differences:

- The Sidebar has an additional [Drivers tab](../animation/drivers/drivers_panel.xhtml). This is where
  the source properties are brought together to calculate an intermediate value for the target property.
- The curve doesn’t represent the property’s value over time, but a mapping from the above intermediate
  value (X axis) to the final value (Y axis).
user: Provide the full official documentation entry for Transform Orientation Items, preserving all code examples.

assistant: # Transform Orientation Items

GLOBAL:
:   Global.

    Align the transformation axes to world space.

LOCAL:
:   Local.

    Align the transformation axes to the selected objects’ local space.

NORMAL:
:   Normal.

    Align the transformation axes to average normal of selected elements (bone Y axis for pose mode).

GIMBAL:
:   Gimbal.

    Align each axis to the Euler rotation axis as used for input.

VIEW:
:   View.

    Align the transformation axes to the window.

CURSOR:
:   Cursor.

    Align the transformation axes to the 3D cursor.

PARENT:
:   Parent.

    Align the transformation axes to the object’s parent space.
user: How do I use Copy/Paste Pose in Blender? Include parameters, examples, warnings and best practices.

assistant: # Copy/Paste Pose

Blender allows you to copy and paste a pose, either through the *Pose* menu, or
by using hotkeys.

Copy Pose
:   Copy the current pose of selected bones into the pose buffer.

Paste Pose
:   Paste the buffered pose to the currently posed armature.

Paste Pose Flipped
:   Paste the *X axis mirrored* buffered pose to the currently posed armature.

Here are important points:

- This tool works at the [Blender session](../../../../glossary/index.xhtml#term-Blender-Session) level, which means you can use it across
  armatures, scenes, and even files. However, the pose buffer is not saved, so you lose it when you
  close Blender.
- There is only one pose buffer.
- Only the selected bones are taken into account during copying (i.e. you copy only selected bones’ pose).
- During pasting, on the other hand, bone selection has no importance.
  The copied pose is applied on a per-name basis
  (i.e. if you had a `forearm` bone selected when you copied the pose,
  the `forearm` bone of the current posed armature will get its pose when you paste it –
  and if there is no such named bone, nothing will happen…).
- What is copied and pasted is in fact the position, rotation or scale of each bone, in its own space.
  This means that the resulting pasted pose might be very different from the originally copied one, depending on:

  - The rest position of the bones.
  - And the current pose of their parents.

|  |  |
| --- | --- |
| ../../../../_images/animation_armatures_posing_editing_copy-paste_examples-1.png   The rest position of the original armature. | ../../../../_images/animation_armatures_posing_editing_copy-paste_examples-2.png   The rest position of the destination armature. |

Examples of pose copy/paste.

|  |  |  |
| --- | --- | --- |
| ../../../../_images/animation_armatures_posing_editing_copy-paste_examples-3.png   The first copied pose (note that only two bones are selected and hence copied). | ../../../../_images/animation_armatures_posing_editing_copy-paste_examples-4.png   The pose pasted on the destination armature. | ../../../../_images/animation_armatures_posing_editing_copy-paste_examples-5.png   The pose mirror-pasted on the destination armature. |
| ../../../../_images/animation_armatures_posing_editing_copy-paste_examples-6.png   The same pose as above is copied, but this time with all bones selected. | ../../../../_images/animation_armatures_posing_editing_copy-paste_examples-7.png   The pose pasted on the destination armature. | ../../../../_images/animation_armatures_posing_editing_copy-paste_examples-8.png   The pose mirror-pasted on the destination armature. |
user: Provide the full official documentation entry for Install from a Package Manager, preserving all code examples.

assistant: Some Linux distributions may have a specific package for Blender in their repositories.

Installing Blender via the distribution’s native mechanisms ensures consistency with other packages on the system and
may provide other features (given by the package manager), such as listing of packages, update notifications and
automatic menu configuration. Be aware, though, that the package may be outdated compared to the latest official
release, or not include some features of Blender. For example, some distributions do not build Blender with Cycles GPU
rendering support, for licensing or other reasons.

If there is a specific package for your distribution, you may choose what is preferable and most convenient.
Otherwise, the official binary is available on [blender.org](https://www.blender.org/download/).
user: Give a detailed overview of Custom Properties: syntax, arguments, return values, common patterns.

assistant: Create and manage your own properties to store data in the Bone Collection’s data-block.
See the [Custom Properties](../../../files/custom_properties.xhtml#files-data-blocks-custom-properties) page for more information.
user: How do I use Bone Collections in Blender? Include parameters, examples, warnings and best practices.

assistant: Manages the [Bone Collections](../../properties/bone_collections.html#bpy-types-bonecollection) the bone is assigned to.

Move to Collection `M`
:   Move bones to a collection.

Assign to Collection `Shift`-`M`
:   Assign all selected bones to a collection, or unassign them,
    depending on whether the active bone is already assigned or not.

---

Show All `Ctrl`-`AccentGrave`
:   Unhides any hidden bone collections.

Assign to new Collection
:   Assigns the selected bones to a new collection named “New Collection”.
    This collection can be renamed in the [Bone Collections](../../properties/bone_collections.html#bpy-types-bonecollection) panel of the Armature properties.
user: Explain Instances to Points Node in complete detail according to the official Blender documentation.

assistant: # Instances to Points Node

[image reference removed]

The *Instances to Points* node generates points at the origins of top-level instances.
Attributes on the [instance domain](../attributes_reference.html#attribute-domains) are moved to the point cloud points.
user: How do I use Fill in Blender? Include parameters, examples, warnings and best practices.

assistant: # Fill

The *Fill* option will create *triangular* faces from any group of selected edges
or vertices, as long as they form one or more complete perimeters.

Beauty
:   Arrange the new triangles nicely.

[image reference removed]

Filled using fill.

Note, unlike creating n-gons, *Fill* supports holes.

|  |  |
| --- | --- |
| ../../../../_images/modeling_meshes_editing_face_fill_holes.png   A closed perimeter of edges with holes. | ../../../../_images/modeling_meshes_editing_face_fill_holes-filled.png   Filled using fill. |
user: How do I use Options in Blender? Include parameters, examples, warnings and best practices.

assistant: Type
:   This procedural texture has five noise types on which the resulting pattern can be based
    and they are selectable from a select menu at the top of the tab. The five types are:

    - Hetero Terrain
    - Fractal Brownian Motion (fBm)
    - Hybrid Multifractal
    - Ridged Multifractal
    - Multifractal

    These noise types determine the manner in which Blender layers successive copies of the same
    pattern on top of each other at varying contrasts and scales.

Examples with Basis: Voronoi: F1, Dimension: 0.5, Lacunarity: 0.15, Octave: 2.0.

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| ../../../../_images/render_materials_legacy-textures_types_musgrave_heteroterrain.jpg   Hetero Terrain. | ../../../../_images/render_materials_legacy-textures_types_musgrave_fbm.jpg   Fractal Brownian Motion. | ../../../../_images/render_materials_legacy-textures_types_musgrave_hybridmultifractal.jpg   Hybrid Multifractal. | ../../../../_images/render_materials_legacy-textures_types_musgrave_ridgedmultifractal.jpg   Ridged Multifractal. | ../../../../_images/render_materials_legacy-textures_types_musgrave_multifractal.jpg   Multifractal. |

The main noise types have four characteristics:

Dimension
:   Fractal dimension controls the contrast of a layer relative to the previous layer in the texture.
    The higher the fractal dimension, the higher the contrast between each layer,
    and thus the more detail shows in the texture.

Lacunarity
:   Lacunarity controls the scaling of each layer of the Musgrave texture,
    meaning that each additional layer will have a scale that is the inverse of the value which shows on the button.
    i.e. Lacunarity = 2 –> Scale = 1/2 original.

Octaves
:   Octave controls the number of times the original noise pattern is overlaid on itself and
    scaled/contrasted with the fractal dimension and lacunarity settings.

Intensity
:   Light intensity. Called *Offset* for *Hetero Terrain*.

The *Hybrid Multifractal* and *Ridged Multifractal* types have these additional settings:

Offset
:   Both have a “Fractal Offset” button that serves as a “sea level”
    adjustment and indicates the base height of the resulting bump map.
    Bump values below this threshold will be returned as zero.

Gain
:   Setting which determines the range of values created by the function.
    The higher the number, the greater the range.
    This is a fast way to bring out additional details in a texture where extremes are normally clipped off.
user: Describe Extrude Faces from the Blender manual or Python API, including usage steps and snippets.

assistant: # Extrude Faces

*Extrude Faces* duplicate faces, while keeping the new geometry connected with the original vertices.

|  |  |
| --- | --- |
| ../../../../_images/modeling_meshes_tools_extrude-region_vert.png   Single vertex extruded. | ../../../../_images/modeling_meshes_tools_extrude-region_edge.png   Single edge extruded. |

This tool is of paramount importance for creating new geometry.
It allows you to create parallelepipeds from rectangles and cylinders from circles,
as well as easily creating such things as tree limbs.

The axis on which faces are extruded along can be set interactively.
Faces are extruded by default along their averaged normal.
The extrusion can be limited to a single axis by specifying an axis;
see [Axis Locking](../../../../scene_layout/object/editing/transform/control/axis_locking.xhtml).

The extrude tools differentiate in how the new geometry is connected in itself.
Only the border loop gets extruded.
The inner region of the selection gets moved unchanged with the extrusion.

|  |  |  |
| --- | --- | --- |
| ../../../../_images/modeling_meshes_tools_extrude-region_face-before.png   Selected face. | ../../../../_images/modeling_meshes_tools_extrude-region_face-after.png   During extrude. | ../../../../_images/modeling_meshes_tools_extrude-region_face-after-zaxis.png   Set to Z axis. |

Flip Normals
:   Only the *normals* of the new faces created from the extrusion will be flipped.

Dissolve Orthogonal Edges
:   Removes and connects edges whose faces form a flat surface and intersect new edges.

Orientation
:   Aligns the transformation axes to a specified orientation constraint.
    See [Transform Orientations](../../../../editors/3dview/controls/orientation.xhtml) for more information.

Proportional Editing
:   The extruded face will affect nearby geometry.
    See [Proportional Editing](../../../../editors/3dview/controls/proportional_editing.xhtml) for a full reference.
user: How do I use Metaball in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

Family meta properties.

Resolution Viewport
:   Controls the resolution of the resultant mesh as generated by the *Meta* objects.
    The 3D Viewport resolution of the generated mesh; finest to coarsest.

Render
:   The rendered resolution of the generated mesh; finest to coarsest.

Influence Threshold
:   Defines how much a meta’s surface “influences” other metas.
    It controls the *field level* at which the surface is computed.
    The setting is global to a group of *Meta* objects.
    As the threshold increases, so does the influence that each meta has on each other.

    There are two types of [influence](#meta-ball-editing-negative-influence): *positive* or *negative*.

Update on Edit
:   While transforming metas (move, scale, etc.), you have four “modes” of visualization.

    This should help you if you experience difficulties (metas are quite computationally intensive…),
    but with modern computers, this should not happen, unless you use many metas,
    or very high resolutions…

    Always:
    :   Fully display the meta during transformations.

    Half:
    :   During transformations, display the meta at half its *Viewport* resolution.

    Fast:
    :   Do not display meta during transformations.

    Never:
    :   Never show meta mesh (not a very recommended option, as the meta is only visible at render time!).
user: What is Copy As New Driver and how is it used in Blender Python scripting?

assistant: A driver that sets the property value to the value of a different property can be
quickly created by using the *Copy As New Driver* context menu option of the input
property, and then pasting the result onto the output property via *Paste Driver*.

It is also possible to add the new driver variable to an existing driver using
the [Paste Driver Variables](drivers_panel.html#drivers-variables) button in the editor panel.
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

assistant: Mode
:   Vertices:
    :   Attaches a new freestanding edge to each selected vertex.

    Edges:
    :   Attaches a new quad face to each selected edges. Vertices shared by the
        original selected edges are also shared in the duplicated edges.

    Faces:
    :   Extrudes contiguous regions of selected faces, or each selected face individually,
        depending on the *Individual* boolean input.

        When the *Individual* input is false, the node will find regions of connected faces and generate
        new “side” faces on the boundaries of those regions. Any vertices, edges or faces on the *inside*
        of the regions simply are moved, not duplicated. If the whole mesh is selected and it is already
        a [Manifold](../../../../glossary/index.xhtml#term-Manifold) shape, then the result will just be that the whole mesh gets resized.
user: Describe Extrude Manifold from the Blender manual or Python API, including usage steps and snippets.

assistant: # Extrude Manifold

This tool is very similar to [Extrude Faces](../editing/face/extrude_faces.xhtml)
but enables *Dissolve Orthogonal Edges* by default.
This causes the tool to automatically split and remove adjacent faces when extruding inwards.
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`DynamicPaintModifier.brush_settings`](bpy.types.DynamicPaintModifier.html#bpy.types.DynamicPaintModifier.brush_settings "bpy.types.DynamicPaintModifier.brush_settings") |  |
user: How do I use CompositorNodeTime(CompositorNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # CompositorNodeTime(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.CompositorNodeTime(*CompositorNode*)
:   Generate a factor value (from 0.0 to 1.0) between scene start and end time, using a curve mapping

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

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

assistant: Curve
:   Standard geometry input with a curve component.

Selection
:   A boolean field input for each curve indicating whether it is trimmed or not.

Start
:   The factor or length used to determine where to start each output spline.

End
:   The factor or length used to determine where to end each output spline.
user: Give a detailed overview of Property Override Flag Items: syntax, arguments, return values, common patterns.

assistant: # Property Override Flag Items

LIBRARY_OVERRIDABLE:
:   Library Overridable.

    Make that property editable in library overrides of linked data-blocks.
    NOTE: For a property to be overridable, its whole chain of parent properties must also be defined as overridable.
user: What is Mesh to Volume Modifier and how is it used in Blender Python scripting?

assistant: # Mesh to Volume Modifier

The *Mesh to Volume* modifier uses a mesh to create a new volume grid.
All previously existing volume grids on the volume object are discarded.
So this modifier is usually added to an empty volume object.
The new volume grid is called “density”.
user: Explain References in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`ID.preview`](bpy.types.ID.html#bpy.types.ID.preview "bpy.types.ID.preview") | - [`ID.preview_ensure`](bpy.types.ID.html#bpy.types.ID.preview_ensure "bpy.types.ID.preview_ensure") |
user: Explain Paste File in complete detail according to the official Blender documentation.

assistant: Inserts text from and external text file.
This will bring up a [File Browser](../../editors/file_browser.xhtml) for navigating to a valid UTF-8 file.
As usual, be careful that the file does not have too many characters,
as interactive response will slow down.
user: Provide the full official documentation entry for TextureNodeTexNoise(TextureNode), preserving all code examples.

assistant: # TextureNodeTexNoise(TextureNode)

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

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Volume Scatter

[image reference removed]

The *Volume Scatter* node allows light to be scattered as it passes through the volume.
Typical usage would be to add fog to a scene. It can also be used with
the [Volume Absorption](volume_absorption.xhtml) node to create smoke.
user: Show practical ways to work with Navigating in a Blender add-on or script – include code.

assistant: Entering a Directory `Return`
:   Double-click a directory to enter it.

Parent Directory `P`
:   Takes you up one level of directory.

### File Drop

You can also drag and drop a file or directory from your file manager into the Blender File Browser.
This will navigate to the item and select it.
user: What is Screw Modifier and how is it used in Blender Python scripting?

assistant: # Screw Modifier

The *Screw* modifier is similar to the [Screw](../../meshes/editing/edge/screw.html) tool
in the Toolbar, in that it takes a profile object, a mesh or a curve, to create a helix-like shape.

[[image reference removed]](../../../_images/modeling_modifiers_generate_screw_align.png)

Properly aligning the profile object is important.

The profile should be properly aligned to the cardinal direction of the object rather than to the screw axis.
user: What is Index Node and how is it used in Blender Python scripting?

assistant: # Index Node

[image reference removed]

The *Index* node gives an integer value indicating the position of each element in the list,
starting at zero. This depends on the internal order of the data in the geometry, which is not
necessarily visible in the 3D Viewport. However, the index value is visible in the left-most column
in the [Spreadsheet Editor](../../../../editors/spreadsheet.xhtml).
user: Give a detailed overview of Custom Properties: syntax, arguments, return values, common patterns.

assistant: Create and manage your own properties to store data in the action’s data block.
See the [Custom Properties](../../files/custom_properties.xhtml#files-data-blocks-custom-properties) page for more information.
user: Give a detailed overview of Outputs: syntax, arguments, return values, common patterns.

assistant: Normal
:   Normal vector output.

Dot
:   Dot product output. The dot product is a scalar value.

    - If two normals are pointing in the same direction the dot product is 1.
    - If they are perpendicular the dot product is zero (0).
    - If they are antiparallel (facing directly away from each other) the dot product is -1.
user: Provide the full official documentation entry for AddStrip(EffectStrip), preserving all code examples.

assistant: # AddStrip(EffectStrip)

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

*class* bpy.types.AddStrip(*EffectStrip*)
:   Add Strip

    input_1
    :   First input for the effect strip

        Type:
        :   [`Strip`](bpy.types.Strip.html#bpy.types.Strip "bpy.types.Strip"), (never None)

    input_2
    :   Second input for the effect strip

        Type:
        :   [`Strip`](bpy.types.Strip.html#bpy.types.Strip "bpy.types.Strip"), (never None)

    input_count
    :   Type:
        :   int in [0, 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: Provide the full official documentation entry for Options, preserving all code examples.

assistant: High Quality
:   Uses more precise math to better determine the locations for the objects.
    In case of positive or negative bounding box alignment,
    if one or more of the selected objects have any rotation transformations
    (or delta rotation transformations), it is recommended to check *High Quality*
    so that their bounding box is calculated with precision for all three global axes.

Align Mode
:   The *Align Mode* control will define what part of the objects will be aligned:

    Centers:
    :   The objects centers.

    Positive Sides/Negative Sides:
    :   The positive or negative sides (on the global axes) of their respective bounding boxes.

Relative To
:   The *Relative To* control will let us choose to align the objects to:

    Active:
    :   The active object.

    Selection:
    :   The median point of the selection.

    3D Cursor:
    :   The current position of the 3D Cursor.

    Scene Origin:
    :   The global origin.

Align X, Y, Z
:   Chooses which axis to align the selected objects on.
user: Describe Translate Instances Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Translate Instances Node

[image reference removed]

The *Translate Instances* node moves top-level geometry instances in local or global space.

The [Instances](../instances.html) page contains more information about geometry instances.
user: Show practical ways to work with Enabling Add-on in a Blender add-on or script – include code.

assistant: This add-on is enabled by default, in case it is not:

1. Open Blender and go to [Add-ons](../../editors/preferences/addons.xhtml) section of the [Preferences](../../editors/preferences/index.xhtml).
2. Search “BioVision Motion Capture (BVH) format” and check the *Enable Add-on* checkbox.
user: Give a detailed overview of Options: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Lattice Modifier.

Object
:   The [Lattice](../../../animation/lattice.html) object with which to deform the base object.

Strength
:   A factor to control blending between original and deformed points positions.

### Influence

See [Influence Filters](../introduction.html#grease-pencil-modifier-influence-filters).
user: How do I use Playback Time in Blender? Include parameters, examples, warnings and best practices.

assistant: Unlike other objects, speaker playback timing is not set directly in the properties.
Instead, the [NLA editor](../../../editors/nla/index.html) is used to manage when a speaker plays
using [Sound Strips](../../../editors/nla/strips.html#bpy-ops-nla-soundclip-add):

- Sound strips in the NLA editor define when playback starts.
- Newly added speaker objects automatically receive a sound strip at the current frame.
- Multiple sound strips can be used to replay the same speaker at different times.
- Playback continues the length of audio file and does not take into account the length of the sound strip.
user: Provide the full official documentation entry for UserExtensionRepoCollection(bpy_struct), preserving all code examples.

assistant: # UserExtensionRepoCollection(bpy_struct)

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

*class* bpy.types.UserExtensionRepoCollection(*bpy_struct*)
:   Collection of user extension repositories

    *classmethod* new(*\**, *name=''*, *module=''*, *custom_directory=''*, *remote_url=''*, *source='USER'*)
    :   Add a new repository

        Parameters:
        :   - **name** (*string**,* *(**optional**,* *never None**)*) – Name
            - **module** (*string**,* *(**optional**,* *never None**)*) – Module
            - **custom_directory** (*string**,* *(**optional**,* *never None**)*) – Custom Directory
            - **remote_url** (*string**,* *(**optional**,* *never None**)*) – Remote URL
            - **source** (enum in [`'USER'`, `'SYSTEM'`], (optional)) –

              Source, How the repository is managed

              - `USER`
                User – Repository managed by the user, stored in user directories.
              - `SYSTEM`
                System – Read-only repository provided by the system.

        Returns:
        :   Newly added repository

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

    *classmethod* remove(*repo*)
    :   Remove repos

        Parameters:
        :   **repo** ([`UserExtensionRepo`](bpy.types.UserExtensionRepo.html#bpy.types.UserExtensionRepo "bpy.types.UserExtensionRepo"), (never None)) – Repository 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: How do I use Texture Slots in Blender? Include parameters, examples, warnings and best practices.

assistant: # Texture Slots

[image reference removed]

Texture Slots settings.

The combination of images associated with UV maps is called “slots”.

Selecting a *Paint Slots* or *Canvas Image*
will also display the corresponding image in the Image Editor.

Mode
:   The slot system includes two painting modes:

    Material
    :   This mode tries to detect the slots from the materials of the mesh.

        For the Cycles renderer, all textures (*Image Texture* node) in the material’s node tree
        are added in the slots tab.

        Active Paint Texture Index
        :   A [List view](../../../interface/controls/templates/list_view.html#ui-list-view) of slots.
            Activate a certain slot to use it for painting by `LMB` click on it.

    Single Image
    :   You can just select an existing image and painting will use the active UV layer for painting.

        Image
        :   Allows you to select the image used as a canvas.

            New
            :   Create a new image.

        UV Map
        :   Allows you to select the UV layer for painting.
            (Same as the currently active UV map in the mesh’s *UV Maps* panel.)

        Texture Filter Type
        :   Set the interpolation mode of the texture. This can be Linear or Closest.

Save All Images
:   Repack (or save if external file) all edited images.
    Same as in the [Image Editor](../../../editors/image/introduction.html).

Add Simple UVs
:   The *Add Simple UVs* does a simple cube unwrap followed by a pack operation.
    It’s still recommended to make a custom unwrap.

    This operator is available when the object does not already have a UV Map.
user: Describe Cycles Render Options from the Blender manual or Python API, including usage steps and snippets.

assistant: Cycles add-on options must be specified following a double dash.

`--cycles-device` `<device>`
:   Set the device used for rendering.
    Valid options are: `CPU` `CUDA` `OPTIX` `HIP` `ONEAPI` `METAL`.

    Append +CPU to a GPU device to render on both CPU and GPU.

    Example:

    ```
    blender -b file.blend -f 20 -- --cycles-device OPTIX
    ```

`--cycles-print-stats`
:   Log statistics about render memory and time usage.
user: Explain Example in complete detail according to the official Blender documentation.

assistant: Blur node blur modes using 20% of image size as XY, no Bokeh/Gamma.

|  |  |  |
| --- | --- | --- |
| ../../../../_images/compositing_types_filter_blur-node_example-1-original.png   Original image. | ../../../../_images/compositing_types_filter_blur-node_example-2-flat.png   Flat. | ../../../../_images/compositing_types_filter_blur-node_example-3-tent.png   Tent. |
| ../../../../_images/compositing_types_filter_blur-node_example-4-quadratic.png   Quadratic. | ../../../../_images/compositing_types_filter_blur-node_example-5-cubic.png   Cubic. | ../../../../_images/compositing_types_filter_blur-node_example-6-gaussian.png   Gaussian. |
| ../../../../_images/compositing_types_filter_blur-node_example-7-fast-gaussian.png   Fast Gaussian. | ../../../../_images/compositing_types_filter_blur-node_example-8-catmull-rom.png   Catmull-Rom. | ../../../../_images/compositing_types_filter_blur-node_example-9-mitch.png   Mitch. |
user: Provide the full official documentation entry for Area Light, preserving all code examples.

assistant: The area light simulates light originating from a surface (or surface-like) emitter.
For example, a TV screen, office neon lights, a window,
or a cloudy sky are just a few types of area light. The area light produces shadows with
soft borders by sampling a light along a grid the size of which is defined by the user.
This is in direct contrast to point-like artificial lights which produce sharp borders.

Power
:   Power of the light. Higher values increase the intensity of the light.
    Negative values can be set, but should be avoided for predictable and physically based result.

Shape
:   Shape of the light.

    Rectangle:
    :   The shape of the light can be represented as a rectangle and changed with the “X” and “Y” values.

    Square:
    :   The shape of the light can be represented as a square and changed with the *Size* property.

    Disk:
    :   The shape of the light can be represented as a disk and changed with the *Size* property.

    Ellipse:
    :   The shape of the light can be represented as an ellipse and changed with the X and Y values.

Size / Size X / Size Y
:   Dimensions for the *Square* or *Rectangle*.
user: What is Fill Curve Node and how is it used in Blender Python scripting?

assistant: # Fill Curve Node

[image reference removed]

The *Fill Curve* node generates a mesh using the constrained Delaunay triangulation algorithm
with the curves as boundaries. The mesh is only generated flat with a local Z of 0.
user: How do I use Smooth Geometry Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Smooth Geometry Node

[image reference removed]

The *Smooth Geometry* node smooths connected parts of a geometry by averaging the positions
of neighboring elements. It can be used to reduce surface irregularities or create a
softened, more organic appearance without significantly altering the overall shape.