PGCRYPT/OpenBlender_Train huggingface dataset:
user: Explain GeometryNodeDualMesh(GeometryNode) in complete detail according to the official Blender documentation.

assistant: # GeometryNodeDualMesh(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.GeometryNodeDualMesh(*GeometryNode*)
:   Convert Faces into vertices and vertices into faces

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

assistant: [image reference removed]

Driver curve in the Drivers editor.

The main area of the [Drivers editor](../../editors/drivers_editor.xhtml)
shows an [F-Curve](../../editors/graph_editor/fcurves/introduction.xhtml) that
represents the driver function.

The **X axis** maps to the output value of the driver configuration. The units depend on the setup.

The **Y axis** shows the value applied to the target property. The units depend on the property.

In the example image, if the driver value is 2.0 the property value will be 0.5.

The default F-Curve is an identity map, i.e. the value produced by the driver configuration
is applied to the driven property unchanged. If the driver output value is 2.0,
the property will be 2.0.

The driver function can be defined artistically with Bézier curve handles or
mathematically with trigonometric functions or polynomial expressions such as \(y = a + bx\).
Furthermore, the function can also be procedurally modulated with noise or cyclic repetitions.
See [Modifiers](../../editors/graph_editor/fcurves/modifiers.xhtml) for more details.
user: Give a detailed overview of Adaptive Resolution: syntax, arguments, return values, common patterns.

assistant: # Adaptive Resolution

In order for sculpting to give accurate and predictable results, Blender needs enough geometry.
Instead of starting out with a highly subdivided mesh, add geometry dynamically
by using either of the following adaptive sculpting methods.
user: Show practical ways to work with Viewer Node in a Blender add-on or script – include code.

assistant: # Viewer Node

[image reference removed]

The *Viewer* node is used to preview image data or value maps anywhere within a compositor node graph.
It is a diagnostic tool that allows users to inspect intermediate results without affecting the final output.

You can quickly assign a node to a Viewer by pressing `Shift`-`Ctrl`-`LMB` on the desired node.
To switch between multiple Viewer nodes, simply select one with `LMB`.
Only the active Viewer node (with the  icon in the header)
will be displayed in the backdrop or Image Editor.
user: Give a detailed overview of GeometryNodeMeshUVSphere(GeometryNode): syntax, arguments, return values, common patterns.

assistant: # GeometryNodeMeshUVSphere(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.GeometryNodeMeshUVSphere(*GeometryNode*)
:   Generate a spherical mesh with quads, except for triangles at the top and bottom

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

assistant: ### Keyboard Shortcuts

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

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

### Using the Image Editor

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

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

The Image Editor also has three additional options in its header to view Images with or
without Alpha, or to view the Alpha or Z itself.
Click and holding the mouse in the Image displayed allows you to sample the values.
user: Provide the full official documentation entry for XrComponentPaths(bpy_struct), preserving all code examples.

assistant: # XrComponentPaths(bpy_struct)

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

