PGCRYPT/OpenBlender_Train huggingface dataset:
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: Source
:   The source of the Cryptomatte image.

    Render:
    :   Use the Cryptomatte render passes of a certain View Layer.

    Image:
    :   Use a Cryptomatte image from multilayered OpenEXR file.

Scene
:   Scene from which to take the Cryptomatte.
    Only available when Source is set to *Render*.

Image
:   Image to use for the Cryptomatte.
    Only available when Source is set to *Image*.

Cryptomatte Layer
:   The image layer to use. This is typically a combination of a View Layer and a Cryptomatte
    type (Object/Material/Asset).

Matte ID
:   The comma-separated names of the objects or materials for which to create a mask.
    While these can be typed manually, it’s easier to use the + and - buttons
    next to the textbox; see [Typical Usage](#typical-usage) below.
user: How do I use Import VDB Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Import VDB Node

[image reference removed]

The *Import VDB* node loads volumetric data from a .vdb file
and outputs it as a [Volume](../../../volumes/introduction.xhtml) geometry.
All grids present in the file are loaded and included in the resulting volume.

This node is useful for importing simulation data or procedural volumes created in external software.
user: What is Bone Collections and how is it used in Blender Python scripting?

assistant: # Bone Collections

[Bone Collections](../../../glossary/index.xhtml#term-Bone-Collection) group the bones of an
[Armature](../../../glossary/index.xhtml#term-Armature) into named collections. The armature is the owner of these
collections, so they are available in all modes. Bone Collections are identified
by their name, which are unique within the Armature.
Bone Collections can be nested inside other Bone Collections to create an organized hierarchy for complex rigs.

In the text below, “collection” is understood to refer to “bone collection”;
[Scene Collections](../../../glossary/index.xhtml#term-Collection) are not described here.

Bone Collections can be managed via [the Armature and Bone property panels](../properties/bone_collections.xhtml#bpy-types-bonecollection).
user: Show practical ways to work with Sampling in a Blender add-on or script – include code.

assistant: # Sampling

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

Sampling
:   The smaller this value, the more precise are the strokes.
    Be careful; too small values will require a huge amount of time and memory during render!
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`XrActionMapItem.user_paths`](bpy.types.XrActionMapItem.html#bpy.types.XrActionMapItem.user_paths "bpy.types.XrActionMapItem.user_paths") - [`XrUserPaths.find`](bpy.types.XrUserPaths.html#bpy.types.XrUserPaths.find "bpy.types.XrUserPaths.find") | - [`XrUserPaths.new`](bpy.types.XrUserPaths.html#bpy.types.XrUserPaths.new "bpy.types.XrUserPaths.new") - [`XrUserPaths.remove`](bpy.types.XrUserPaths.html#bpy.types.XrUserPaths.remove "bpy.types.XrUserPaths.remove") |
user: What is Collection Node and how is it used in Blender Python scripting?

assistant: # Collection Node

[image reference removed]

The *Collection* input node outputs a single collection. It can be connected to other collection sockets
to make using the same collection in multiple places more convenient.
user: Describe Options from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

Smooth Modifier.

Affect
:   Combination of stroke/points properties that will be affected by the smooth factor.

    Position:
    :   Smooth affect the point location.

    Strength:
    :   Smooth affect the point strength (opacity).

    Thickness:
    :   Smooth affect the point thickness.

    UV:
    :   Smooth affect the point UV rotation.

Factor
:   Strength of the smooth effect.

Repeat
:   The number of smoothing iterations, equivalent to executing the Smooth tool multiple times.
    High values can reduce the animation performance (FPS).

Keep Shape
:   When enabled, the smoothing algorithm will try to maintain as close as possible the overall
    shape of the original stroke.

Smooth Ends
:   Smooth the ends of the strokes.

### Influence

See [Influence Filters](../introduction.html#grease-pencil-modifier-influence-filters).
user: Explain Sidebar in complete detail according to the official Blender documentation.

assistant: In the Sidebar, you can define filters so that only the rows matching these filters
are displayed. Click *Add Row Filter* and set up the properties described below.

Enabled
:   Uncheck to temporarily disable the filter.

Column
:   The name of the column to filter on. If there is no column with the specified name,
    the filter will be grayed out and ignored.

    If you want to filter on an attribute from another domain, you can use the
    [Store Named Attribute Node](../modeling/geometry_nodes/attribute/store_named_attribute.xhtml) to create a copy
    that’s converted to the current domain, then filter on that.

Operation
:   For numerical columns, you can select one of the following comparison operators.
    Other columns only support *Equal To*.

    Equal To:
    :   Only display rows whose value for the column is equal to the filter value
        (within the specified threshold).

    Greater Than:
    :   Only display rows whose value for the column is greater than the filter value.

    Less Than:
    :   Only display rows whose value for the column is less than the filter value.

Value
:   The filter value to compare the row value to.

Threshold
:   How much the row’s value is allowed to deviate from the filter value before it is excluded.
user: Provide the full official documentation entry for Offset Point in Curve Node, preserving all code examples.

assistant: # Offset Point in Curve Node

[image reference removed]

The *Offset Point in Curve* node retrieves other points in the same curve as
the input control point. This is like starting at a specific control point and
walking along neighboring points toward the start or end of the curve.

Conceptually the operation is similar to the
[Offset Corner in Face Node](../../mesh/topology/offset_corner_in_face.xhtml),
but the point index doesn’t wrap around to the other end of the curve unless it is cyclic.
user: Provide the full official documentation entry for Type, preserving all code examples.

assistant: Blender has five types of metas, each determined by its underlying (or directing) structure.

In Edit Mode, you can change this structure,
either using the relevant buttons in the *Active Element* panel,
or the selector in the *Transform* panel in the Sidebar region.
Depending on the structure, you might have additional parameters,
located in both *Transform* panel and *Active Element* panel.

Ball (point, zero-dimensional structure)
:   This is the simplest meta, without any additional setting. As it is just a point,
    it generates an isotropic field, yielding a spherical surface
    (this is why it is called *Meta Ball* or *Ball* in Blender).

Capsule (straight line, one-dimensional structure)
:   This is a meta which surface is generated by the field produced by a straight line of a given length.
    This gives a cylindrical surface, with rounded closed ends.

    Size X
    :   The length of the line (and hence, of the capsule).

Plane (rectangular plane, two-dimensional structure)
:   This is a meta which surface is generated by the field produced by a rectangular plane.
    This gives a parallelepipedal surface, with a fixed thickness, and rounded borders.

    Size X/Y
    :   The length and width of the rectangle.

Ellipsoid (ellipsoidal volume, three-dimensional structure)
:   This is a meta which surface is generated by the field produced by an ellipsoidal volume.
    This gives an ellipsoidal surface.

    Size X/Y/Z
    :   The length, width and height of the ellipsoid.

Cube (parallelepipedal volume, three-dimensional structure)
:   This is a meta which surface is generated by the field produced by a parallelepipedal volume.
    This gives a parallelepipedal surface, with rounded edges.

    Size X/Y/Z
    :   The length, width and height of the parallelepiped.
user: Explain Text Editing in Preview in complete detail according to the official Blender documentation.

assistant: Text strips can be edited directly in the **Preview** window, providing a more intuitive workflow.

- **Enable Editing**: Press `Tab` to enter edit mode. A boundary box and cursor will appear.
- **Disable Editing**: Press `Tab` again to exit edit mode.

### Editing

Copy Text `Ctrl`-`C`
:   Copy the selected text.

Paste Text `Ctrl`-`V`
:   Uses the system clipboard, allowing text from external applications to be pasted.

Cut Text `Ctrl`-`X`
:   Cut the selected text.

Delete Character `Backspace`
:   Delete the character before the cursor.

Insert Line Break `Return`
:   Insert a new line.

Select All `Ctrl`-`A`
:   Select all the text.

Deselect All `Esc`
:   Deselect the text.

### Navigation

- `Left` – Move the cursor one character left.
- `Right` – Move the cursor one character right.
- `Up` – Move the cursor one line up\*\*.
- `Down` – Move the cursor one line down\*\*.
- `Home` – Move the cursor to the beginning of the current line.
- `End` – Move the cursor to the end of the current line.
- `Ctrl`-`Left` – Move the cursor one word left.
- `Ctrl`-`Right` – Move the cursor one word right.
- `PageUp` – Move the cursor to the start of the text.
- `PageDown` – Move the cursor to the end of the text.

### Text Selection

Holding `Shift` while pressing a navigation key enables text selection.

- `Shift`-`Left` – Select the previous character.
- `Shift`-`Right` – Select the next character.
- `Shift`-`Up` – Select the previous line.
- `Shift`-`Down` – Select the next line.
- `Shift`-`Home` – Select from the cursor to the beginning of the line.
- `Shift`-`End` – Select from the cursor to the end of the line.
- `Shift`-`Ctrl`-`Left` – Select the previous word.
- `Shift`-`Ctrl`-`Right` – Select the next word.
- `Shift`-`PageUp` – Select from the cursor to the start of the text.
- `Shift`-`PageDown` – Select from the cursor to the end of the text.
user: Describe Self Collision from the Blender manual or Python API, including usage steps and snippets.

assistant: # Self Collision

When enabled, allows you to control how Blender will prevent the soft body from intersecting with itself.
Every vertex is surrounded with an elastic virtual ball.
Vertices may not penetrate the balls of other vertices.
If you want a good result you may have to adjust the size of these balls.
Normally it works pretty well with the default options.

Calculation Type
:   Manual:
    :   The *Ball Size* directly sets the ball size.

    Average:
    :   The average length of all edges attached to the vertex is calculated and then multiplied
        with the *Ball Size* setting. Works well with evenly distributed vertices.

    Minimal/Maximal:
    :   The ball size is as large as the smallest/largest spring length of the vertex multiplied with the *Ball Size*.

    Average Min Max:
    :   Size = ((Min + Max)/2) × *Ball Size*.

Ball Size
:   Fraction of the length of attached edges.
    The edge length is computed based on the chosen algorithm.
    This setting is the factor that is multiplied by the spring length.
    It is a spherical distance (radius) within which, if another vertex of the same mesh enters,
    the vertex starts to deflect in order to avoid a self-collision.

    Set this value to the fractional distance between vertices that you want them to have their own “space”.
    Too high of a value will include too many vertices at all times and slow down the calculation.
    Too low of a level will let other vertices get too close and thus possibly intersect because
    there will not be enough time to slow them down.

Stiffness
:   How elastic that ball of personal space is.
    A high stiffness means that the vertex reacts immediately to another vertex enters their space.

Dampening
:   How the vertex reacts.
    A low value just slows down the vertex as it gets too close. A high value repulses it.
user: Show practical ways to work with Brush Gpencil Sculpt Types Items in a Blender add-on or script – include code.

assistant: # Brush Gpencil Sculpt Types Items

SMOOTH:
:   Smooth.

    Smooth stroke points.

THICKNESS:
:   Thickness.

    Adjust thickness of strokes.

STRENGTH:
:   Strength.

    Adjust color strength of strokes.

RANDOMIZE:
:   Randomize.

    Introduce jitter/randomness into strokes.

GRAB:
:   Grab.

    Translate the set of points initially within the brush circle.

PUSH:
:   Push.

    Move points out of the way, as if combing them.

TWIST:
:   Twist.

    Rotate points around the midpoint of the brush.

PINCH:
:   Pinch.

    Pull points towards the midpoint of the brush.

CLONE:
:   Clone.

    Paste copies of the strokes stored on the internal clipboard.
user: How do I use F-Curves in Blender? Include parameters, examples, warnings and best practices.

assistant: These settings control how [F-Curves](../graph_editor/fcurves/index.xhtml)
look and their default behavior.

Unselected Opacity
:   Controls the opacity of unselected [F-Curves](../graph_editor/fcurves/index.xhtml) against
    the background of the Graph Editor.

Default Smoothing Mode
:   Controls the behavior of [automatic curve handles](../graph_editor/fcurves/properties.xhtml#editors-graph-fcurves-settings-handles)
    for newly created F-Curves.

Default Interpolation
:   Controls the default [Interpolation](../graph_editor/fcurves/properties.xhtml#editors-graph-fcurves-settings-interpolation)
    for newly created keyframes.

Default Handles
:   Controls the default [Handle](../graph_editor/fcurves/properties.xhtml#editors-graph-fcurves-settings-handles) for newly created F-Curves.

XYZ to RGB
:   Color for X, Y, or Z animation curves (location, scale or rotation)
    is the same as the color for the X, Y, and Z axis.

Channel Group Colors
:   Display groups and channels with colors matching their corresponding groups.

Only Show Selected F-Curve Keyframes
:   Only shows the keyframes markers on the selected curves.

F-Curve High Quality Drawing
:   Display F-Curves using [Anti-Aliasing](../../glossary/index.xhtml#term-Anti-Aliasing) and other effects (disable for a better performance).
user: Provide the full official documentation entry for SpeedControlStrip(EffectStrip), preserving all code examples.

assistant: # SpeedControlStrip(EffectStrip)

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

*class* bpy.types.SpeedControlStrip(*EffectStrip*)
:   Sequence strip to control the speed of other strips

    input_1
    :   First input for the effect strip

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

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

    speed_control
    :   Speed control method

        - `STRETCH`
          Stretch – Adjust input playback speed, so its duration fits strip length.
        - `MULTIPLY`
          Multiply – Multiply with the speed factor.
        - `FRAME_NUMBER`
          Frame Number – Frame number of the input strip.
        - `LENGTH`
          Length – Percentage of the input strip length.

        Type:
        :   enum in [`'STRETCH'`, `'MULTIPLY'`, `'FRAME_NUMBER'`, `'LENGTH'`], default `'STRETCH'`

    speed_factor
    :   Multiply the current speed of the strip with this number or remap current frame to this frame

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

    speed_frame_number
    :   Frame number of input strip

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

    speed_length
    :   Percentage of input strip length

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

    use_frame_interpolate
    :   Do crossfade blending between current and next frame

        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: Explain Particle System Panel in complete detail according to the official Blender documentation.

assistant: # Particle System Panel

[image reference removed]

Particle System panel.

These are the basic settings.

Active Particle System
:   The [List View](../../interface/controls/templates/list_view.xhtml#ui-list-view) of the objects Particle Modifier(s).

    Specials
    :   Copy Active to Selected Objects
        :   Copies the active particle system to all selected objects.

        Copy All to Selected Objects
        :   Copies all particle systems from the active object to all selected objects.

        Duplicate Particle Systems
        :   Duplicates the particle system within the active object.
            The *Duplicate Settings* option (in the [Adjust Last Operation](../../interface/undo_redo.xhtml#bpy-ops-screen-redo-last) panel) will duplicate
            settings as well, so the new particle system uses its own settings.

        Remove All Particle Systems
        :   Remove all particle system within the active object.

Particle Settings
:   The [Data-Block menu](../../interface/controls/templates/data_block.xhtml#ui-data-block) for settings.

Type
:   Main selector of the system type.

    Emitter
    :   In such a system, particles are [emitted](emitter/index.xhtml) from the object.

    Hair
    :   Use [Hair](hair/index.xhtml) type, rendered as strands.

        Regrow
        :   Regrows the hair for each frame. This is useful when you are animating properties.

        Advanced
        :   Enables advanced settings which reflect the same ones as working in Emitter mode.

        Segments
        :   Controls the number of parts a hair is made of.
            Increasing this value will improve the quality of animations.
user: Describe Decorators from the Blender manual or Python API, including usage steps and snippets.

assistant: # Decorators

Decorators are small buttons that appear to the right of other buttons and show the state of the property.
Decorators may appear next to number fields, menus,
and checkboxes to indicate the property can be [animated](../../../animation/index.xhtml).

[image reference removed]

Decorators indicating different property states.

Clicking on the decorator dot icon will add a [Keyframe](../../../animation/keyframes/index.xhtml) to that property.
Clicking the rhombus icon again will remove the keyframe.
A solid rhombus icon indicates there is a keyframe on the current frame,
while a non-solid rhombus icon indicates that the property has a keyframe on another frame.
Clicking the non-solid rhombus icon will create a keyframe on the current frame with the current property value.

If a property is being [driven](../../../animation/drivers/index.xhtml)
by another, the decorator shows the driver icon.

Decorators make it quick and easy to glance over properties and see their state.
user: Give a detailed overview of Proportional Editing: syntax, arguments, return values, common patterns.

assistant: Proportional Editing is available in UV editing. The controls are the same as in the 3D Viewport.
See [Proportional Editing in 3D](../../../editors/3dview/controls/proportional_editing.html)
for a full reference.
user: Describe Usage from the Blender manual or Python API, including usage steps and snippets.

assistant: ### Selecting a Brush and Material

In the Tool Settings select the brush, material and color type to use with the tool.
The Box tool uses *Draw Brush* types.
See [Brush Settings](../brushes/draw.xhtml#grease-pencil-draw-common-options) for more information.

### Creating Boxes

1. Click (`LMB` or the `Pen` tip) and drag the start point.
2. Release on the desired end point.
3. After releasing you can move the start and end point by clicking and dragging on the yellow manipulators.
4. Then confirm (`Return`/`MMB`) or cancel (`Esc`/`RMB`).

While dragging you can use `Shift` to make a perfect square
or use `Alt` to create the box from a center point.

`NumpadPlus` and `NumpadMinus` or using the mouse `Wheel`
will increase or decrease the amount of points in the final box.

`F` will adjust the line thickness and `Shift`-`F` will adjust the opacity of the strokes.

|  |  |  |
| --- | --- | --- |
| ../../../../_images/grease-pencil_modes_draw_tools_box_example-01.png   click and dragging the start point. | ../../../../_images/grease-pencil_modes_draw_tools_box_example-02.png   Moving start and end points with manipulators. | ../../../../_images/grease-pencil_modes_draw_tools_box_example-03.png   The box after confirming. |
user: Explain Inherited Properties in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`Modifier.name`](bpy.types.Modifier.html#bpy.types.Modifier.name "bpy.types.Modifier.name") - [`Modifier.type`](bpy.types.Modifier.html#bpy.types.Modifier.type "bpy.types.Modifier.type") - [`Modifier.show_viewport`](bpy.types.Modifier.html#bpy.types.Modifier.show_viewport "bpy.types.Modifier.show_viewport") - [`Modifier.show_render`](bpy.types.Modifier.html#bpy.types.Modifier.show_render "bpy.types.Modifier.show_render") - [`Modifier.show_in_editmode`](bpy.types.Modifier.html#bpy.types.Modifier.show_in_editmode "bpy.types.Modifier.show_in_editmode") - [`Modifier.show_on_cage`](bpy.types.Modifier.html#bpy.types.Modifier.show_on_cage "bpy.types.Modifier.show_on_cage") | - [`Modifier.show_expanded`](bpy.types.Modifier.html#bpy.types.Modifier.show_expanded "bpy.types.Modifier.show_expanded") - [`Modifier.is_active`](bpy.types.Modifier.html#bpy.types.Modifier.is_active "bpy.types.Modifier.is_active") - [`Modifier.use_pin_to_last`](bpy.types.Modifier.html#bpy.types.Modifier.use_pin_to_last "bpy.types.Modifier.use_pin_to_last") - [`Modifier.is_override_data`](bpy.types.Modifier.html#bpy.types.Modifier.is_override_data "bpy.types.Modifier.is_override_data") - [`Modifier.use_apply_on_spline`](bpy.types.Modifier.html#bpy.types.Modifier.use_apply_on_spline "bpy.types.Modifier.use_apply_on_spline") - [`Modifier.execution_time`](bpy.types.Modifier.html#bpy.types.Modifier.execution_time "bpy.types.Modifier.execution_time") - [`Modifier.persistent_uid`](bpy.types.Modifier.html#bpy.types.Modifier.persistent_uid "bpy.types.Modifier.persistent_uid") |
user: How do I use VIEW3D_AST_brush_gpencil_vertex(AssetShelf) in Blender? Include parameters, examples, warnings and best practices.

assistant: # VIEW3D_AST_brush_gpencil_vertex(AssetShelf)

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

*class* bpy.types.VIEW3D_AST_brush_gpencil_vertex(*AssetShelf*)
:   *classmethod* brush_type_poll(*context*, *asset*)

    *static* draw_popup_selector(*layout*, *context*, *brush*, *show_name=True*)

    *static* get_shelf_name_from_context(*context*)

    *classmethod* has_tool_with_brush_type(*context*, *brush_type*)

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Image
:   Noisy image input.

Albedo
:   Optional albedo render pass to better preserve detail.
    For Cycles, it is recommended to use the Denoising Albedo render pass,
    which is available when enabling the Denoising Data passes.

Normal
:   Optional normal render pass to better preserve detail.
    For Cycles, it is recommended to use the Denoising Normal render pass,
    which is available when enabling the Denoising Data passes.

HDR
:   Preserve colors outside the 0 to 1 range.

Prefilter
:   None:
    :   Does not apply any prefiltering to the input passes. This option retains the most detail and
        is the fastest, but assumes the input passes are noise free which may require a high sample
        count. If the input passes are not noise free, then noise will remain in the image after denoising.

    Fast:
    :   Assumes the input passes are not noise free, yet does not apply prefiltering to the input passes.
        This option is faster than *Accurate* but produces a blurrier result.

    Accurate:
    :   Prefilters the input passes before denoising to reduce noise. This option usually produces
        more detailed results than *Fast* with increased processing time.

Quality
:   Follow Scene:
    :   Use the [scene’s quality setting](../../../render/eevee/render_settings/performance.xhtml#bpy-types-rendersettings-compositor-denoise-preview-quality).

    High:
    :   Produces the highest quality output at the cost of long processing times.

    Balanced:
    :   Balanced between performance and quality, typically processing in half the time as *High*,
        while retaining most of the quality.

    Fast:
    :   Produces an output quickly at a noticeable cost of quality.
user: Give a detailed overview of Gesture Tools: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

General gesture tools to apply an operation via box, lasso, line and polyline shapes.
See [Gesture Tools](introduction/gesture_tools.xhtml) for more information.

[Mask Gesture Tools](tools/mask_tools.xhtml)
:   Create a mask via a gesture.

[Hide Gesture Tools](tools/hide_tools.xhtml)
:   Hides/Shows geometry via a gesture.

[Face Set Gesture Tools](tools/face_set_tools.xhtml)
:   Create a face set via a gesture.

[Trim Gesture Tools](tools/trim_tools.xhtml)
:   Perform a Boolean operation via a gesture.

[Line Project](tools/line_project.xhtml)
:   Flatten the geometry towards a drawn line.
user: Provide the full official documentation entry for Installing from Steam, preserving all code examples.

assistant: # Installing from Steam

Steam is a software distribution platform. Blender can be downloaded and updated using the Steam client by following
the steps described below on Linux, macOS, or Windows.

Download and install the [Steam client](https://store.steampowered.com/) for your operating system.

Once it is installed, open the client and login to your Steam account, or create an account if you don’t already have
one. After logging in, navigate to the *Store* tab, search for “Blender”, and press the green **Install** button.
Blender should now be available in the *Library* tab of the Steam client, where it can be launched. Optionally, a
shortcut can be added to your desktop by right-clicking on it in your library list.
user: Explain Packed Data in complete detail according to the official Blender documentation.

assistant: # Packed Data

Blender has the ability to encapsulate (incorporate)
various kinds of data within the blend-file that is normally saved outside of the blend-file.
For example, an image texture that is an external image file can be put “inside” the blend-file.
This allows sharing a full project as a single file,
instead of e.g. an archive containing the blend-file and all its dependencies.

You know that a data is packed when you see a little “gift box” icon displayed next to its path.
user: What is Viewport and how is it used in Blender Python scripting?

assistant: |  |  |
| --- | --- |
| `Alt`-`LMB` | Orbit View |
| `Alt`-`MMB` | Pan View |
| `Alt`-`RMB` | Zoom View |
| `F1` - `F4` | Front/Side/Top/Camera Viewpoints |
| `F` | Frame Selected |
| `Shift` `F` | Center View to Mouse |
| `A` | Frame All |
user: Give a detailed overview of Animation Player: syntax, arguments, return values, common patterns.

assistant: # Animation Player

The animation player is a utility typically used for previewing rendered animations,
supporting all image and video formats also supported by Blender.
This is a convenient way to play back image sequences at the correct frame rate.

Launching the animation player opens a new window,
playing back images or a video located at the render output of the current scene.
You can also drop images or movie files in a running animation player.
It will then restart the player with the new data.
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`Object.vertex_groups`](bpy.types.Object.html#bpy.types.Object.vertex_groups "bpy.types.Object.vertex_groups") - [`VertexGroups.active`](bpy.types.VertexGroups.html#bpy.types.VertexGroups.active "bpy.types.VertexGroups.active") | - [`VertexGroups.new`](bpy.types.VertexGroups.html#bpy.types.VertexGroups.new "bpy.types.VertexGroups.new") - [`VertexGroups.remove`](bpy.types.VertexGroups.html#bpy.types.VertexGroups.remove "bpy.types.VertexGroups.remove") |
user: Explain ThemeStatusBar(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # ThemeStatusBar(bpy_struct)

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

*class* bpy.types.ThemeStatusBar(*bpy_struct*)
:   Theme settings for the Status Bar

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

assistant: # Geometry Component Type Items

MESH:
:   Mesh.

    Mesh component containing point, corner, edge and face data.

POINTCLOUD:
:   Point Cloud.

    Point cloud component containing only point data.

CURVE:
:   Curve.

    Curve component containing spline and control point data.

INSTANCES:
:   Instances.

    Instances of objects or collections.

GREASEPENCIL:
:   Grease Pencil.

    Grease Pencil component containing layers and curves data.
user: How do I use Selecting Objects in Blender? Include parameters, examples, warnings and best practices.

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.html) section.

The 3D Viewport has two keys that affect selection:

Select by Origin `Ctrl`
:   Selects objects by their [origin](../../scene_layout/object/origin.html)
    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: 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.html#term-Active) [attribute](../../../../glossary/index.html#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.html) tab of the [Properties Editor](../../../../editors/properties_editor.html) editor.
It could be a [UV Map](../../uv/uv_texture_spaces.html#uv-maps-panel),
a [Color Attribute](../../properties/object_data.html#modeling-meshes-properties-object-data-color-attributes),
or a generic [Attribute](../../../geometry_nodes/attributes_reference.html).
user: How do I use Combine Spherical Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Combine Spherical Node

[image reference removed]

The *Combine Spherical* node converts spherical coordinates (R, Φ, Θ)
into a Cartesian vector (X, Y, Z). It is the inverse of the
[Separate Spherical](../../../../modeling/geometry_nodes/utilities/vector/separate_spherical.xhtml) node.

Spherical coordinates represent a point in 3D space by its distance from the origin,
horizontal rotation, and vertical inclination, which can be useful for constructing
radial or rotational patterns and generating coordinates on a sphere.
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: The inputs of the node are dynamic. Some inputs are only available in certain operations.
For instance, the *Scale* input is only available in the *Scale* operator.

Vector
:   Input vector \(A = \begin{pmatrix} A_x \\ A_y \\ A_z \end{pmatrix}\).

Vector
:   Input vector \(B = \begin{pmatrix} B_x \\ B_y \\ B_z \end{pmatrix}\).

Scale
:   Input Scale \(s\).
user: Describe ShaderFxFlip(ShaderFx) from the Blender manual or Python API, including usage steps and snippets.

assistant: # ShaderFxFlip(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.ShaderFxFlip(*ShaderFx*)
:   Flip effect

    use_flip_x
    :   Flip image horizontally

        Type:
        :   boolean, default False

    use_flip_y
    :   Flip image vertically

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

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`UIList.bl_idname`](bpy.types.UIList.html#bpy.types.UIList.bl_idname "bpy.types.UIList.bl_idname") - [`UIList.list_id`](bpy.types.UIList.html#bpy.types.UIList.list_id "bpy.types.UIList.list_id") - [`UIList.layout_type`](bpy.types.UIList.html#bpy.types.UIList.layout_type "bpy.types.UIList.layout_type") - [`UIList.use_filter_show`](bpy.types.UIList.html#bpy.types.UIList.use_filter_show "bpy.types.UIList.use_filter_show") - [`UIList.filter_name`](bpy.types.UIList.html#bpy.types.UIList.filter_name "bpy.types.UIList.filter_name") | - [`UIList.use_filter_invert`](bpy.types.UIList.html#bpy.types.UIList.use_filter_invert "bpy.types.UIList.use_filter_invert") - [`UIList.use_filter_sort_alpha`](bpy.types.UIList.html#bpy.types.UIList.use_filter_sort_alpha "bpy.types.UIList.use_filter_sort_alpha") - [`UIList.use_filter_sort_reverse`](bpy.types.UIList.html#bpy.types.UIList.use_filter_sort_reverse "bpy.types.UIList.use_filter_sort_reverse") - [`UIList.use_filter_sort_lock`](bpy.types.UIList.html#bpy.types.UIList.use_filter_sort_lock "bpy.types.UIList.use_filter_sort_lock") - [`UIList.bitflag_filter_item`](bpy.types.UIList.html#bpy.types.UIList.bitflag_filter_item "bpy.types.UIList.bitflag_filter_item") - [`UIList.bitflag_item_never_show`](bpy.types.UIList.html#bpy.types.UIList.bitflag_item_never_show "bpy.types.UIList.bitflag_item_never_show") |
user: Show practical ways to work with Image Type All Items in a Blender add-on or script – include code.

assistant: # Image Type All Items

JPEG:
:   JPEG (.jpg).

    Output image in JPEG format.

OPEN_EXR:
:   OpenEXR (.exr).

    Output image in OpenEXR format.

PNG:
:   PNG (.png).

    Output image in PNG format.

WEBP:
:   WebP (.webp).

    Output image in WebP format.

---

BMP:
:   Bitmap (.bmp).

    Output image in bitmap format.

CINEON:
:   Cineon (.cin).

    Output image in Cineon format.

DPX:
:   DPX (.dpx).

    Output image in DPX format.

IRIS:
:   Iris (.rgb).

    Output image in SGI IRIS format.

JPEG2000:
:   JPEG 2000 (.jp2).

    Output image in JPEG 2000 format.

HDR:
:   Radiance HDR (.hdr).

    Output image in Radiance HDR format.

TARGA:
:   Targa (.tga).

    Output image in Targa format.

TARGA_RAW:
:   Targa Raw (.tga).

    Output image in uncompressed Targa format.

TIFF:
:   TIFF (.tif).

    Output image in TIFF format.

OPEN_EXR_MULTILAYER:
:   OpenEXR MultiLayer (.exr).

    Output image in multilayer OpenEXR format.

FFMPEG:
:   FFmpeg Video.
user: Provide the full official documentation entry for Text Fields, preserving all code examples.

assistant: Fixed strings are used internally, and while it is not useful to list all limits, here are some common limits.
*Used for data-block names, modifiers, vertex groups, UV layers…*

directory:
:   767

file-name:
:   255

file-path:
:   1023

identifier:
:   63
user: How do I use Examples in Blender? Include parameters, examples, warnings and best practices.

assistant: One use case for the *Ray Portal BSDF* is to connect two spaces together to
create effects like a portal to an alternative dimension, or “impossible spaces”
where something is bigger or smaller on the inside than expected.

To set up a *Ray Portal BSDF* for a technique like this, augment the
*Position* and *Incoming* outputs of the
[Geometry node](../input/geometry.xhtml) to set the exit point
and direction of the ray through the portal. Here are some examples:

### Simple Offset

[image reference removed]

This simple node setup offsets the ray position.
In this example, the ray is offset 0 units along the X axis,
4 units along the Y axis, and 5 units along the Z axis.

### Portal

[image reference removed]

[image reference removed]

In this example, the *Location of Portal Target* and *Rotation of Portal Target*
vectors are obtained from a target portal object using
[Drivers](../../../animation/drivers/introduction.xhtml).

### Camera Feed

Along with augmenting rays, the ray position and ray direction can be replaced,
for effects like a camera feed on a screen.

[image reference removed]

Using the Ray Portal BSDF to replicate the effect of a camera feed on a screen.

[image reference removed]

Node setup for replicating a camera feed like effect on a screen.
user: Provide the full official documentation entry for Open Recent, preserving all code examples.

assistant: Displays a list of recently opened blend-files.
Hovering over items will show a preview, and information about the blend-file.
Select any of the file names in the list to open that blend-file.
When `RMB` on a listed item, a context menu will appear; One of the available options is *Open File Location*,
which will open that location in an OS file explorer or Finder window.

### Clear Recent Files List

Removes items from the recent files list.

Remove
:   Choose which type of items to remove.

    All Items:
    :   Removes all recent files.

    Items Not Found:
    :   Removes files from the list that cannot be found i.e. that have been moved or deleted.
user: Show practical ways to work with Remeshing in a Blender add-on or script – include code.

assistant: # Remeshing

Blender offers several tools for regenerating a mesh so that it has (approximately) the same
shape but fewer faces, more faces, or better topology.

[image reference removed]

Remeshing to clean up messy geometry.
user: Explain Grease Pencil in complete detail according to the official Blender documentation.

assistant: - [Grease Pencil Edit](../../../grease_pencil/modes/edit/tools/index.xhtml#gpencil-edit-toolbar-index)
- [Grease Pencil Draw](../../../grease_pencil/modes/draw/tools.xhtml#gpencil-draw-toolbar-index)
- [Grease Pencil Sculpting](../../../grease_pencil/modes/sculpting/tools.xhtml#gpencil-sculpt-toolbar-index)
- [Grease Pencil Weight Paint](../../../grease_pencil/modes/weight_paint/tools.xhtml#gpencil-weight-paint-toolbar-index)
user: What is Select Random and how is it used in Blender Python scripting?

assistant: Selects a random subset of points in the point cloud.

Seed
:   The [seed](../../glossary/index.xhtml#term-Seed) value used by the pseudo-random number generator.
    Adjusting this value changes which points are randomly selected.

Probability
:   A value between 0.0 and 1.0 that determines the percentage of points to be selected.
    For example, a value of 0.25 selects roughly 25% of the points.

This operator is useful for procedural modeling, scattering, or testing effects with a random distribution.
user: Provide the full official documentation entry for Properties, preserving all code examples.

assistant: In the Node Editor the inputs can be renamed, shuffled and removed.
This is also the place where sub-steps can be defined for a simulation.

### Inputs

Geometry
:   Standard geometry input, which is available by default to input geometry into the simulation zone.
    More bake items can be added by dragging sockets into the blank socket or in the *Simulation State* panel.
    Items can be renamed by `Ctrl`-`LMB` on the socket name or in the nodes *Properties* panel.

Delta Time
:   The time in seconds between frames.
    Essentially this the inverse of the render [Frame Rate](../../../render/output/properties/format.xhtml#bpy-types-rendersettings-fps).

    This delta is used to drive the simulation by connecting it node setups that depend on a rate.
    This will keep the simulation playback consistent when the frame rate changes.

Skip
:   Forward the output of the simulation input node directly
    to the output node and ignore the nodes in the simulation zone.
user: What is External Links and how is it used in Blender Python scripting?

assistant: - [Skin Modifier Development at Blender Nation](https://www.blendernation.com/2011/03/11/skin-modifier-development/) –
  An early demonstration of the Skin Modifier by Nicholas Bishop (March 2011).
- Ji, Zhongping; Liu, Ligang; Wang, Yigang (2010).
  B-Mesh: A Fast Modeling System for Base Meshes of 3D Articulated Shapes,
  Computer Graphics Forum 29(7), pp. 2169-2178. – The work this modifier is based on
  ([DOI 10.1111/j.1467-8659.2010.01805.x](https://doi.org/10.1111/j.1467-8659.2010.01805.x)).
- [Related thread on Blender artists](https://blenderartists.org/t/499364).
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") - [`TextureSlot.texture`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.texture "bpy.types.TextureSlot.texture") - [`TextureSlot.name`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.name "bpy.types.TextureSlot.name") - [`TextureSlot.offset`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.offset "bpy.types.TextureSlot.offset") - [`TextureSlot.scale`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.scale "bpy.types.TextureSlot.scale") | - [`TextureSlot.color`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.color "bpy.types.TextureSlot.color") - [`TextureSlot.blend_type`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.blend_type "bpy.types.TextureSlot.blend_type") - [`TextureSlot.default_value`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.default_value "bpy.types.TextureSlot.default_value") - [`TextureSlot.output_node`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.output_node "bpy.types.TextureSlot.output_node") |
user: Explain Introduction in complete detail according to the official Blender documentation.

assistant: # Introduction

In Blender, objects are not directly part of the scenes.
Instead, they all get stored in a main database (basically the blend-file).

[image reference removed]

The blend-file and its stored data.

From there they are referenced into as many Scenes as you would like to see them.

When they are stored in a scene, they are part of a so-called *scene collection*.
So ultimately all the scene objects belong to this special collection.

[image reference removed]

The scene collection.
user: Explain Usage in complete detail according to the official Blender documentation.

assistant: ### Keyboard Shortcuts

Viewer node provide a quick way to toggle between different viewer nodes while compositing using keyboard shortcuts,
improving workflow efficiency when comparing outputs.

- **Assign Shortcut** (`Ctrl`-`1`, `Ctrl`-`2`, etc.):
  Select a node and press a shortcut to assign it. If no Viewer node is attached, one is created and activated.
  The number will be shown in the upper right part of the node to identify which shortcut is assigned.
- **Activate Node** (`1`, `2`, etc.):
  Press the assigned number key to activate the node’s Viewer output.

### Using the Image Editor

The Viewer node allows results to be displayed in the Image Editor.
The image is facilitated in the header by selecting *Viewer Node* in the linked *Image* data-block menu.
The Image Editor will display the image from the currently selected Viewer node.

To save the image being viewed,
use Image ‣ Save As…, `Alt`-`S` to save the image to a file.

The Image Editor also has three additional options in its header to view Images with or
without Alpha, or to view the Alpha or Z itself.
Click and holding the mouse in the Image displayed allows you to sample the values.
user: Describe General Conventions from the Blender manual or Python API, including usage steps and snippets.

assistant: - Use a three-space indentation.
- Limit line length to 120 characters.
- Use italics for button and menu names.
- Avoid using Unicode characters unless strictly necessary.
- Prefer simple sentence structures for clarity.
- Avoid heavily wrapped text (shorter paragraphs and clear sentences are recommended).