PGCRYPT/OpenBlender_Train huggingface dataset:
user: Show practical ways to work with FunctionNodeValueToString(FunctionNode) in a Blender add-on or script – include code.

assistant: # FunctionNodeValueToString(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.FunctionNodeValueToString(*FunctionNode*)
:   Generate a string representation of the given input value

    data_type
    :   - `FLOAT`
          Float – Floating-point value.
        - `INT`
          Integer – 32-bit integer.

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

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Explain Pass Index in complete detail according to the official Blender documentation.

assistant: Pass Index
:   Index number for the *Material Index* [render pass](../layers/passes.xhtml).
    This can be used to give a mask to a material and then be read with
    the [ID Mask Node](../../compositing/types/mask/id_mask.xhtml) in the Compositor.
user: Provide the full official documentation entry for ShaderNodeCameraData(ShaderNode), preserving all code examples.

assistant: # ShaderNodeCameraData(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.ShaderNodeCameraData(*ShaderNode*)
:   Retrieve information about the camera and how it relates to the current shading point’s position

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Splines are the fundamental components of curve objects, defining their shapes.
A curve object can consist of multiple splines,
similar to how a mesh object can contain multiple disconnected meshes.
Each spline’s shape is determined by its [Control Points](#curve-spline-types).
Splines come in several types: Poly, Bézier, and NURBS, each with its own algorithm for representing curves,
as described in the [Spline Types](#spline-types) section.

Splines have unique properties that can be adjusted in Edit Mode via the
[Active Spline](properties/active_spline.xhtml) panel.

### Control Points

Splines are made up of control points, which connect to form the spline.
Control points can be [selected](selecting.xhtml) and transformed to adjust the spline’s shape.
This is analogous to vertices in a mesh object.
user: Provide the full official documentation entry for Inherited Properties, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`Attribute.name`](bpy.types.Attribute.html#bpy.types.Attribute.name "bpy.types.Attribute.name") - [`Attribute.data_type`](bpy.types.Attribute.html#bpy.types.Attribute.data_type "bpy.types.Attribute.data_type") - [`Attribute.storage_type`](bpy.types.Attribute.html#bpy.types.Attribute.storage_type "bpy.types.Attribute.storage_type") | - [`Attribute.domain`](bpy.types.Attribute.html#bpy.types.Attribute.domain "bpy.types.Attribute.domain") - [`Attribute.is_internal`](bpy.types.Attribute.html#bpy.types.Attribute.is_internal "bpy.types.Attribute.is_internal") - [`Attribute.is_required`](bpy.types.Attribute.html#bpy.types.Attribute.is_required "bpy.types.Attribute.is_required") |
user: How do I use Introduction in Blender? Include parameters, examples, warnings and best practices.

assistant: # Introduction

*Curves Sculpt Mode* allows working with curves using various brushes.
It is commonly used for hair grooming, but can be used with all kinds of curves.

The curves’ surface object plays an important role in many curves sculpting brushes.
Most brushes such as [Add Curves](brushes/add_curves.xhtml)
require the surface to be set already.
user: How do I use Touchpad in Blender? Include parameters, examples, warnings and best practices.

assistant: Multi-touch Gestures
:   Use multi-touch gestures for navigation with touchpad, instead of scroll wheel emulation.
    For more detail on supported gestures,
    see [Configuring Peripherals](../../getting_started/configuration/hardware.xhtml).

Scroll Direction
:   The direction scrolling responds to the scroll gestures.

    Only available on Linux using Wayland.

    Traditional:
    :   Scrolls content down when gestures move up.

    Natural:
    :   Scrolls content up when gestures move up.
user: Explain ViewerPath(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # ViewerPath(bpy_struct)

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

*class* bpy.types.ViewerPath(*bpy_struct*)
:   Path to data that is viewed

    path
    :   Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`ViewerPathElem`](bpy.types.ViewerPathElem.html#bpy.types.ViewerPathElem "bpy.types.ViewerPathElem"), (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: What is Inputs and how is it used in Blender Python scripting?

assistant: By default, the node has no input sockets.
Sockets appear when outputs are defined for the node group in the *Group* tab of the sidebar
(or when dragging a connection onto the blank socket area).

Each input corresponds to a group output socket that can be exposed to the parent node tree.
user: Show practical ways to work with Denoise Node in a Blender add-on or script – include code.

assistant: # Denoise Node

[image reference removed]

The Denoise node is used to denoise renders from [Cycles](../../../render/cycles/index.xhtml)
and other ray tracing renderers. This helps to significantly reduce render time by
rendering with fewer samples.

It uses [Open Image Denoise](https://www.openimagedenoise.org/),
which transforms noisy images into clean images with machine learning.
user: Describe Bake Action from the Blender manual or Python API, including usage steps and snippets.

assistant: The final motion of objects and bones depends not only on the keyframed animation,
but also on [F-Curve modifiers](../../graph_editor/fcurves/modifiers.html),
[drivers](../../../animation/drivers/introduction.html),
and [constraints](../../../animation/constraints/introduction.html).
The *Bake Action* operator computes this final motion and creates a corresponding
keyframe on every scene frame.

This can be useful for adding deviation to a cyclic action like a [Walk Cycle](../../../glossary/index.html#term-Walk-Cycle),
or to create a keyframe animation from drivers or constraints.

Start Frame
:   Start frame for baking.

End Frame
:   End frame for baking.

Frame Step
:   Number of frames to skip forward while baking each frame.

Only Selected Bones
:   Only key selected bones (Pose baking only).

Visual Keying
:   Keyframe from the final transformations (with constraints applied).

Clear Constraints
:   Remove all constraints from keyed object/bones, and do ‘visual’ keying.

Clear Parents
:   Bake animation onto the object then clear parents (objects only).

Overwrite Current Action
:   Bake animation into the current action instead of creating a new one
    (useful for baking only part of bones in an armature).

Clean Curves
:   After baking curves, [remove redundant keys](../../graph_editor/fcurves/editing.html#bpy-ops-graph-clean).

Bake Data
:   Which data transformations to bake.

    Pose:
    :   Bake bone transformations.

    Object:
    :   Bake object transformations.

Channels
:   Which channels to bake.

    Location:
    :   Bake location channels.

    Rotation:
    :   Bake rotation channels.

    Scale:
    :   Bake scale channels.

    B-Bone:
    :   Bake [B-Bone](../../../animation/armatures/bones/properties/bendy_bones.html) channels.

    Custom Properties:
    :   Bake custom properties.
user: What is Sampling and how is it used in Blender Python scripting?

assistant: # Sampling

The *Sampling* modifier changes the definition, precision of the stroke,
for the following modifiers.

Sampling
:   The smaller this value, the more precise are the strokes.
    Be careful; too small values will require a huge amount of time and memory during render!
user: Explain Brush Settings in complete detail according to the official Blender documentation.

assistant: Direction
:   Determines whether to grow or shrink the curves. It can be toggled holding `Ctrl` while sculpting.

Scale Uniform
:   Grow or shrink curves by changing their size uniformly instead of using trimming or extrapolation.

Minimum Length
:   Avoid shrinking curves shorter than this length.
user: Show practical ways to work with Outputs in a Blender add-on or script – include code.

assistant: Mesh
:   Standard geometry output.

UV Map
:   A 2D vector representing the default X/Y coordinates of the [UV Map](../../../../glossary/index.html#term-UV-Map) for the primitive’s shape.
    This can be connected to the [Store Named Attribute Node](../../attribute/store_named_attribute.html),
    to be used once the Geometry Nodes Modifier get applied.
    The UV map must be stored on the face corner in order to be accessed.
user: What is Inputs and how is it used in Blender Python scripting?

assistant: Mesh
:   Standard geometry input.

Selection
:   The selection of which face corners should be considered for point distribution.

Distance Min
:   The minimal distance points can have to each other.
    This option is only available for the *Poisson Disk* distribution method.
    At its default value of zero, the node’s behavior is the same as it is in *Random* mode,
    because none of the internally generated points are removed.

Density Max
:   The point density for the point distribution. The unit is in number of points per square meter.
    This value is multiplied by the values from the *Density* input. Only available in *Poisson Disk* mode.

Density
:   The number of points to distribute per square meter on each mesh face.
    This value is multiplied by the values from the *Density Attribute*.

    In *Poisson Disk* mode, this value is multiplied by the *Density Max* input for the final density.

Seed
:   The random [Seed](../../../glossary/index.html#term-Seed) to use when generating points.
user: Explain Technical Details and Hints in complete detail according to the official Blender documentation.

assistant: The relationship of the above values is described here:

[image reference removed]

Wave front characteristics.

To obtain a nice wave effect similar to sea waves and close to a sinusoidal wave,
make the distance between following ripples and the ripple width equal. That is,
the *Narrowness* value must be equal to `2 / Width`.
E.g. for *Width* to be 1, set *Narrow* to 2.
user: Show practical ways to work with LineStyleAlphaModifier_CreaseAngle(LineStyleAlphaModifier) in a Blender add-on or script – include code.

assistant: # LineStyleAlphaModifier_CreaseAngle(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_CreaseAngle(*LineStyleAlphaModifier*)
:   Alpha transparency based on the angle between two adjacent faces

    angle_max
    :   Maximum angle to modify thickness

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

    angle_min
    :   Minimum angle to modify thickness

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

    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'`

    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_CreaseAngle.type "bpy.types.LineStyleAlphaModifier_CreaseAngle.type")
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`GizmoGroup.setup_keymap`](bpy.types.GizmoGroup.html#bpy.types.GizmoGroup.setup_keymap "bpy.types.GizmoGroup.setup_keymap") - [`KeyConfig.keymaps`](bpy.types.KeyConfig.html#bpy.types.KeyConfig.keymaps "bpy.types.KeyConfig.keymaps") - [`KeyConfigurations.find_item_from_operator`](bpy.types.KeyConfigurations.html#bpy.types.KeyConfigurations.find_item_from_operator "bpy.types.KeyConfigurations.find_item_from_operator") - [`KeyMap.active`](#bpy.types.KeyMap.active "bpy.types.KeyMap.active") - [`KeyMapItems.find_match`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.find_match "bpy.types.KeyMapItems.find_match") - [`KeyMaps.find`](bpy.types.KeyMaps.html#bpy.types.KeyMaps.find "bpy.types.KeyMaps.find") | - [`KeyMaps.find_match`](bpy.types.KeyMaps.html#bpy.types.KeyMaps.find_match "bpy.types.KeyMaps.find_match") - [`KeyMaps.find_match`](bpy.types.KeyMaps.html#bpy.types.KeyMaps.find_match "bpy.types.KeyMaps.find_match") - [`KeyMaps.find_modal`](bpy.types.KeyMaps.html#bpy.types.KeyMaps.find_modal "bpy.types.KeyMaps.find_modal") - [`KeyMaps.new`](bpy.types.KeyMaps.html#bpy.types.KeyMaps.new "bpy.types.KeyMaps.new") - [`KeyMaps.remove`](bpy.types.KeyMaps.html#bpy.types.KeyMaps.remove "bpy.types.KeyMaps.remove") - [`WindowManager.popover_end__internal`](bpy.types.WindowManager.html#bpy.types.WindowManager.popover_end__internal "bpy.types.WindowManager.popover_end__internal") |
user: Provide the full official documentation entry for Subdivide, preserving all code examples.

assistant: Subdivides the selected segments (grid lines) by creating additional, evenly spaced control points in the middle.
These new points then give more fine-grained control over the surface’s shape.

The selection must consist of complete rows or columns of the control point grid.

If not all control points of the surface are selected, it will be subdivided in one direction.
If all control points are selected, it will be subdivided in both directions.

Number of Cuts
:   The number of control points to add in each segment.
user: What is Inherited Properties and how is it used in Blender Python scripting?

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") | - [`LineStyleThicknessModifier.name`](bpy.types.LineStyleThicknessModifier.html#bpy.types.LineStyleThicknessModifier.name "bpy.types.LineStyleThicknessModifier.name") |
user: Explain Inputs in complete detail according to the official Blender documentation.

assistant: Image
:   Standard color input.

Space
:   Coordinate Space to scale relative to.

    Relative:
    :   Percentage values relative to the dimensions of the image input.

    Absolute:
    :   Size of an image by using absolute pixel values.

    Scene Size:
    :   Sizes an image to the size of the final render resolution for the scene.
        For example, rendering a scene at the standard 1080p resolution but setting the render percentage at 50%,
        will produce a 1080p image with the scene scaled down 50% and leaving the rest of the image as alpha.

    Render Size:
    :   Image dimensions set in the Render panel.

Frame Type Render Size
:   How the image fits in the camera frame.

    Stretch:
    :   Distorts the image so that it fits into the render size.

    Fit:
    :   Scales the image until the bigger axis “fits” into the render size.

    Crop:
    :   Cuts the image so that it is the same aspect ratio as the render size.

X, Y
:   Scale in the axis directions, only available if *Space* is set to *Relative* or *Absolute*.

### Sampling

Interpolation
:   Determines how pixel values are interpolated when scaling or transforming images.

    Nearest:
    :   Uses the value of the closest pixel with no smoothing.
        This is the fastest method and is well-suited for pixel art or low-resolution images
        where sharp, blocky edges are desirable.
        In animations, motion appears in single-pixel steps, which can cause visible jittering.

    Bilinear:
    :   Averages the values of surrounding pixels to create a smoother result than *Nearest*.
        Provides a good balance between performance and visual quality.

    Bicubic:
    :   Computes a weighted average of a larger neighborhood of pixels for even smoother results.
        Ideal for photographic images or gradients where preserving fine detail is important.

    Anisotropic:
    :   Adjusts interpolation based on the direction and scale of the transformation.
        Helps reduce blurring or aliasing when scaling at steep angles or uneven resolutions,
        especially useful in textures viewed at oblique angles or in detailed 3D projections.

Extension X/Y
:   The extension mode applied to the X axis.

    Clip:
    :   Areas outside of the image are filled with transparency.

    Extend:
    :   Areas outside of the image are filled with the closest boundary pixel in the image.

    Repeat:
    :   Areas outside of the image are filled with repetitions of the image.
user: How do I use Deform in Blender? Include parameters, examples, warnings and best practices.

assistant: # Deform

[image reference removed]

The Deform panel.

In this panel you can set deformation options for each bone.

Toggling the checkbox in the panel header off,
prevents the bone from deforming the geometry at all,
overriding any weights that it might have been assigned before; it mutes its influence.

It also excludes the active bone in the automatic weight calculation when the mesh is
parented to the armature using the *Armature Deform* tool with the *With Automatic Weights* option.
user: Explain Outputs in complete detail according to the official Blender documentation.

assistant: Closures define outputs that return values to the node tree in which they are evaluated.
Outputs can be created by dragging a socket from within the zone into the blank socket on the closure’s output, or by
adding sockets manually in the node’s properties.
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Reload Strips `Alt`-`R`
:   Reloads the strips from their external saved location.

Reload Strips and Adjust Length `Shift`-`Alt`-`R`
:   Reloads the strips from their external saved location and re-adjusts the strip duration.

Change Path/Files
:   Changes the source file contained in a selected strip.

Swap Data
:   Swaps two sequence strips.
user: What is Inputs and how is it used in Blender Python scripting?

assistant: Curve
:   The input curve to generate the tube along.

Scale
:   Distance factor multiplied by the curve’s radius attribute to define the resulting tube radius.

### Profile

Profile Mode
:   Method used to define the profile shape of the tube.

    Round:
    :   Uses a circular profile to define the tube cross-section.

    Custom:
    :   Uses a custom object or geometry as the profile shape.

Resolution Round
:   The number of points around the circular profile.
    Also defines the resolution of the *Round* cap type.

Profile Input Custom
:   Defines how the custom profile is provided.

    Object:
    :   Uses a single object as the custom profile.

    Geometry:
    :   Uses input geometry directly as the profile.

Object / Geometry Custom
:   The specific object or geometry to use as the profile when *Custom* mode is active.

Shade Smooth
:   Enables smooth shading for the generated mesh.

### Resample

Resamples the input curve before generating the mesh.
This helps achieve evenly distributed geometry and consistent resolution along the tube.

Resample Mode
:   Determines how the curve is resampled.

    Evaluated:
    :   Uses the existing evaluated curve points.

    Auto:
    :   Automatically determines an appropriate sample length based on curve details.

    Count:
    :   Uses a fixed number of sample points.

    Length:
    :   Uses a fixed distance between sample points.

Scale Auto
:   Scale factor applied to the automatically derived resample length when using *Auto* mode.

Count Count
:   Number of sample points along the curve when using *Count* mode.

Length Length
:   Distance between sample points when using *Length* mode.

### Caps

Fills the open ends of the tube with cap geometry.

Caps Type
:   Method used to fill the tube ends.

    Flat:
    :   Uses a single n-gon to cap each end.

    Round:
    :   Uses a half-circle shape for rounded caps.

    Custom:
    :   Uses user-provided geometry or an object as the cap.

Smooth Flat Round
:   Smooths the transition between the tube body and the caps instead of creating a sharp edge.

Caps Input Custom
:   Defines how custom caps are provided.

    Object:
    :   Uses a single object as the custom cap.

    Geometry:
    :   Uses input geometry as the custom cap.

Start / End Custom
:   Specifies the objects or geometry to use for the start and end caps when *Custom* mode is active.

### UV Map

Name
:   The name of the UV map to create or modify on the output mesh.

Parameter U/V
:   Defines how the UVs are generated along the tube.

    Factor:
    :   Uses a normalized 0-1 factor along the curve and profile.

    Length:
    :   Maps UVs based on the real length of the curve and circumference.

    Index:
    :   Uses the point indices along the curve and profile.

Consider Curve Radius
:   When enabled, the UV generation takes into account variations in the curve’s radius.
user: Give a detailed overview of ArmatureConstraintTargets(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # ArmatureConstraintTargets(bpy_struct)

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

*class* bpy.types.ArmatureConstraintTargets(*bpy_struct*)
:   Collection of target bones and weights

    new()
    :   Add a new target to the constraint

        Returns:
        :   New target bone

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

    remove(*target*)
    :   Delete target from the constraint

        Parameters:
        :   **target** ([`ConstraintTargetBone`](bpy.types.ConstraintTargetBone.html#bpy.types.ConstraintTargetBone "bpy.types.ConstraintTargetBone"), (never None)) – Target to remove

    clear()
    :   Delete all targets from object

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

assistant: Pin Scene
:   When enabled, the current workspace will remember the currently selected scene.
    Then, whenever you activate the workspace, it’ll automatically switch back to that scene.

Mode
:   Switch to this [Mode](../../editors/3dview/modes.xhtml) when activating the workspace.

Sequencer Scene
:   The scene containing the edit that is used by the video sequence editor.
    See [Sequencer Scene](../../video_editing/sequencer_scene.xhtml).

Sync Scene Time
:   Sync the active scene and time based on the current [scene strip](../../video_editing/edit/montage/strips/scene.xhtml#bpy-types-scenestrip) in the video sequence editor.
    See [Sequencer Scene](../../video_editing/sequencer_scene.xhtml).

Filter Add-ons
:   Determines which [add-ons](../../addons/index.xhtml) are enabled in the active workspace.
    When unchecked, the global add-ons will be used.
    When checked, you can enable individual add-ons in the list below.
user: Describe Notes from the Blender manual or Python API, including usage steps and snippets.

assistant: - Parenting to one vertex tracks only the vertex’s position.
- Parenting to three vertices allows the child to follow both position and rotation, based on the triangle’s surface.
- The child object remains in Object Mode while the mesh stays in Edit Mode.
- Only one child object can be parented at a time using this method.
user: Give a detailed overview of The Brush: syntax, arguments, return values, common patterns.

assistant: # The Brush

Sculpt Mode is very recognizable by the behavior and visualization of the brush.
All the usual brush controls still apply, yet the brush for sculpting is displayed in 3D.
This means that the brush will follow the curvature of the surface
by orienting the radius to match the topology [Normal](../../../glossary/index.xhtml#term-Normal).

The inner ring of the brush cursor is used to visualize the strength of the brush.

[image reference removed]

The brush is also used for other [tools](../tools/index.xhtml) in the toolbar
to better display how that tool works. For example, the [Box Trim](../tools/trim_tools.xhtml#tool-box-trim)
and [Lasso Trim](../tools/trim_tools.xhtml#tool-lasso-trim) tools are able to use the current brush radius
for how deep geometry is trimmed or added.
user: How do I use Cache in Blender? Include parameters, examples, warnings and best practices.

assistant: # Cache

After you have set up the deflection mesh for the frame range you intend to run the simulation
(including animating that mesh *via* armatures),
you can now tell the cloth simulation to compute (and avoid) collisions.
Select the cloth object and in the *Object* tab,
*Physics* tab, set the *Start* and *End* settings for
the simulation frames you wish to compute, and click the *Bake* button.

Cache settings for cloth are the same as with other dynamic systems.
See [Particle Cache](../../particles/emitter/cache.xhtml) for details.
user: How do I use Directory Structure in Blender? Include parameters, examples, warnings and best practices.

assistant: # Directory Structure

A video project is most likely a combination of several different assets.
You can separate them into three broad categories.

- Video files: video clips (or movies in Blender-talk), photos, graphic files (charts, logos, …),
  and Visual Effects (VFX) such as masks, lens flares, animation.
- Audio files: recorded dialog, voice-over, music, and Sound Effects (SFX) such as environmental sounds, swooshes, …
- Project files: the blend files and backups, (partial) render results, documentation such as scripts and storyboards.

Together they can form rapidly an intangible heap of files.
It’s good practice to collect all those assets in *one* project directory with appropriate subdirectories.
Why? It will lower the probability that you accidentally delete a file
(which will result in a ‘file not found’ error) or that you forget
to include a necessary file when transferring the project (‘file is missing’ error).
And most of all, an appropriate directory structure, will help you to keep a clear overview of your assets.

It’s also good practice to use some kind of naming convention and add metadata.
Figure 1 shows a possible example, based on our categorization of the assets above.
The directories are numbered so that they mimic a normal workflow.

[image reference removed]

Figure 1: Organizing your project.
user: What is Properties and how is it used in Blender Python scripting?

assistant: Distribution Method
:   Random:
    :   Distribute points randomly on the surface. This is the fastest distribution method.

    Poisson Disk:
    :   Distribute points randomly on the surface while taking a minimum distance into account.

Legacy Normal
:   By default, the node uses smooth and custom normals for the *Normal* and *Rotation* values .
    An earlier version of this node only uses “true” normals,
    this option brings back this behavior of only using “true” normals.

    This option can only be available in the Sidebar.
user: What is GeometryNodeSetGreasePencilSoftness(GeometryNode) and how is it used in Blender Python scripting?

assistant: # GeometryNodeSetGreasePencilSoftness(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.GeometryNodeSetGreasePencilSoftness(*GeometryNode*)
:   Set softness attribute on Grease Pencil geometry

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: How do I use PointCache(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # PointCache(bpy_struct)

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

*class* bpy.types.PointCache(*bpy_struct*)
:   Active point cache for physics simulations

    filepath
    :   Cache file path

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

    frame_end
    :   Frame on which the simulation stops

        Type:
        :   int in [1, 1048574], default 0

    frame_start
    :   Frame on which the simulation starts

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

    frame_step
    :   Number of frames between cached frames

        Type:
        :   int in [1, 20], default 0

    index
    :   Index number of cache files

        Type:
        :   int in [-1, 100], default 0

    info
    :   Info on current cache status

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

    is_baked
    :   The cache is baked

        Type:
        :   boolean, default False, (readonly)

    is_baking
    :   The cache is being baked

        Type:
        :   boolean, default False, (readonly)

    is_frame_skip
    :   Some frames were skipped while baking/saving that cache

        Type:
        :   boolean, default False, (readonly)

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

    name
    :   Cache name

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

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

    use_disk_cache
    :   Save cache files to disk (.blend file must be saved first)

        Type:
        :   boolean, default False

    use_external
    :   Read cache from an external location

        Type:
        :   boolean, default False

    use_library_path
    :   Use this file’s path for the disk cache when library linked into another file (for local bakes per scene file, disable this option)

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # BlendDataCacheFiles(bpy_struct)

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

*class* bpy.types.BlendDataCacheFiles(*bpy_struct*)
:   Collection of cache files

    tag(*value*)
    :   tag

        Parameters:
        :   **value** (*boolean*) – Value

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

assistant: # Brush

Tool to use for any of the *Sculpt* mode brushes. Activating a brush from an asset shelf or brush
selector will also activate this tool for convenience.

See the list of [Essentials Brushes](../brushes/brushes.html)
(based on available [Brush Types](../brushes/index.html)) for more details.
user: Give a detailed overview of Common Physics Settings: syntax, arguments, return values, common patterns.

assistant: Size
:   Sets the size of the particles.

Random Size
:   Give the particles a random size variation.

Mass
:   Specify the mass of the particles.

Multiply Mass with Particle Size
:   Causes larger particles to have larger masses.
user: Show practical ways to work with Bpy.Ops.Ui in a Blender add-on or script – include code.

assistant: All, Add overrides for all elements of the array bpy.ops.ui. override_idtemplate_clear ( ) ¶ Delete the selected local override and relink its usages to the linked data-block if possible, else reset it and mark it as non editable bpy.ops.ui. override_idtemplate_make ( ) ¶ Create a local override of the selected linked data-block, and its hierarchy of dependencies bpy.ops.ui. override_idtemplate_reset ( ) ¶ Reset the selected local override to its linked reference values bpy.ops.ui. override_remove_button ( * , all = True ) ¶ Remove an override operation Parameters : all ( boolean , ( optional ) ) – All, Reset to default values all elements of the array bpy.ops.ui. reloadtranslation ( ) ¶ Force a full reload of UI translation bpy.ops.ui. reset_default_button ( * , all = True ) ¶ Reset this property’s value to its default value Parameters : all ( boolean , ( optional ) ) – All, Reset to default values all elements of the array bpy.ops.ui. unset_property_button ( ) ¶ Clear the property and use default or generated value in operators bpy.ops.ui. view_drop ( ) ¶ Drag and drop onto a data-set or item within the data-set bpy.ops.ui. view_item_delete ( ) ¶ Delete selected list item bpy.ops.ui. view_item_rename ( ) ¶ Rename the active item in the data-set view bpy.ops.ui. view_item_select ( * , wait_to_deselect_others = False , use_select_on_click = False , mouse_x = 0 , mouse_y = 0 , extend = False , range_select = False ) ¶ Activate selected view item Parameters : wait_to_deselect_others ( boolean , ( optional ) ) – Wait to Deselect Others use_select_on_click ( boolean , ( optional ) ) – Act on Click, Instead of selecting on mouse press, wait to see if there’s drag event. Otherwise select on mouse release mouse_x ( int in [ -inf , inf ] , ( optional ) ) – Mouse X mouse_y ( int in [ -inf , inf ] , ( optional ) ) – Mouse Y extend ( boolean , ( optional ) ) – extend, Extend Selection range_select ( boolean , ( optional ) ) – Range Select, Select all between clicked and active items bpy.ops.ui. view_scroll ( ) ¶ Undocumented, consider contributing . bpy.ops.ui. view_start_filter ( ) ¶ Start entering filter text for the data-set in focus Next Uilist Operators Previous Transform Operators Copyright &#169; Blender Authors Made with Furo Report issue on this page On this page Ui Operators assign_default_button() button_execute() button_string_clear() copy_as_driver_button() copy_data_path_button() copy_driver_to_selected_button() copy_python_command_button() copy_to_selected_button() drop_color() drop_material() drop_name() editsource() eyedropper_bone() eyedropper_color() eyedropper_colorramp() eyedropper_colorramp_point() eyedropper_depth() eyedropper_driver() eyedropper_grease_pencil_color() eyedropper_id() jump_to_target_button() list_start_filter() override_add_button() override_idtemplate_clear() override_idtemplate_make() override_idtemplate_reset() override_remove_button() reloadtranslation() reset_default_button() unset_property_button() view_drop() view_item_delete() view_item_rename() view_item_select() view_scroll() view_start_filter()
user: Explain Face Set Node in complete detail according to the official Blender documentation.

assistant: # Face Set Node

[image reference removed]

The *Face Set Node* outputs which [face set](../../../../sculpt_paint/sculpting/introduction/visibility_masking_face_sets.xhtml#face-sets) a face is in,
and whether or not face sets exist in the mesh at all.

The corresponding data flow node is the [Set Face Set Node](../write/set_face_set.xhtml).
user: Describe References from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| - [`DynamicPaintCanvasSettings.canvas_surfaces`](bpy.types.DynamicPaintCanvasSettings.html#bpy.types.DynamicPaintCanvasSettings.canvas_surfaces "bpy.types.DynamicPaintCanvasSettings.canvas_surfaces") | - [`DynamicPaintSurfaces.active`](bpy.types.DynamicPaintSurfaces.html#bpy.types.DynamicPaintSurfaces.active "bpy.types.DynamicPaintSurfaces.active") |
user: How do I use Image Coordinates Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Image Coordinates Node

[image reference removed]

The *Image Coordinates* node outputs various coordinate fields for an input image.
These outputs provide information about each pixel’s location in different coordinate spaces,
which can be useful for procedural texturing, compositing effects, or image-based masking.

The coordinate outputs are calculated per pixel based on the image resolution and placement
within the compositor’s virtual space.
user: Give a detailed overview of Vector Displacement Node: syntax, arguments, return values, common patterns.

assistant: # Vector Displacement Node

[image reference removed]

The *Vector Displacement* node is used to displace the surface along arbitrary directions,
unlike the regular Displacement node which only displaces along the surface normal.

It is typically used to apply vector displacement maps created by other sculpting
software. Vector displacement maps can fully represent the high resolution detail to
be applied on a smooth base mesh, unlike regular displacement maps.

By default, Blender only uses [Bump Mapping](../../../glossary/index.xhtml#term-Bump-Mapping) to render displacement.
However with true displacement, the rendered geometry will be physically displaced. To use true displacement
the [Displacement method](../../eevee/material_settings.xhtml#bpy-types-material-displacement-method) must be set accordingly.
user: Explain Collection Line Art in complete detail according to the official Blender documentation.

assistant: Sets up a [Line Art Modifier](modifiers/generate/line_art.xhtml) for the active collection
by creating an “empty” Grease Pencil object with a Line Art modifier referencing each object in the collection.
user: Provide the full official documentation entry for Mirror Modifier, preserving all code examples.

assistant: # Mirror Modifier

The *Mirror* modifier mirrors a mesh along its local X, Y and/or Z axes, across the [Object Origin](../../../glossary/index.xhtml#term-Object-Origin).
It can also use another object as the mirror center, then use that object’s local axes instead of its own.
user: Show practical ways to work with Keyframe Types in a Blender add-on or script – include code.

assistant: For visually distinguishing regular keyframes from different animation events or
states (extremes, breakdowns, or other in-betweens)
there is the possibility of applying different colors on them for visualization.

[image reference removed]

Left: not selected; Right: selected.

Keyframe (white / yellow diamond)
:   Normal keyframe.

Breakdown (small cyan diamond)
:   Breakdown state. e.g. for transitions between key poses.

Moving Hold (dark gray / orange diamond)
:   A keyframe that adds a small amount of motion around a holding pose.
    In the Dope Sheet it will also display a bar between them.

Extreme (big pink diamond)
:   An ‘extreme’ state, or some other purpose as needed.

Jitter (tiny green diamond)
:   A filler or baked keyframe for keying on ones, or some other purpose as needed.

Generated (dark diamond)
:   A key generated by some tool, for example [Copy Global Transform: Fix to
    Camera](../../editors/3dview/animation/copy_global_transform.xhtml#bpy-types-toolsettings-anim-fix-to-cam). This keyframe type indicates
    to Blender and add-ons that it is safe to remove and re-generate them, so be
    careful when manually marking your hand-made animation with this type.