*class* bpy.types.XrComponentPaths(*bpy_struct*)
:   Collection of OpenXR component paths

    new(*path*)
    :   new

        Parameters:
        :   **path** (*string**,* *(**never None**)*) – Path, OpenXR component path

        Returns:
        :   Component Path, Added component path

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

    remove(*component_path*)
    :   remove

        Parameters:
        :   **component_path** ([`XrComponentPath`](bpy.types.XrComponentPath.html#bpy.types.XrComponentPath "bpy.types.XrComponentPath"), (never None)) – Component Path

    find(*path*)
    :   find

        Parameters:
        :   **path** (*string**,* *(**never None**)*) – Path, OpenXR component path

        Returns:
        :   Component Path, The component path with the given path

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

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

assistant: # RenderPass(bpy_struct)

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

*class* bpy.types.RenderPass(*bpy_struct*)
:   channel_id
    :   Type:
        :   string, default “”, (readonly, never None)

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

    fullname
    :   Type:
        :   string, default “”, (readonly, never None)

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

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

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: For instance X: 0.5 and Y: 0.5 would produce an image which width and
height would be half of what they used to be.

Use this node to match image sizes.
Most nodes produce an image that is the same size as the image input into their top image socket.
To uniformly combine two images of different size,
the second image has to be scaled up to match the resolution of the first.
user: Give a detailed overview of Usage: syntax, arguments, return values, common patterns.

assistant: # Usage

Drivers can be added to properties via their context menu, a shortcut, copy-pasted,
or by typing an expression directly into the property’s value.

After adding drivers, they are usually modified in the [Drivers editor](../../editors/drivers_editor.xhtml),
or via a simplified *Edit Driver* popover invoked from the property context menu.
user: Give a detailed overview of Internet Access: syntax, arguments, return values, common patterns.

assistant: If the add-on needs to use internet, it must check for the (read-only) property `bpy.app.online_access`.
This option is controlled by Preferences, which can be overriding via command-line
(`--offline-mode` / `--online-mode`).

For better error messages, you can check also for `bpy.app.online_access_overriden`,
to determine whether users can turn [Allow Online Access](../../editors/preferences/system.xhtml#bpy-types-preferencessystem-use-online-access)
on the preferences, or not.
user: What is FModifierNoise(FModifier) and how is it used in Blender Python scripting?

assistant: # FModifierNoise(FModifier)

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

*class* bpy.types.FModifierNoise(*FModifier*)
:   Give randomness to the modified F-Curve

    blend_type
    :   Method of modifying the existing F-Curve

        Type:
        :   enum in [`'REPLACE'`, `'ADD'`, `'SUBTRACT'`, `'MULTIPLY'`], default `'REPLACE'`

    depth
    :   Amount of fine level detail present in the noise

        Type:
        :   int in [0, 32767], default 0

    lacunarity
    :   Gap between successive frequencies. Depth needs to be greater than 0 for this to have an effect

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

    offset
    :   Time offset for the noise effect

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

    phase
    :   A random seed for the noise effect

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

    roughness
    :   Amount of high frequency detail. Depth needs to be greater than 0 for this to have an effect

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

    scale
    :   Scaling (in time) of the noise

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

    strength
    :   Amplitude of the noise - the amount that it modifies the underlying curve

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

    use_legacy_noise
    :   Use the legacy way of generating noise. Has the issue that it can produce values outside of -1/1

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Line Art

The *Line Art* panel is used to enable extra display options for customizing
Line Art rendering for a specific object.

[image reference removed]

Line Art panel.

Usage
:   How the object is loaded into Line Art.
    This property overrides the parent collection’s [Line Art](../../collections/collections.html#scene-layout-collections-line-art) usage.

    Inherit:
    :   No special loading strategy for Line Art.
        Loading of the object is controlled by parent collection’s Line Art settings.

    Include:
    :   Force include the object into Line Art calculation
        even if its parent collection specifies otherwise.

    Intersection Only:
    :   The object will only produce intersection lines in the scene and its own geometry stays invisible.

    Occlusion Only:
    :   The object will only cause occlusion to existing feature lines and its geometry stays invisible.

    Exclude:
    :   The object will not be loaded into Line Art at all.

    No Intersection:
    :   The object will not generate intersection lines on itself or with other objects in scene.

    Force Intersection:
    :   Generate intersection lines even with objects that disabled intersection.

Override Crease
:   Allows the object to have a different crease value than the global one set in the Line Art modifier.

    Crease
    :   Override crease value for the object.

Intersection Priority
:   Assigns an intersection priority value for this object.
    The intersection line will be included into the object with the higher intersection priority value.
user: Give a detailed overview of Switching Objects: syntax, arguments, return values, common patterns.

assistant: If you enter a mode such as Weight Paint for an object and then select another
object, Blender will typically switch back to Object Mode.
This means that, if you want to weight paint the other object too,
you have to enter the mode a second time.

There is a way of avoiding this, however. Once you enter a mode, the
[Outliner](../outliner/introduction.xhtml) will show a dot next
to other objects that also support it. By clicking such a dot, you can
switch over to another object without leaving the mode.

Alternatively, you can hover over the other object in the 3D Viewport
and press `Alt`-`Q`.
user: What is Getting Help and how is it used in Blender Python scripting?

assistant: If you’re unsure about a change, formatting, or workflow, don’t hesitate to ask questions:

- Join the [Blender Chat #docs](https://chat.blender.org/#/room/#docs:blender.org) channel.
- Open an issue at the [documentation project](https://projects.blender.org/blender/documentation)
  for broader discussions or complex questions.

Thank you for helping improve Blender’s documentation!
user: Give a detailed overview of Outputs: syntax, arguments, return values, common patterns.

assistant: Geometry
:   The input geometry with two additions:

    - A `guide_curve_index` attribute that stores, for every curve,
      the index of its assigned guide curve.
    - A [anonymous attribute](../../attributes_reference.xhtml#anonymous-attributes) representing the guide
      selection.
      The resulting geometry still contains both normal curves and the chosen guide curves.

Guide Curves
:   A geometry output that includes only the curves selected as guides.

Guide Index
:   An integer attribute giving, for each curve, the index of the closest guide curve
    with the same *Group ID*.

Guide Selection
:   A boolean selection attribute that is true only for curves that were chosen
    as guides.
    This can be used to isolate, visualize, or further process the guide curves.
user: How do I use CollectionProperty(Property) in Blender? Include parameters, examples, warnings and best practices.

assistant: # CollectionProperty(Property)

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

*class* bpy.types.CollectionProperty(*Property*)
:   RNA collection property to define lists, arrays and mappings

    fixed_type
    :   Fixed pointer type, empty if variable type

        Type:
        :   [`Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct"), (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: Explain Burn into Image in complete detail according to the official Blender documentation.

assistant: Add metadata as text to the render.

Font Size
:   Set the size of the text.

Text Color
:   Set the color and alpha of the stamp text.

Background
:   Set the color and alpha of the color behind the text.

Include Labels
:   Displays the labels before the metadata text. For example,
    “Camera” in front of the camera name, etc.
user: Show practical ways to work with Simulation Nodes in a Blender add-on or script – include code.

assistant: # Simulation Nodes

Through the use of [Simulation Zones](../modeling/geometry_nodes/simulation/simulation_zone.xhtml),
[Geometry Nodes](../modeling/geometry_nodes/index.xhtml) can be used to create custom physic simulations through nodes.
Simulation zones allow the result of one frame to influence the next one.
That way even a set of simple rules can lead to complex results, with the passing of time.
The most common type of them is physics simulation, with specific solvers for physical phenomena.
user: Provide the full official documentation entry for Cloth on Armature, preserving all code examples.

assistant: Clothing can be simulated and pinned to an armature.
For example, a character could have a baggy tunic pinned to the character’s waist with a belt.

The typical workflow for pinning:

1. Set the armature to its bind pose.
2. Model clothing that encloses but does not penetrate the character’s mesh.
3. Parent the clothing objects to the armature. The armature will now have several child meshes bound to it.
4. Create a new vertex group on each cloth object for its pinned vertices.
5. Add vertices to be pinned to this vertex group and give these vertices nonzero weights
   (you probably want weight = 1).
   For example the belt area of the tunic would be in the vertex group and have weight one.
6. Designate the clothing objects as “cloth” in the Physics tab of the Properties.
   Make sure the Cloth Modifier is below the Armature Modifier in the modifier stack.
7. In the cloth Shape panel select the vertex group.
8. Add [collision physics](../collision.html) to the character’s mesh.
9. The clothing is now ready; non-pinned vertices will be under control of the Cloth modifier.
   Pinned vertices will be under control of the Armature modifier.

[Regression blend-file](https://archive.blender.org/wiki/2015/index.php/File:Cloth-regression-armature.blend).
user: Give a detailed overview of UV Maps: syntax, arguments, return values, common patterns.

assistant: If you have a mesh object selected, you’ll find its UV maps in the Data tab of the
[Properties editor](../../../editors/properties_editor.xhtml). After selecting a map,
you can view and edit it in the [UV editor](../../../editors/uv/introduction.xhtml).

One mesh can have multiple UV maps (e.g. one map per texture), although it’s
also possible to reuse a UV map for multiple textures.

[image reference removed]

The UV Maps panel in the Data tab.

/ Active Render
:   Marks the UV map as the the default one for rendering. The *Active Render* UV map is used for:

    - The [UV Pass](../../../render/layers/passes.xhtml#bpy-types-viewlayer-use-pass-uv) for compositing
    - The [Texture Coordinate Node](../../../render/shader_nodes/input/texture_coordinate.xhtml) for material shading.
    - The [UV Map Node](../../../render/shader_nodes/input/uv_map.xhtml) for material shading when no UV map is specified.

Add UV Map
:   Duplicates the selected UV map, or creates a new one if the list is empty.

Remove UV Map
:   Removes the selected UV map.
user: Explain – Rendered in complete detail according to the official Blender documentation.

assistant: Render the 3D Viewport using the scene’s *Render Engine*, for interactive rendering.
This gives a preview of the final result before compositing, including scene lighting effects.

The options are the same as for *Material Preview*, except that
the *Render Pass* selector will offer different passes if the scene
uses the [Cycles](../../../render/cycles/introduction.xhtml) render engine.
user: Describe Save and Override from the Blender manual or Python API, including usage steps and snippets.

assistant: The workspaces are saved in the blend-file.
When you open a file, enabling [Load UI](../../files/blend/open_save.xhtml#file-load-ui) in the File Browser indicates that Blender should
use the file’s screen layout rather than the current one.

A custom set of workspaces can be saved as a part of the [Defaults](../../getting_started/configuration/defaults.xhtml).
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: String
:   The input string to be evaluated.

Operation
:   Determines how the input string is compared to the key:

    Starts With:
    :   True if the input string begins with the key.

    Ends With:
    :   True if the input string ends with the key.

    Contains:
    :   True if the input string contains the key anywhere within it.

Key
:   The target string to compare against.
user: What is Adding and Removing Vertices and how is it used in Blender Python scripting?

assistant: It is not possible to add or remove vertices in a shape key.
The number of vertices and their connectivity is defined by the object’s topology (mesh, curve, surface, or lattice).
A shape key only stores the positions of existing vertices, so all shape keys always include every vertex.

When new vertices are added, all existing shape keys will record them at their creation position.
Although it is technically possible to add or delete vertices after creating shape keys,
it is best practice to finalize the mesh topology before creating shape keys.
user: Explain Repositories in complete detail according to the official Blender documentation.

assistant: By default Blender has a Remote Repository pointing towards the
[Official Blender Extensions Platform](https://extensions.blender.org) and two Local Repositories.

In the cases where more repositories are needed (e.g., to access third party extension platforms),
new repositories can be added.

[image reference removed]

Repositories.

To add new repositories click on the + icon:

Add Remote Repository
:   Add a repository from a URL.

Add Local Repository
:   Add a repository which will be managed by the user (to be used with Install from Disk).

To remove repositories click on the - icon:

Remove Repository
:   Remove an extension repository.

Remove Repository & Files
:   Remove a repository and delete all associated files when removing.

These changes are permanent and cannot be reversed.

### Remote Repository

Remote repository with support for listing and updating extensions.

Options:

Check for Updates on Startup
:   Allows Blender to check for updates upon launch.
    When updates are available a notification will be visible on the status bar.

Access Token
:   Personal access token, may be required by some repositories.

### Local Repository

A repository managed manually by the users.

There are two types of local repositories. By default new local repositories are added as User repositories.
This is what you want most of the time.

After creating a repository they can be changed in the Advanced options to have a source System.
These repositories are intended to [bundle extensions](../../advanced/deploying_blender.xhtml#deploying-blender-bundling)
with Blender, to make it portable.
user: What is Posterize and how is it used in Blender Python scripting?

assistant: # Posterize

[image reference removed]

The *Posterize Node* reduces the number of colors in image, converting
smooth gradients into sharp transitions.
This node is useful for generating masks in particular for rotoscoping.
user: Give a detailed overview of Displacement Only: syntax, arguments, return values, common patterns.

assistant: The most accurate and memory intensive displacement method is to apply true displacement to
the mesh surface.

It requires the mesh to be finely subdivided, which can be memory intensive.
[Adaptive Subdivision](../../../modeling/modifiers/generate/subdivision_surface.xhtml#modifiers-generate-subsurf-adaptive-subdivision) is the best way
to subdivide the mesh, so that exactly the right amount of subdivision is used depending on
the distance of the object to the camera.

For baked displacement maps, best results are achieved with 16 or 32-bit float maps,
as 8-bit images often can not represent all the necessary detail.
user: Explain Space Image Mode All Items in complete detail according to the official Blender documentation.

assistant: # Space Image Mode All Items

VIEW:
:   View.

    Inspect images or render results.

UV:
:   UV Editor.

    View and edit UVs.

PAINT:
:   Paint.

    Paint images in 2D.

MASK:
:   Mask.

    View and edit masks.
user: Provide the full official documentation entry for Script Operators, preserving all code examples.

assistant: # Script Operators

bpy.ops.script.execute_preset(*\**, *filepath=''*, *menu_idname=''*)
:   Load a preset

    Parameters:
    :   - **filepath** (*string**,* *(**optional**,* *never None**)*) – filepath
        - **menu_idname** (*string**,* *(**optional**,* *never None**)*) – Menu ID Name, ID name of the menu this was called from

    File:
    :   [startup/bl_operators/presets.py:285](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/presets.py#L285)

bpy.ops.script.python_file_run(*\**, *filepath=''*)
:   Run Python file

    Parameters:
    :   **filepath** (*string**,* *(**optional**,* *never None**)*) – Path

bpy.ops.script.reload()
:   Reload scripts
user: Describe References from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| - [`FreestyleModules.new`](bpy.types.FreestyleModules.html#bpy.types.FreestyleModules.new "bpy.types.FreestyleModules.new") - [`FreestyleModules.remove`](bpy.types.FreestyleModules.html#bpy.types.FreestyleModules.remove "bpy.types.FreestyleModules.remove") | - [`FreestyleSettings.modules`](bpy.types.FreestyleSettings.html#bpy.types.FreestyleSettings.modules "bpy.types.FreestyleSettings.modules") |
user: Explain Tools in complete detail according to the official Blender documentation.

assistant: ### Invalid Selection

There are times when selection fails under some configurations. Often, this is noticeable in mesh *Edit Mode*,
selecting vertices/edges/faces where random elements are selected.

Internally Blender uses [OpenGL](../glossary/index.html#term-OpenGL) for selection, so the graphics card driver requires Blender to give it correct
results in the format it expects.

Possible Solutions:

Disable [Multisampling](../glossary/index.html#term-Multisampling)
:   This is by far the most common cause of selection issues.

    There are known problems with some graphics cards when using multisampling.

    You can disable this option by turning multisampling off in your graphics card driver options.

Change Anti-Aliasing Sample Settings
:   Depending on your OpenGL configuration, some specific sample settings may work while others fail.

    Unfortunately finding a working configuration involves trial & error testing.

Upgrade Graphics Driver
:   As with any OpenGL-related issues, using recent drivers can resolve problems.

    However, it should be noted that this is a fairly common problem and remains unresolved with many drivers.
user: Provide the full official documentation entry for basic.pivot, preserving all code examples.

assistant: Single-bone rig type that creates a ‘custom pivot’ control for rotating and scaling its child sub-rigs.

This type of control transforms its children when rotated or scaled, while moving it
merely changes the pivot point used by rotation or scaling.

Master Control
:   When enabled an extra parent control bone with a box widget is created to allow moving the rig.
    It is also required by all other options besides *Deform Bone*.

Widget Type
:   Allows selecting one of the predefined widgets to generate for the master control instead of the default cube.

Switchable Parent
:   Generates a mechanism for switching the effective parent of the rig based on the value of a custom property.

Register Parent
:   Registers the rig as a potential parent scope for its child sub-rigs’ parent switches.

    Tags
    :   Specifies additional comma-separated tag keywords for the registered parent scope.
        They can be used by other rigs to filter parent choices, or for selecting the default parent.

        Some of the existing tags that are useful here:

        `injected` (special)
        :   The parent scope will be made available for all children of the *parent* sub-rig,
            rather than just this rig’s children.

        `held_object`
        :   A control for the object held in the character’s hand. Preferred by finger IK.

            The `injected,held_object` combination is perfect for such a control.

Pivot Control
:   Disabling this avoids generating the actual custom pivot control, effectively turning this rig type
    into a version of [basic.super_copy](#basic-super-copy) with parent switching support and a different widget.

Deform Bone
:   When enabled a deform bone will be created.
user: Explain MeshPolygon(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # MeshPolygon(bpy_struct)

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

*class* bpy.types.MeshPolygon(*bpy_struct*)
:   Polygon in a Mesh data-block

    area
    :   Read only area of this face

        Type:
        :   float in [0, inf], default 0.0, (readonly)

    center
    :   Center of this face

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

    hide
    :   Type:
        :   boolean, default False

    index
    :   Index of this face

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

    loop_start
    :   Index of the first loop of this face

        Type:
        :   int in [0, inf], default 0

    loop_total
    :   Number of loops used by this face

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

    material_index
    :   Material slot index of this face

        Type:
        :   int in [0, inf], default 0

    normal
    :   Local space unit length normal vector for this face

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

    select
    :   Type:
        :   boolean, default False

    use_smooth
    :   Type:
        :   boolean, default False

    vertices
    :   Vertex indices

        Type:
        :   int array of 3 items in [0, inf], default (0, 0, 0)

    edge_keys
    :   (readonly)

    loop_indices
    :   (readonly)

    flip()
    :   Invert winding of this face (flip its normal)

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

assistant: # Introduction

Motion Tracking is used to track the motion of objects and/or a camera and, through the constraints,
to apply this tracking data to 3D objects (or just one), which have either been created in Blender or
imported into the application. Blender’s motion tracker supports a couple of very powerful tools for 2D tracking and
3D motion reconstruction, including camera tracking and object tracking, as well as some special features like
the plane track for compositing. Tracks can also be used to move and deform masks for rotoscoping in the Mask Editor,
which is available as a special mode in the Movie Clip Editor.
user: What is GeometryNodeToolFaceSet(GeometryNode) and how is it used in Blender Python scripting?

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

assistant: There are several methods of adding new keys. Namely:

- In the 3D Viewport and Video Sequencer Preview, pressing `I` will key properties based on the
  [Default Key Channels](../../editors/preferences/animation.xhtml#bpy-types-preferencesedit-key-insert-channels) User Preferences.
- When a [Keying Set](keying_sets.xhtml) is active,
  it is used instead of reading the User Preferences.
- Hovering over a property and pressing `I` or with the context menu by `RMB`
  a property and choose *Insert Keyframe* from the menu.
- With the User Preference “Pie Menu on Drag” enabled, holding down `I`
  and moving the cursor will bring up a pie menu to insert one of Location, Rotation, Scale, and Available.

### Auto Keyframe

[image reference removed]

Timeline Auto Keyframe.

Auto Keyframe is the record button in the *Timeline* header. Auto Keyframe adds
keyframes automatically to the set frame if the value for transform type properties changes.

See [Timeline Keyframe Control](../animation_editors.xhtml#bpy-types-toolsettings-use-keyframe-insert-auto) for more info.
user: Explain Example in complete detail according to the official Blender documentation.

assistant: [image reference removed]

Render result, left and right views.

The views to render are defined in the current scene views,
in a similar way as you define the composite output resolution in the current scene render panel,
regardless of the Image nodes resolutions or Render Layers from different scenes.
user: How do I use Behavior in Blender? Include parameters, examples, warnings and best practices.

assistant: When executed, this node evaluates the connected closure’s internal node graph.
All input values are passed into the closure by name, and all resulting values are returned through the corresponding
outputs.

If no closure is connected, or if the node is muted, *Evaluate Closure* automatically passes through any matching
inputs and outputs by name. This *pass-through mode* makes closures optional and allows node groups to function even
without one.

Evaluation occurs in the local context of the node tree where *Evaluate Closure* resides, inheriting relevant fields,
attributes, and geometry data.
user: Give a detailed overview of Outputs: syntax, arguments, return values, common patterns.

assistant: Corner Index
:   The geometry-wide index of the selected corner. You can pass this to the
    [Evaluate at Index Node](../../utilities/field/evaluate_at_index.xhtml) or the
    [Sample Index Node](../../geometry/sample/sample_index.xhtml) (with the domain set to Face Corner)
    to retrieve details about the corner.

Total
:   The number of corners in the face, which is also its number of edges.
user: Describe CompositorNodeGlare(CompositorNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # CompositorNodeGlare(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.CompositorNodeGlare(*CompositorNode*)
:   Add lens flares, fog and glows around bright parts of the image

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

assistant: Grid
:   The input signed distance field to be filtered.

Width
:   The radius of the median filter kernel, measured in voxels.
    Larger widths produce stronger smoothing by considering a wider
    neighborhood around each voxel.

Iterations
:   The number of times the median filter is applied.
    Multiple iterations increase smoothing and noise reduction while
    maintaining edge sharpness.
user: Show practical ways to work with Plane Track in a Blender add-on or script – include code.

assistant: # Plane Track

[image reference removed]

Plane Track panel.

Its properties are shown only when a plane track is selected.

Name
:   The name of the selected plane track is shown. It can also be changed from here.

Auto Keyframe
:   Toggles the auto-keyframing for corners of the plane track.
    With this enabled, keyframes will automatically get inserted when any corner is moved.

Image
:   Field to select or create an image which will be displayed inside the plane track.
    This image is for preview purposes in the Movie Clip editor only.
    To include it in your final render,
    see [Plane Track Deform node](../../../../../compositing/types/tracking/plane_track_deform.xhtml).

New Image from Plane Track
:   Creates an image from the pixels of the Movie Clip that the plane marker “sees” at the current frame.
    This allows to create an unwarped texture of any flat surface in the footage.
    The resulting image can then be used for editing and retouching, for example to paint out certain parts
    of the footage.

Update Image from Plane Track
:   Updates the pixels of the active Plane Track’s image.

Opacity
:   Used to set the opacity of this image. Again,
    this is for display purposes only, and will not affect your final render.
user: Explain Key(ID) in complete detail according to the official Blender documentation.

assistant: # Key(ID)

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

*class* bpy.types.Key(*ID*)
:   Shape keys data-block containing different shapes of geometric data-blocks

    animation_data
    :   Animation data for this data-block

        Type:
        :   [`AnimData`](bpy.types.AnimData.html#bpy.types.AnimData "bpy.types.AnimData"), (readonly)

    eval_time
    :   Evaluation time for absolute shape keys

        Type:
        :   float in [0, 1.04857e+06], default 0.0

    key_blocks
    :   Shape keys

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

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

    use_relative
    :   Make shape keys relative, otherwise play through shapes as a sequence using the evaluation time

        Type:
        :   boolean, default False

    user
    :   Data-block using these shape keys

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Links that are useful while writing scripts:

- [Python.org](https://www.python.org/)
  – General information about Python.
- [Blender Python API](https://docs.blender.org/api/current/)
  – Official API documentation. Use this for referencing while writing scripts.
- [API Introduction](https://docs.blender.org/api/current/info_quickstart.html)
  – A short introduction to get you started with the API. Contains examples.

Links that deal with distributing your scripts:

- [Creating Add-ons](https://developer.blender.org/docs/handbook/addons/guidelines/)
  – Add-ons are used to encapsulate and distribute scripts.
- [Creating Extensions](../extensions/getting_started.html#extensions-getting-started)
  – Share add-ons on the [Blender Extensions](https://extensions.blender.org/) platform.