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

assistant: # Align to Transform Orientation

Aligns (rotates) the selected objects so that their local orientation matches the active transform orientation
in the Transform orientation panel or the *Orientation* selection
in the Transform [Adjust Last Operation](../../../../interface/undo_redo.html#bpy-ops-screen-redo-last) panels.
user: Describe UIPopupMenu(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # UIPopupMenu(bpy_struct)

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

*class* bpy.types.UIPopupMenu(*bpy_struct*)
:   layout
    :   Type:
        :   [`UILayout`](bpy.types.UILayout.html#bpy.types.UILayout "bpy.types.UILayout"), (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: Give a detailed overview of Vertex Group: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Typical modifier Vertex Group options.

[Vertex Groups](../meshes/properties/vertex_groups/introduction.html) are an easy way to control
which vertices are affected by a modifier, and to which extent (using their weights).
They are available when modifying meshes or lattices.

Vertex Group
:   The vertex group name.

    Invert
    :   Inverts the influence of the selected vertex group, meaning that the group
        now represents vertices that will not be deformed by the modifier.

        The setting reverses the weight values of the group.
        Only available in some modifiers.
user: Explain Flip Faces Node in complete detail according to the official Blender documentation.

assistant: # Flip Faces Node

[image reference removed]

The *Flip Faces Node* reverses the order of the vertices and edges of each selected face.
The most common use of this node is to flip the normals of a face.
Any [face corner domain](../../attributes_reference.xhtml#attribute-domains) attributes of selected faces are also reversed.

Though this node is usually used to affect normals, it is not called “Flip Normals” for an important reason.
The node does not actually interact with normals directly. Normals are defined by the
[right hand rule](https://en.wikipedia.org/wiki/Right-hand_rule#Curve_orientation_and_normal_vectors),
so if a face’s vertex list is reversed, then its normal will point in the opposite direction.
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`AssetLibraryCollection.new`](bpy.types.AssetLibraryCollection.html#bpy.types.AssetLibraryCollection.new "bpy.types.AssetLibraryCollection.new") - [`AssetLibraryCollection.remove`](bpy.types.AssetLibraryCollection.html#bpy.types.AssetLibraryCollection.remove "bpy.types.AssetLibraryCollection.remove") | - [`PreferencesFilePaths.asset_libraries`](bpy.types.PreferencesFilePaths.html#bpy.types.PreferencesFilePaths.asset_libraries "bpy.types.PreferencesFilePaths.asset_libraries") |
user: What is Introduction and how is it used in Blender Python scripting?

assistant: # Introduction

[[image reference removed]](../../../_images/render_materials_legacy-textures_introduction_menu.png)

The Texture Type list in the Texture panel of the Texture buttons.

Procedural textures are textures that are defined mathematically.
They are generally relatively simple to use,
because they do not need to be mapped in a special way.
This does not mean that procedural textures cannot become very complex.

These types of textures are ‘real’ 3D. By that we mean that they fit together perfectly at
the edges and continue to look like what they are meant to look like even when they are cut;
as if a block of wood had really been cut in two.
Procedural textures are not filtered or anti-aliased. This is hardly ever a problem:
the user can easily keep the specified frequencies within acceptable limits.
user: How do I use Introduction in Blender? Include parameters, examples, warnings and best practices.

assistant: # Introduction

The NonLinear Animation editor, or NLA editor for short, lets you animate on a higher level.
Instead of working with individual keyframes, it works with [actions](../../animation/actions.xhtml),
which are named, reusable animation segments.

[image reference removed]

The NLA editor.
user: Provide the full official documentation entry for Viewport Display, preserving all code examples.

assistant: # Viewport Display

Thickness
:   Factor that scales the thickness of the grid that is currently being displayed.

Interpolation
:   Interpolation method to use for the visualization of the fluid grid.

    Linear:
    :   Linear interpolation between voxels. Gives good smoothness and speed.

    Cubic:
    :   Cubic interpolation between voxels. Gives smoothed high quality interpolation, but is slower.

    Closest:
    :   No interpolation between voxels. Gives raw voxels.

Slice per Voxel
:   Determines how many slices per voxel should be generated.
user: Provide the full official documentation entry for Scatter on Surface Modifier, preserving all code examples.

assistant: # Scatter on Surface Modifier

The *Scatter on Surface* modifier distributes points or instances across the surface of a mesh.
It provides flexible control over how elements are placed using density, randomization,
and Poisson disk sampling.
This modifier is useful for procedural scattering of objects such as grass, rocks, or debris
on terrain or any other surface.
user: Show practical ways to work with Specials in a Blender add-on or script – include code.

assistant: Show All
:   Unhides any hidden bone collections.

Un-Solo All
:   Clear the ‘solo’ setting on all bone collections

Remove Unused
:   Remove all bone collections that have neither bones nor children.
    This is done recursively, so bone collections that only have unused children are also removed.
user: Give a detailed overview of Bézier: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Active Spline panel: Bézier Spline.

Cyclic U
:   See [Common Options](#spline-common-options).

Resolution U
:   See [Common Options](#spline-common-options).

Interpolation Tilt
:   Alters how the tilt of a segment is calculated.

Radius
:   Alters how the radius of a beveled curve is calculated.
    The effects are easier to see after [increasing the radius](../editing/curve.xhtml#modeling-curve-radius).

Smooth
:   See [Common Options](#spline-common-options).
user: Provide the full official documentation entry for UV Overlays, preserving all code examples.

assistant: # UV Overlays

[image reference removed]

The Overlays pop-over.

In the header, there is a button to turn off all overlays for the UV Editor.
This option also toggles the visibility of [UDIM](../../modeling/meshes/uv/workflows/udims.xhtml)
tile information.

The drop-down button opens a pop-over with more detailed settings.
The following categories are available:
user: Show practical ways to work with Options in a Blender add-on or script – include code.

assistant: Node Group
:   A [Node Group](../../interface/controls/nodes/groups.xhtml) with the geometry input and output.
    Those are respectively what is received and passed to the previous and next modifier in the stack.
    See [Nodes](../geometry_nodes/index.xhtml) for all available nodes.

Inputs
:   A list of the node group’s inputs which can have unique values even
    if the group is shared among multiple modifiers.

    If the input is connected to a [Field](../geometry_nodes/fields.xhtml) socket,
    there will be a toggle to switch between using a single value for the input or
    using an attribute on the input geometry. Using an attribute for input means the
    value can be different for every element.

    The attribute name used by default when using the node group in a modifier for the first
    time is defined in the [node group inputs panel](../../interface/controls/nodes/groups.xhtml).

### Warnings

Nodes that show a warning message in the node editor will also show that message here.

Custom warning messages can be created using the [Warning Node](../geometry_nodes/output/warning.xhtml).

### Output Attributes

By connecting a field socket to the group output node,
you can create custom [Attributes](../geometry_nodes/attributes_reference.xhtml)
from a [Field](../geometry_nodes/fields.xhtml) output of any node in the node tree.
The domain of the attribute must be specified in the group node’s output properties.
Note, this does not work with [Instanced Data](../geometry_nodes/instances.xhtml).

The attribute name used by default when using the node group in a modifier for the first
time is defined in the [node group outputs panel](../../interface/controls/nodes/groups.xhtml).

This panel is hidden unless output node has attribute sockets.

### Manage

Displays options for managing data within the node group,

The *Manage* panel can be hidden by disabling *Show Manage Panel*
in the modifier’s header options.
This controls whether the panel is shown for that specific modifier.

To disable the panel by default for new modifiers created from a node group asset,
toggle [Show Manage Panel Geometry Nodes](../../interface/controls/nodes/groups.xhtml#bpy-types-geometrynodetree-show-modifier-manage-panel)
in the node group’s properties.

#### Bake

Bake Target
:   Specifies where baked data should be stored. This can be overridden for individual bakes.

    Packed:
    :   The baked data is packed into the .blend file. So no separate file is necessary.

    Disk:
    :   The baked data is stored in a separate directory on disk.

Bake Path
:   Location on disk where the baked data for
    [Simulation Zones](../geometry_nodes/simulation/simulation_zone.xhtml)
    and [Bake Nodes](../geometry_nodes/geometry/operations/bake.xhtml) are stored.

#### Named Attributes

This panel displays information about all custom named attributes used by the node group.
More information is available in the
[geometry nodes inspection page](../geometry_nodes/inspection.xhtml#bpy-types-spacenodeoverlay-show-named-attributes).
user: Give a detailed overview of Inputs: syntax, arguments, return values, common patterns.

assistant: Mesh
:   Standard Mesh input.

Selection
:   The meshes used to generate a point cloud.

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

Radius
:   Radii of generated points.
user: Describe FunctionNodeCombineColor(FunctionNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # FunctionNodeCombineColor(FunctionNode)

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

*class* bpy.types.FunctionNodeCombineColor(*FunctionNode*)
:   Combine four channels into a single color, based on a particular color model

    mode
    :   Mode of color processing

        Type:
        :   enum in [Node Combsep Color Items](bpy_types_enum_items/node_combsep_color_items.html#rna-enum-node-combsep-color-items), default `'RGB'`

    *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: What is Bone Collections and how is it used in Blender Python scripting?

assistant: Manages the [Bone Collections](../../properties/bone_collections.xhtml#bpy-types-bonecollection) the bone is assigned to.

Move to Collection `M`
:   Move bones to a collection.

Assign to Collection `Shift`-`M`
:   Assign all selected bones to a collection, or unassign them,
    depending on whether the active bone is already assigned or not.

---

Show All `Ctrl`-`AccentGrave`
:   Unhides any hidden bone collections.

Assign to new Collection
:   Assigns the selected bones to a new collection named “New Collection”.
    This collection can be renamed in the [Bone Collections](../../properties/bone_collections.xhtml#bpy-types-bonecollection) panel of the Armature properties.
user: Describe TextureNodeTexStucci(TextureNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # TextureNodeTexStucci(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.TextureNodeTexStucci(*TextureNode*)
:   *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 Outputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Image
:   The input image with the vignette effect applied.

Mask
:   The generated vignette mask as a grayscale output.
    This can be used for custom compositing or to apply the vignette selectively through mix nodes.
user: What is Select Next/Previous and how is it used in Blender Python scripting?

assistant: These operators will select the next or previous control point(s),
based on the current selection
(i.e. the control points following or preceding the selected ones along the curve).
In case of a cyclic curve, the first and last points are not considered as neighbors.
user: Describe Blend from the Blender manual or Python API, including usage steps and snippets.

assistant: # Blend

The Blend texture generates a smoothly interpolated progression.
This is one of the most frequently used procedural textures.
You can use blend textures to blend other textures together (with *Stencil*),
or to create nice effects (especially with the *Mapping: Normal* trick).

[image reference removed]

Blend Texture panels.
user: Describe ThemeWidgetStateColors(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # ThemeWidgetStateColors(bpy_struct)

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

*class* bpy.types.ThemeWidgetStateColors(*bpy_struct*)
:   Theme settings for widget state colors

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

    error
    :   Color for error items

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

    info
    :   Color for informational items

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

    inner_anim
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    inner_anim_sel
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    inner_changed
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    inner_changed_sel
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    inner_driven
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    inner_driven_sel
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    inner_key
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    inner_key_sel
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    inner_overridden
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    inner_overridden_sel
    :   Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [0, 1], default (0.0, 0.0, 0.0)

    success
    :   Color for successful items

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

    warning
    :   Color for warning items

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

assistant: # Shrink/Fatten

Moves the selected vertices “inwards” or “outwards” along their normal,
all by the same distance. You can control this distance by moving the mouse up or down,
typing a number, or using the slider in the [Adjust Last Operation](../../../../../interface/undo_redo.xhtml#bpy-ops-screen-redo-last) panel.

Even Thickness `S`, `Alt`
:   Applies a larger offset to vertices that are part of a sharp corner, for a more uniform result.
    You can toggle this option by pressing `S`, holding `Alt`, or clicking the
    checkbox in the Adjust Last Operation panel.

|  |  |  |
| --- | --- | --- |
| ../../../../../_images/modeling_meshes_editing_mesh_transform_shrink-fatten_before.png   Mesh before shrink/fatten. | ../../../../../_images/modeling_meshes_editing_mesh_transform_shrink-fatten_inflate-positive.png   Inflated using a positive value. | ../../../../../_images/modeling_meshes_editing_mesh_transform_shrink-fatten_inflate-negative.png   Shrunk using a negative value. |
user: Give a detailed overview of Troubleshooting Windows – AMD: syntax, arguments, return values, common patterns.

assistant: # Troubleshooting Windows – AMD

Blender uses OpenGL for the 3D Viewport and user interface. The graphics processing unit (GPU) and driver have a big
impact on Blender’s behavior and performance.

This section lists possible solutions for graphics glitches, problems with EEVEE and Cycles, and crashes related to
your GPU.
user: What is Examples and how is it used in Blender Python scripting?

assistant: ### Blur Alpha

[[image reference removed]](../../../_images/compositing_types_converter_combine-separate_example-combine-rgba.png)

An example of blurring the alpha channel.

In this first example, we take the Alpha channel and blur it,
and then combine it back with the colors. When placed in a scene,
the edges of it will blend in, instead of having a hard edge.
This is almost like [Anti-Aliasing](../../../glossary/index.html#term-Anti-Aliasing) but in a three-dimensional sense.
Use this node setup, when adding CG elements to live action to remove any hard edges.
Animating this effect on a broader scale will make the object appear to “phase” in and out,
as an “out-of-phase” time-traveling sync effect.

### Increase Luminance

[image reference removed]

An example of the scaling the Luminance channel.

This example has a *Math (Multiply)* node increasing the luminance channel (Y)
of the image to make it brighter.
user: How do I use Introduction in Blender? Include parameters, examples, warnings and best practices.

assistant: # Introduction

The geometry of a scene is constructed from one or more objects.
These objects can range from lights to illuminate your scene, basic 2D and 3D shapes to fill it with models,
armatures to animate those models, to cameras to take pictures or make video of it all.

Each Blender [object type](types.html) (mesh, light, curve, camera, etc.)
is composed from two parts: an *Object* and *Object Data* (sometimes abbreviated to “ObData”):

Object
:   Holds information about the position, rotation and size of a particular element.

Object Data
:   Holds everything else. For example:

    Meshes:
    :   Store geometry, material list, vertex groups, etc.

    Cameras:
    :   Store focal length, depth of field, sensor size, etc.

    Each object has a link to its associated [object-data](../../editors/properties_editor.html#properties-data-tabs),
    and a single object-data may be shared by many objects.
user: Provide the full official documentation entry for Examples, preserving all code examples.

assistant: Below are examples of blending modes, as well as some practical use cases.

[image reference removed]

Blending a colored pattern with a flat color (top row) and a circular mask (bottom row).

### Fixing overexposure

The Compositing setup below shows how to fix an overexposed render by
darkening it and increasing contrast.

[image reference removed]

Example node setup showing two RGB Curves nodes and a Mix node for composition.

The top [RGB Curves Node](../../../compositing/types/color/adjust/rgb_curves.xhtml) darkens the image by linearly scaling each
color value to a smaller one.

The bottom curve node increases contrast by making small values smaller and large values larger.

Finally, the Mix node blends the two together.

### Watermark Images

In the old days, a pattern was pressed into the paper mush as it dried,
creating a mark that identified who made the paper and where it came from.
The mark was barely perceptible except in just the right light.
Probably the first form of subliminal advertising.

Nowadays, people watermark their images to identify them as personal intellectual property,
for subliminal advertising of the author or hosting service,
or simply to track their image’s proliferation throughout the web.

Blender provides a complete set of tools for you to both encode your watermark
and to tell if an image has your watermark.

#### Encoding your Watermark in an Image

First, construct your own personal watermark.
You can use your name, a word, or a shape or image not easily replicated.
While neutral gray works best using the encoding method suggested,
you are free to use other colors or patterns.
It can be a single pixel or a whole gradient; it is up to you.

In the example below, we are encoding the watermark in a specific location
in the image using the *Translate* node;
this helps later because we only have to look at a specific location for the mark.
We then use the *RGB to BW node* to convert the color image to grayscale numbers,
which we then feed into the *Map Range* node to reduce the mark to one-tenth of
its original intensity.

The *Add* node (*Mix* node with blending mode *Add*) adds the corresponding pixels,
making the ones containing the mark ever-so-slightly brighter.

[image reference removed]

Embedding a watermark in an image.

Of course, if you *want* people to notice your mark, do not scale it so much,
or make it a contrasting color. There are also many other ways,
using other mix settings and fancier rigs. Feel free to experiment!

#### Decoding an Image for your Watermark

When you see an image that you think might be yours,
use the node tree below to compare it to your stock image (non-watermarked original).
In this tree, the *Mix* node is set to Difference,
and the *Map Value* node amplifies any difference.
You can see how the original mark clearly stands out.

[image reference removed]

Checking an image for your watermark.
user: Describe ShaderNodeMix(ShaderNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # ShaderNodeMix(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.ShaderNodeMix(*ShaderNode*)
:   Mix values by a factor

    blend_type
    :   Type:
        :   enum in [Ramp Blend Items](bpy_types_enum_items/ramp_blend_items.html#rna-enum-ramp-blend-items), default `'MIX'`

    clamp_factor
    :   Clamp the factor to [0,1] range

        Type:
        :   boolean, default False

    clamp_result
    :   Clamp the result to [0,1] range

        Type:
        :   boolean, default False

    data_type
    :   Type:
        :   enum in [`'FLOAT'`, `'VECTOR'`, `'RGBA'`, `'ROTATION'`], default `'FLOAT'`

    factor_mode
    :   - `UNIFORM`
          Uniform – Use a single factor for all components.
        - `NON_UNIFORM`
          Non-Uniform – Per component factor.

        Type:
        :   enum in [`'UNIFORM'`, `'NON_UNIFORM'`], default `'UNIFORM'`

    *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 Recover from the Blender manual or Python API, including usage steps and snippets.

assistant: ### Last Session

This will load the `quit.blend` file Blender automatically saved just before exiting.
This option enables you to recover your last work [session](../../glossary/index.xhtml#term-Session) if, for example, you closed
Blender by accident.

### Auto Save

The *Auto Save* option allows you to recover the most recent automatically saved version of your file.
This is useful in the event of a crash or if you closed Blender without saving.

Selecting this option opens a file browser pointed to your system’s [Temporary Directory](../../advanced/blender_directory_layout.xhtml#temp-dir).
Auto-saved files typically have a name such as `<filename>_autosave.blend` or a random identifier,
and use the `.blend` extension.

You can configure the autosave interval and behavior in the
[Auto Save Preferences](../../editors/preferences/save_load.xhtml#bpy-types-preferencesfilepaths-use-auto-save-temporary-files).
user: How do I use Smooth Vertices in Blender? Include parameters, examples, warnings and best practices.

assistant: # Smooth Vertices

This operator smooths the selected vertices by averaging the angles between the faces.

Smoothing
:   Smoothing factor.

Repeat
:   The number of smoothing iterations.

Axes
:   Limit the effect to certain axes.

|  |  |  |
| --- | --- | --- |
| ../../../../_images/modeling_modifiers_deform_smooth_mesh-before.png   Mesh before smoothing. | ../../../../_images/modeling_modifiers_deform_smooth_mesh-one-iteration.png   Mesh after one smoothing iteration. | ../../../../_images/modeling_modifiers_deform_smooth_mesh-ten-iterations.png   Mesh after ten smoothing iterations. |
user: Explain Texture Space in complete detail according to the official Blender documentation.

assistant: This panel lets you configure the object’s [Texture Space](../../../glossary/index.xhtml#term-Texture-Space), which is a 3D box
used for generating texture coordinates without the use of a UV map.
You can visualize the texture space using the option in the
[Viewport Display](../../../scene_layout/object/properties/display.xhtml) panel.

Texture Mesh Mesh objects
:   Use another mesh for texture indices. The vertices of the two objects must be perfectly aligned
    or the UV map will be distorted.

Auto Texture Space
:   Calculates the texture space automatically.

Location X, Y, Z, Size X, Y, Z
:   Lets you define the texture space manually, relative to the object.
    Note that you can also edit it in the 3D Viewport – see [Editing](#editing) below.

Match Texture Space Curve objects
:   Modifies the *Location* and *Size* to match the object’s bounding box.
    This disables Auto Texture Space.

### Editing

Click one of these menu items, then move the mouse to adjust the texture space
and press `LMB` to confirm. While transforming, you can use keyboard shortcuts to lock
certain axes; see the status bar.

### Accessing

When setting up a material shader, you can use the *Generated* output of the
[Texture Coordinate Node](../../../render/shader_nodes/input/texture_coordinate.xhtml) to read the 3D coordinate
inside the object’s texture space. You can then pass this coordinate to a texture
node.
user: Describe BrightContrastModifier(StripModifier) from the Blender manual or Python API, including usage steps and snippets.

assistant: # BrightContrastModifier(StripModifier)

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

*class* bpy.types.BrightContrastModifier(*StripModifier*)
:   Bright/contrast modifier data for sequence strip

    bright
    :   Adjust the luminosity of the colors

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

    contrast
    :   Adjust the difference in luminosity between pixels

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

    open_mask_input_panel
    :   Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Describe Select Similar from the Blender manual or Python API, including usage steps and snippets.

assistant: Select all strokes with similar characteristics.

Mode
:   The characteristics to compare.

    Layer:
    :   Selects all the points/strokes with a similar layer index.

    Material:
    :   Selects all the points/strokes with a similar material index.

    Vertex Color:
    :   Selects all the points/strokes with a similar vertex color.

    Radius:
    :   Selects all the points/strokes with a similar stroke radius.

    Opacity:
    :   Selects all the points/strokes with a similar layer opacity

Threshold
:   How similar the selection must be.
user: Provide the full official documentation entry for Editing UVs, preserving all code examples.

assistant: # Editing UVs

After unwrap, you will likely need to arrange the UV maps,
so that they can be used in texturing or painting. Your goals for editing are:

- Stitch pieces (of UV maps) back together.
- Minimize wasted space in the image.
- Enlarge the faces where you want more detail.
- Re-size/enlarge the faces that are stretched.
- Shrink the faces that are too grainy and have too much detail.

With a minimum of dead space,
the most pixels can be dedicated to giving the maximum detail and fineness to the UV texture.
A UV face can be as small as a pixel (the little dots that make up an image)
or as large as an entire image. You probably want to make major adjustments first,
and then tweak the layout.
user: Provide the full official documentation entry for Show & Hide, preserving all code examples.

assistant: Some very common hotkey operators to control the visibility based on face sets.
These are not part of any menu and have to be used via the shortcuts.
More visibility operators can be found in the [Face Sets Menu](face_sets.html)
and the Pie Menu shortcut `Alt`-`W`. (Since visibility is often toggled via face sets.)

Box Hide
:   Draw a box to hide faces of a mesh.

Box Show
:   Draw a box to reveal hidden faces.
    This works similar to the [Box Select](../../../interface/selecting.html#tool-select-box) tool.

Toggle Visibility `Shift`-`H`
:   Hide all face sets except the active one (under the cursor).
    If face sets are already hidden, then this operator will show everything.

Hide Active Face Set `H`
:   Hide the face set under the cursor. Press `Shift`-`H` afterwards to show everything.

Show All `W`, `Alt`-`H`
:   Reveal all hidden geometry.

Invert Visible
:   Hides all visible geometry and makes all hidden geometry visible.

Hide Masked
:   Hides all masked vertices.

Grow/Shrink Visibility `PageUp`, `PageDown`
:   Grows or shrinks the visible area of the mesh along its surface.
user: Describe References from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| - [`FreestyleLineStyle.texture_slots`](bpy.types.FreestyleLineStyle.html#bpy.types.FreestyleLineStyle.texture_slots "bpy.types.FreestyleLineStyle.texture_slots") - [`LineStyleTextureSlots.add`](bpy.types.LineStyleTextureSlots.html#bpy.types.LineStyleTextureSlots.add "bpy.types.LineStyleTextureSlots.add") | - [`LineStyleTextureSlots.create`](bpy.types.LineStyleTextureSlots.html#bpy.types.LineStyleTextureSlots.create "bpy.types.LineStyleTextureSlots.create") |
user: Explain Settings in complete detail according to the official Blender documentation.

assistant: ### Surface

Sampling
:   Controls the sampling method for the world material. Selecting Auto or Manual enables
    *Multiple Importance Sampling* while None disables it. *Multiple Importance Sampling*
    is a method to sample the background texture such that lighter parts are favored,
    creating an importance map. It will produce less noise in the render in trade of artifacts ([Fireflies](../../glossary/index.xhtml#term-Fireflies)).
    Enable this when using an image texture with small area lights (like the sun),
    otherwise noise can take a long time to converge.

    Below is a comparison between *Multiple Importance Sample* off and on.
    Both images are rendered for 25 seconds (Off: 1,500 samples, On: 1,000 samples).

    |  |  |
    | --- | --- |
    | ../../_images/render_cycles_world-settings_mis-off.jpg   Multiple Importance Sample off. | ../../_images/render_cycles_world-settings_mis-on.jpg   Multiple Importance Sample on. |

Map Resolution
:   Sets the resolution of the importance map.
    A higher resolution will better detect small features in the map and give more accurate sampling
    but conversely will take up more memory and render slightly slower.
    Higher values also may produce less noise when using high-res images.

Max Bounces
:   Maximal number of bounces the background light will contribute to the render.

Shadow Caustics
:   Mark the World Shader as a refractive caustic caster. This setting can be used in conjunction with the
    [Cast and Receive caustics object settings](object_settings/object_data.xhtml#bpy-types-cyclesobjectsettings-is-caustics-caster)
    to selectively speed up refractive caustic rendering of select objects.

### Volume

Sampling Method
:   Distance:
    :   For dense volumes lit from far away *Distance* sampling is more efficient in most cases.
        Usually this shouldn’t be used for World volumes.

    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.

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

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

Step Size Biased
:   Distance between volume shader samples for world volume shaders.
    Only enabled when Render ‣ Volumes ‣ Biased is enabled.
    See [Volume Render Settings](render_settings/volumes.xhtml) for more information.

### Light Group

Light Group Cycles only
:   Select the [Light Group](../layers/passes.xhtml#bpy-types-viewlayer-active-lightgroup-index) to add the
    current *World Surface Shader* too.

    Add Light Group
    :   If the name input into the *Light Group* field does not align with an existing
        Light Group, then pressing this button will create a *Light Group* with that name
        and assign this *World Shader* to it.
user: Explain Separate in complete detail according to the official Blender documentation.

assistant: Separate different elements into new Grease Pencil objects based on specific criteria.

Selection
:   Separates the selected points or strokes into a new object.

By Material
:   Separates the geometry by creating a new object for each material.

By Layer
:   Separates the geometry by creating a new object for each layer.
    See [2D Layers](../../properties/layers.html) for more information.
user: Provide the full official documentation entry for Is Edge Smooth Node, preserving all code examples.

assistant: # Is Edge Smooth Node

[image reference removed]

The *Is Edge Smooth* node outputs true for each edge of the mesh that is *not* marked as sharp. Otherwise, if the edge
*is* marked as sharp, then the node outputs false.
user: How do I use Utility Brushes in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

No clear color assignment.
These brushes are general purpose brushes or specific.

Density
:   Brush Type: [Density](simplify.xhtml)

    Cleans up geometry by collapsing short edges. Specifically for use with [Dyntopo](../introduction/adaptive.xhtml#dyntopo-introduction).

Mask
:   Brush Type: [Mask](mask.xhtml)

    Shortcut: `M`

    Paints a selection on parts of the mesh to be unaffected by other brushes.

Draw Face Sets
:   Brush Type: [Draw Face Sets](draw_facesets.xhtml)

    Paint new, smooth or extend existing Face Sets.

Erase Multires Displacement
:   Brush Type: [Erase Multires Displacement](multires_displacement_eraser.xhtml)

    Remove displacement information on a Multiresolution modifier.

Smear Multires Displacement
:   Brush Type: [Smear Multires Displacement](multires_displacement_smear.xhtml)

    Smear displacement information on a Multiresolution modifier.
user: Describe Relations Management from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

Linking objects to a collection.

Objects and collections can be reorganized, linked, or parented directly in the *Outliner* using drag-and-drop
operations. This provides an intuitive way to manage scene hierarchies and relationships.

### Moving and Linking

- **Move:**
  Drag an object or collection onto another collection to move it there.
- **Link:**
  Drag an object (or collection) while holding `Ctrl` and drop it onto a collection
  to link it instead of moving it.
  This allows the same object or collection to be part of multiple parent collections at once.

### Parenting

- **Parent to Object:**
  Drag an object onto another object to make it a child of that object.
  Hold `Alt` while dropping to *not* keep the transform relationship (i.e. the child retains its world position).
- **Clear Parent:**
  Drag the child object out of its parent hierarchy to remove the parent relationship.
  Hold `Alt` while dropping to clear the parent while preserving the parent’s transform on the child.
- **Parent Across Collections:**
  To parent an object that resides in a different collection, hold `Shift` while dragging.

See [Parenting Objects](../../scene_layout/object/editing/parent.html#bpy-types-object-parent) for more information on parenting and transformation inheritance.
user: Explain Vertex Groups in complete detail according to the official Blender documentation.

assistant: # Vertex Groups

The Vertex groups panel allows you to specify vertex groups to use for several child particle settings.
You can also negate the effect of each vertex group with the checkboxes.
You can affect the following attributes:

Density
:   Defines the density of the particle distribution.

Length
:   Defines the length of the hair.

Clump
:   Controls the amount of clumping.
    The weight of 1.0 gives current *Clump* value, weight of 0.0 completely removes effect.

Kink
:   Controls the frequency of the children Kink.

Roughness 1
:   Adjusts the *Uniform* roughness parameter.

Roughness 2
:   Adjusts the *Random* roughness parameter.

Roughness End
:   Adjusts the *Endpoint* roughness parameter.

Twist
:   Vertex group to control the children’s *Twist* effect.
    Gives control over the direction of the twist, as well as the amount.
    The weight of 0.5 is neutral, i.e. there is no twist effect.
user: Give a detailed overview of Envelope: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Bone influence areas for envelopes method.

Envelopes is the most general skinning method. It works with all available object types for
skinning (meshes, lattices, curves, surfaces and texts).
It is based on proximity between bones and their geometry,
each bone having two different areas of influence,
shown in the *Envelope* visualization:

- The inside area, materialized by the “solid” part of the bone, and controlled by both root and tip radius.
- The outside area, materialized by the lighter part around the bone,
  and controlled by the *Distance* setting.

Envelope Distance
:   The Distance defines a volume which is the range within the bone
    has an influence on vertices of the deformed object.
    The geometry is less and less affected by the bone as it goes away by following a quadratic decay.

    [image reference removed]

    Single bone with various envelope sizes.

Envelope Weight
:   A bone property, that controls the global influence of the bone over the deformed object,
    when using the envelopes method.

    It is only useful for the parts of geometry that are “shared”,
    influenced by more than one bone (generally, at the joints…) – a bone with a high weight will
    have more influence on the result than one with a low weight…
    Note that when set to 0.0, it has the same effect as disabling the *Deform* option.

Envelope Multiply
:   This option controls how the two deforming methods interact, when they are both enabled.
    By default, when they are both active, all vertices belonging to at least one vertex group are only deformed
    through the vertex groups method. The other “orphan” vertices being handled by the envelopes one.
    When you enable this option, the “deformation influence” that this bone would have on a vertex
    (based from its envelope settings) is multiplied with this vertex’s weight in the corresponding vertex group.
    In other words, the vertex groups method is further “weighted” by the envelopes method.

Radius Head, Tail
:   Set the radius for the head and the tail of envelope bones.
    Inside this volume, the geometry if fully affected by the bone.

    [image reference removed]

    Three Armature Bones all using Envelope Weight.

    The 1st with a default radius value, the two others with differing Tail and Head radius values.
user: What is Asset Shelf Region and how is it used in Blender Python scripting?

assistant: Depending on the current mode, the asset shelf may be available, providing quick access to assets
for this specific mode (for example pose assets in *Pose Mode*, brush assets in *Sculpt Mode*).

See [Asset Shelf](../../interface/window_system/regions.xhtml#ui-region-asset-shelf) for more information.