PGCRYPT/OpenBlender_Train huggingface dataset:
user: Provide the full official documentation entry for Set Handle Type, preserving all code examples.

assistant: Handle types are a property of [Bézier curves](../../curves/structure.xhtml#curve-bezier) and
can be used to alter features of the curve.
For example, switching to *Vector handles* can be used to create curves with sharp corners.
Read the [Bézier curves](../../curves/structure.xhtml#curve-bezier-handle-type) page for more details.

Type
:   The handle type to switch to.

    Auto:
    :   This handle has a completely automatic length and direction
        which is set by Blender to ensure the smoothest result.
        These handles convert to *Align* handles when moved.

    Vector:
    :   Both parts of a handle always point to the previous handle or the next handle which allows
        you to create curves or sections thereof made of straight lines or with sharp corners.
        Vector handles convert to *Free* handles when moved.

    Align:
    :   These handles always lie in a straight line,
        and give a continuous curve without sharp angles.

    Free:
    :   The handles are independent of each other.

    Toggle Free/Align:
    :   Replaces Free handles with Align, and all Align with Free handles.
user: Describe Selecting Objects from the Blender manual or Python API, including usage steps and snippets.

assistant: # Selecting Objects

This page discusses selection tools that are specific to the 3D Viewport.
The generic selection tools are described in the
[Interface](../../interface/selecting.xhtml) section.

The 3D Viewport has two keys that affect selection:

Select by Origin `Ctrl`
:   Selects objects by their [origin](../../scene_layout/object/origin.xhtml)
    rather than their geometry.

Selection Menu `Alt`
:   Shows a menu in case there are multiple objects under the mouse cursor,
    making it easier to select the one you want.

These keys can be combined to get a selection menu based on object origins.

The mode-specific selection pages are listed below.
user: Provide the full official documentation entry for EnumPropertyItem(bpy_struct), preserving all code examples.

assistant: # EnumPropertyItem(bpy_struct)

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

*class* bpy.types.EnumPropertyItem(*bpy_struct*)
:   Definition of a choice in an RNA enum property

    description
    :   Description of the item’s purpose

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

    icon
    :   Icon of the item

        Type:
        :   enum in [Icon Items](bpy_types_enum_items/icon_items.html#rna-enum-icon-items), default `'NONE'`, (readonly)

    identifier
    :   Unique name used in the code and scripting

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

    name
    :   Human readable name

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

    value
    :   Value of the item

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Show practical ways to work with Workspace Object Mode Items in a Blender add-on or script – include code.

assistant: # Workspace Object Mode Items

OBJECT:
:   Object Mode.

EDIT:
:   Edit Mode.

POSE:
:   Pose Mode.

SCULPT:
:   Sculpt Mode.

VERTEX_PAINT:
:   Vertex Paint.

WEIGHT_PAINT:
:   Weight Paint.

TEXTURE_PAINT:
:   Texture Paint.

PARTICLE_EDIT:
:   Particle Edit.

EDIT_GPENCIL:
:   Grease Pencil Edit Mode.

    Edit Grease Pencil Strokes.

SCULPT_GREASE_PENCIL:
:   Grease Pencil Sculpt Mode.

    Sculpt Grease Pencil Strokes.

PAINT_GREASE_PENCIL:
:   Grease Pencil Draw.

    Paint Grease Pencil Strokes.

VERTEX_GREASE_PENCIL:
:   Grease Pencil Vertex Paint.

    Grease Pencil Vertex Paint Strokes.

WEIGHT_GREASE_PENCIL:
:   Grease Pencil Weight Paint.

    Grease Pencil Weight Paint Strokes.
user: Describe LineStyleGeometryModifier_SpatialNoise(LineStyleGeometryModifier) from the Blender manual or Python API, including usage steps and snippets.

assistant: # LineStyleGeometryModifier_SpatialNoise(LineStyleGeometryModifier)

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

*class* bpy.types.LineStyleGeometryModifier_SpatialNoise(*LineStyleGeometryModifier*)
:   Add spatial noise to stroke backbone geometry

    amplitude
    :   Amplitude of the spatial noise

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

    expanded
    :   True if the modifier tab is expanded

        Type:
        :   boolean, default False

    octaves
    :   Number of octaves (i.e., the amount of detail of the spatial noise)

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

    scale
    :   Scale of the spatial noise

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

    smooth
    :   If true, the spatial noise is smooth

        Type:
        :   boolean, default False

    type
    :   Type of the modifier

        Type:
        :   enum in [Linestyle Geometry Modifier Type Items](bpy_types_enum_items/linestyle_geometry_modifier_type_items.html#rna-enum-linestyle-geometry-modifier-type-items), default `'2D_OFFSET'`, (readonly)

    use
    :   Enable or disable this modifier during stroke rendering

        Type:
        :   boolean, default False

    use_pure_random
    :   If true, the spatial noise does not show any coherence

        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.LineStyleGeometryModifier_SpatialNoise.type "bpy.types.LineStyleGeometryModifier_SpatialNoise.type")
user: How do I use Apply in Blender? Include parameters, examples, warnings and best practices.

assistant: # Apply

These operations lets you apply several transformations to the selected objects.
The object transformation coordinates are transferred to the object data.
If the objects have hierarchical descendants, it also applies those transformations to their children.
user: How do I use Example in Blender? Include parameters, examples, warnings and best practices.

assistant: In the example below, the left and right cubes are assigned a *Pass Index* of 1 and 2 respectively.
We extract a mask for the left cube, then use it to turn that cube red with a
[Mix Color Node](../color/mix_color.html). The masks for the other Pass Indexes are also shown.

[image reference removed]

ID Mask node example.
user: What is Default Settings and how is it used in Blender Python scripting?

assistant: - The **Edit** scene has a default duration of **10 seconds**, providing a starting point for new projects.
- The **Edit** scene is set as both the current scene and the active Sequencer scene.
- Resolution defaults to **1920 × 1080 HD** at **24 FPS**, suitable for most video work.
- The output format is preset for video rendering, allowing quick exports.
user: Give a detailed overview of Theme Extensions: syntax, arguments, return values, common patterns.

assistant: Theme extensions don’t have the same considerations as add-on extensions, and
therefore don’t need to follow anything like semantic versioning. Instead, we
recommend following these guidelines:

- Version numbers should use a **X.Y.Z** format (e.g. 2.3.1).
- **X** should be incremented for “substantial” visual changes or reworks of the
  theme.
- **Y** should be used for “tracks” of the theme for different Blender versions
  (see below).
- **Z** should be incremented for minor visual tweaks or visual “bug” fixes.
user: Describe Options from the Blender manual or Python API, including usage steps and snippets.

assistant: ### Performance

[image reference removed]

Performance panel.

This panel helps you tweak the performance of the Compositor.

Device
:   The device used for compositing.

    CPU:
    :   Use the CPU for compositing.

    GPU:
    :   Use the GPU for compositing.

Precision GPU
:   The precision of compositor intermediate result.

    Auto:
    :   Use full precision for final renders, half precision otherwise.

    Full:
    :   Use full precision for final renders and viewport.

Viewer Region
:   This allows to set an area of interest for the backdrop.
    Press `Ctrl`-`B` and select a rectangular area in the preview
    which will become the next preview in the backdrop.
    `Ctrl`-`Alt`-`B` discards the region back to a full preview.
    This is only a preview option, final compositing during a render ignores this region.
user: What is Thickness and how is it used in Blender Python scripting?

assistant: # Thickness

Controls the thickness of the Freestyle strokes.

[image reference removed]

Line Style: Thickness.

Base Thickness
:   The base thickness for this line style.

Thickness Position
:   Control the position of stroke thickness from the original (backbone) stroke geometry. There are four choices:

    Center:
    :   The thickness is evenly split to the left and right side of the stroke geometry.

    Inside:
    :   The strokes are drawn within object boundary.

    Outside:
    :   The strokes are drawn outside the object boundary.

    Relative:
    :   Specifies the relative position by a number between 0.0 (inside) and 1.0 (outside),
        in the *Thickness Ratio* number field just below.
user: Give a detailed overview of GeometryNodeVolumeCube(GeometryNode): syntax, arguments, return values, common patterns.

assistant: # GeometryNodeVolumeCube(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.GeometryNodeVolumeCube(*GeometryNode*)
:   Generate a dense volume with a field that controls the density at each grid voxel based on its 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: Provide the full official documentation entry for Writing a Good Commit Message, preserving all code examples.

assistant: When making changes to the manual that directly relate to a specific commit (change) in Blender, it is helpful to make
the title of the commit the same as the commit made to Blender. It is requested that you include the commit hash of
the commit made to the Blender source code.

For example, the commit [rBM8473](https://developer.blender.org/rBM8473) includes a descriptive indicative of the
changes made along with the hash `rBa71d2b260170`. The hash can be extracted from the URL provided in the
Documentation task for a specific upcoming release.

---

Other more general changes do not have to follow the above policy however, it is still important to make the
description clear about what changes you made and why. It can be helpful to prefix the commit title with a prefix word
such as `Cleanup:` or `Fix:` when you are making general cleanups or fixes respectively.

Writing good commit messages helps administrators keep track of changes made and ensures all new features are properly
documented.
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`PreferencesFilePaths.script_directories`](bpy.types.PreferencesFilePaths.html#bpy.types.PreferencesFilePaths.script_directories "bpy.types.PreferencesFilePaths.script_directories") |  |
user: Explain Options in complete detail according to the official Blender documentation.

assistant: [image reference removed]

The Multiple Strokes modifier.

Duplicates
:   The number of additional strokes.

Distance
:   Distance between the original and the duplicate strokes.

Offset
:   Control the offset position (inner or outer) for duplicate strokes.

### Fade

When activated, the duplicate strokes fades out using their opacity or thickness.

Center
:   Control the initial position for the fading.

Thickness
:   Fade influence on strokes thickness.

Opacity
:   Fade influence on strokes opacity.

### Influence

See [Influence Filters](../introduction.xhtml#grease-pencil-modifier-influence-filters).
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") - [`ID.name`](bpy.types.ID.html#bpy.types.ID.name "bpy.types.ID.name") - [`ID.name_full`](bpy.types.ID.html#bpy.types.ID.name_full "bpy.types.ID.name_full") - [`ID.id_type`](bpy.types.ID.html#bpy.types.ID.id_type "bpy.types.ID.id_type") - [`ID.session_uid`](bpy.types.ID.html#bpy.types.ID.session_uid "bpy.types.ID.session_uid") - [`ID.is_evaluated`](bpy.types.ID.html#bpy.types.ID.is_evaluated "bpy.types.ID.is_evaluated") - [`ID.original`](bpy.types.ID.html#bpy.types.ID.original "bpy.types.ID.original") - [`ID.users`](bpy.types.ID.html#bpy.types.ID.users "bpy.types.ID.users") - [`ID.use_fake_user`](bpy.types.ID.html#bpy.types.ID.use_fake_user "bpy.types.ID.use_fake_user") - [`ID.use_extra_user`](bpy.types.ID.html#bpy.types.ID.use_extra_user "bpy.types.ID.use_extra_user") - [`ID.is_embedded_data`](bpy.types.ID.html#bpy.types.ID.is_embedded_data "bpy.types.ID.is_embedded_data") | - [`ID.is_linked_packed`](bpy.types.ID.html#bpy.types.ID.is_linked_packed "bpy.types.ID.is_linked_packed") - [`ID.is_missing`](bpy.types.ID.html#bpy.types.ID.is_missing "bpy.types.ID.is_missing") - [`ID.is_runtime_data`](bpy.types.ID.html#bpy.types.ID.is_runtime_data "bpy.types.ID.is_runtime_data") - [`ID.is_editable`](bpy.types.ID.html#bpy.types.ID.is_editable "bpy.types.ID.is_editable") - [`ID.tag`](bpy.types.ID.html#bpy.types.ID.tag "bpy.types.ID.tag") - [`ID.is_library_indirect`](bpy.types.ID.html#bpy.types.ID.is_library_indirect "bpy.types.ID.is_library_indirect") - [`ID.library`](bpy.types.ID.html#bpy.types.ID.library "bpy.types.ID.library") - [`ID.library_weak_reference`](bpy.types.ID.html#bpy.types.ID.library_weak_reference "bpy.types.ID.library_weak_reference") - [`ID.asset_data`](bpy.types.ID.html#bpy.types.ID.asset_data "bpy.types.ID.asset_data") - [`ID.override_library`](bpy.types.ID.html#bpy.types.ID.override_library "bpy.types.ID.override_library") - [`ID.preview`](bpy.types.ID.html#bpy.types.ID.preview "bpy.types.ID.preview") |
user: Provide the full official documentation entry for BlendDataVolumes(bpy_struct), preserving all code examples.

assistant: # BlendDataVolumes(bpy_struct)

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

*class* bpy.types.BlendDataVolumes(*bpy_struct*)
:   Collection of volumes

    new(*name*)
    :   Add a new volume to the main database

        Parameters:
        :   **name** (*string**,* *(**never None**)*) – New name for the data-block

        Returns:
        :   New volume data-block

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

    remove(*volume*, *\**, *do_unlink=True*, *do_id_user=True*, *do_ui_user=True*)
    :   Remove a volume from the current blendfile

        Parameters:
        :   - **volume** ([`Volume`](bpy.types.Volume.html#bpy.types.Volume "bpy.types.Volume"), (never None)) – Volume to remove
            - **do_unlink** (*boolean**,* *(**optional**)*) – Unlink all usages of this volume before deleting it (WARNING: will also delete objects instancing that volume data)
            - **do_id_user** (*boolean**,* *(**optional**)*) – Decrement user counter of all data-blocks used by this volume data
            - **do_ui_user** (*boolean**,* *(**optional**)*) – Make sure interface does not reference this volume data

    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: How do I use Pixel Density in Blender? Include parameters, examples, warnings and best practices.

assistant: The pixel density (often called [PPI](../../../glossary/index.xhtml#term-PPI) or [DPI](../../../glossary/index.xhtml#term-DPI)) controls the intended physical size for an image.
This is often used for printing or the physical size when loaded into desktop publishing software.

The X/Y density is calculated using the render X/Y aspect,
making these values useful for storing the aspect ratio of non-square pixels.

The pixel-density is meta-data which doesn’t impact the quality of the image.
user: Show practical ways to work with Feature Comparison in a Blender add-on or script – include code.

assistant: | Feature | X11 | Wayland | Notes |
| --- | --- | --- | --- |
| Smooth Scroll | ✗ | ✓ | Smooth scrolling with track-pads. |
| Multi-Touch Gestures | ✗ | ✓ | Track-pad and tablet support for  pinch to zoom, pan and orbit. |
| Reliable Cursor Warping | ✗ \*1 | ✓ | Cursor warping is used while transforming  and orbiting the viewport for e.g. |
| Window Positioning | ✓ | ✗ \*2 | Needed for dragging between windows and  restoring window positions on file load. |

Other features which both systems support such as Hi-DPI, 3D-mouse, tablet input, … etc.
have been left out of this list.

\*1 In X11 fast cursor motion may exit the window bounds while the cursor is grabbed (transforming for e.g.).

\*2 Wayland doesn’t support setting the window position, as this is a design decision it’s unlikely to be
supported (see issues for [position](https://projects.blender.org/blender/blender/issues/98928)).
user: How do I use Controls in Blender? Include parameters, examples, warnings and best practices.

assistant: You can select and create scenes with the *Scene* data-block menu in the
[Topbar](../../interface/window_system/topbar.html).

[image reference removed]

Scene data-block menu.

Scenes
:   A list of available scenes in the current blend-file.

Add
:   New
    :   Creates an empty scene with default values.

    Copy Settings
    :   Creates an empty scene but copies render and world settings from the active scene.

    Linked Copy
    :   Creates a new scene that shares all data with the current one.
        The new scene contains links to the same collections, objects, and data-blocks as the original.
        Changes made in one scene automatically affect the other, since they reference the same data.

    Full Copy
    :   Creates a fully independent scene with unique copies of all objects and their data.
        This is useful for variations or alternate versions of a scene that should not affect the original.

(Delete Scene)
:   Deletes the current scene data-block.
    Note that Blender always requires at least one scene in a file; you cannot delete the last remaining one.
user: Give a detailed overview of ShaderFxColorize(ShaderFx): syntax, arguments, return values, common patterns.

assistant: # ShaderFxColorize(ShaderFx)

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

*class* bpy.types.ShaderFxColorize(*ShaderFx*)
:   Colorize effect

    factor
    :   Mix factor

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

    high_color
    :   Second color used for effect

        Type:
        :   float array of 4 items in [0, 1], default (0.0, 0.0, 0.0, 0.0)

    low_color
    :   First color used for effect

        Type:
        :   float array of 4 items in [0, 1], default (0.0, 0.0, 0.0, 0.0)

    mode
    :   Effect mode

        Type:
        :   enum in [`'GRAYSCALE'`, `'SEPIA'`, `'DUOTONE'`, `'TRANSPARENT'`, `'CUSTOM'`], default `'GRAYSCALE'`

    *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 Auto-Offset, preserving all code examples.

assistant: When you drop a node with at least one input and one output socket onto an existing connection between two nodes,
*Auto-offset* will, depending on the direction setting, automatically move the left or right node away to make room
for the new node.
*Auto-offset* is a feature that helps organizing node layouts interactively without interrupting the user workflow.

[image reference removed]

Auto-offset is enabled by default,
but it can be disabled in the [Preferences](../../../editors/preferences/editing.xhtml#preferences-editing-node-editor).

You can toggle the offset direction while you are moving the node by pressing `T`.

The offset margin can be changed using the *Auto-offset Margin*
setting in the Editing section of the Preferences.
user: How do I use Cylinder in Blender? Include parameters, examples, warnings and best practices.

assistant: Creates a cylindrical mesh composed of two circular ends and vertical faces.
This shape is commonly used to model objects like handles, rods, pillars, and barrels.

Vertices
:   Number of vertices used to define the circular ends.
    Higher values result in a smoother circular profile.

Radius
:   Radius of the cylinder’s circular ends, measured from the center to the perimeter.

Depth
:   Height of the cylinder along the Z axis.

Cap Fill Type
:   Determines how the top and bottom of the cylinder are filled:

    Nothing:
    :   No end caps are added. Only the side faces are created, forming a tube.
        Useful for modeling pipes or hollow containers.

    N-gon:
    :   Each end is filled with a single N-gon face.

    Triangle Fan:
    :   Each end is filled with triangular faces sharing a central vertex.
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Geometry
:   The input geometry containing the hair curves to be clumped.

Factor
:   Controls the overall strength of the clumping effect.
    A value of 0.0 applies no clumping, while 1.0 fully pulls curves toward their guides.

Shape
:   Defines how the clumping influence changes along the length of each curve.
    A value of 0.0 applies a constant strength, while 0.5 results in a linear falloff from root to tip.

Tip Spread
:   Adds random variation to the positions of curve tips,
    preventing perfect convergence and helping clumps look more natural.

Clump Offset
:   Applies a random directional offset to entire clumps, introducing subtle variation between groups.

Distance Falloff
:   Defines how the influence of each guide curve decreases with distance.
    A value of 0.0 disables distance-based falloff, making all nearby curves equally affected.

Distance Threshold
:   Sets the maximum distance from a guide at which clumping has an effect.
    Curves farther than this threshold will not be influenced by that guide.

Seed
:   Controls the randomization used for offsets and variation.
    Changing this value alters the random distribution of clumping while keeping the same parameters.

Preserve Length
:   When enabled, maintains the original length of each curve during deformation.
    When disabled, curves may stretch or shrink slightly as they are pulled toward guides.

### Guide Map

Guide Index
:   A map that specifies which guide curve acts as the center for each clump.
    If provided, this takes priority over any existing `guide_curve_index` attribute,
    and the *Guide Distance* and *Guide Mask* inputs are ignored.

Guide Distance
:   The minimum distance between selected guide curves when generating a new guide map.
    Larger values produce fewer, larger clumps.

Guide Mask
:   Defines which curves can be used as guides during automatic guide map creation.

Existing Guide Map
:   When enabled, uses the existing guide map attribute if it is already available.
    If disabled and *Guide Index* is not provided, a new
    [guide map](create_guide_index_map.html)
    is generated using *Guide Distance* and *Guide Mask*.
    Creating the guide map separately allows for finer control over guide placement and grouping.
user: Provide the full official documentation entry for Group Output, preserving all code examples.

assistant: Receives the outputs of the node group. You can have multiple of these nodes in your tree to keep it clean,
outputting each result right where it’s produced (rather than dragging long links all across your graph).

The output slots can be edited in the *Group* tab of the *Sidebar*.
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`Float2Attribute.data`](bpy.types.Float2Attribute.html#bpy.types.Float2Attribute.data "bpy.types.Float2Attribute.data") | - [`MeshUVLoopLayer.uv`](bpy.types.MeshUVLoopLayer.html#bpy.types.MeshUVLoopLayer.uv "bpy.types.MeshUVLoopLayer.uv") |
user: Provide the full official documentation entry for Area Options, preserving all code examples.

assistant: `RMB` on the border opens the *Area Options*.

Vertical/Horizontal Split
:   Shows an indicator line that lets you select the area and position where to split.
    `Tab` switches between vertical/horizontal.

Join Up/Down/Left/Right
:   Shows the join direction overlay.

Swap Areas
:   Swaps this area with the adjacent one.
user: Give a detailed overview of Properties: syntax, arguments, return values, common patterns.

assistant: Display As
:   The [Primitives](#primitives) empty type to display in the 3D Viewport.

Size
:   Controls the size of the empties visualization. This does not change its scale, but functions as an offset.
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Vector
:   Texture coordinate to sample texture at;
    defaults to Generated texture coordinates if the socket is left unconnected.

Color1, Color 2
:   Color of the checkers.

Scale
:   Overall texture scale. The scale is a factor of the bounding box of the face divided by the scale.
    For example, a scale of 15 will result in 15 alternate patterns over the overall UV bounding box.
    Different patterns could be achieved using other nodes to give different input patterns to this socket.
    For example, using the Math Node.
user: Give a detailed overview of Cloth Filter: syntax, arguments, return values, common patterns.

assistant: # Cloth Filter

This tool works similar to the [Cloth Brush](../brushes/cloth.xhtml),
however, it applies a cloth simulation to all vertices in the mesh at the same time.
Click and drag away from the object for a positive effect and towards for a negative effect.
user: Explain Viewer Node in complete detail according to the official Blender documentation.

assistant: # Viewer Node

[image reference removed]

The *Viewer* node is used to preview image data or value maps anywhere within a compositor node graph.
It is a diagnostic tool that allows users to inspect intermediate results without affecting the final output.

You can quickly assign a node to a Viewer by pressing `Shift`-`Ctrl`-`LMB` on the desired node.
To switch between multiple Viewer nodes, simply select one with `LMB`.
Only the active Viewer node (with the  icon in the header)
will be displayed in the backdrop or Image Editor.
user: Explain Set Handle Type Node in complete detail according to the official Blender documentation.

assistant: # Set Handle Type Node

[image reference removed]

Sets the handle type for the points on the Bézier curve that are in the selection.

A selection for a certain handle type can be retrieved with
the [Handle Type Selection Node](../read/handle_type_selection.xhtml).
user: What is Collection Operators and how is it used in Blender Python scripting?

assistant: # Collection Operators

bpy.ops.collection.create(*\**, *name=''*)
:   Create an object collection from selected objects

    Parameters:
    :   **name** (*string**,* *(**optional**,* *never None**)*) – Name, Name of the new collection

bpy.ops.collection.export_all()
:   Invoke all configured exporters on this collection

bpy.ops.collection.exporter_add(*\**, *name=''*)
:   Add exporter to the exporter list

    Parameters:
    :   **name** (*string**,* *(**optional**,* *never None**)*) – Name, FileHandler idname

bpy.ops.collection.exporter_export(*\**, *index=0*)
:   Invoke the export operation

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

bpy.ops.collection.exporter_move(*\**, *direction='UP'*)
:   Move exporter up or down in the exporter list

    Parameters:
    :   **direction** (enum in [`'UP'`, `'DOWN'`], (optional)) – Direction, Direction to move the active exporter

bpy.ops.collection.exporter_remove(*\**, *index=0*)
:   Remove exporter from the exporter list

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

bpy.ops.collection.objects_add_active(*\**, *collection=''*)
:   Add selected objects to one of the collections the active-object is part of. Optionally add to “All Collections” to ensure selected objects are included in the same collections as the active object

    Parameters:
    :   **collection** (*enum in* *[**]**,* *(**optional**)*) – Collection, The collection to add other selected objects to

bpy.ops.collection.objects_remove(*\**, *collection=''*)
:   Remove selected objects from a collection

    Parameters:
    :   **collection** (*enum in* *[**]**,* *(**optional**)*) – Collection, The collection to remove this object from

bpy.ops.collection.objects_remove_active(*\**, *collection=''*)
:   Remove the object from an object collection that contains the active object

    Parameters:
    :   **collection** (*enum in* *[**]**,* *(**optional**)*) – Collection, The collection to remove other selected objects from

bpy.ops.collection.objects_remove_all()
:   Remove selected objects from all collections
user: What is Outputs and how is it used in Blender Python scripting?

assistant: Corner Index
:   The geometry-wide index of the selected corner. You can pass this to the
    [Evaluate at Index Node](../../utilities/field/evaluate_at_index.html) or the
    [Sample Index Node](../../geometry/sample/sample_index.html) (with the domain set to Face Corner)
    to retrieve details about the corner.

Total
:   The number of corners in the face, which is also its number of edges.
user: How do I use Animation in Blender? Include parameters, examples, warnings and best practices.

assistant: ```
blender -b file.blend -a
```

`-a`
:   Render the whole animation using all the settings saved in the blend-file.

```
blender -b file.blend -E CYCLES -s 10 -e 500 -t 2 -a
```

`-E CYCLES`
:   Use the “Cycles Render” engine.
    For a list of available render engines, run `blender -E help`.

`-s 10 -e 500`
:   Set the start frame to `10` and the end frame to `500`.

`-t 2`
:   Use only two threads.
user: Give a detailed overview of Export Options: syntax, arguments, return values, common patterns.

assistant: Frame
:   Determine which frames will be included in the export.

    Active:
    :   Export only the active keyframe.

    Selected:
    :   Export all selected keyframes as different PDF pages.

    Scene:
    :   Export all frames as different PDF pages.

Sampling
:   Precision for the stroke sampling. Low values mean a more accurate result.

Fill
:   When enabled, export the Grease Pencil strokes fill.

Uniform Width
:   When enabled, export strokes with constant thickness.
user: Describe Quick Start from the Blender manual or Python API, including usage steps and snippets.

assistant: Open the terminal application,
and run the executable within the app bundle, with commands like this:

```
cd /Applications/Blender.app/Contents/MacOS
./Blender
```

If you need to do this often, you can add this directory to your `PATH`.

For that you can run the following procedure:

1. Open up a Terminal.
2. Run the following command: `sudo nano /etc/paths`.
3. Enter your password, when prompted.
4. Go to the bottom of the file, and enter `/Applications/Blender.app/Contents/MacOS`.
5. Enter `Ctrl`-`X` to quit.
6. Enter `Y` to save the modified buffer.

If you then open a new terminal, the following command will work:

```
Blender
```
user: What is Compare Node and how is it used in Blender Python scripting?

assistant: # Compare Node

[image reference removed]

The *Compare* node takes two inputs and does an operation to determine whether they are similar.
The node can work on all generic data types, and has modes for vectors that contain more complex
comparisons, which can help to reduce the number of necessary nodes, and make a node tree more readable.
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Mesh
:   Standard Mesh input.

Selection
:   The meshes used to generate a point cloud.

Position
:   Positions of generated points. By default, this input is the same as
    if the [Position Node](../../geometry/read/position.xhtml) was connected.

Radius
:   Radii of generated points.
user: Describe Brush Settings from the Blender manual or Python API, including usage steps and snippets.

assistant: ### General

Hardness
:   Higher by default to ensure the profile of layers is more noticeable.
    More info at [Hardness](../../brush/brush_settings.xhtml#bpy-types-brush-hardness)

### Unique

Height
:   The fixed height of each stroke. This is measured using the [scene scale](../../../scene_layout/scene/properties.xhtml#bpy-types-unitsettings-system),
    so it is consistent no matter the amount of zoom or object size.

Persistent
:   This will ensure that multiple strokes use the same height, as if sculpting a single layer.

Set Persistent Base
:   This button resets a new base so that you can sculpt new layer.
user: Provide the full official documentation entry for Properties, preserving all code examples.

assistant: Data Type
:   The type of data stored in the grid (e.g. *Float*, *Integer*, *Boolean*, or *Vector*).
    Determines both the expected data type of the *Grid* output and how it can
    be used in subsequent nodes.
user: Describe Edge Crease from the Blender manual or Python API, including usage steps and snippets.

assistant: This operator interactively sets the [Edge Crease](../mesh/transform/basic.html#modeling-edges-crease-subdivision) amount
by moving the mouse (or typing a value with the keyboard).
Selecting more than one edge will adjust the mean (average) crease value.
A negative value will subtract from the actual crease value, if present.
To clear the crease edge property, enter a value of -1.
user: Provide the full official documentation entry for Plane, preserving all code examples.

assistant: The standard plane is a single quad face composed of four vertices, four edges, and one face.
It lies flat and has no thickness, making it a purely two-dimensional object.

Planes are commonly used to represent surfaces such as floors, walls, tabletops, or mirrors.
They are also frequently used as emitter objects, camera backgrounds, or for projection mapping.

Size
:   Sets the width and height of the plane (the full extent from edge to edge).
user: How do I use Ray Portal BSDF in Blender? Include parameters, examples, warnings and best practices.

assistant: # Ray Portal BSDF

Cycles Only

The *Ray Portal BSDF* node transports rays that enter to another location
in the scene. It can be used to render portals for visual effects, and
other production rendering tricks.

It acts much like a [Transparent BSDF](transparent.xhtml):
render passes are passed through,
and it is affected by light path max transparent bounces.
user: Describe Radial Tiling Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Radial Tiling Node

[image reference removed]

The *Radial Tiling Node* provides the ability to divide a 2D cartesian input coordinate system
into as many radial segments as specified by the *Sides* input.
Each segment has its own affinely transformed segment coordinate system,
which can be used to tile textures in a radially symmetric manner.
user: Describe Brush Settings from the Blender manual or Python API, including usage steps and snippets.

assistant: ### General

Size
:   Pressure Sensitivity is not supported for this brush type. More info at [Size](../../brush/brush_settings.html#bpy-types-brush-size).

Strength
:   Pressure Sensitivity is not supported for this brush type. More info at [Strength](../../brush/brush_settings.html#bpy-types-brush-strength).

Normal Radius
:   For this brush, this setting is a purely visual change.
    It does not alter the brush behavior. More info at [Normal Radius](../../brush/brush_settings.html#bpy-types-brush-normal-radius-factor).

Auto-Smooth
:   This setting is not supported. More info at [Auto-Smooth](../../brush/brush_settings.html#bpy-types-brush-auto-smooth-factor).

### Unique

Grab Active Vertex
:   Applies the maximum strength of the brush to the highlighted active vertex,
    making it easier to manipulate low-poly models or meshes with modifiers.

    Enabling this option also enables a white wireframe overlay within the brush radius.
    This helps to visualize the real base geometry that is being manipulated
    while sculpting with [Modifiers](../../../modeling/modifiers/index.html).

[image reference removed]

Grab Silhouette
:   Preserves the object’s silhouette shape by only grabbing vertices on one side of the mesh curvature.
    The shape of the silhouette is determined by the orientation of the 3D Viewport and the start of the stroke.

[image reference removed]

Note how in the image only the bottom side of the leg is pulled down, despite the size of the brush.
user: Give a detailed overview of Options: syntax, arguments, return values, common patterns.

assistant: Noise Basis
:   The texture to be distorted.

Distortion
:   The texture to use to distort another.

Amount
:   The amount that *Distortion Noise* affects *Basis*.

Size
:   The size of the noise generated.

Nabla
:   Almost all procedural textures in Blender use derivatives for calculating normals for texture mapping
    (except *Blend* and *Magic*). This is important for Normal and Displacement Maps.
    The strength of the effect is controlled with the *Nabla* number field.
user: What is Field Weights and how is it used in Blender Python scripting?

assistant: The Field Weight panel allows you to control how much influence each type of external force field, or effector,
has on the particle system. Force fields are external forces that give dynamic system’s motion.
The force fields types are detailed on the [Force Field Page](../../forces/force_fields/index.html).

Effector Group
:   Limit effectors to a specified group. Only effectors in this group will have an effect on the current system.

Gravity
:   Control how much the Global Gravity has an effect on the system.

All
:   Scale all of the effector weights.
user: What is Transform Brushes and how is it used in Blender Python scripting?

assistant: [image reference removed]

Recognizable by their yellow icon and cursor.
These brushes generally move, pinch and magnify the mesh.

Pinch/Magnify
:   Brush Type: [Pinch](pinch.xhtml)

    Shortcut: `P`

    Pulls vertices towards the center of the brush. Useful for polishing angles and creases. Alternatively pushes them
    away from the center.

Grab
:   Brush Type: [Grab](grab.xhtml)

    Shortcut: `G`

    Moves vertices along with the mouse. An essential brush for building shapes and adjusting proportions.

Grab 2D
:   Brush Type: [Grab](grab.xhtml)

    Similar to Grab but with an infinitely projected falloff. Useful for grabbing broader shapes and giving a similar
    feel to using Liquify tools in image painting applications.

Grab Silhouette
:   Brush Type: [Grab](grab.xhtml)

    Similar to Grab but only affects vertices with the normal facing sideways away from the view. Very useful for
    adjusting outer silhouettes of thin objects.

Elastic Grab
:   Brush Type: [Elastic Deform](elastic_deform.xhtml)

    Used to simulate realistic deformations from grabbing of [Elastic](../../../glossary/index.xhtml#term-Elastic) objects.

Elastic Snake Hook
:   Brush Type: [Snake Hook](snake_hook.xhtml)

    Similar to Elastic Grab but rotates affected geometry based on the stroke direction.

Snake Hook
:   Brush Type: [Snake Hook](snake_hook.xhtml)

    Shortcut: `K`

    Pulls vertices along with the stroke to create long, snake-like forms. Geometry is rotated and magnified to allow
    continuous pulling. Much more useful while having [Dyntopo](../introduction/adaptive.xhtml#dyntopo-introduction) enabled.

Pull
:   Brush Type: [Snake Hook](snake_hook.xhtml)

    Iteratively picks up and lets go of geometry like the Snake Hook, but much softer. Useful for subtle small scale
    deforming over longer strokes.

Thumb
:   Brush Type: [Thumb](thumb.xhtml)

    Same as *Grab* but moves vertices along the surface direction. Useful for preserving specific surfaces.

Pose
:   Brush Type: [Pose](pose.xhtml)

    Simulating an armature-like deformations. Useful for quick posing and transformations.

Nudge
:   Brush Type: [Nudge](nudge.xhtml)

    Similar as *Thumb* but dynamically picks up vertices like the *Snake Hook*.
    Useful for nudging something along the mesh surface.

Twist
:   Brush Type: [Rotate](rotate.xhtml)

    Rotates vertices within the brush in the direction the cursor is moved.

Relax Slide
:   Brush Type: [Relax Slide](slide_relax.xhtml)

    Slides the topology of the mesh in the direction of the stroke
    while preserving the geometrical shape of the mesh. Alternatively smooths the mesh on ‘Shift’.
    Also useful for redistributing topology where it is needed.

Relax Pinch
:   Brush Type: [Relax Slide](slide_relax.xhtml)

    Similar to the Relax Slide brush but pinches/relaxes geometry instead.

Boundary
:   Brush Type: [Boundary](boundary.xhtml)

    Transform specifically mesh boundaries with various deformations.
user: Explain Select Edge Loops in complete detail according to the official Blender documentation.

assistant: Holding `Alt` while selecting an edge selects a loop of edges that are connected in
a line end-to-end, passing through the edge under the mouse pointer.
Holding `Shift`-`Alt` while clicking adds to the current selection.

[image reference removed]

Longitudinal and latitudinal edge loops.

The left sphere shows an edge that was selected longitudinally. Notice how the loop is open.
This is because the algorithm hit the vertices at the poles and is terminated
because the vertices at the pole connect to more than four edges. However,
the right sphere shows an edge that was selected latitudinally and has formed a closed loop.
This is because the algorithm hit the first edge that it started with.

### Select Edge Loops (All Boundaries)

All boundary edges can be selected by performing a second loop select action on a boundary edge.

This can be useful for selecting boundaries for meshes that include triangles and n-gons,
where loop select would not otherwise select the full boundary.

[image reference removed]

The second loop select action is shown on the right.
user: Explain Adjust Last Operation in complete detail according to the official Blender documentation.

assistant: [Adjust Last Operation](../undo_redo.xhtml#bpy-ops-screen-redo-last) is a region that allows
tweaking an operator after running it. For example, if you just added a cube,
you can use this region to tweak its size.
user: Give a detailed overview of Avoiding Alt-Mouse Conflict: syntax, arguments, return values, common patterns.

assistant: Some window managers default to `Alt`-`LMB` and `Alt`-`RMB` for moving and resizing windows.

Blender uses these for various operations, notably:

- [Emulate 3 Button Mouse](../../editors/preferences/input.html#bpy-types-preferencesinput-use-mouse-emulate-3-button).
- [Select Edge Loops](../../modeling/meshes/selecting/loops.html#bpy-ops-mesh-loop-multi-select).
- [Changing multiple properties at once](../../interface/keymap/blender_default.html#keymap-common-properties).

To access Blender’s full feature set, you can change the window manager settings to use the *Meta* key instead (also
called *Super* or *Windows* key):

Gnome
:   Enter the following in a command line (effective at next login):

    ```
    gsettings set org.gnome.desktop.wm.preferences mouse-button-modifier '<Super>'
    ```

KDE
:   System Settings ‣ Window Management ‣ Window Behavior ‣ Window Actions,
    Switch from ‘Alt’ to ‘Meta’ key.