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

assistant: # LineStyleAlphaModifier_Material(LineStyleAlphaModifier)

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

*class* bpy.types.LineStyleAlphaModifier_Material(*LineStyleAlphaModifier*)
:   Change alpha transparency based on a material attribute

    blend
    :   Specify how the modifier value is blended into the base value

        Type:
        :   enum in [`'MIX'`, `'ADD'`, `'SUBTRACT'`, `'MULTIPLY'`, `'DIVIDE'`, `'DIFFERENCE'`, `'MINIMUM'`, `'MAXIMUM'`], default `'MIX'`

    curve
    :   Curve used for the curve mapping

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

    expanded
    :   True if the modifier tab is expanded

        Type:
        :   boolean, default False

    influence
    :   Influence factor by which the modifier changes the property

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

    invert
    :   Invert the fade-out direction of the linear mapping

        Type:
        :   boolean, default False

    mapping
    :   Select the mapping type

        - `LINEAR`
          Linear – Use linear mapping.
        - `CURVE`
          Curve – Use curve mapping.

        Type:
        :   enum in [`'LINEAR'`, `'CURVE'`], default `'LINEAR'`

    material_attribute
    :   Specify which material attribute is used

        Type:
        :   enum in [`'LINE'`, `'LINE_R'`, `'LINE_G'`, `'LINE_B'`, `'LINE_A'`, `'DIFF'`, `'DIFF_R'`, `'DIFF_G'`, `'DIFF_B'`, `'SPEC'`, `'SPEC_R'`, `'SPEC_G'`, `'SPEC_B'`, `'SPEC_HARD'`, `'ALPHA'`], default `'LINE'`

    type
    :   Type of the modifier

        Type:
        :   enum in [Linestyle Alpha Modifier Type Items](bpy_types_enum_items/linestyle_alpha_modifier_type_items.html#rna-enum-linestyle-alpha-modifier-type-items), default `'ALONG_STROKE'`, (readonly)

    use
    :   Enable or disable this modifier during stroke rendering

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   [type](#bpy.types.LineStyleAlphaModifier_Material.type "bpy.types.LineStyleAlphaModifier_Material.type")
user: What is Outputs and how is it used in Blender Python scripting?

assistant: Normal
:   Vector indicating the normal of each geometry element.

True Normal
:   For meshes, outputs normals without [custom normals](../../../meshes/structure.xhtml#modeling-meshes-normals-custom) attributes taken into
    account.
user: Give a detailed overview of Technical Details: syntax, arguments, return values, common patterns.

assistant: Blender treats the bone as a section of a Bézier curve passing through the bones’ joints.
Each of the *Segments* will bend and roll to follow this invisible curve
representing a tessellated point of the Bézier curve.
The control points at each end of the curve are the endpoints of the bone.
The shape of the B-Bones can be controlled using a series of properties or
indirectly through the neighboring bones (i.e. first child and parent).
The properties construct handles on either end of the bone to control the curvature.

When using the B-bone as a constraint target [Data ID](../../../../interface/controls/templates/data_block.xhtml#ui-data-id) offers an option to follow the curvature.
user: Show practical ways to work with Shading in a Blender add-on or script – include code.

assistant: ### Light Linking

Limit light influence to specified objects, with [Light Linking](../../lights/light_linking.xhtml#bpy-types-object-light-linking).

Receiver Collection
:   Collection of objects that will receive light emitted from the object.

### Shadow Linking

Limit shadows to specified objects, with [Light Linking](../../lights/light_linking.xhtml#bpy-types-object-light-linking).

Shadow Blocker Collection
:   Collection of objects that will act as shadow blockers for light emitted from the object.

### Shadow Terminator

The Shadow Terminator settings help reduce artifacts that appear along the edges
of low-poly or smoothly shaded objects, especially when using bump mapping.
These artifacts occur when shading normals deviate from the actual geometry,
causing abrupt shadow breaks.

Normal Offset
:   Shifts the shadow position along the shading normal to minimize visible artifacts.
    The offset is measured in object space and is strongest at glancing angles to the light.
    A value of zero disables the bias.
    Increase this value if shadow breaks are visible, but avoid excessive values to prevent light leaks.
    The amount of faces affected by the bias is controlled by the *Geometry Offset*:

Geometry Offset
:   Controls how many faces are affected by the normal offset.
    A value of zero only affects faces at grazing angles; 1.0 affects all faces.
    Use higher values if artifacts persist, but too much offset can distort shadows, especially with bump mapping.
user: Provide the full official documentation entry for Join Group Inputs, preserving all code examples.

assistant: Merges multiple selected *Group Input* nodes into one consolidated *Group Input* node when possible.
Existing links are preserved, and duplicate inputs are unified to reduce clutter and simplify the node tree.

This operation is useful for cleaning up node groups that have become
disorganized or contain redundant input nodes.
user: Explain Image Generated Type Items in complete detail according to the official Blender documentation.

assistant: # Image Generated Type Items

BLANK:
:   Blank.

    Generate a blank image.

UV_GRID:
:   UV Grid.

    Generated grid to test UV mappings.

COLOR_GRID:
:   Color Grid.

    Generated improved UV grid to test UV mappings.
user: How do I use More in Blender? Include parameters, examples, warnings and best practices.

assistant: Nodes for geometric data, texture coordinates,
layering shaders and non-physically-based tricks can be found in:

- [Vector Nodes](utilities/vector/index.xhtml)
- [Color Nodes](color/index.xhtml)
- [Utilities Nodes](utilities/index.xhtml)
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`CameraBackgroundImage.image_user`](bpy.types.CameraBackgroundImage.html#bpy.types.CameraBackgroundImage.image_user "bpy.types.CameraBackgroundImage.image_user") - [`Image.filepath_from_user`](bpy.types.Image.html#bpy.types.Image.filepath_from_user "bpy.types.Image.filepath_from_user") - [`ImageTexture.image_user`](bpy.types.ImageTexture.html#bpy.types.ImageTexture.image_user "bpy.types.ImageTexture.image_user") - [`Object.image_user`](bpy.types.Object.html#bpy.types.Object.image_user "bpy.types.Object.image_user") - [`RenderSlot.clear`](bpy.types.RenderSlot.html#bpy.types.RenderSlot.clear "bpy.types.RenderSlot.clear") - [`ShaderNodeTexEnvironment.image_user`](bpy.types.ShaderNodeTexEnvironment.html#bpy.types.ShaderNodeTexEnvironment.image_user "bpy.types.ShaderNodeTexEnvironment.image_user") | - [`ShaderNodeTexImage.image_user`](bpy.types.ShaderNodeTexImage.html#bpy.types.ShaderNodeTexImage.image_user "bpy.types.ShaderNodeTexImage.image_user") - [`SpaceImageEditor.image_user`](bpy.types.SpaceImageEditor.html#bpy.types.SpaceImageEditor.image_user "bpy.types.SpaceImageEditor.image_user") - [`TextureNodeImage.image_user`](bpy.types.TextureNodeImage.html#bpy.types.TextureNodeImage.image_user "bpy.types.TextureNodeImage.image_user") - [`UILayout.template_image`](bpy.types.UILayout.html#bpy.types.UILayout.template_image "bpy.types.UILayout.template_image") - [`UILayout.template_image_layers`](bpy.types.UILayout.html#bpy.types.UILayout.template_image_layers "bpy.types.UILayout.template_image_layers") |
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Strength
:   Light strength before applying falloff modification.

Smooth
:   Smooth intensity of light near light sources. This can avoid harsh highlights,
    and reduce global illumination noise. 0.0 corresponds to no smoothing; higher values smooth more.
    The maximum light strength will be strength/smooth.
user: Provide the full official documentation entry for Outputs, preserving all code examples.

assistant: Factor
:   When the node is used on the point domain, the value is the portion of the spline’s
    total length at each control point. On the spline domain it is the portion of the
    curve’s total length at the start of the spline.

Length
:   When the node is used on the point domain, the value is the distance along the spline to each
    control point. On the spline domain it is the length along the entire curve at the start
    of the spline.

Index
:   Each control point’s index on its spline. This is different from the output of the
    [index node](../../geometry/read/input_index.html), which also counts the
    control points in all previous splines.
user: Describe Fluid Flow from the Blender manual or Python API, including usage steps and snippets.

assistant: # Fluid Flow

The *Fluid Flow* force field creates a force based on a [Fluid simulation](../../../fluid/index.xhtml) air flow.
It applies the smoke simulation air flow velocity as a force to other simulations that use force fields.
To use it you need to add a *Fluid Flow* force field and select a domain object for it.
For example fire sparkles can realistically flow along the air turbulence near the simulated fire.
user: Explain SpreadsheetTables(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # SpreadsheetTables(bpy_struct)

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

*class* bpy.types.SpreadsheetTables(*bpy_struct*)
:   Active table and persisted state of previously displayed tables

    active
    :   Type:
        :   [`SpreadsheetTable`](bpy.types.SpreadsheetTable.html#bpy.types.SpreadsheetTable "bpy.types.SpreadsheetTable"), (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: Describe Index from the Blender manual or Python API, including usage steps and snippets.

assistant: # Index

[**_**](genindex-_.html)
| [**A**](genindex-A.html)
| [**B**](genindex-B.html)
| [**C**](genindex-C.html)
| [**D**](genindex-D.html)
| [**E**](genindex-E.html)
| [**F**](genindex-F.html)
| [**G**](genindex-G.html)
| [**H**](genindex-H.html)
| [**I**](genindex-I.html)
| [**J**](genindex-J.html)
| [**K**](genindex-K.html)
| [**L**](genindex-L.html)
| [**M**](genindex-M.html)
| [**N**](genindex-N.html)
| [**O**](genindex-O.html)
| [**P**](genindex-P.html)
| [**Q**](genindex-Q.html)
| [**R**](genindex-R.html)
| [**S**](genindex-S.html)
| [**T**](genindex-T.html)
| [**U**](genindex-U.html)
| [**V**](genindex-V.html)
| [**W**](genindex-W.html)
| [**X**](genindex-X.html)
| [**Y**](genindex-Y.html)
| [**Z**](genindex-Z.html)

[**Full index on one page**
(can be huge)](genindex-all.html)
user: Show practical ways to work with LightProbePlane(LightProbe) in a Blender add-on or script – include code.

assistant: # LightProbePlane(LightProbe)

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"), [`LightProbe`](bpy.types.LightProbe.html#bpy.types.LightProbe "bpy.types.LightProbe")

*class* bpy.types.LightProbePlane(*LightProbe*)
:   Light probe that captures incoming light from a single direction on a plane

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

assistant: # Shear

Shearing is a form of movement where parallel surfaces move past one another. During this transform,
movement of the selected elements will occur along the horizontal axis of the current view.
The axis location will be defined by
the [Pivot Point](../../../../../editors/3dview/controls/pivot_point/index.xhtml).
Everything that is “above” this axis will move (shear)
in the same direction as your mouse pointer (but always parallel to the horizontal axis).
Everything that is “below” the horizontal axis will move in the opposite direction.

[image reference removed]

Shear Offset Factor.
user: Give a detailed overview of ShaderNodeMapRange(ShaderNode): syntax, arguments, return values, common patterns.

assistant: # ShaderNodeMapRange(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.ShaderNodeMapRange(*ShaderNode*)
:   Remap a value from a range to a target range

    clamp
    :   Clamp the result to the target range [To Min, To Max]

        Type:
        :   boolean, default False

    data_type
    :   - `FLOAT`
          Float – Floating-point value.
        - `FLOAT_VECTOR`
          Vector – 3D vector with floating-point values.

        Type:
        :   enum in [`'FLOAT'`, `'FLOAT_VECTOR'`], default `'FLOAT'`

    interpolation_type
    :   Type:
        :   enum in [Node Map Range Items](bpy_types_enum_items/node_map_range_items.html#rna-enum-node-map-range-items), default `'LINEAR'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: What is NodesModifierWarning(bpy_struct) and how is it used in Blender Python scripting?

assistant: # NodesModifierWarning(bpy_struct)

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

*class* bpy.types.NodesModifierWarning(*bpy_struct*)
:   Warning created during evaluation of a geometry nodes modifier

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

    type
    :   Type:
        :   enum in [Node Warning Type Items](bpy_types_enum_items/node_warning_type_items.html#rna-enum-node-warning-type-items), default `'ERROR'`, (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.NodesModifierWarning.type "bpy.types.NodesModifierWarning.type")
user: Give a detailed overview of Glass BSDF: syntax, arguments, return values, common patterns.

assistant: # Glass BSDF

[image reference removed]

The *Glass* BSDF
is used to add a Glass-like shader mixing refraction and reflection at grazing angles.
Like the transparent shader, only pure white will make it transparent.
The glass shader tends to cause noise due to caustics.
Since the Cycles path tracing integrator is not very good at rendering caustics,
it helps to combine this with a transparent shader for shadows;
for [more details see here](../../cycles/optimizations/reducing_noise.xhtml#render-cycles-reducing-noise-glass-and-transp-shadows).
user: What is Elastic Deform and how is it used in Blender Python scripting?

assistant: # Elastic Deform

Used to simulate realistic deformations such as grabbing or twisting of [Elastic](../../../glossary/index.xhtml#term-Elastic) objects.
For example, this tool works great for modeling the shape of organic objects such as humans or animals.
When pressing `Ctrl`, the brush deforms vertices along the normal of the active vertex.
user: How do I use Asset Catalogs in Blender? Include parameters, examples, warnings and best practices.

assistant: # Asset Catalogs

Asset Catalogs help you to organize your assets. They look a little bit like file directories,
but they are completely independent of the location of your blend-files.
Assign each asset in a blend-file to its own catalog, or have one big catalog
with all the assets of all the blend-files combined. It’s all up to you.

Similar to [Collections](../../scene_layout/collections/collections.xhtml), catalogs can be nested
i.e. you can have a main catalog that contains several nested catalogs.
For example, this allows you to have a catalog of assets for “Furniture”
with sub-catalogs of “Tables”, “Chairs”, “Lamps”, etc…

For more technical information,
see [Asset Catalogs on the Blender Developer Documentation](https://developer.blender.org/docs/features/asset_system/backend/asset_catalogs/).

[image reference removed]

Example file system and catalog structures.

[image reference removed]

Example file system and catalog structures.
user: Show practical ways to work with Setup in a Blender add-on or script – include code.

assistant: - Select the light or emissive mesh object and go to the
  [Cycles Shading panel](../cycles/object_settings/object_data.html#render-cycles-object-light-linking-settings) or
  [EEVEE Shading panel](../eevee/object_settings/object_data.html#render-eevee-object-light-linking-settings).
- Create a new light/shadow linking collection.
- Drag & drop objects or collections from the [Outliner](../../editors/outliner/introduction.html)
  onto the list.

You can also use the [Link Data](../../scene_layout/object/editing/link_transfer/link_data.html) menu for this:
select the objects, add the light to the selection, press `Ctrl`-`L`, and choose
Link Receivers/Blockers to Emitter.

Multiple light objects can use the same linking collection. They can also use an existing scene collection,
but in general, it’s recommended to create dedicated linking collections so you can change these
without affecting the scene layout.
user: How do I use CollectionExports(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # CollectionExports(bpy_struct)

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

*class* bpy.types.CollectionExports(*bpy_struct*)
:   Collection of export handlers

    new(*type*, *\**, *name=''*)
    :   Add an export handler to the collection

        Parameters:
        :   - **type** (enum in [`'IO_FH_alembic'`, `'IO_FH_usd'`, `'IO_FH_obj'`, `'IO_FH_ply'`, `'IO_FH_stl'`, `'IO_FH_fbx'`, `'IO_FH_gltf2'`]) – Type, The type of export handler to add
            - **name** (*string**,* *(**optional**,* *never None**)*) – Name, Name of the new export handler

        Returns:
        :   Newly created export handler

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

    remove(*exporter*)
    :   Remove an export handler from the collection

        Parameters:
        :   **exporter** ([`CollectionExport`](bpy.types.CollectionExport.html#bpy.types.CollectionExport "bpy.types.CollectionExport")) – Export Handler to remove

    move(*from_index*, *to_index*)
    :   Move an export handler

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

    *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 2D Offset: syntax, arguments, return values, common patterns.

assistant: # 2D Offset

The *2D Offset* modifier adds some two-dimensional offsets to the stroke backbone geometry.
It has two sets of independent options/effects:

Start, End
:   These two options add the given amount of offset to the start (or end) point of the stroke,
    along the (2D) normal at those points. The effect is blended over the whole stroke, if you for example,
    set only *Start* to 50, the start of the stroke is offset 50 pixels along its normal,
    the middle of the stroke, 25 pixels along its own normal, and the end point is not moved.

X, Y
:   These two options simply add a constant horizontal and/or vertical offset to the whole stroke.
user: Provide the full official documentation entry for Keyframes, preserving all code examples.

assistant: These settings control [Keyframes](../../animation/keyframes/index.html)
which are the building blocks for animations.

Default Key Channels
:   Which channels to insert keys at when no keying set is active.

    Location:
    :   Inset keyframes for an object’s [Location](../../scene_layout/object/properties/transforms.html#bpy-types-object-location).

    Rotation:
    :   Inset keyframes for an object’s [Rotation](../../scene_layout/object/properties/transforms.html#bpy-types-object-rotation).

    Scale:
    :   Inset keyframes for an object’s [Scale](../../scene_layout/object/properties/transforms.html#bpy-types-object-scale).

    Rotation Mode:
    :   Inset keyframes for an object’s [Rotation Mode](../../scene_layout/object/properties/transforms.html#bpy-types-object-rotation-mode).

    Custom Properties:
    :   Inset keyframes for [Custom Properties](../../files/custom_properties.html).

Only Insert Needed
:   This will only insert keyframes if the value of the property is different.

    Manual:
    :   When keying manually, skip inserting keys that don’t affect the animation.

    Auto:
    :   Auto-Keying will skip inserting keys that don’t affect the animation.

Keyframing – Visual Keying
:   When an object is using constraints, the object property value does not actually change.
    *Visual Keying* will add keyframes to the object property,
    with a value based on the visual transformation from the constraint.

Auto-Keyframing
:   Enable in New Scenes
    :   Enables *Auto Keyframe* by default for new scenes.

    Show Warning
    :   Displays a warning at the top right of the *3D Viewport*, when moving objects, if *Auto Keyframe* is on.

    Only Insert Available
    :   This will only add keyframes to channels of F-Curves that already exist.
user: Show practical ways to work with Passes in a Blender add-on or script – include code.

assistant: # Passes

A *Pass* is a type of intermediate rendering information that’s extracted as a separate image.
Examples include the diffuse colors of the objects in the scene, the light distribution,
the depth map, and the normal map.

These images can be accessed using the [Render Layers Node](../../compositing/types/input/scene/render_layers.xhtml)
in the [Compositor](../../editors/compositor.xhtml) and combined in a custom way that replaces the standard one.
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`Curve.splines`](bpy.types.Curve.html#bpy.types.Curve.splines "bpy.types.Curve.splines") - [`CurveSplines.active`](bpy.types.CurveSplines.html#bpy.types.CurveSplines.active "bpy.types.CurveSplines.active") | - [`CurveSplines.new`](bpy.types.CurveSplines.html#bpy.types.CurveSplines.new "bpy.types.CurveSplines.new") - [`CurveSplines.remove`](bpy.types.CurveSplines.html#bpy.types.CurveSplines.remove "bpy.types.CurveSplines.remove") |
user: Provide the full official documentation entry for NodeSocketCollection(NodeSocketStandard), preserving all code examples.

assistant: # NodeSocketCollection(NodeSocketStandard)

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

*class* bpy.types.NodeSocketCollection(*NodeSocketStandard*)
:   Collection socket of a node

    default_value
    :   Input value used for unconnected socket

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

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

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

        (readonly)

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Move, Rotate, Scale

Once you have a selection of one or more elements, you can move `G`,
rotate `R` or scale `S` them, like many other things in Blender,
as described in the [Manipulation in 3D Space](../../../../../scene_layout/object/editing/transform/introduction.html) section.
To move, rotate and scale selected components, either use the *Move*, *Rotate*, and *Scale* buttons,
the [transform gizmos](../../../../../editors/3dview/display/gizmo.html),
or the shortcuts: `G`, `R`, and `S` respectively.

After moving a selection, the options in the [Adjust Last Operation](../../../../../interface/undo_redo.html#bpy-ops-screen-redo-last) panel allow you to
fine-tune your changes, limit the effect to certain axes, turn Proportional Editing on and off, etc.
Of course, when you move an element of a given type (e.g. an edge),
you also modify the implicitly related elements of other kinds (e.g. vertices and faces).

Pressing `G` twice enters either *Edge Slide* or *Vertex Slide* tool depending on the selection.
You also have in *Edit Mode* an extra option when using these basic manipulations:
the [Proportional Editing](../../../../../editors/3dview/controls/proportional_editing.html).
user: Explain VolumeGrids(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # VolumeGrids(bpy_struct)

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

*class* bpy.types.VolumeGrids(*bpy_struct*)
:   3D volume grids

    active_index
    :   Index of active volume grid

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

    error_message
    :   If loading grids failed, error message with details

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

    frame
    :   Frame number that volume grids will be loaded at, based on scene time and volume parameters

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

    frame_filepath
    :   Volume file used for loading the volume at the current frame. Empty if the volume has not be loaded or the frame only exists in memory.

        Type:
        :   string, default “”, (readonly, never None, blend relative `//` prefix supported)

    is_loaded
    :   List of grids and metadata are loaded in memory

        Type:
        :   boolean, default False, (readonly)

    load()
    :   Load list of grids and metadata from file

        Returns:
        :   True if grid list was successfully loaded

        Return type:
        :   boolean

    unload()
    :   Unload all grid and voxel data from memory

    save(*filepath*)
    :   Save grids and metadata to file

        Parameters:
        :   **filepath** (*string**,* *(**never None**)*) – File path to save to

        Returns:
        :   True if grid list was successfully loaded

        Return type:
        :   boolean

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Explain Pin & Unpin in complete detail according to the official Blender documentation.

assistant: You can pin UVs so they do not move between multiple unwrap operations.
When Unwrapping a model it is sometimes useful to “Lock” certain UVs,
so that parts of a UV layout stay the same shape, and/or in the same place.
Pinning is done by selecting a UV, then selecting *Pin* from the *UVs* menu,
or the shortcut `P`. You can *Unpin a UV* with the shortcut `Alt`-`P`.

Pinning is most effective when using the Unwrap method of UV mapping, for organic objects.
An example is when you are modeling a symmetrical object using
the [Mirror Modifier](../../modifiers/generate/mirror.html).
Some of the UVs on the mirror axis may be shared across the mirrored counterparts.
You could pin the UVs that correspond to the midline, then align them on the X axis,
and they will stay in that location.

The sculpting tools, *Pinch* and *Relax*, will not move any pinned UVs. This allows
you to pin the borders, or around interior holes, and gives even more control to the
sculpt tools.

Pinning also works great with the *Live Unwrap* tool. If you pin two or more UVs,
with *Live Unwrap* on, moving or scaling the pinned UVs will interactively unwrap the model.
You can even use the *Grab* sculpting tool to move the pinned UVs.
This helps with fitting a UV island to a certain shape or region.
user: Describe Usage from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

To Sphere Factor.

As can be seen in the below image, the result
will be smoother and more spherical when there are more mesh elements available to work with.

[image reference removed]

To Sphere applied to cubes with different subdivision levels.

In this image sequence, To Sphere was applied to the entire cube
at levels of 0, 0.25 (25%), 0.5 (50%) and 1 (100%) respectively.

The *To Sphere* transform will generate different results depending on the number
and arrangement of elements that were selected (as shown by the below image).

[image reference removed]

To Sphere applied to different selections.
user: How do I use ClothCollisionSettings(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # ClothCollisionSettings(bpy_struct)

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

*class* bpy.types.ClothCollisionSettings(*bpy_struct*)
:   Cloth simulation settings for self collision and collision with other objects

    collection
    :   Limit colliders to this Collection

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

    collision_quality
    :   How many collision iterations should be done (higher is better quality but slower)

        Type:
        :   int in [1, 32767], default 2

    damping
    :   Amount of velocity lost on collision

        Type:
        :   float in [0, 1], default 1.0

    distance_min
    :   Minimum distance between collision objects before collision response takes effect

        Type:
        :   float in [0.001, 1], default 0.015

    friction
    :   Friction force if a collision happened (higher = less movement)

        Type:
        :   float in [0, 80], default 5.0

    impulse_clamp
    :   Clamp collision impulses to avoid instability (0.0 to disable clamping)

        Type:
        :   float in [0, 100], default 0.0

    self_distance_min
    :   Minimum distance between cloth faces before collision response takes effect

        Type:
        :   float in [0.001, 0.1], default 0.015

    self_friction
    :   Friction with self contact

        Type:
        :   float in [0, 80], default 5.0

    self_impulse_clamp
    :   Clamp collision impulses to avoid instability (0.0 to disable clamping)

        Type:
        :   float in [0, 100], default 0.0

    use_collision
    :   Enable collisions with other objects

        Type:
        :   boolean, default True

    use_self_collision
    :   Enable self collisions

        Type:
        :   boolean, default False

    vertex_group_object_collisions
    :   Triangles with all vertices in this group are not used during object collisions

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

    vertex_group_self_collisions
    :   Triangles with all vertices in this group are not used during self collisions

        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: Show practical ways to work with Render Properties in a Blender add-on or script – include code.

assistant: # Render Properties

Freestyle can be activated with the checkbox in the header of the Freestyle panel in the *Render* tab.

[image reference removed]

Freestyle Render Properties.

Line Thickness Mode
:   There are two different modes for defining the base line thickness:

    Absolute:
    :   The line thickness is given by a user-specified number of pixels.

    Relative:
    :   The unit line thickness is scaled by the proportion of the present vertical image resolution to 480 pixels.
        For instance, the “unit line thickness” is 1.0 when the image height set to 480px, 1.5 with 720px
        and 2.0 with 960px.

Line Thickness
:   Line thickness to use for rendering (only for *Absolute* line thickness).
user: Give a detailed overview of GeometryNodeSetSplineResolution(GeometryNode): syntax, arguments, return values, common patterns.

assistant: # GeometryNodeSetSplineResolution(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.GeometryNodeSetSplineResolution(*GeometryNode*)
:   Control how many evaluated points should be generated on every curve segment

    *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 Linestyle Color Modifier Type Items, preserving all code examples.

assistant: # Linestyle Color Modifier Type Items

ALONG_STROKE:
:   Along Stroke.

CREASE_ANGLE:
:   Crease Angle.

CURVATURE_3D:
:   Curvature 3D.

DISTANCE_FROM_CAMERA:
:   Distance from Camera.

DISTANCE_FROM_OBJECT:
:   Distance from Object.

MATERIAL:
:   Material.

NOISE:
:   Noise.

TANGENT:
:   Tangent.
user: What is Introduction and how is it used in Blender Python scripting?

assistant: # Introduction

Here are some preferences that you may wish to set initially. See the section
[Preferences](../../editors/preferences/index.html) for the complete list of available settings. The shortcut
`Ctrl`-`Comma` can be used to quickly open the Preferences editor.
user: Show practical ways to work with Alpha Over in a Blender add-on or script – include code.

assistant: With *Alpha Over*, the strips are layered up in the order selected; the first strip selected is the background,
and the second one goes *over* the first one selected.
The *Opacity* controls the transparency of the *foreground*, i.e. *Opacity* of 0.0;
will only show the background, and an *Opacity* of 1.0 will completely override the background with the foreground
(except in the transparent areas of this one, of course!)

[image reference removed]

Alpha Over Effect.
user: What is Inputs and how is it used in Blender Python scripting?

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: Provide the full official documentation entry for Start Tweaking Strips Actions (Lower Stack), preserving all code examples.

assistant: Enters Tweak Mode for the selected strip’s action, making its keyframes available for editing.
Mutes any tracks above the current one so that they don’t influence the animation while making changes.

When you’re done, click Strip ‣ Stop Tweaking Strips Actions or press `Tab`.
user: What is Distribute Points on Faces and how is it used in Blender Python scripting?

assistant: # Distribute Points on Faces

[image reference removed]

The *Distribute Points on Faces* node places points on the surface of the input geometry object.
Point, corner, and polygon attributes of the input geometry are transferred to the generated points.
That includes vertex weights and UV maps.
Additionally, the node has *Normal* and *Rotation* outputs.

The node also generates a stable ID, stored in the built-in `id` attribute, used as
a stable identifier for each point. When the mesh is deformed or the density changes
the values will be consistent for each remaining point. This attribute is used in
the [Random Value](../utilities/random_value.xhtml) and
[Instance on Points](../instances/instance_on_points.xhtml) nodes.
user: Describe NodeSocketVirtual(NodeSocketStandard) from the Blender manual or Python API, including usage steps and snippets.

assistant: # NodeSocketVirtual(NodeSocketStandard)

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

*class* bpy.types.NodeSocketVirtual(*NodeSocketStandard*)
:   Virtual socket of a node

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

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

        (readonly)

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: ### Settings

Enabled
:   Specifies whether the constraint is active during the simulation.

Disable Collisions
:   Allows constrained objects to pass through one another.

Breakable
:   Allows constraint to break during simulation. Disabled for the *Motor* constraint.
    This can be used to simulate destruction.

Threshold
:   Impulse strength that needs to be reached before the constraint breaks.

### Limits

By using limits you can constrain objects even more by specifying a translation/rotation range on/around
respectively one axis (see below for each one individually). To lock one axis, set both limits to 0.

### Objects

First
:   First object to be constrained.

Second
:   Second object to be constrained.

### Override Iterations

Allows making constraints stronger (more iterations) or weaker (less iterations)
than specified in the rigid body world.

Iterations
:   Number of constraint solver iterations made per simulation step for this constraint.
user: What is FunctionNodeRotationToEuler(FunctionNode) and how is it used in Blender Python scripting?

assistant: # FunctionNodeRotationToEuler(FunctionNode)

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"), [`FunctionNode`](bpy.types.FunctionNode.html#bpy.types.FunctionNode "bpy.types.FunctionNode")

*class* bpy.types.FunctionNodeRotationToEuler(*FunctionNode*)
:   Convert a standard rotation value to an Euler rotation

    *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