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

assistant: # Fluid Operators

bpy.ops.fluid.bake_all()
:   Bake Entire Fluid Simulation

bpy.ops.fluid.bake_data()
:   Bake Fluid Data

bpy.ops.fluid.bake_guides()
:   Bake Fluid Guiding

bpy.ops.fluid.bake_mesh()
:   Bake Fluid Mesh

bpy.ops.fluid.bake_noise()
:   Bake Fluid Noise

bpy.ops.fluid.bake_particles()
:   Bake Fluid Particles

bpy.ops.fluid.free_all()
:   Free Entire Fluid Simulation

bpy.ops.fluid.free_data()
:   Free Fluid Data

bpy.ops.fluid.free_guides()
:   Free Fluid Guiding

bpy.ops.fluid.free_mesh()
:   Free Fluid Mesh

bpy.ops.fluid.free_noise()
:   Free Fluid Noise

bpy.ops.fluid.free_particles()
:   Free Fluid Particles

bpy.ops.fluid.pause_bake()
:   Pause Bake

bpy.ops.fluid.preset_add(*\**, *name=''*, *remove_name=False*, *remove_active=False*)
:   Add or remove a Fluid Preset

    Parameters:
    :   - **name** (*string**,* *(**optional**,* *never None**)*) – Name, Name of the preset, used to make the path name
        - **remove_name** (*boolean**,* *(**optional**)*) – remove_name
        - **remove_active** (*boolean**,* *(**optional**)*) – remove_active

    File:
    :   [startup/bl_operators/presets.py:119](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/presets.py#L119)
user: Give a detailed overview of Visual Transform: syntax, arguments, return values, common patterns.

assistant: Apply the result of each selected object’s constraints to that object’s own transformation.
This will make the objects keep their location, rotation, and scale even if their
constraints are disabled or deleted.
user: What is Skin Mesh Data and how is it used in Blender Python scripting?

assistant: That modifier needs a set of specific data in the original mesh to work properly.
This data allows you to define the root vertices of each tree, which ones are loose,
and the size (radius) of the skin at each vertex. The radii of input vertices can be individually
scaled in Edit Mode with the [Skin Resize](../../meshes/editing/mesh/transform/skin_resize.html).
user: Describe Mask by Color from the Blender manual or Python API, including usage steps and snippets.

assistant: Click on any color on the mesh to create a new mask (based on the active color attribute).

Threshold
:   How much changes in color affect the mask generation. A smaller threshold includes fewer similar colors.
    A larger threshold includes much more similar colors.

Contiguous
:   Mask only contiguous color areas. Colors that don’t touch the one that you click on will not be masked.

Invert
:   Invert the generated mask.

Preserve Previous Mask
:   Preserve previous mask and add or subtract the new one generated by the colors.
user: Show practical ways to work with OpenColorIO in a Blender add-on or script – include code.

assistant: # OpenColorIO

Blender comes with a standard OpenColorIO configuration that
contains a number of useful display devices and view transforms.

However, OpenColorIO is also designed to give a consistent user experience across
[multiple applications](https://opencolorio.org/#supported_apps),
and for this, a single shared configuration file can be used.
Blender will use the standard `OCIO` environment variable to read an OpenColorIO configuration
other than the default Blender one. More information about how to set up such a workflow
can be found on the [OpenColorIO website](https://opencolorio.org/).

There is also a `BLENDER_OCIO` environment variable to change the configuration
for Blender only. It is recommended to use `OCIO` when possible for compatibility
with other software and pipelines that may not be aware of `BLENDER_OCIO`. However
sometimes there are incompatibilities in configuration files that make it difficult
to share them across applications.
user: How do I use Weighted Normal Modifier in Blender? Include parameters, examples, warnings and best practices.

assistant: # Weighted Normal Modifier

This modifier changes the [custom normals](../../meshes/structure.html#modeling-meshes-normals-custom)
of a mesh, using various selectable methods.
This can be useful to make some faces appear very flat during shading, among other effects.
See [Normals](../../meshes/editing/mesh/normals.html) for a description of normals and custom normals.
user: Explain Guides in complete detail according to the official Blender documentation.

assistant: The following properties are only available when displaying the *Viewer Node* image
in the *Image Editor* set to *View* or *Mask* mode.

Text Info
:   Displays overlay text showing information about the active Viewer node:

    - **Render Size**: The resolution of the final render output.
      This is defined in the [Output Properties](../../render/output/properties/format.xhtml#bpy-types-rendersettings-resolution-x).
    - **Image Size**: The resolution of the image currently displayed in the Viewer node.

Render Region
:   Displays a border showing the final render region defined in the scene.
    Space outside the render region appear shaded for reference.

    Passepartout Alpha
    :   Controls the opacity of the shaded area outside the render region.
        Higher values darken the outside area more, making the render region stand out.
user: Explain GeometryNodeAttributeStatistic(GeometryNode) in complete detail according to the official Blender documentation.

assistant: # GeometryNodeAttributeStatistic(GeometryNode)

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

*class* bpy.types.GeometryNodeAttributeStatistic(*GeometryNode*)
:   Calculate statistics about a data set from a field evaluated on a geometry

    data_type
    :   The data type the attribute is converted to before calculating the results

        Type:
        :   enum in [Attribute Type Items](bpy_types_enum_items/attribute_type_items.html#rna-enum-attribute-type-items), default `'FLOAT'`

    domain
    :   Which domain to read the data from

        Type:
        :   enum in [Attribute Domain Items](bpy_types_enum_items/attribute_domain_items.html#rna-enum-attribute-domain-items), default `'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: Describe Shortcuts from the Blender manual or Python API, including usage steps and snippets.

assistant: - `Ctrl`-`LMB` (drag): Snap hue to 30° intervals.
- `Shift`-`LMB` (drag): Fine-tune color movement for precise adjustments.
- `Wheel`: Adjust value or lightness.
- `Backspace`: Reset the current value to its default.
user: How do I use Mask by Color in Blender? Include parameters, examples, warnings and best practices.

assistant: Click on any color on the mesh to create a new mask (based on the active color attribute).

Threshold
:   How much changes in color affect the mask generation. A smaller threshold includes fewer similar colors.
    A larger threshold includes much more similar colors.

Contiguous
:   Mask only contiguous color areas. Colors that don’t touch the one that you click on will not be masked.

Invert
:   Invert the generated mask.

Preserve Previous Mask
:   Preserve previous mask and add or subtract the new one generated by the colors.
user: Describe Brush Settings from the Blender manual or Python API, including usage steps and snippets.

assistant: Count
:   Number of curves added.

Interpolate – Length
:   Use the average length of the curves in close proximity.

Interpolate – Radius
:   Use the average radius of the curves in close proximity.
    If there is no radius attribute, then the interpolation will skip.

Interpolate – Shape
:   Use the average shape of the curves in close proximity.

Interpolate – Point Count
:   Use the average amount of control points of the curves in close proximity.

Curve Length
:   Length of newly added curves when not interpolated.

Curve Radius
:   Radius of newly added curves when not interpolated.

Points per Curve
:   Number of Control Points for the new created curves when the point count is not interpolated.
user: How do I use UV Editing in Blender? Include parameters, examples, warnings and best practices.

assistant: Display Stretch
:   Show how much of a shape difference there is between UV space and 3D space.
    Blue means low distortion, red means high.
    You can choose whether to display the distortion based on *Angle* or *Area*.
user: Provide the full official documentation entry for Tools, preserving all code examples.

assistant: # Tools

[Select](../../interface/selecting.html#tool-select-tweak)
:   Select or move.

    [Select Box](../../interface/selecting.html#tool-select-box)
    :   Select geometry by dragging a box.

    [Select Circle](../../interface/selecting.html#tool-select-circle)
    :   Select geometry by dragging a circle.

    [Select Lasso](../../interface/selecting.html#tool-select-lasso)
    :   Select geometry by drawing a lasso.

Cursor
:   Change the location of the 3D Cursor.

Move
:   Translation tool.

Rotate
:   Rotation tool.

Scale
:   Scale tool.

    [Scale Cage](../../scene_layout/object/tools/scale_cage.html#tool-scale-cage)
    :   Change the scale of an object by controlling its cage.

Transform
:   Tool to adjust the objects translation, rotations and scale.

[Annotate](../../interface/annotate_tool.html#tool-annotate-freehand)
:   Draw free-hand annotation.

    [Annotate Line](../../interface/annotate_tool.html#tool-annotate-line)
    :   Draw straight line annotation.

    [Annotate Polygon](../../interface/annotate_tool.html#tool-annotate-polygon)
    :   Draw a polygon annotation.

    [Annotate Eraser](../../interface/annotate_tool.html#tool-annotate-eraser)
    :   Erase previous drawn annotations.

[Measure](../../editors/3dview/toolbar/measure.html#tool-measure)
:   Measure distances in the scene.
user: Give a detailed overview of Mesh to Volume Modifier: syntax, arguments, return values, common patterns.

assistant: # Mesh to Volume Modifier

The *Mesh to Volume* modifier uses a mesh to create a new volume grid.
All previously existing volume grids on the volume object are discarded.
So this modifier is usually added to an empty volume object.
The new volume grid is called “density”.
user: Give a detailed overview of Motion Blur: syntax, arguments, return values, common patterns.

assistant: # Motion Blur

Blender’s animations are by default rendered as a sequence of *perfectly still* images.
While great for stop-motion and time-lapses, this is unrealistic, since fast-moving
objects do appear to be blurred in the direction of motion,
both in a movie frame and in a photograph from a real-world camera.

Position
:   Controls at what point the shutter opens in relation to the current frame.

    Start on Frame:
    :   Shutter is starting to open at the current frame.

    Center on Frame:
    :   Shutter is fully opened at the current frame.

    End on Frame:
    :   Shutter is fully closed at the current frame.

Shutter
:   Time (in frames) taken between shutter open and close.

Bleeding Bias
:   Used by the post-process blur to avoid blurring the background over the foreground.
    Lower values will reduce background bleeding onto foreground elements.

Max Blur
:   Max Blur is intended to act as an optimization tool by
    limiting the number of pixels across which the blur is calculated.

Steps
:   This controls the number of steps used by the accumulation blur and thus its accuracy.
    More steps means longer render time.

    EEVEE splits the render into multiple time steps and accumulates the result
    which is known as Accumulation Motion Blur.
    This technique is precise but requires many steps for clean gradients.
    This is used in combination with the post-process blur to handle the inter-step gaps.
    Each step corresponds to a full scene re-evaluation and can add a lot of overhead to the render time.
    By adding more steps you can also reduce the *Max Blur* options because the post-process blur
    has to cover a smaller distance.

Shutter Curve
:   Use a custom shutter curve.
user: How do I use Solidify Faces in Blender? Include parameters, examples, warnings and best practices.

assistant: # Solidify Faces

This takes a selection of faces and solidifies them by extruding them
uniformly to give volume to a [Non-manifold](../../../../glossary/index.xhtml#term-Non-manifold) surface.
This is also available as a [Modifier](../../../modifiers/generate/solidify.xhtml).
After using the tool, you can set the offset distance in the [Adjust Last Operation](../../../../interface/undo_redo.xhtml#bpy-ops-screen-redo-last) panel.

Thickness
:   Amount to offset the newly created surface.
    Positive values offset the surface inward relative to the normals direction.
    Negative values offset outward.

|  |  |  |
| --- | --- | --- |
| ../../../../_images/modeling_meshes_editing_face_solidify-faces_before.png   Mesh before solidify operation. | ../../../../_images/modeling_meshes_editing_face_solidify-faces_after.png   Solidify with a positive thickness. | ../../../../_images/modeling_meshes_editing_face_solidify-faces_after2.png   Solidify with a negative thickness. |
user: Explain Adding Strips in complete detail according to the official Blender documentation.

assistant: [image reference removed]

The Add Menu.

The Add menu is the main menu you will be using to add content to the Video Sequencer.
In general, you load up your strips, create strips of special transition effects,
and then animate out your sequence by selecting “Do Sequence” and clicking the *Animation* button.
You can use the Add menu in the header,
or hover your mouse cursor over the Sequence workspace and press `Shift`-`A`.

Blender does not care which of these you use; you can freely mix and match any of them.
When you choose to add one of these, it lets you either choose a data-block or
the editor area will switch to a File Browser for you to select what you want to add.
Supported files are filtered by default.

The start frame of the newly created strips will be placed at the position of the frame indicator.
When loading multiple files (movie and sound) at the same time each will be added one after the other.

### Adding Effects & Transitions

Blender offers a set of effects that can be added to your sequence.

To add an effect strip, select one base strip (image, movie, or scene) by `LMB` clicking on it.
For some effects, like the Cross transition effect,
you will need to `Shift`-`LMB` a second overlapping strip (it depends on the effect you want).
From Add menu pick the effect you want.
When you do, the Effect strip will be shown above the source strips. If it is an independent effect,
like the [Color Generator](color.html),
it will be placed at the position of the frame indicator.

With some effects, like the
[Alpha Over](effects/alpha_over_under.html),
the order in which you select the strips is important.
You can also use one effect strip as the input or source strip with another strip,
thus layering effects on top of one another.

If you picked the wrong effect from the menu,
you can always exchange it using [Effect Strip](../editing.html#sequencer-edit-change).

Some effects such as Brightness/Contrast and Hue/Saturation
can be applied using [Strip Modifiers](../strip_modifiers.html#bpy-types-stripmodifier).
user: How do I use ThemeRegionsSidebars(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # ThemeRegionsSidebars(bpy_struct)

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

*class* bpy.types.ThemeRegionsSidebars(*bpy_struct*)
:   back
    :   Type:
        :   float array of 4 items in [0, 1], default (0.0, 0.0, 0.0, 0.0)

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

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

assistant: Transform
:   Move Origin `Ctrl`-`Period`
    :   Moves the origin of the image strip without changing the strip’s content position.

        This is useful for adjusting the reference point for transformations like rotation, scaling, or further
        positioning. For example, shifting the origin to a corner of the image allows rotations to pivot around that
        corner, rather than the default center.

Clear
:   Resets the position, rotation, or scale of the selected images.

Apply
:   Scale to Fit
    :   Resizes the selected images so that they’re as large as possible while still
        fitting completely inside the video. They don’t get cropped, and their aspect ratio
        stays the same.

    Scale to Fill
    :   Resizes the selected images to that they fill the entire video space.
        They may get cropped, but their aspect ratio stays the same.

    Stretch to Fill
    :   Resizes the selected images to match the video dimensions.
        They don’t get cropped, but their aspect ratio may change.
user: Show practical ways to work with What is a Pose Asset? in a Blender add-on or script – include code.

assistant: A *pose asset* is an action that has been [marked as asset](../../../../files/asset_libraries/introduction.xhtml#asset-create),
and that contains exactly **one frame of animation** data.
Usually these are created via the *Create Pose Asset* button (see below),
but any action that is keyed on exactly one frame can be seen as pose asset.

Each pose in the library is stored in its own action data-block.
This means that it can get its own name, its own preview image,
and can be organized in [Asset Catalogs](../../../../files/asset_libraries/catalogs.xhtml).

Since a pose asset is just an action, it can also contain
[slots](../../../actions.xhtml#animation-actions-slots). That means a single pose asset
can contain a pose for more than one armature. When applying
the pose, the best matching slot for the given armature will be chosen
to read the pose from. If no good match can be found it will fall back
to the first slot. For generic pose assets, it is recommended to use single-slot actions.
That way Blender always uses the first (and only) slot, regardless of which
character the pose is applied to. If a pose is specific to two
or more characters, they can be stored in the same asset for convenience.
For info on how to create such multi-character pose assets see [Pose Creation](#pose-creation).
user: What is Fill Between Joints and how is it used in Blender Python scripting?

assistant: # Fill Between Joints

The main use of this tool is to create one bone between two selected joints by pressing
`F`, similar to how in mesh editing you can “create edges/faces”.

If you have one root and one tip selected, the new bone:

- Will have the root placed on the selected tip.
- Will have the tip placed on the selected root.
- Will be parented and connected to the bone owning the selected tip.

Fill between a tip and a root.

|  |  |
| --- | --- |
| ../../../../_images/animation_armatures_bones_editing_fill-between-joints_example-1.png   Active tip on the left. | ../../../../_images/animation_armatures_bones_editing_fill-between-joints_example-2.png   Active tip on the right. |

If you have two tips selected, the new bone:

- Will have the root placed on the selected tip closest to the 3D cursor.
- Will have the tip placed on the other selected tip.
- Will be parented and connected to the bone owning the tip used as the new bone’s root.

Fill between tips.

|  |  |
| --- | --- |
| ../../../../_images/animation_armatures_bones_editing_fill-between-joints_example-3.png   3D cursor on the left. | ../../../../_images/animation_armatures_bones_editing_fill-between-joints_example-4.png   3D cursor on the right. |

If you have two roots selected, you will face a small problem due to the event system in
Blender not updating the interface in real-time.

When clicking `F`, similar to the previous case, you will see a new bone:

- With the root placed on the selected root closest to the 3D cursor.
- With the tip placed on the other selected root.
- Parented and connected to the bone owning the root used as the new bone’s root.

If you try to move the new bone, Blender will update the interface and you will see
that the new bone’s root moves to the tip of the parent bone.

Fill between roots.

|  |  |
| --- | --- |
| ../../../../_images/animation_armatures_bones_editing_fill-between-joints_example-5.png   Before UI update (3D cursor on the left). | ../../../../_images/animation_armatures_bones_editing_fill-between-joints_example-6.png   After UI update, correct visualization. |

Clicking `F` with only one bone joint selected will create a bone from the selected
joint to the 3D cursor position, and it will not parent it to any bone in the armature.

Fill with only one bone joint selected.

|  |  |
| --- | --- |
| ../../../../_images/animation_armatures_bones_editing_fill-between-joints_example-7.png   Fill with only one tip selected. | ../../../../_images/animation_armatures_bones_editing_fill-between-joints_example-8.png   Fill with only one root selected. |

You will get an error when:

- Trying to fill two joints of the same bone.
- Trying to fill more than two bone joints.
user: Provide the full official documentation entry for Weight Paint, preserving all code examples.

assistant: [image reference removed]

3D Viewport Mode selector: Weight Paint Mode.

Weight Paint Mode is selected from the *Mode* menu in the 3D Viewport header.
Once Weight Paint Mode is activated, the Toolbar of the 3D Viewport will change to Weight Paint Mode specific panels.
A red circle will appear and follow the location of the cursor in the 3D Viewport.
user: What is Options and how is it used in Blender Python scripting?

assistant: [image reference removed]

The Shrinkwrap modifier in Nearest Surface Point mode.

Wrap Method
:   This selector specifies the method to be used to determine the nearest
    point on the target’s surface for each point of the modified object.
    Some options will add some extra, specific controls to the panel.
    See [Wrap Methods](#wrap-methods) for an explanation of each method.

Snap Mode
:   Most modes support an additional setting to control how the point
    is moved to the target point selected by the methods described above.
    Some of the choices only differ if *Offset* is not zero.

    On Surface:
    :   The point is always moved. The offset is applied along the projection line
        connecting the original point and selected target point towards the original position.

    Inside:
    :   The point is not moved if it is already inside the target.
        Offset shrinks the allowed volume towards the inside along the projection line.

    Outside:
    :   The point is not moved if it is already outside the target.
        Offset expands the exclusion volume towards the outside along the projection line.

    Outside Surface:
    :   Like *On Surface*, but the offset is always applied towards the outside of the target.

    Above Surface:
    :   Like *On Surface*, but the offset is applied along the smooth normal of the target.

Target
:   Shrink target, the mesh to shrink to/wrap around.

Offset
:   The distance that must be kept from the calculated target position.

Smooth Factor
:   Amount of smoothing to apply.

Repeat
:   The number of time to apply smoothing.

### Influence

See [Influence Filters](../introduction.xhtml#grease-pencil-modifier-influence-filters).
user: Show practical ways to work with Options in a Blender add-on or script – include code.

assistant: # Options

Display
:   Fast Navigate
    :   For multiresolution models, shows low resolution while navigating in the viewport.

    Delay Viewport Updated
    :   Update the geometry when it enters view. This provides for faster navigation.

    Use Deform Only
    :   Limits the activated modifiers on the active object to Deform Modifiers, and Multiresolution.
        Constructive modifiers (like Subdivision Surface, Mirror and other) get deactivated,
        because they could give inaccurate results.
user: Give a detailed overview of Fades: syntax, arguments, return values, common patterns.

assistant: This submenu contains tools to add or remove fades to strips.
In case of visual strips the tools will animate the opacity or volume in case of audio strips.

Clear Fades
:   Removes fade animation from selected sequences.

Fade In and Out
:   Fade selected strips in and out.

Fade In
:   Fade in selected strips.

Fade Out
:   Fade out selected strips.

From Current Frame
:   Fade from the current frame to the end of overlapping sequences.

To Current Frame
:   Fade from the start of sequences under the Playhead to the current frame.
user: How do I use Text Rendering in Blender? Include parameters, examples, warnings and best practices.

assistant: Anti-Aliasing
:   Enable interface text [Anti-Aliasing](../../glossary/index.html#term-Anti-Aliasing).
    When disabled, texts are rendered using straight text rendering (filling only absolute pixels).

Subpixel Anti-Aliasing
:   Render text for optimal horizontal placement.

Hinting
:   Adjust [font hinting](https://en.wikipedia.org/wiki/Font_hinting),
    controls the spacing and crispness of text display.

Interface Font
:   Replacement for the default user interface font.

Mono-space Font
:   Replacement for the default mono-space interface font
    *(used in the Text editor and Python Console)*.
user: How do I use Hints in Blender? Include parameters, examples, warnings and best practices.

assistant: Many modeling tasks involve creating objects that are symmetrical.
This modifier offers a simple and efficient way to do this, with real-time update of the mirror as you edit it.
Once your modeling is completed you can either click *Apply* to make a real version of your mesh,
or leave it as-is for future editing.

### Accurately Positioning the Mirror Plane

To apply a *Mirror* modifier, it is common to have to move the object’s origin onto
the edge or face that is to be the axis for mirroring.
This can be tricky when attempted visually.

A good technique to achieve an exact position is
to select the edge, then [snap](../../../editors/3dview/controls/snapping.xhtml) *Cursor to Selection*.
This will position the 3D Cursor in the center of the edge.
Finally, use the [Set Origin](../../../scene_layout/object/origin.xhtml#bpy-ops-object-origin-set) menu, and select *Origin to 3D Cursor*.
This will move the object’s origin (and thus, the mirror plane) to where the 3D cursor is located,
and the mirroring will be exact.

An alternative is to use an empty as a *Mirror Object* that you move to the correct position.
user: Provide the full official documentation entry for Bevel Edges, preserving all code examples.

assistant: # Bevel Edges

The *Bevel* tool allows you to create chamfered or rounded corners on geometry.
A bevel is an effect that smooths out edges and corners.

Real world edges are very seldom exactly sharp.
Not even a knife blade edge can be considered perfectly sharp.
Most edges are intentionally beveled for mechanical and practical reasons.

Bevels are also useful for giving realism to non-organic models. In the real world,
the blunt edges on objects catch the light and change the shading around the edges.
This gives a solid, realistic look,
as opposed to unbeveled objects which can look too perfect.

[image reference removed]

Cubes with and without bevel.
user: Describe Import from the Blender manual or Python API, including usage steps and snippets.

assistant: ### General

Scale
:   Value by which to scale the imported objects in relation to the world’s origin.

Custom Properties
:   Import user properties as [Custom Properties](../custom_properties.html).

Enums As Strings
:   Store custom property enumeration values as strings.

### Geometry

Custom Normals
:   Import [custom normals](../../modeling/meshes/structure.html#modeling-meshes-normals-custom),
    if available (otherwise Blender will compute them).

Subdivision Data
:   Import FBX subdivision information as
    [Subdivision Surface Modifiers](../../modeling/modifiers/generate/subdivision_surface.html).

Vertex Colors
:   Import vertex color attributes.

    None:
    :   Do not import color attributes.

    sRGB:
    :   Vertex colors in the file are in sRGB [Color Space](../../glossary/index.html#term-Color-Space)

    Linear:
    :   Vertex colors in the file are in Linear [Color Space](../../glossary/index.html#term-Color-Space)

### Materials

Material Name Collision
:   Behavior when the name of an imported material conflicts with an existing material.

    Make Unique:
    :   Import each USD material as a unique Blender material.

    Reference Existing:
    :   If a material with the same name already exists, reference that instead of importing.

### Animation

Offset
:   Offset to apply to animation timestamps, in frames.

### Armature

Ignore Leaf Bones
:   Ignore the last bone at the end of each chain (used to mark the length of the previous bone).
user: Explain Cross Strip in complete detail according to the official Blender documentation.

assistant: # Cross Strip

The *Cross* transition fades from one strip to another, also known as a crossfade.
Strips can be overlapping or have a gap between them,
however, when strips contain a gap the last and first frame of each strip
is extend which can cause a pause if any of the strips are a sequence.
user: Explain References in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`Text.current_line`](bpy.types.Text.html#bpy.types.Text.current_line "bpy.types.Text.current_line") - [`Text.lines`](bpy.types.Text.html#bpy.types.Text.lines "bpy.types.Text.lines") | - [`Text.select_end_line`](bpy.types.Text.html#bpy.types.Text.select_end_line "bpy.types.Text.select_end_line") |
user: Explain Self Collision in complete detail according to the official Blender documentation.

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

assistant: # Crashes

The most common causes of Blender crashes:

- Running out of memory.
- Issues with graphics hardware or drivers.
- Bugs in Blender.

Firstly, you may be able to recover your work with [Auto Save](recover.xhtml#troubleshooting-file-recovery-auto-save).

To prevent the problem from happening again, you can check that the graphics drivers are up to date
([Troubleshooting Graphics Hardware](gpu/index.xhtml#troubleshooting-gpu-index)), upgrade your machine’s hardware (the RAM or graphics card), and disable some
options that are more memory intensive:

- Reduce undo steps Preferences ‣ System ‣ Memory & Limits ‣ Undo Steps.
- Using multisample anti-aliasing also increases the memory usage and makes the display slower.
- On Linux, the Window Manager (KDE and Gnome for example) may be using hardware accelerated effects (e.g. window
  shadows and transparency) that are using up the memory that Blender needs. Try disabling the desktop effects or
  switch to a lightweight Window Manager.

To check memory usage by Blender:

- On Windows, use Task Manager and sort by Memory.
- On macOS, use Activity Monitor.app and open Memory tab. Alternatively, run `top -o MEM`.
- On Linux, run `top -o %MEM`.

In more extreme cases, you may want to consider reinstalling your operating system. Windows especially tends to build
up latent issues due to successive updates and program leftovers.
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: ### F82 Tint

Base Color
:   Color of the material when viewed straight on.

Edge Tint
:   Color of the material when viewed at a 82° angle.

### Physical Conductor

IOR
:   Refractive index per color channel. This is the real part of a complex refractive index,
    scientifically denoted as n.

Extinction
:   Extinction coefficients per color channel. This is the imaginary part of a
    complex refractive index, scientifically denoted as k.

### Common

Roughness
:   Sharpness of the reflection; perfectly sharp at 0.0 and smoother with higher values.

Anisotropy Cycles Only
:   Amount of anisotropy. Higher values give elongated highlights along the tangent direction;
    negative values give highlights shaped perpendicular to the tangent direction.

Rotation Cycles Only
:   Rotates the direction of anisotropy, with 1.0 going full circle.

    Compared to the *Glossy BSDF* node, the direction of highlight elongation
    is rotated by 90°. Add 0.25 to the value to correct.

Normal
:   Normal used for shading; if nothing is connected the default shading normal is used.

Tangent
:   Tangent used for shading; if nothing is connected the default shading tangent is used.
user: How do I use Menu Switch Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Menu Switch Node

[image reference removed]

The *Menu Switch* node outputs one of its inputs based on a selected menu item.
Only the active input is evaluated, allowing efficient switching between multiple options.

The available menu entries are defined by the user. Menu items can be
added and removed, as well as renamed and reordered in the editor side
bar. Renaming a menu entry keeps existing links of the matching input
socket.

The menu can be used in node groups and the nodes modifier UI.
Connecting the menu input with a *Group Input* node will expose the menu
as a group input. A menu socket in a node group, reroute node, or other
pass-through nodes needs to be connected to a *Menu Switch* node in
order to work. An unconnected menu socket will show an empty menu by
default.

Connecting multiple *Menu Switch* nodes to the same output
socket creates a conflict (even when the menu entries are the same).
To avoid this a menu switch can be wrapped in a node group. Multiple
node groups of the same type can be connected to the same menu, since
they contain the same menu switch node.

|  |  |
| --- | --- |
| ../../../_images/node-types_GeometryNodeMenuSwitch_conflict.webp   Conflict caused by connecting different menus. | ../../../_images/node-types_GeometryNodeMenuSwitch_group_wrapper.webp   Same node group can be connected without conflict. |
user: Describe Normal Edit Modifier from the Blender manual or Python API, including usage steps and snippets.

assistant: # Normal Edit Modifier

The *Normal Edit* modifier affects (or generates) custom normals. It uses a few simple parametric methods
to compute them (quite useful in game development and architecture areas), and mixes back those generated normals
with existing ones.
user: Explain Toolbar in complete detail according to the official Blender documentation.

assistant: # Toolbar

Selection tools
:   [Tweak](../../../interface/selecting.html#tool-select-tweak)
    :   Select or move.

    [Select Box](../../../interface/selecting.html#tool-select-box)
    :   Select strips by dragging a box.
        All strips that intersect the box will be selected.

    [Select Circle](../../../interface/selecting.html#tool-select-circle)
    :   Select strips by dragging a circle. All strips that intersect the path of
        the circle will be selected.

    [Select Lasso](../../../interface/selecting.html#tool-select-lasso)
    :   Select strips by drawing a lasso.

Blade
:   Cuts a strip in two. Specifically, it first shortens the strip so it only shows the content
    up to the cut point, then adds a second strip that shows the content after the cut point.

    Splitting be done in two different ways:

    - Select the tool in the Toolbar and click a strip at the time point where you want to split it.
    - Alternatively, select one or more strips, place the Playhead at the time point where you want to
      split them, and press one of the keyboard shortcuts below.

    You can choose between the following split types:

    Soft `K`
    :   After splitting, it’s still possible to restore the cut content in the new strips
        by dragging their handles.

    Hard `Shift`-`K`
    :   After splitting, it’s not possible to restore the cut content by dragging handles.
        However, you can still restore it by changing the [Hold Offset](sidebar/strip.html#sequencer-duration-hard)
        in the Sidebar.

Slip
:   Moves only the content of the strip. By default, the tool only allows the content to be moved within
    strip handles. If this limit applies, the strip outline is drawn in red color. By pressing `C`
    the limiting is toggled on or off.
user: Explain Common Brushes in complete detail according to the official Blender documentation.

assistant: There are many brushes to choose from but these are the most common brushes to be used during sculpting.
More information on sculpting brushes in the [Toolbar](../toolbar.html).

[image reference removed]

[Clay Strips](../brushes/clay_strips.html)
:   Block out broad shapes and build up volumes before refining them further.

[Grab](../brushes/grab.html)
:   Move geometry across the screen for general shaping.

[Smooth](../brushes/smooth.html)
:   Smooth and shrink surfaces to remove noise or flatten shapes.

[Draw](../brushes/draw.html)
:   Generic adding and subtracting on surfaces.
    This brush is often customized with different stroke methods and textures for various effects.

[Plane](../brushes/plane.html)
:   Scrape and fill surfaces either for hard surface sculpting or more aggressive smoothing.

[Inflate](../brushes/inflate.html)
:   Inflate or shrink volumes or surfaces.
    Especially useful for controlling the thickness of cylindrical shapes.

[Draw Sharp](../brushes/draw_sharp.html)
:   Same as *Draw* but with a much sharper falloff. Useful for adding creases, cracks and other sharp edges.

[Crease](../brushes/crease.html)
:   A mix of the *Draw* and *Pinch* brushes.
    Useful for creating detailed creases or sharpening existing creases for additional polish.

[Snake Hook](../brushes/snake_hook.html).
:   Similar to *Grab* but this brush will dynamically let go and pick up geometry during the stroke.
    The dragged geometry is also following the angle of the stroke, making it very useful for
    pulling geometry out.
    Ideally used together with [Dyntopo](adaptive.html#dyntopo-introduction).
user: Give a detailed overview of Shortest Path: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Select a face or vertex path with `Ctrl`-`LMB`.

Selects all geometry along the shortest path from
the active vertex, edge, or face to the one which was selected.

Edge Tag (in Edge select mode only)
:   This select button indicates what should be done when selecting a vertex path with `Ctrl`-`LMB`:

    Select
    :   Just selects all the edges in the path.

    Tag Seam
    :   Marks all edges in the path as seams for UV unwrapping.

    Tag Sharp
    :   Marks all edges in the path as sharp for the Edge Split Modifier.

    Tag Crease
    :   Marks all edges in the path as creases for the Subdivision Surface Modifier, with weight 1.0.

    Tag Bevel
    :   Gives bevel weight 1.0 (for the Bevel Modifier) to all edges in the path.

    Tag Freestyle Edge Mark
    :   Marks all edges in the path as Freestyle edges.

Face Stepping
:   Supports diagonal paths for vertices and faces, and
    selects edge rings with edges.

Topology Distance
:   Only takes into account the number of edges of the path and
    not the length of the edges to calculate the distances.

Fill Region `Shift`-`Ctrl`-`LMB`
:   Selects all elements in the shortest paths from the active selection to the clicked area.

Checker Deselect Options
:   Allows to quickly select alternate elements in a path.

    Deselected
    :   The number of deselected elements in the repetitive sequence.

    Selected
    :   The number of selected elements in the repetitive sequence.

    Offset
    :   Offset from the starting point.
user: Describe Overview from the Blender manual or Python API, including usage steps and snippets.

assistant: This template streamlines the workflow for editing video, image, and audio sources together in a single timeline.
Each piece of media is represented as its own strip in the Sequencer, where clips can be arranged, trimmed,
and combined with effects to produce a polished final video.
user: How do I use TextureNodeOutput(TextureNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # TextureNodeOutput(TextureNode)

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

*class* bpy.types.TextureNodeOutput(*TextureNode*)
:   filepath
    :   Type:
        :   string, default “”, (never None)

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

assistant: [image reference removed]

Canvas main panel.

Paint Surface
:   A [list](../../interface/controls/templates/list_view.xhtml#ui-list-view) of Dynamic Paint surfaces.
    These surfaces are basically layers of paint, that work independently from each other.
    You can define individual settings for them and bake them separately.

    Is Active
    :   The checkbox toggles whether surface is active at all.
        If not selected no calculations are done.

Below you can set surface type and adjust quality and timing settings.

Format
:   Each surface has a certain format and type.
    Format determines how data is stored and outputted.

    Vertex:
    :   Dynamic Paint operates directly on mesh vertex data.
        Results are stored by point cache and can be displayed in viewports.
        However, using vertex level also requires a highly subdivided mesh to work.

    Image Sequences:
    :   Dynamic Paint generates UV wrapped image files of defined resolution as output.

        Resolution
        :   You can adjust the output image dimensions for the *Image Sequences* surface type.
            For example using 256 will lead to 256×256 image output.
            Doubling the resolution will likely quadruple the baking time and vice versa.

        Anti-Aliasing
        :   [Anti-Aliasing](../../glossary/index.xhtml#term-Anti-Aliasing) to smooth paint edges using a 5× multisampling method.

Frame Start, End
:   Defines surface processing start and end frame.

Sub-Steps
:   Extra samples between frames. They are usually required when there is a very fast brush.