PGCRYPT/OpenBlender_Train huggingface dataset:
user: Describe View Layer Override from the Blender manual or Python API, including usage steps and snippets.

assistant: # View Layer Override

View Layer overrides allow selectively replacing certain scene-level settings for a specific view layer.
This is useful for rendering multiple versions of a scene, for example, with different materials, lighting,
or sampling settings, without modifying the original scene data.

Overrides are applied only when rendering the specific view layer and do not affect the scene globally.

Material Override
:   Replaces all materials used in the view layer with a single material.
    This is often used for clay renders or lighting passes where the original material data is not needed.

World Override
:   Replaces the scene’s world settings (such as background color or HDRI lighting) for the current view layer.

    This can be used to render different lighting conditions
    or to isolate objects against a flat background for compositing.

Samples
:   Allows the view layer to use a different number of samples than the main scene.
    This is controlled by the [Layer Samples](../cycles/render_settings/sampling.html#bpy-types-cyclesrendersettings-use-layer-samples)
    when using the Cycles renderer. When using EEVEE, the *Samples* override is always used.

    Lowering the number of samples for background or utility passes can speed up render times,
    while still using higher samples for beauty passes.
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`Preferences.studio_lights`](bpy.types.Preferences.html#bpy.types.Preferences.studio_lights "bpy.types.Preferences.studio_lights") - [`StudioLights.load`](bpy.types.StudioLights.html#bpy.types.StudioLights.load "bpy.types.StudioLights.load") - [`StudioLights.new`](bpy.types.StudioLights.html#bpy.types.StudioLights.new "bpy.types.StudioLights.new") | - [`StudioLights.remove`](bpy.types.StudioLights.html#bpy.types.StudioLights.remove "bpy.types.StudioLights.remove") - [`View3DShading.selected_studio_light`](bpy.types.View3DShading.html#bpy.types.View3DShading.selected_studio_light "bpy.types.View3DShading.selected_studio_light") |
user: What is References and how is it used in Blender Python scripting?

assistant: |  |  |
| --- | --- |
| - [`Gizmo.invoke`](bpy.types.Gizmo.html#bpy.types.Gizmo.invoke "bpy.types.Gizmo.invoke") - [`Gizmo.modal`](bpy.types.Gizmo.html#bpy.types.Gizmo.modal "bpy.types.Gizmo.modal") - [`KeyMapItems.match_event`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.match_event "bpy.types.KeyMapItems.match_event") - [`Operator.invoke`](bpy.types.Operator.html#bpy.types.Operator.invoke "bpy.types.Operator.invoke") - [`Operator.modal`](bpy.types.Operator.html#bpy.types.Operator.modal "bpy.types.Operator.modal") | - [`Window.event_simulate`](bpy.types.Window.html#bpy.types.Window.event_simulate "bpy.types.Window.event_simulate") - [`WindowManager.invoke_confirm`](bpy.types.WindowManager.html#bpy.types.WindowManager.invoke_confirm "bpy.types.WindowManager.invoke_confirm") - [`WindowManager.invoke_props_popup`](bpy.types.WindowManager.html#bpy.types.WindowManager.invoke_props_popup "bpy.types.WindowManager.invoke_props_popup") - [`WindowManager.piemenu_begin__internal`](bpy.types.WindowManager.html#bpy.types.WindowManager.piemenu_begin__internal "bpy.types.WindowManager.piemenu_begin__internal") |
user: Provide the full official documentation entry for Stencil Mask, preserving all code examples.

assistant: Specify an additional image texture that defines masked surfaces.
Masked surfaces can be defined with the Mask brush
and will not be affected by painting.

The mask can be deactivated by the checkbox in the header.

Stencil Image
:   Image used as a mask. See [Data-Block Menu](../../../interface/controls/templates/data_block.xhtml#ui-data-block).

UV Layer
:   Allows you to select the UV layer for the mask image.

Display Color
:   Mask color in the viewport. See [Color Picker](../../../interface/controls/templates/color_picker.xhtml#ui-color-picker).

    Invert
    :   Inverts the mask.
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: The inputs are dynamic, they become available if needed depending on the node properties.

Vector
:   Vector used as seed in 2D, 3D, and 4D dimensions.

W
:   Value used as seed in 1D and 4D dimensions.
user: Explain Float2AttributeValue(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # Float2AttributeValue(bpy_struct)

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

*class* bpy.types.Float2AttributeValue(*bpy_struct*)
:   2D Vector value in geometry attribute

    vector
    :   2D vector

        Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 2 items in [-inf, inf], default (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: Provide the full official documentation entry for Examples, preserving all code examples.

assistant: Fig. [Meta ball base.](#fig-meta-ball-base) shows the *base* meta labeled “B”.
The other two *Meta* objects are *children*. Children’s selection rings are always black,
while the group’s mesh is orange. Because the metas are grouped,
they form a unified mesh which can always be selected by selecting the mesh of any meta in the group.

[[image reference removed]](../../_images/modeling_metas_editing_base-example.png)

Meta ball base.

For example, in Fig. [Meta ball base.](#fig-meta-ball-base), only the lower sphere (the parent) has been selected,
and you see that both the parent’s mesh *and* all of the children’s meshes are now highlighted.

[[image reference removed]](../../_images/modeling_metas_editing_base-example-scale.png)

Scaling the “base”.

The *base* meta object controls the *polygonalization* (mesh structure) for the group, and
as such, also controls the polygonalization for the children (non-base) metas.
If we transform the *base* meta, the children’s polygonalization changes.
However, if we transform the children, the polygonalization remains unchanged.
user: Show practical ways to work with CompositorNodeZcombine(CompositorNode) in a Blender add-on or script – include code.

assistant: # CompositorNodeZcombine(CompositorNode)

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

*class* bpy.types.CompositorNodeZcombine(*CompositorNode*)
:   Combine two images using depth maps

    *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")

    update()

    *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 Header in Blender? Include parameters, examples, warnings and best practices.

assistant: Action
:   A [data-block menu](../../../interface/controls/templates/data_block.html#ui-data-block) that lets you change – or clear – the object’s active action.

Slot Display Name
:   Name of the slot, for display in the user interface.
    This name combined with the slot’s data-block type is unique within its Action.
user: Provide the full official documentation entry for Extrude Individual Faces, preserving all code examples.

assistant: # Extrude Individual Faces

This tool allows you to extrude a selection of multiple faces as individuals, instead of as a region.
The faces are extruded along their own normals, rather than their average.
This has several consequences: first, “internal” edges
(i.e. edges between two selected faces) are no longer deleted (the original faces are).

|  |  |  |
| --- | --- | --- |
| <../../../../_images/modeling_meshes_editing_face_extrude-individual-faces_multi.png>   Selection of multiple faces. | <../../../../_images/modeling_meshes_editing_face_extrude-individual-faces_multi-region.png>   Extruded using extrude region. | <../../../../_images/modeling_meshes_editing_face_extrude-individual-faces_multi-individual.png>   Extruded using Extrude Individual. |
user: Provide the full official documentation entry for Self Object Node, preserving all code examples.

assistant: # Self Object Node

[image reference removed]

The *Self Object* node outputs the object that contains the geometry nodes modifier
currently being executed. This can be used to retrieve the original transforms.

When evaluated in the [Tool context](../../tools.xhtml#tool-context), this node returns the Active object.
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: Grease Pencil
:   The input Grease Pencil geometry.

Selection
:   A boolean field to determine which elements to affect.
    Elements with a value of true will be modified.

Color
:   The new color to apply.

Opacity
:   The opacity value to apply.
user: Show practical ways to work with Volume in a Blender add-on or script – include code.

assistant: Sampling Method
:   Distance:
    :   For dense volumes lit from far away *Distance* sampling is usually more efficient.

    Equiangular:
    :   If you have got a light inside or near the volume then *equiangular* sampling is better.

    Multiple Importance:
    :   If you have a combination of both, then the multiple importance sampling will be better.

Interpolation
:   Interpolation method to use for the volume objects and smoke simulation grids.

    Linear:
    :   Simple interpolation which gives good results for thin volumes.

    Cubic:
    :   Smoothed high-quality interpolation needed for more dense volumes, but slower.

Step Rate Biased
:   Adjust distance between volume shader samples for volume shaders.
    This is typically used to reduce the step size for procedural shaders that add more detail
    with procedural textures, when it is not captured by the default step size.
    Only enabled when Render ‣ Volumes ‣ Biased is enabled.
    See [Volume Render Settings](render_settings/volumes.html) for more information.
user: How do I use Workflow in Blender? Include parameters, examples, warnings and best practices.

assistant: To start using a UDIM workflow, you should unwrap a mesh as you would for any other UV map.
After that you should decide how many textures you want to split your UV map into.
This will be different for every mesh and workflow but a good minimum is 3: one 4k, one 2k, and one 1k image.
Then create the desired textures to match how many textures you want.

After this it is the same process of moving UVs to the appropriate tile
and scaling and managing them like any other UV map.
See [Layout Workflow](layout.xhtml) for information on laying out UVs.

When the UVs are correctly set up across the multiple UV islands it is time to add proper textures the UDIM array.
Currently, existing textures cannot be added to a tile,
to fill a tile with an existing texture you first must:

1. Create the desired tiles.
2. Save the image.
3. Replace the saved image file with the desire texture by deleting the file
   and replacing it with a new image file, keeping the old file name.
   Or by opening the image in another application and modifying the contents of the image.

Other than using a third-party application to edit the UDIM texture it is possible to paint on UDIM textures.
This works for either 2D Painting or [3D Painting](../../../../sculpt_paint/texture_paint/index.xhtml).
user: Describe GeometryNodeToolMousePosition(GeometryNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GeometryNodeToolMousePosition(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.GeometryNodeToolMousePosition(*GeometryNode*)
:   Retrieve the position of the mouse cursor

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # ShaderNodeAddShader(ShaderNode)

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

*class* bpy.types.ShaderNodeAddShader(*ShaderNode*)
:   Add two Shaders together

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Explain Subdivision Surface Modifier in complete detail according to the official Blender documentation.

assistant: # Subdivision Surface Modifier

The *Subdivision Surface* modifier (often shortened as slang to “Subdiv” or “Subsurf”)
is used to split the faces of a mesh into smaller faces, giving it a smooth appearance.
It enables you to create complex smooth surfaces while modeling simple, low-vertex meshes.
It avoids the need to save and maintain huge amounts of data,
and gives a smooth “organic” look to the object.

As with any modifier, order of execution (position in the [modifier stack](../introduction.html#modifier-stack))
has an important bearing on the results.

Keep in mind that this is a different operation than its companion,
[Smooth Shading](../../meshes/editing/mesh/shading.html#modeling-meshes-editing-normals-shading).
You can see the difference between the two in the grid image below.

[image reference removed]

Subdivision levels 0 to 3, without and with Smooth Shading.
user: Explain Inputs in complete detail according to the official Blender documentation.

assistant: Mesh
:   The input mesh whose volume is converted into a signed distance field grid.

Voxel Size
:   The size of each voxel in object space units.
    Smaller values produce higher-resolution fields that more accurately capture
    surface details, but require more memory and computation.

Band Width
:   The width of the active voxel band around the mesh surface, measured in voxels.
    Only voxels within this band store meaningful signed distance values.
    Increasing this value captures a wider region around the surface at the cost
    of additional memory.
user: Give a detailed overview of Light Probe Volume: syntax, arguments, return values, common patterns.

assistant: # Light Probe Volume

A volume probe records the light incoming from all directions at many locations inside a volume.

The light is then filtered and only the diffuse light is recorded.
The capture point positions are visible as an overlay when the Irradiance Volume object is selected.

If an object is not inside any Irradiance Volume, or if the indirect lighting has not been baked,
the world’s diffuse lighting will be used to shade it.
user: What is Invert and how is it used in Blender Python scripting?

assistant: Replaces each Weight of the selected weight group by × -1.0 weight.

Examples:

- Original 1.0 converts to 0.0
- Original 0.5 remains 0.5
- Original 0.0 converts to 1.0

[image reference removed]

Invert.

Subset
:   Restrict the tool to a subset.
    See above [The Subset Option](#sculpt-paint-weight-paint-editing-subset) about how subsets are defined.

Add Weights
:   Add vertices that have no weight before inverting (these weights will all be set to 1.0).

Remove Weights
:   Remove vertices from the vertex group if they are 0.0 after inverting.
user: Describe Plane from the Blender manual or Python API, including usage steps and snippets.

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

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

Size
:   Sets the width and height of the plane (the full extent from edge to edge).
user: Describe Focus Mode from the Blender manual or Python API, including usage steps and snippets.

assistant: Expands the editor area so it fills the entire window, hiding:

- The Topbar
- The Status Bar
- Secondary [regions](regions.xhtml) (such as toolbars, sidebars, headers, etc.) of the
  editor itself.

This mode gives the maximum possible screen space for the active editor.

To return to normal size, use the shortcut again or click the 
icon in the top-right corner of the editor (visible only when hovering over the area).
user: Describe One Time Setup from the Blender manual or Python API, including usage steps and snippets.

assistant: This assumes you have the Blender manual repository already checked out on your computer, following the [install
instructions](install/index.html).

### Fork

1. Go to Blender repository and click the Fork button.
2. Confirm the fork with the default settings.
3. Now you will have to add your personal fork as a remote in your local git repository.
   Click *SSH* to see the correct URL, and then add it like this:

   ```
   git remote add me git@git.blender.org:<USERNAME>/blender-manual.git
   ```
user: Explain Selection Modes in complete detail according to the official Blender documentation.

assistant: Selection modes limits selection operators to certain curve domains.
This feature is makes it easy to select whole segments at once, or to give more granular control over editing.

Control Points:
:   Allows selection of individual control points.

Curve:
:   Limits selection to whole curve segments.
user: Show practical ways to work with Bending Stiffness in a Blender add-on or script – include code.

assistant: The second method to stop an object from collapsing is to give it *Bending Stiffness.*
Just like the other settings, this can be combined with *Stiffness* to add bending
resistance to the diagonal springs as well.

We first do the same cube experiment as before, using only *Bending Stiffness*:

Bending Stiffness.

|  |  |  |
| --- | --- | --- |
| ../../../_images/physics_soft-body_forces_interior_quadvstri-sb-001.png   Frame 1. | ../../../_images/physics_soft-body_forces_interior_quadvstri-sb-bs-036.png   Frame 36. | ../../../_images/physics_soft-body_forces_interior_quadvstri-sb-bs-401.png   Frame 401. |

Both cubes keep their shape. Now, we try the same thing with subdivided planes,
again a quad-based one and a triangulated one:

|  |  |  |
| --- | --- | --- |
| ../../../_images/physics_soft-body_forces_interior_quadvstri-bending-001.png   Two planes falling. | ../../../_images/physics_soft-body_forces_interior_quadvstri-bending-101.png   No bending stiffness. | ../../../_images/physics_soft-body_forces_interior_quadvstri-bending-high-101.png   High bending stiffness (10). |

Without any *Bending Stiffness*, the faces can rotate freely as though their edges were hinges.
Enabling *Stiffness* to add diagonal springs would not change this (just as triangulating doesn’t).

With a high *Bending Stiffness*, however, the edges resist this rotation, and the planes
act more like planks than towels.
user: Explain References in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`RenderEngine.pass_by_index_get`](bpy.types.RenderEngine.html#bpy.types.RenderEngine.pass_by_index_get "bpy.types.RenderEngine.pass_by_index_get") - [`RenderLayer.passes`](bpy.types.RenderLayer.html#bpy.types.RenderLayer.passes "bpy.types.RenderLayer.passes") | - [`RenderPasses.find_by_name`](bpy.types.RenderPasses.html#bpy.types.RenderPasses.find_by_name "bpy.types.RenderPasses.find_by_name") |
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`bpy.context.armature`](bpy.context.html#bpy.context.armature "bpy.context.armature") - [`BlendData.armatures`](bpy.types.BlendData.html#bpy.types.BlendData.armatures "bpy.types.BlendData.armatures") | - [`BlendDataArmatures.new`](bpy.types.BlendDataArmatures.html#bpy.types.BlendDataArmatures.new "bpy.types.BlendDataArmatures.new") - [`BlendDataArmatures.remove`](bpy.types.BlendDataArmatures.html#bpy.types.BlendDataArmatures.remove "bpy.types.BlendDataArmatures.remove") |
user: Provide the full official documentation entry for Outputs, preserving all code examples.

assistant: Location
:   Location of the object in world space.

Color
:   Object color, same as *Color* in the Properties ‣ Object Properties ‣ Viewport Display.

Alpha
:   The [Alpha Channel](../../../glossary/index.xhtml#term-Alpha-Channel) component of the object’s viewport display color (see the *Color* output for
    more details).

Object Index
:   Object pass index, same as *Pass Index*
    in the Properties ‣ Object Properties ‣ Relations.

Material Index
:   Material pass index, same as *Pass Index*
    in the Properties ‣ Material ‣ Settings.

Random
:   Random number unique to a single object instance. Output is a Float between 0.0 and 1.0
user: Provide the full official documentation entry for Drivers, preserving all code examples.

assistant: Upgrading to the latest graphics drivers often solves problems. Newer drivers have bug fixes that help Blender
function correctly.

On Windows, drivers are provided by the graphics card manufacturer (NVIDIA). Windows Update automatically installs
graphics drivers, or your computer manufacturer may provide its own version of the graphics drivers.

However, these are not always the latest version or may have been corrupted in some way. We recommend always using
the official drivers.

[Download Latest NVIDIA Drivers](https://www.nvidia.com/Download/index.aspx)
user: Explain Interactive Mirror in complete detail according to the official Blender documentation.

assistant: The *Mirror* operator flips the selected elements across a chosen axis.
Mirroring is equivalent to scaling the selection by -1 along the selected axis,
but it offers a faster and more direct workflow.

The mirror is relative to the [Transformation Orientation](../../../editors/3dview/controls/orientation.xhtml)
and [Pivot Point](../../../editors/3dview/controls/pivot_point/index.xhtml)
This gives full control over how and where the mirroring occurs, for example:

- Position the pivot point wherever you want the center of symmetry.
- Choose a transformation orientation (e.g. *Global*, *Local*, *Normal*).
- Select an axis (X, Y, or Z) along which to mirror.

### Usage

To mirror along a specific axis:

- Press `Ctrl`-`M`, then `X`, `Y`, or `Z` to select an axis.
- Pressing the same key again toggles the orientation between the active
  [Transform Orientation](../../../editors/3dview/controls/orientation.xhtml) and the global orientation.
- Hold `MMB` and drag to mirror interactively in the desired direction.

### Properties

Orientation
:   The [Transform Orientation](../../../editors/3dview/controls/orientation.xhtml) used to align the X, Y, and Z axes.

Constraint Axis
:   The axis (or axes) to mirror across.
    For example, mirroring across the X axis flips the selection horizontally.
user: Explain Liquid Simulations in complete detail according to the official Blender documentation.

assistant: Fluid physics are used to simulate physical properties of liquids especially water.
While creating a scene in Blender, certain objects can be marked to become a part of the fluid simulation.
For a fluid simulation you have to have a domain to define the space that the simulation takes up.
In the domain settings you will be able to define the global simulation parameters (such as viscosity
and gravity).

[image reference removed]

Example of a liquid simulation.
user: Give a detailed overview of Tool Settings: syntax, arguments, return values, common patterns.

assistant: Filter Type
:   Operation that is going to be applied to the mesh.

    Gravity:
    :   Applies gravity to the simulation.

    Inflate:
    :   Inflates the cloth.

    Expand:
    :   Expands the cloth’s dimensions.

    Pinch:
    :   Pinches the cloth to the point where the cursor was when the filter started.

    Scale:
    :   Scales the mesh as a [Soft Body](../../../physics/soft_body/index.html)
        using the distance to the origin of the object as scale.
        This creates filter produces folds in the surface.
        The orientation of the folds can be controlled using the *Force Axis* and *Orientation*.

Strength
:   The amount of effect the filter has on the mesh.

Force Axis
:   Apply the force along the selected axis.

Orientation
:   [Orientation](../../../editors/3dview/controls/orientation.html) of the axis to limit the filter force.

    Local:
    :   Use the local axis to limit the force and set the gravity direction.

    World:
    :   Use the world axis to limit the force and set the gravity direction.

    View:
    :   Use the view axis to limit the force and set the gravity direction.

Cloth Mass
:   Mass of each simulation particle.

Cloth Damping
:   How much the applied forces are propagated through the cloth.

Use Face Sets
:   Only applies the cloth forces to the vertices assigned to the [Face Set](../editing/face_sets.html#sculpting-editing-facesets)
    that are under the mouse.

Use Collisions
:   Enables the detection of collisions with other objects during the simulation.
    In order for the sculpt object to collide with object,
    the collision object must have [Collision Physics](../../../physics/collision.html) activated.
user: What is Get Involved and how is it used in Blender Python scripting?

assistant: Help write Blender’s future! ✏️ Contribute to the Blender Manual and share your knowledge with creators worldwide.
No matter your expertise, your contributions can make Blender easier to learn and use for everyone.
Join the team and [start documenting Blender](contribute/manual/index.xhtml#about-user-contribute) today!

Translations

Help bring Blender to the world! 🌍
Join the translation effort to make the Blender accessible in more languages.

- [Translate Blender’s UI](contribute/translate_blender.xhtml)
- [Translate Blender’s User Manual](contribute/translate_manual/index.xhtml)
user: What is Introduction and how is it used in Blender Python scripting?

assistant: # Introduction

Vertex Painting is a simple way of painting color onto a Grease Pencil object,
by directly manipulating the color of points/vertices, rather than use only the materials base color.

[image reference removed]

Stroke with original base material color (left) and with vertex painting (right).

When a point is painted, the color of the points is mixing with the base material color according to
the settings of the brush.
user: How do I use Stencil Mask in Blender? Include parameters, examples, warnings and best practices.

assistant: Specify an additional image texture that defines masked surfaces.
Masked surfaces can be defined with the Mask brush
and will not be affected by painting.

The mask can be deactivated by the checkbox in the header.

Stencil Image
:   Image used as a mask. See [Data-Block Menu](../../../interface/controls/templates/data_block.html#ui-data-block).

UV Layer
:   Allows you to select the UV layer for the mask image.

Display Color
:   Mask color in the viewport. See [Color Picker](../../../interface/controls/templates/color_picker.html#ui-color-picker).

    Invert
    :   Inverts the mask.
user: Explain Face in complete detail according to the official Blender documentation.

assistant: ### Basic Concepts

#### Skin Bone Chains

[image reference removed]

The foundation of the Rigify face is a network of Bendy Bone [chains](rig_types/skin.xhtml#rigify-rigs-skin-basic-chain) with
controls placed at every bone end. These controls affect all bones that meet at that specific point.

When the controls are merely translated, the B-Bone chains retain the normal automatic bezier handle behavior.
Local rotation and/or scaling of the controls are applied on top of that.

In case of [certain chains](rig_types/skin.xhtml#rigify-rigs-skin-stretchy-chain), the transformation of the end and/or middle
controls is interpolated to other controls located between them. In such cases the controls often have different
colors and/or shapes.

Additionally, certain controls have [arbitrary constraints](rig_types/skin.xhtml#rigify-rigs-skin-glue) that partially copy
transformation from nearby control points.

#### Specialized Controllers

Certain areas of the face, like eyes or mouth, have additional specialized controllers that apply custom behavior
on top of the chains and their controllers within the relevant area.

### Eyes

[image reference removed]

The [eyes](rig_types/face.xhtml#rigify-rigs-face-skin-eye) have the following controls in addition to the eyelid chains:

Master
:   This large circular control can be used to transform the whole eye as one unit.

Common Target
:   This large control enveloping all individual eye targets has a switchable parent and can
    be used to specify the point that the eyes should look at.

Eye Target
:   These small circle controls within the common target control specify the point targeted by each
    individual eye. Their local scale can also be used to affect the iris or pupil of the eye,
    depending on how it was weight painted.

The rig properties panel contains the following options:

[image reference removed]

Eyelids Follow Slider
:   Controls how much the rotation of the eyeball affects the eyelids. Depending on the sub-rig generation
    options, this slider can be split to separately control the horizontal and vertical directions.

Eyelids Attached Slider Optional
:   If enabled in the sub-rig generation options, this slider can be used to disable the mechanism that
    forces the eyelids to conform to the sphere of the eye.

Parent Parent Switch
:   Selects the parent for the common target control.

### Mouth

[image reference removed]

The [mouth](rig_types/face.xhtml#rigify-rigs-face-skin-jaw) has the following controls:

Jaw Master
:   Controls rotation of the jaw, directly affecting the main jaw deform bone, as well
    as chains fully belonging to the jaw. Chains forming the lip loop(s) are adjusted to
    open the mouth as the jaw rotates or moves.

Mouth Master
:   This control uniformly transforms the lips without moving the jaw.

The rig properties panel contains the following options:

[image reference removed]

Mouth Lock Slider
:   This slider can be changed from 0 to 1 in order to suppress opening of the mouth
    when the jaw rotates or moves.
user: Describe Invert from the Blender manual or Python API, including usage steps and snippets.

assistant: Replaces each Weight of the selected weight group by × -1.0 weight.

Examples:

- Original 1.0 converts to 0.0
- Original 0.5 remains 0.5
- Original 0.0 converts to 1.0

[image reference removed]

Invert.

Subset
:   Restrict the tool to a subset.
    See above [The Subset Option](#sculpt-paint-weight-paint-editing-subset) about how subsets are defined.

Add Weights
:   Add vertices that have no weight before inverting (these weights will all be set to 1.0).

Remove Weights
:   Remove vertices from the vertex group if they are 0.0 after inverting.
user: Show practical ways to work with Face Marks in a Blender add-on or script – include code.

assistant: Face marks are useful for removing lines from certain areas of a mesh.

Internally, face marks are stored as the `freestyle_face`
[attribute](../../../modeling/geometry_nodes/attributes_reference.html).

Marking faces is done as follows:

1. Select a mesh object and enter *Edit Mode*.
2. Select the faces you want to be marked.
3. Press `Ctrl`-`F` and select Face Data ‣ Mark Freestyle Face.

In this example, two faces of the default cube are marked like the image on the left.
On the right is a render without face marks activated.

|  |  |
| --- | --- |
| ../../../_images/render_freestyle_parameter-editor_line-set_face-marks-example-1.png   Marked faces (Edit Mode). | ../../../_images/render_freestyle_parameter-editor_line-set_face-marks-example-2.png   Render output. |

The line selection can be controlled via inclusion and faces options:

Negation
:   Whether to include or exclude edges matching defined face mark conditions from the line set.

Condition
:   One Face:
    :   (De)select all edges which have one or both neighbor faces marked.

    Both Faces:
    :   (De)select all edges which have both of their neighbor faces marked.

|  |  |
| --- | --- |
| ../../../_images/render_freestyle_parameter-editor_line-set_face-marks-example-3.png   Inclusive, One Face. | ../../../_images/render_freestyle_parameter-editor_line-set_face-marks-example-4.png   Inclusive, Both Faces. |
| ../../../_images/render_freestyle_parameter-editor_line-set_face-marks-example-5.png   Exclusive, One Face. | ../../../_images/render_freestyle_parameter-editor_line-set_face-marks-example-6.png   Exclusive, Both Faces. |
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: The first three settings simulate the aperture of the camera.

Flaps
:   Sets an integer number of blades for the cameras iris diaphragm.

Angle
:   Gives these blades an angular offset relative to the image plane.

Roundness
:   Sets the curvature of the blades with (0 to 1) from straight to bringing them to a perfect circle.

Catadioptric Size
:   Provides a type of distortion found in mirror lenses and some telescopes.
    This can be useful to produce a visual complex bokeh.

Color Shift
:   Introduces chromatic aberration into the blur such as would be caused by a tilt-shift lens.
user: Provide the full official documentation entry for AnnotationFrames(bpy_struct), preserving all code examples.

assistant: # AnnotationFrames(bpy_struct)

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

*class* bpy.types.AnnotationFrames(*bpy_struct*)
:   Collection of annotation frames

    new(*frame_number*, *\**, *active=False*)
    :   Add a new annotation frame

        Parameters:
        :   - **frame_number** (*int in* *[**-1048574**,* *1048574**]*) – Frame Number, The frame on which this sketch appears
            - **active** (*boolean**,* *(**optional**)*) – Active

        Returns:
        :   The newly created frame

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

    remove(*frame*)
    :   Remove an annotation frame

        Parameters:
        :   **frame** ([`AnnotationFrame`](bpy.types.AnnotationFrame.html#bpy.types.AnnotationFrame "bpy.types.AnnotationFrame"), (never None)) – Frame, The frame to remove

    copy(*source*)
    :   Copy an annotation frame

        Parameters:
        :   **source** ([`AnnotationFrame`](bpy.types.AnnotationFrame.html#bpy.types.AnnotationFrame "bpy.types.AnnotationFrame"), (never None)) – Source, The source frame

        Returns:
        :   The newly copied frame

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

    *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 Drivers in a Blender add-on or script – include code.

assistant: Upgrading to the latest graphics drivers often solves problems. Newer drivers have bug fixes that help Blender
function correctly.

On Linux, graphics drivers are usually installed as a package by your Linux distribution. Installing the latest
drivers is typically done by upgrading packages or the distribution as a whole. Some distributions provide multiple
packages for multiple drivers versions, giving you the choice to install newer versions.

AMD drivers are open source, except for OpenCL support which is available as part of their Pro drivers. Installing
packages through your Linux distribution is usually best. AMD also provides graphics drivers for download on their
website if you need the latest version.

[AMD Drivers and Support Website](https://www.amd.com/en/support)

A lot of fixes for AMD and Intel GPUs are backported into the Mesa drivers. Therefore it is recommended to install or upgrade to their latest point [releases](https://docs.mesa3d.org/relnotes.html). For certain Linux distribution versions this can be done using custom repositories. For example, using the [kisak-mesa PPA](https://launchpad.net/~kisak/+archive/ubuntu/kisak-mesa) for Ubuntu.
user: Provide the full official documentation entry for NodeSocketVectorTranslation2D(NodeSocketStandard), preserving all code examples.

assistant: # NodeSocketVectorTranslation2D(NodeSocketStandard)

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

*class* bpy.types.NodeSocketVectorTranslation2D(*NodeSocketStandard*)
:   3D vector socket of a node

    default_value
    :   Input value used for unconnected socket

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

    links
    :   List of node links from or to this socket.

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

        (readonly)

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Show practical ways to work with Repeat History in a Blender add-on or script – include code.

assistant: [image reference removed]

The Repeat History menu.

The *Repeat History* feature will present you a list of the last repeated actions,
and you can choose the actions you want to repeat.
It works in the same way as the Undo History, explained above,
but the list contains only repeated actions.
user: Describe Sync Selection from the Blender manual or Python API, including usage steps and snippets.

assistant: When enabled (the default), the UV Editor and 3D Viewport share a synchronized selection state.
Selecting components (vertices, edges, or faces) in one editor will automatically select the
corresponding elements in the other.

With *Sync Selection* enabled, all faces are visible in the UV Editor at all times. Selecting a
vertex, edge, or face in the 3D Viewport selects its corresponding UV elements. However, when a
single 3D vertex or edge corresponds to multiple UV vertices or edges (for example, along a UV seam),
you cannot select them individually—selecting one selects all of them.

When disabled, only the UVs belonging to the currently selected faces in the 3D Viewport are shown.
Selections in the UV Editor are independent, allowing individual UV vertices and edges to be selected
even if they correspond to the same mesh vertex or edge. Selecting in one editor no longer affects
the other.
user: How do I use GeometryNodeToolFaceSet(GeometryNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # GeometryNodeToolFaceSet(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.GeometryNodeToolFaceSet(*GeometryNode*)
:   Each face’s sculpt face set value

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Provide the full official documentation entry for Light, preserving all code examples.

assistant: [Light settings](../lights/light_object.xhtml) for all renderers.

### Beam Shape

Spread Area Lights
:   How wide the emitted light fans out controlling how diffused the area light is.
    Larger values create soft shadows while smaller values create sharper light
    simulating a [gridded softbox](https://en.wikipedia.org/wiki/Softbox).

    [image reference removed]

    Example of Spread at different angles.
user: Show practical ways to work with Easing Type in a Blender add-on or script – include code.

assistant: Sets the [easing mode](properties.xhtml#editors-graph-fcurves-settings-easing) of the selected keyframes.
This determines whether easing is applied to the left side, right side, or both sides of the
curve segments between each keyframe and the next.