PGCRYPT/OpenBlender_Train huggingface dataset:
user: What is ActionGroup(bpy_struct) and how is it used in Blender Python scripting?

assistant: # ActionGroup(bpy_struct)

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

*class* bpy.types.ActionGroup(*bpy_struct*)
:   Groups of F-Curves

    channels
    :   F-Curves in this group

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

    color_set
    :   Custom color set to use

        Type:
        :   enum in [Color Sets Items](bpy_types_enum_items/color_sets_items.html#rna-enum-color-sets-items), default `'DEFAULT'`

    colors
    :   Copy of the colors associated with the group’s color set

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

    is_custom_color_set
    :   Color set is user-defined instead of a fixed theme color set

        Type:
        :   boolean, default False, (readonly)

    lock
    :   Action group is locked

        Type:
        :   boolean, default False

    mute
    :   Action group is muted

        Type:
        :   boolean, default False

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

    select
    :   Action group is selected

        Type:
        :   boolean, default False

    show_expanded
    :   Action group is expanded except in graph editor

        Type:
        :   boolean, default False

    show_expanded_graph
    :   Action group is expanded in graph editor

        Type:
        :   boolean, default False

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

assistant: # Sequencer & Preview

This view type shows both the preview and the sequencer inside one editor.

[image reference removed]

Figure 1: Combined Sequencer & Preview

In general, it’s better to avoid this view type and instead have two editors,
one serving as the *Preview* and the other as the *Sequencer*.
Reasons for this include:

- Most of the *Preview* tools, such as Move and Rotate, are not available
  in *Sequencer & Preview*.
- You can’t add a small editor (such as a File Browser) on the side that only
  takes up the height of the preview.
- You can’t maximize the preview on another screen.

One way of getting two separate editors is to simply open the default
*Video Editing* [workspace](../../interface/window_system/workspaces.html).
(You may need to click the “+” icon to the right of the tabs to find it.)
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](../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](../structure.xhtml#curve-bezier-handle-type) page for more details.

Toggle Free/Align
:   Additionally, this operator can be used to toggle between Free and Aligned handle types.
user: Explain Tool Settings in complete detail according to the official Blender documentation.

assistant: ### Brush Asset

Picks the brush asset used by the tool.

See [Brush Asset](../tool_settings/brushes.xhtml) for more information.

See [Draw Brushes](../brushes/draw.xhtml) for a detailed list of all draw brushes and their options.

### Brush Settings

Parameters to control to look of the stroke.

See [Draw Brushes](../brushes/draw.xhtml) for details.

### Eraser

Default Eraser Brush
:   Select a brush to use as eraser for quickly alternating with the main brush using
    `Ctrl`-`LMB`.

### Color

Settings to determine the color of strokes.

See [Color](../tool_settings/color.xhtml)
user: Explain FunctionNodeInputSpecialCharacters(FunctionNode) in complete detail according to the official Blender documentation.

assistant: # FunctionNodeInputSpecialCharacters(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.FunctionNodeInputSpecialCharacters(*FunctionNode*)
:   Output string characters that cannot be typed directly with the keyboard

    *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 ShaderFxBlur(ShaderFx) in complete detail according to the official Blender documentation.

assistant: # ShaderFxBlur(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.ShaderFxBlur(*ShaderFx*)
:   Gaussian Blur effect

    rotation
    :   Rotation of the effect

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

    samples
    :   Number of Blur Samples (zero, disable blur)

        Type:
        :   int in [0, 32], default 4

    size
    :   Factor of Blur

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

    use_dof_mode
    :   Blur using camera depth of field

        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 Using the Test Grid and how is it used in Blender Python scripting?

assistant: If your image is a base uniform pattern and
you want the application of that image to your model to look like cloth,
you do **not** want any stretching (unless you want the cloth to look like spandex).
You may also need to test your UV mapping with a test image:

|  |  |
| --- | --- |
| ../../../_images/modeling_meshes_uv_applying-image_test-grid-uvs.png   The test grid applied to the UVs. | ../../../_images/modeling_meshes_uv_applying-image_test-grid-geometry.png   A preview of the texture on the geometry. |

When you render, the mesh will have the test grid as its colors,
and the UV texture will be the size image you specified.
Note that Blender has a built-in test image. To use it, press the New button of the data-block menu
in the Image editor header and change the *Generated Type* to UV Grid.

### Modifying Your Image Texture

The advantage to saving as a separate file is that you can easily switch textures just by
copying other image files over it, and you can use external editing programs to work on it.
The advantage of packing is that your whole project is kept in the blend-file,
and that you only have to manage one file.
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: Movie Clip
:   The selectable clip data-block used as input for the gradient colors.

Tracking Object
:   Tracking Object to generate the gradient.
    You will probably want to create new a tracking object
    in the [Object](../../../movie_clip/tracking/clip/sidebar/track/objects.xhtml#movie-clip-tracking-properties-object) panel,
    because tracks used for gradients can not actually be used for camera/object tracking.
    After this tracks might be placed in places where gradient colors should be sampled.
    These tracks could be tracked or moved manually,
    so gradients would be updating automatically along the movie.
    Tracks might have an offset for easier tracking of feature-less screens.
user: Explain Opening Files in complete detail according to the official Blender documentation.

assistant: The upper text field displays the current directory path,
and the lower text field contains the selected filename.

[image reference removed]

The File Browser in open configuration.

### Options

Load UI
:   When enabled, the screen layout saved inside each blend-file is used,
    replacing the current layout and [Workspaces](../../interface/window_system/workspaces.xhtml).
    Otherwise the file screen layout is ignored.

Trusted Source
:   When enabled, Python scripts and drivers that may be included in the file will be run automatically.
    Enable this only if you created the file yourself,
    or you trust that the person who gave it to you did not include any malicious code with it.
    See [Python Security](../../advanced/scripting/security.xhtml) to configure default trust options.
user: How do I use ThemeSpreadsheet(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # ThemeSpreadsheet(bpy_struct)

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

*class* bpy.types.ThemeSpreadsheet(*bpy_struct*)
:   Theme settings for the Spreadsheet

    row_alternate
    :   Overlay color on every other row

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

    space
    :   Settings for space

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Format

[image reference removed]

Format panel.

Several render presets exist with common resolution and frame rates
for TVs and screens can be selected in the panel header.

Resolution X, Y
:   The number of pixels horizontally and vertically in the image.

Percentage
:   Slider to reduce or increase the size of the rendered image relative to the *Resolution* values.
    This is useful for small test renders that have the same proportions as the final image.

Aspect X, Y
:   Older televisions may have non-square pixels,
    so this can be used to control the shape of the pixels along the respective axis.
    This will *pre-distort* the images which will look stretched on a computer screen,
    but which will display correctly on a TV set.
    It is important that you use the correct pixel aspect ratio when rendering to prevent re-scaling,
    resulting in lowered image quality.

Render Region
:   Renders just a portion of the view instead of the entire frame.
    See the [Render Region](../../../editors/3dview/navigate/regions.xhtml#editors-3dview-navigate-render-region)
    documentation to see how to define the size of the render region.

Crop to Render Region
:   Crops the rendered image to the size of the render region,
    instead of rendering a transparent background around it.

Frame Rate
:   The number of frames that are displayed per second, relevant for [Animation](../animation.xhtml).
    The menu gives several common frame rates, custom frame rates can be used by selecting *Custom*
    which gives access to the following properties:

    FPS
    :   The frame rate, expressed in frames per second.

    Base
    :   Some standards require a more precise frame rate, for example NTSC.
        These can be represent as a fraction where the *Base* value
        is used as the fraction’s denominator and the FPS being the numerator:
        \(\frac{FPS}{Base}\).
user: Provide the full official documentation entry for CameraSolverConstraint(Constraint), preserving all code examples.

assistant: # CameraSolverConstraint(Constraint)

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

*class* bpy.types.CameraSolverConstraint(*Constraint*)
:   Lock motion to the reconstructed camera movement

    clip
    :   Movie Clip to get tracking data from

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

    use_active_clip
    :   Use active clip defined in scene

        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: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Min
:   The minimum value of the range where random values are sampled from.
    This input is only available for *Float*, *Integer*, and *Vector* types.

Max
:   The maximum value of the range where random values are sampled from.
    This input is only available for *Float*, *Integer*, and *Vector* types.

Probability
:   The probability ratio for the random *Boolean* output to be *True*.
    This input is only available for *Boolean* types.

ID
:   An ID to drive the random number generator seed. By default, this input uses the same value
    as of the [ID Node](../geometry/read/id.xhtml), which is the `id` attribute of the context
    geometry if it exists, and otherwise the [index](../geometry/read/input_index.xhtml).

Seed
:   A field to [Seed](../../../glossary/index.xhtml#term-Seed) the random number generator. This can be used to generate
    a different set of random values, even for two nodes with the same *ID* input.
user: How do I use Pivot Constraint in Blender? Include parameters, examples, warnings and best practices.

assistant: # Pivot Constraint

The *Pivot* constraint makes an object or bone rotate around a point other than
its [origin](../../../scene_layout/object/origin.xhtml). This can be a point that’s relative
to the same or another object/bone, or a point that’s fixed in space.
user: Show practical ways to work with Cache in a Blender add-on or script – include code.

assistant: # Cache

Soft Body physics simulations use a unified system for caching and baking.
See [Particle Cache](../../particles/emitter/cache.xhtml) and
[General Baking](../../baking.xhtml) documentation for reference.
user: Describe ACES from the Blender manual or Python API, including usage steps and snippets.

assistant: The standard Blender configuration includes essential support for
[ACES](https://www.oscars.org/science-technology/sci-tech-projects/aces) workflows
with the ACEScg working space, ACES 2.0 view transform and OpenEXR images saved in
the ACES2065-1 and ACEScg color spaces.

This covers most needs for working in an ACES pipeline. However for more complete
support, the
[official ACES configurations](https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES/releases)
can be manually installed and set through the `OCIO` environment variable.
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: Geometry
:   Geometry whose elements are iterated over.

Selection
:   Which subset of the chosen *Domain* to process.

Index
:   Index of the element in the source geometry. Note that the same index can occur more than
    once when iterating over multiple geometry component types at once.

Element
:   The input geometry is split up into a separate geometry for each element.
    This is the single element geometry for the current iteration. This is not available
    for the *Face Corner* domain, since face corners cannot exist without their face.
user: Provide the full official documentation entry for Geometry Nodes Modifier, preserving all code examples.

assistant: # Geometry Nodes Modifier

The *Geometry Nodes* modifier creates a modifier with a node group which defines its functionality.

[image reference removed]

A new Geometry Nodes modifier with a new node group.

This modifier is supported by mesh, curve, text, and volume objects.
user: How do I use Set Attribute in Blender? Include parameters, examples, warnings and best practices.

assistant: # Set Attribute

Opens a pop-up window showing the name of the [active](../../../../glossary/index.xhtml#term-Active) [attribute](../../../../glossary/index.xhtml#term-Attribute)
as well as the value of that attribute for the active element (vertex/edge/face).
From there, you can change the value to apply it to all selected elements.

The “active” attribute is the one last selected in the
[Data](../../properties/object_data.xhtml) tab of the [Properties Editor](../../../../editors/properties_editor.xhtml) editor.
It could be a [UV Map](../../uv/uv_texture_spaces.xhtml#uv-maps-panel),
a [Color Attribute](../../properties/object_data.xhtml#modeling-meshes-properties-object-data-color-attributes),
or a generic [Attribute](../../../geometry_nodes/attributes_reference.xhtml).
user: Show practical ways to work with NlaStripFCurves(bpy_struct) in a Blender add-on or script – include code.

assistant: # NlaStripFCurves(bpy_struct)

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

*class* bpy.types.NlaStripFCurves(*bpy_struct*)
:   Collection of NLA strip F-Curves

    find(*data_path*, *\**, *index=0*)
    :   Find an F-Curve. Note that this function performs a linear scan of all F-Curves in the NLA strip.

        Parameters:
        :   - **data_path** (*string**,* *(**never None**)*) – Data Path, F-Curve data path
            - **index** (*int in* *[**0**,* *inf**]**,* *(**optional**)*) – Index, Array index

        Returns:
        :   The found F-Curve, or None if it doesn’t exist

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

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

assistant: ### Selecting a Brush, Color & Mode

In the Tool Settings select the brush, color and mode to use with the tool.

You can configure the brush main settings included in the Tool Settings for convenience.
For the vertex paint brushes configuration and settings see
[Vertex Paint Brush](../../vertex_paint/tool_settings/brush.xhtml).

`Ctrl`-`LMB` erase the Color Attribute.

### Painting

Click and hold `LMB` or use the pen tip to paint onto the stroke points.

Vertex painting stroke points.

|  |  |  |
| --- | --- | --- |
| ../../../../_images/grease-pencil_modes_draw_tools_tint_paint-01.png | ../../../../_images/grease-pencil_modes_draw_tools_tint_paint-02.png | ../../../../_images/grease-pencil_modes_draw_tools_tint_paint-03.png |
user: How do I use Bundle Dependencies in Blender? Include parameters, examples, warnings and best practices.

assistant: For add-ons to be bundled as extensions, they must be self-contained.
That means they must come with all its dependencies. In particular 3rd party Python modules.

There are a few options for this:

Bundle with [Python Wheels](python_wheels.xhtml#extensions-python-wheels).
:   This is the recommended way to bundle dependencies.

Bundle other add-ons together.
:   This is recommended if an add-on depends on another add-on.

    Make sure that both the individual and the combined add-on
    check for already registered types (Operators, Panels, …).
    This avoids duplication of operators and panels on the interface
    if the add-ons are installed as a bundle and individually.

Bundle with [Vendorize](https://pypi.org/project/vendorize)
:   This can be used as a way to bundle a pure Python dependencies as a sub-module.

    This has the advantage of avoiding version conflicts although it requires some work to setup each package.
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: Tone Compositor Only
:   Standard:
    :   The Combined curve is applied to each channel individually, which may result in a change of hue.

    Filmlike:
    :   Keeps the hue constant.

Channel
:   The curve to show.

    C:
    :   Combined

    R:
    :   Red

    G:
    :   Green

    B:
    :   Blue

Curve
:   A Bézier curve that maps each input level (X axis) to an output level (Y axis).
    For the curve controls, see [Curve widget](../../../../interface/controls/templates/curve.html#ui-curve-widget).
user: Show practical ways to work with Attach Hair Curves to Surface in a Blender add-on or script – include code.

assistant: # Attach Hair Curves to Surface

The *Attach Hair Curves to Surface* node binds hair curves to a surface mesh,
establishing their attachment positions and optionally aligning them to the
surface orientation.
This node is a fundamental part of hair generation and grooming workflows,
ensuring that curves remain anchored correctly to the underlying surface,
even after deformation or topology changes.
user: Provide the full official documentation entry for Outputs, preserving all code examples.

assistant: The outputs of the *Evaluate Closure* node depend on its current configuration:

- **When a closure is connected** – Each output corresponds to an output socket of the *Closure Zone* with the same name.
- **When no closure is connected** – Outputs are defined manually through the *Output Items* section of the Sidebar.
user: What is Enable Output Node and how is it used in Blender Python scripting?

assistant: # Enable Output Node

[image reference removed]

The *Enable Output* node toggles the visibility and value
of a socket for a [Node Group](../../../interface/controls/nodes/groups.html) outputs.
It can be used to conditionally show or hide outputs from a node group depending on an input value or condition.
user: Give a detailed overview of Face Group Boundaries Node: syntax, arguments, return values, common patterns.

assistant: # Face Group Boundaries Node

[image reference removed]

The *Face Group Boundaries Node* finds the edges which lie on the boundaries of
specified regions. These edges could be used to mark seams for UV unwrapping,
for example.
user: Provide the full official documentation entry for GPencilInterpolateSettings(bpy_struct), preserving all code examples.

assistant: # GPencilInterpolateSettings(bpy_struct)

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

*class* bpy.types.GPencilInterpolateSettings(*bpy_struct*)
:   Settings for Grease Pencil interpolation tools

    interpolation_curve
    :   Custom curve to control ‘sequence’ interpolation between Grease Pencil frames

        Type:
        :   [`CurveMapping`](bpy.types.CurveMapping.html#bpy.types.CurveMapping "bpy.types.CurveMapping"), (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: How do I use Select Similar in Blender? Include parameters, examples, warnings and best practices.

assistant: Selects control points that have certain similar properties to the active one.
The [Adjust Last Operation](../../interface/undo_redo.xhtml#bpy-ops-screen-redo-last) panel provides several selection options:

Type
:   Type
    :   Selects splines that have the same spline Type i.e. Bézier, NURBS or Poly.

    Radius
    :   Selects control points that have a similar Radius value.

    Weight
    :   Selects all points that have a similar Weight value.

    Direction
    :   Selects control points that have a similar handles direction.

Compare
:   For quantitative properties, this property selects the type of comparison to between the two numerical values.

    Equal:
    :   Select items with the same value as the active item’s chosen property.

    Greater:
    :   Select items with a larger value as the active item’s chosen property.

    Less:
    :   Select items with a smaller value as the active item’s chosen property.

Threshold
:   For quantitative properties, this property controls how
    close the property’s values have to be in the comparison.
user: Show practical ways to work with Hotkeys in a Blender add-on or script – include code.

assistant: Free-Align Toggle
:   Hold `LeftCtrl` while dragging a handle to switch between `Free` and `Align` handle types.
    Can be used to create sharp corners along the curve.

Move Entire Point
:   Hold `LeftAlt` while dragging a handle to move the entire point.

Snap Handle Angle
:   Hold `LeftShift` while dragging a handle to limit the movement of the handle to multiples 45 degrees,
    so the handle can only be vertical, horizontal or diagonal.
user: Show practical ways to work with ShaderNodeNewGeometry(ShaderNode) in a Blender add-on or script – include code.

assistant: # ShaderNodeNewGeometry(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.ShaderNodeNewGeometry(*ShaderNode*)
:   Retrieve geometric information about the current shading point

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

assistant: |  |  |  |
| --- | --- | --- |
| <../../../../_images/modeling_meshes_editing_edge_bevel_example-5.png>   Result of beveling multiple edges. | <../../../../_images/modeling_meshes_editing_edge_bevel_example-6.png>   Another example of beveling multiple edges. | <../../../../_images/modeling_meshes_editing_edge_bevel_example-7.png>   An example using Profile=0.150. |
user: Describe Insert a Python Interpreter into your Script from the Blender manual or Python API, including usage steps and snippets.

assistant: In the middle of a script you may want to inspect variables,
run functions and inspect the flow.

```
import code
code.interact(local=locals())
```

If you want to access both global and local variables run this:

```
import code
namespace = globals().copy()
namespace.update(locals())
code.interact(local=namespace)
```

The next example is an equivalent single line version of the script above which is easier to paste into your code:

```
__import__('code').interact(local=dict(globals(), **locals()))
```

`code.interact` can be added at any line in the script
and will pause the script to launch an interactive interpreter in the terminal,
when you’re done you can quit the interpreter and the script will continue execution.

If you have **IPython** installed you can use its `embed()` function which uses the current namespace.
The IPython prompt has auto-complete and some useful features that the standard Python eval-loop doesn’t have.

```
import IPython
IPython.embed()
```

Admittedly this highlights the lack of any Python debugging support built into Blender,
but its still a handy thing to know.
user: Describe Lattice Operators from the Blender manual or Python API, including usage steps and snippets.

assistant: # Lattice Operators

bpy.ops.lattice.flip(*\**, *axis='U'*)
:   Mirror all control points without inverting the lattice deform

    Parameters:
    :   **axis** (enum in [`'U'`, `'V'`, `'W'`], (optional)) – Flip Axis, Coordinates along this axis get flipped

bpy.ops.lattice.make_regular()
:   Set UVW control points a uniform distance apart

bpy.ops.lattice.select_all(*\**, *action='TOGGLE'*)
:   Change selection of all UVW control points

    Parameters:
    :   **action** (enum in [`'TOGGLE'`, `'SELECT'`, `'DESELECT'`, `'INVERT'`], (optional)) –

        Action, Selection action to execute

        - `TOGGLE`
          Toggle – Toggle selection for all elements.
        - `SELECT`
          Select – Select all elements.
        - `DESELECT`
          Deselect – Deselect all elements.
        - `INVERT`
          Invert – Invert selection of all elements.

bpy.ops.lattice.select_less()
:   Deselect vertices at the boundary of each selection region

bpy.ops.lattice.select_mirror(*\**, *axis={'X'}*, *extend=False*)
:   Select mirrored lattice points

    Parameters:
    :   - **axis** (enum set in [Axis Flag Xyz Items](bpy_types_enum_items/axis_flag_xyz_items.html#rna-enum-axis-flag-xyz-items), (optional)) – Axis
        - **extend** (*boolean**,* *(**optional**)*) – Extend, Extend the selection

bpy.ops.lattice.select_more()
:   Select vertex directly linked to already selected ones

bpy.ops.lattice.select_random(*\**, *ratio=0.5*, *seed=0*, *action='SELECT'*)
:   Randomly select UVW control points

    Parameters:
    :   - **ratio** (*float in* *[**0**,* *1**]**,* *(**optional**)*) – Ratio, Portion of items to select randomly
        - **seed** (*int in* *[**0**,* *inf**]**,* *(**optional**)*) – Random Seed, Seed for the random number generator
        - **action** (enum in [`'SELECT'`, `'DESELECT'`], (optional)) –

          Action, Selection action to execute

          - `SELECT`
            Select – Select all elements.
          - `DESELECT`
            Deselect – Deselect all elements.

bpy.ops.lattice.select_ungrouped(*\**, *extend=False*)
:   Select vertices without a group

    Parameters:
    :   **extend** (*boolean**,* *(**optional**)*) – Extend, Extend the selection
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: Image
:   The image to be processed.

Kernel
:   The convolution kernel used to modify the image.
    This can be provided as a constant value or an input image where pixel values define the kernel weights.

Normalize Kernel
:   A factor that determines whether the kernel values should be automatically normalized
    (i.e., divided by their total sum) to maintain consistent brightness.
user: Provide the full official documentation entry for Merge, preserving all code examples.

assistant: # Merge

This tool allows you to merge all selected vertices to a unique one, dissolving all others.
You can choose the location of the remaining vertex in the menu this tool pops up before executing:

At Center
:   It will place the remaining vertex at the center of the selection.
    Available in all select modes.

At Cursor
:   It will place the remaining vertex at the 3D Cursor.
    Available in all select modes.

Collapse
:   Every island of selected vertices (connected by selected edges) will merge on its own median center,
    leaving one vertex per island.

At First
:   It will place the remaining vertex at the location of the first one selected.
    Only available in *Vertex* select mode.

At Last
:   It will place the remaining vertex at the location of the last one selected (the active one).
    Only available in *Vertex* select mode.

Merging vertices of course also deletes some edges and faces. But Blender will do everything
it can to preserve edges and faces only partly involved in the reunion.

UVs
:   If *UVs* is ticked in the [Adjust Last Operation](../../../../interface/undo_redo.xhtml#bpy-ops-screen-redo-last) panel,
    the UV mapping coordinates, if existing, will be corrected to avoid image distortion.
user: Provide the full official documentation entry for Bpy.Types.Preferencesfilepaths, preserving all code examples.

assistant: r, when no path is defined yet Type : boolean, default True use_scripts_auto_execute ¶ Allow any .blend file to run scripts automatically (unsafe with blend files from an untrusted source) Type : boolean, default False use_tabs_as_spaces ¶ Automatically convert all new tabs into spaces for new and loaded text files Type : boolean, default True 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 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 Inherited Properties ¶ bpy_struct.id_data Inherited Functions ¶ bpy_struct.as_pointer bpy_struct.driver_add bpy_struct.driver_remove bpy_struct.get bpy_struct.id_properties_clear bpy_struct.id_properties_ensure bpy_struct.id_properties_ui bpy_struct.is_property_hidden bpy_struct.is_property_overridable_library bpy_struct.is_property_readonly bpy_struct.is_property_set bpy_struct.items bpy_struct.keyframe_delete bpy_struct.keyframe_insert bpy_struct.keys bpy_struct.path_from_id bpy_struct.path_from_module bpy_struct.path_resolve bpy_struct.pop bpy_struct.property_overridable_library_set bpy_struct.property_unset bpy_struct.rna_ancestors bpy_struct.type_recast bpy_struct.values References ¶ Preferences.filepaths Next PreferencesInput(bpy_struct) Previous PreferencesExtensions(bpy_struct) Copyright &#169; Blender Authors Made with Furo Report issue on this page On this page PreferencesFilePaths(bpy_struct) PreferencesFilePaths PreferencesFilePaths.active_asset_library PreferencesFilePaths.animation_player PreferencesFilePaths.animation_player_preset PreferencesFilePaths.asset_libraries PreferencesFilePaths.auto_save_time PreferencesFilePaths.file_preview_type PreferencesFilePaths.font_directory PreferencesFilePaths.i18n_branches_directory PreferencesFilePaths.image_editor PreferencesFilePaths.recent_files PreferencesFilePaths.render_cache_directory PreferencesFilePaths.render_output_directory PreferencesFilePaths.save_version PreferencesFilePaths.script_directories PreferencesFilePaths.show_hidden_files_datablocks PreferencesFilePaths.show_recent_locations PreferencesFilePaths.show_system_bookmarks PreferencesFilePaths.sound_directory PreferencesFilePaths.temporary_directory PreferencesFilePaths.text_editor PreferencesFilePaths.text_editor_args PreferencesFilePaths.texture_directory PreferencesFilePaths.use_auto_save_temporary_files PreferencesFilePaths.use_extension_online_access_handled PreferencesFilePaths.use_file_compression PreferencesFilePaths.use_filter_files PreferencesFilePaths.use_load_ui PreferencesFilePaths.use_relative_paths PreferencesFilePaths.use_scripts_auto_execute PreferencesFilePaths.use_tabs_as_spaces PreferencesFilePaths.bl_rna_get_subclass() PreferencesFilePaths.bl_rna_get_subclass_py() Inherited Properties Inherited Functions References
user: Provide the full official documentation entry for Aerodynamics, preserving all code examples.

assistant: Force from surrounding media.
See [exterior forces](../forces/exterior.xhtml#physics-softbody-forces-exterior-aerodynamics) for details.

Type
:   Simple:
    :   Edges receive a drag force from the surrounding media.

    Lift Force:
    :   Edges receive a lift force when passing through the surrounding media.

Factor
:   How much aerodynamic force to use. Try a value of 30 at first.
user: Explain Baking in complete detail according to the official Blender documentation.

assistant: The simulation is automatically cached during playback.
The valid cache can be seen as a strong yellow line in the timeline editor.
This allows for animators to quickly inspect all the previous frames of a simulation.

[image reference removed]

Cached frames in the Timeline.

When the result is ready to be sent to a render-farm, it can be baked to disk.
This allows for the simulation to be rendered in a non-sequential order.

[image reference removed]

Simulation and Physics, Geometry Nodes user interface.

Calculate to Frame
:   Calculate simulations in geometry nodes modifiers from the start to current frame.

Bake
:   Bake simulations in geometry nodes modifiers.
    In order to bake the simulation, the blend-file must be saved to your computer.
    The location the file is saved determines where the baked data is also saved.
    The directory the baked data is saved to can be changed per modifier in the
    [Internal Dependencies](../modeling/modifiers/geometry_nodes.xhtml#bpy-types-nodesmodifier-bake-directory).

    Delete Cached Simulation
    :   Delete cached/baked simulations in geometry nodes modifiers

Cache
:   For the cases where the current frame is the only one relevant,
    users can opt-out of caching the results to save memory.
user: Show practical ways to work with Common Startup Messages in a Blender add-on or script – include code.

assistant: The *Blender Console Window* can display many different types of status and error messages. Some messages simply
inform the user what Blender is doing, but have no real impact on Blender’s ability to function. Other messages can
indicate serious errors that will most likely prevent Blender carrying out a particular task and may even make Blender
non-responsive or shut down completely. The *Blender Console Window* messages can also originate internally from
within the Blender code or from external sources such as [Python scripts](../editors/preferences/extensions.xhtml).

`found bundled python: {DIR}`
:   This message indicates that Blender was able to find the [Python](../advanced/scripting/index.xhtml#scripting-index) library for the Python
    interpreter embedded within Blender. If this folder is missing or unable to be found, it is likely that an error
    will occur, and this message will not appear.

`Read prefs: {DIR}/userpref.blend`
:   The preferences use this path.
user: Give a detailed overview of Curve to Tube Node: syntax, arguments, return values, common patterns.

assistant: # Curve to Tube Node

[image reference removed]

The *Curve to Tube* node generates a mesh tube along an input curve.
It creates cylindrical or custom-profiled geometry that follows the curve shape,
with flexible control over radius, resampling, capping, and UV generation.
This node is useful for modeling cables, pipes, wires, or other tubular structures.
user: What is Performance and how is it used in Blender Python scripting?

assistant: Playback performance can be improved in several ways.

The method with the most impact is to allow the Video Sequencer to cache generated frames.
There are two levels of cache: a memory cache, which is enabled by default
(and can be enlarged if RAM allows), and a disk cache, which is slower but has more capacity.
Both of these can be configured in the [Preferences](../preferences/system.xhtml#prefs-system-video-sequencer).

Another way to improve performance is by using [Strip Proxies](sequencer/sidebar/proxy.xhtml#bpy-types-stripproxy).
These are copies of source images and videos with a lower resolution and/or quality,
making them faster to load than the originals.
user: Explain UnitSettings(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # UnitSettings(bpy_struct)

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

*class* bpy.types.UnitSettings(*bpy_struct*)
:   length_unit
    :   Unit that will be used to display length values

        Type:
        :   enum in [`'DEFAULT'`], default `'DEFAULT'`

    mass_unit
    :   Unit that will be used to display mass values

        Type:
        :   enum in [`'DEFAULT'`], default `'DEFAULT'`

    scale_length
    :   Scale to use when converting between Blender units and dimensions. When working at microscopic or astronomical scale, a small or large unit scale respectively can be used to avoid numerical precision problems

        Type:
        :   float in [1e-09, inf], default 0.0

    system
    :   The unit system to use for user interface controls

        Type:
        :   enum in [`'NONE'`, `'METRIC'`, `'IMPERIAL'`], default `'NONE'`

    system_rotation
    :   Unit to use for displaying/editing rotation values

        - `DEGREES`
          Degrees – Use degrees for measuring angles and rotations.
        - `RADIANS`
          Radians.

        Type:
        :   enum in [`'DEGREES'`, `'RADIANS'`], default `'DEGREES'`

    temperature_unit
    :   Unit that will be used to display temperature values

        Type:
        :   enum in [`'DEFAULT'`], default `'DEFAULT'`

    time_unit
    :   Unit that will be used to display time values

        Type:
        :   enum in [`'DEFAULT'`], default `'DEFAULT'`

    use_separate
    :   Display units in pairs (e.g. 1m 0cm)

        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: Provide the full official documentation entry for RetimingKeys(bpy_struct), preserving all code examples.

assistant: # RetimingKeys(bpy_struct)

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

*class* bpy.types.RetimingKeys(*bpy_struct*)
:   Collection of RetimingKey

    add(*\**, *timeline_frame=0*)
    :   Add retiming key

        Parameters:
        :   **timeline_frame** (*int in* *[**-1048574**,* *1048574**]**,* *(**optional**)*) – Timeline Frame

        Returns:
        :   New RetimingKey

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

    reset()
    :   Remove all retiming keys

    *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 Combine Bundle Node and how is it used in Blender Python scripting?

assistant: # Combine Bundle Node

[image reference removed]

The *Combine Bundle* node creates a new [Bundle](../../../../interface/controls/nodes/types/utilities/bundles/index.html)
from multiple input values.
Each input becomes an element of the bundle, identified by its socket name.
Values can be accessed in other parts of the node tree using the
[Separate Bundle](../../../../interface/controls/nodes/types/utilities/bundles/separate_bundle.html)