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

assistant: # IO_FH_gltf2(FileHandler)

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

*class* bpy.types.IO_FH_gltf2(*FileHandler*)
:   *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 How to Create Extensions: syntax, arguments, return values, common patterns.

assistant: # How to Create Extensions

Creating an extension takes only a few steps:

1. Open the directory containing the add-on code or theme file.
2. Add a [blender_manifest.toml](#manifest) file with all the required meta-data `(name, maintainer, ...)`.
3. Use the [Blender command-line tool](../command_line/extension_arguments.xhtml#command-line-args-extension-build) to build the extension .zip file.

How to publish to the [Blender Extensions Platform](https://extensions.blender.org):

- [Install from Disk](../../editors/preferences/extensions.xhtml#prefs-extensions-install) to test if everything is working well.
- [Upload the .zip file](https://extensions.blender.org/submit/) (this step requires Blender ID).

The extension will be held for [review](https://extensions.blender.org/approval-queue/),
and published once the moderation team approves it.
user: Provide the full official documentation entry for Keymap Information, preserving all code examples.

assistant: The left side of the Status Bar displays mouse button shortcuts and the keymap of the active tool.
In editors with a Toolbar, tapping `Alt` (or `Option` on macOS)
shows the hotkeys to change to a desired tool.

[image reference removed]
user: Describe GreasePencilFrame(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GreasePencilFrame(bpy_struct)

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

*class* bpy.types.GreasePencilFrame(*bpy_struct*)
:   A Grease Pencil keyframe

    drawing
    :   A Grease Pencil drawing

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

    frame_number
    :   The frame number in the scene

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

    keyframe_type
    :   Type of keyframe

        - `KEYFRAME`
          Keyframe – Normal keyframe, e.g. for key poses.
        - `BREAKDOWN`
          Breakdown – A breakdown pose, e.g. for transitions between key poses.
        - `MOVING_HOLD`
          Moving Hold – A keyframe that is part of a moving hold.
        - `EXTREME`
          Extreme – An ‘extreme’ pose, or some other purpose as needed.
        - `JITTER`
          Jitter – A filler or baked keyframe for keying on ones, or some other purpose as needed.
        - `GENERATED`
          Generated – A key generated automatically by a tool, not manually created.

        Type:
        :   enum in [`'KEYFRAME'`, `'BREAKDOWN'`, `'MOVING_HOLD'`, `'EXTREME'`, `'JITTER'`, `'GENERATED'`], default `'KEYFRAME'`

    select
    :   Frame Selection in the Dope Sheet

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

assistant: [image reference removed]

Flip Visual Effect.

Axis
:   Which axis or axes to flip the object about.

    Horizontal:
    :   When enabled, shows the object flipped horizontally.

    Vertical:
    :   When enabled, shows the object flipped vertically.
user: What is Metaball Properties and how is it used in Blender Python scripting?

assistant: # Metaball Properties

All metaball objects of a same [family](editing.xhtml#meta-ball-object-families) in a scene interact with each other.
The settings in the *Metaball* section apply to all meta objects of the active family. In Edit Mode,
the *Active Element* panel is shown for [editing](editing.xhtml#meta-ball-editing) individual metaball elements.
user: Show practical ways to work with Enabling Add-on in a Blender add-on or script – include code.

assistant: 1. Open Blender and go to [Add-ons](../../editors/preferences/addons.xhtml) section of the [Preferences](../../editors/preferences/index.xhtml).
2. Search “Manage UI Translations” and check the *Enable Add-on* checkbox.
user: Provide the full official documentation entry for Transform Pivot Full Items, preserving all code examples.

assistant: # Transform Pivot Full Items

BOUNDING_BOX_CENTER:
:   Bounding Box Center.

    Pivot around bounding box center of selected object(s).

CURSOR:
:   3D Cursor.

    Pivot around the 3D cursor.

INDIVIDUAL_ORIGINS:
:   Individual Origins.

    Pivot around each object’s own origin.

MEDIAN_POINT:
:   Median Point.

    Pivot around the median point of selected objects.

ACTIVE_ELEMENT:
:   Active Element.

    Pivot around active object.
user: Provide the full official documentation entry for LaplacianSmoothModifier(Modifier), preserving all code examples.

assistant: # LaplacianSmoothModifier(Modifier)

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

*class* bpy.types.LaplacianSmoothModifier(*Modifier*)
:   Smoothing effect modifier

    invert_vertex_group
    :   Invert vertex group influence

        Type:
        :   boolean, default False

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

    lambda_border
    :   Lambda factor in border

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

    lambda_factor
    :   Smooth effect factor

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

    use_normalized
    :   Improve and stabilize the enhanced shape

        Type:
        :   boolean, default True

    use_volume_preserve
    :   Apply volume preservation after smooth

        Type:
        :   boolean, default True

    use_x
    :   Smooth object along X axis

        Type:
        :   boolean, default True

    use_y
    :   Smooth object along Y axis

        Type:
        :   boolean, default True

    use_z
    :   Smooth object along Z axis

        Type:
        :   boolean, default True

    vertex_group
    :   Name of Vertex Group which determines influence of modifier per point

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Mesh
:   The geometry to retrieve the attribute from.

Value
:   A field to evaluate on the *Source* geometry for use with the transfer method.

Group ID
:   Is evaluated on the face domain and splits the input mesh into multiple parts, each with its own id.

Sample Position
:   The position to start from when finding the closest location on the target mesh.
    By default, this is the same as if the [Position Node](../../geometry/read/position.html) was connected.

Sample Group ID
:   Determines in which group the closest nearest surface is detected.
user: What is Inputs and how is it used in Blender Python scripting?

assistant: Geometry
:   The input geometry to displace.

Selection
:   Determines which elements of the geometry are affected by the displacement.
    Unselected elements remain unchanged.

Strength
:   The distance to move each element along the chosen offset direction or vector.

Offset Method
:   Determines how the displacement direction is defined.

    Normal:
    :   Offsets elements along their surface normal direction.

    Vector:
    :   Offsets elements according to a custom input vector.

Offset Distance Normal
:   The displacement distance when using *Normal* mode.

Offset Vector Vector
:   The displacement vector when using *Vector* mode.
    The vector is normalized internally unless otherwise specified.

Substeps
:   The number of intermediate steps to divide the displacement into.
    Fields, including normal and position, are re-evaluated at each substep for more stable
    or accurate iterative results.

Post Substep Process
:   A [Node Closures](../../utilities/closure/index.xhtml)
    that defines a geometry operation to apply after each substep of the displacement.
    This allows additional geometry processing to be performed during the iterative displacement.

    The closure has the following parameters:

    - **Geometry** – The geometry at the current substep.
    - **Selection** – The selected elements at that stage.
    - **Strength** – The displacement strength for the substep.
    - **Substep Index** – The current substep iteration number.
user: How do I use ShaderNodeOutputLight(ShaderNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # ShaderNodeOutputLight(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.ShaderNodeOutputLight(*ShaderNode*)
:   Output light information to a light object

    is_active_output
    :   True if this node is used as the active output

        Type:
        :   boolean, default False

    target
    :   Which renderer and viewport shading types to use the shaders for

        - `ALL`
          All – Use shaders for all renderers and viewports, unless there exists a more specific output.
        - `EEVEE`
          EEVEE – Use shaders for EEVEE renderer.
        - `CYCLES`
          Cycles – Use shaders for Cycles renderer.

        Type:
        :   enum in [`'ALL'`, `'EEVEE'`, `'CYCLES'`], default `'ALL'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: - [Mesh Edit Mode](../../modeling/meshes/selecting/index.html)
- [Curve Edit Mode](../../modeling/curves/selecting.html)
- [Surface Edit Mode](../../modeling/surfaces/selecting.html)
- [Metaball Edit Mode](../../modeling/metas/toolbar/index.html#meta-toolbar-index)
- [Text Edit Mode](../../modeling/texts/selecting.html)
- [Grease Pencil Edit Mode](../../grease_pencil/modes/edit/selecting.html)
- [Bone Edit Mode](../../animation/armatures/bones/selecting.html)
- [Lattice Edit Mode](../../animation/lattice.html)
user: How do I use Outputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Transform
:   [Transformation Matrix](../../../../glossary/index.xhtml#term-Transformation-Matrix) containing the location, rotation and scale of the object.

Location
:   Location of the object in world space.

Rotation
:   Rotation of the object in world space.

Scale
:   Scale of the object in world space.

Geometry
:   Geometry of the object in world space with all its modifiers applied.
user: Provide the full official documentation entry for Cycles Render Devices, preserving all code examples.

assistant: Changes the [Computing Device](../../render/cycles/render_settings/index.html#bpy-types-cyclesrendersettings-device)
the [Cycles](../../render/cycles/index.html) render engine uses to render images.
Cycles can use either the CPU or certain GPUs to render images,
for more information see the [GPU Rendering](../../render/cycles/gpu_rendering.html) page.

None:
:   When set to *None* or when the only option is *None*:
    the CPU will be used as the computing device for Cycles.

CUDA:
:   If the system has a compatible NVIDIA CUDA device, it will be available as an option for rendering with Cycles.

OptiX:
:   If the system has a compatible NVIDIA OptiX device, it will be available as an option for rendering with Cycles.

HIP:
:   If the system has a compatible AMD HIP device, it will be available as an option for rendering with Cycles.

oneAPI:
:   If the system has a compatible Intel oneAPI device, it will be available as an option for rendering with Cycles.

Metal:
:   If the system has a compatible Apple Metal device, it will be available as an option for rendering with Cycles.

Distribute Memory Across Devices
:   Allocates resources across multiple GPUs rather than duplicating data,
    effectively freeing up space for larger scenes. Note that in order for this option to be available,
    the GPUs must be connected together with a high bandwidth communication protocol.

    Currently only NVLink on NVIDIA GPUs is supported.

Embree on GPU
:   Enables the use of hardware ray tracing on Intel GPUs, providing better overall performance.

    Only supported with oneAPI rendering devices.

HIP RT
:   Speeds up rendering by enabling AMD hardware ray tracing on RDNA2 and above.

    This feature is only available when using a *HIP* render device.

MetalRT
:   MetalRT for ray tracing uses less memory for scenes which use curves extensively,
    and can give better performance in specific cases.

    Off:
    :   Disable MetalRT (uses BVH2 layout for intersection queries).

    On:
    :   Enable MetalRT for intersection queries.

    Auto:
    :   Automatically pick the fastest intersection method.
user: Give a detailed overview of LineStyleGeometryModifier_BezierCurve(LineStyleGeometryModifier): syntax, arguments, return values, common patterns.

assistant: # LineStyleGeometryModifier_BezierCurve(LineStyleGeometryModifier)

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

*class* bpy.types.LineStyleGeometryModifier_BezierCurve(*LineStyleGeometryModifier*)
:   Replace stroke backbone geometry by a Bézier curve approximation of the original backbone geometry

    error
    :   Maximum distance allowed between the new Bézier curve and the original backbone geometry

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

    expanded
    :   True if the modifier tab is expanded

        Type:
        :   boolean, default False

    type
    :   Type of the modifier

        Type:
        :   enum in [Linestyle Geometry Modifier Type Items](bpy_types_enum_items/linestyle_geometry_modifier_type_items.html#rna-enum-linestyle-geometry-modifier-type-items), default `'2D_OFFSET'`, (readonly)

    use
    :   Enable or disable this modifier during stroke rendering

        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](#bpy.types.LineStyleGeometryModifier_BezierCurve.type "bpy.types.LineStyleGeometryModifier_BezierCurve.type")
user: Give a detailed overview of Precision: syntax, arguments, return values, common patterns.

assistant: # Precision

Holding `Ctrl` during a transform operation (such as move, rotate or scale)
will toggle [Transform Snapping](../../../../../editors/3dview/controls/snapping.xhtml).
When using [Increment Snap](../../../../../editors/3dview/controls/snapping.xhtml#bpy-types-toolsettings-snap-elements-base)
this allows the transformation to be performed in discrete amounts.

Holding `Shift` during a transform operation will transform
the object at 1/10th the speed, allowing much finer control.

The magnitude of the transformation can be viewed in the 3D Viewport header.
Releasing `Ctrl` or `Shift` during the transformation will cause
the movement to revert back to its normal mode of operation.
user: What is General and how is it used in Blender Python scripting?

assistant: |  |  |
| --- | --- |
| `Ctrl`-`O` | Open file. |
| `Ctrl`-`S` | Save file. |
| `Ctrl`-`N` | New file. |
| `Ctrl`-`Z` | Undo. |
| `Shift`-`Ctrl`-`Z` | Redo. |
| `Ctrl`-`Q` | Quit. |
| `F1` | Help *(context sensitive)*. |
| `F2` | Rename active item. |
| `F3` | [Menu Search](../operators.html#bpy-ops-wm-search-menu). |
| `F4` | File context menu. |
| `F5` - `F8` | *Reserved for user actions.* |
| `F9` | [Adjust Last Operation](../undo_redo.html#bpy-ops-screen-redo-last). |
| `F10` | *Reserved for user actions.* |
| `F11` | Show render window. |
| `F12` | Render the current frame. |
| `Q` | Quick access (favorites). |
| `Ctrl`-`Spacebar` | Toggle Maximize [Area](../window_system/areas.html). |
| `Ctrl`-`PageUp` / `Ctrl`-`PageDown` | Next/previous [Workspace](../window_system/workspaces.html). |
| `Spacebar` | User configurable; see [Spacebar Action](../../editors/preferences/keymap.html#keymap-blender-default-spacebar-action). |
| `Shift`-`Ctrl`-`Spacebar` | Playback animation (reverse). |
user: Provide the full official documentation entry for Mix Color Node, preserving all code examples.

assistant: # Mix Color Node

The *Mix Node* mixes values, colors and vectors inputs
using a factor to control the amount of interpolation.
The *Color* mode has additional blending modes.

[image reference removed]
user: Show practical ways to work with Undo History in a Blender add-on or script – include code.

assistant: [image reference removed]

The Undo History menu.

There is also an Undo History of the last actions taken, recorded by Blender.

The top of the list corresponds to the most recent actions.
A small icon of a dot next to one of the entries indicates the current status.
Rolling back actions using the *Undo History* feature will take you back to
the action you choose. Much like how you can alternate between going backward in
time with *Undo* and then forward with *Redo*,
you can hop around on the Undo timeline as much as you want as long as you do not make a new change.
Once you do make a new change, the Undo History is truncated at that point.
Selecting one of the entries in the list takes the current status to that position.
user: Provide the full official documentation entry for Meshes, preserving all code examples.

assistant: glTF’s internal structure mimics the memory buffers commonly used by graphics chips
when rendering in real-time, such that assets can be delivered to desktop, web, or mobile clients
and be promptly displayed with minimal processing. As a result, quads and n-gons
are automatically converted to triangles when exporting to glTF.
Discontinuous UVs and flat-shaded edges may result in moderately higher vertex counts in glTF
compared to Blender, as such vertices are separated for export.
Likewise, curves and other non-mesh data are not preserved,
and must be converted to meshes prior to export.

### GPU Instances

When the option is enable in Exporter, instances are exported using the `EXT_mesh_gpu_instancing` extension.
There are some limitations, at export:

- Instances must be meshes, and don’t have any children themselves
- Instances must all be children of the same object.
- This extension doesn’t manage material variation. That means that the generated file may include all instances with
  same materials.
- Instances detected are objects sharing the same mesh data.

At import, instances are created by creating objects sharing the same mesh data.
user: Provide the full official documentation entry for Bpy.Types.Nodesocketstandard, preserving all code examples.

assistant: eSocketStandard.bl_rna_get_subclass_py() Inherited Properties Inherited Functions
user: Describe GeometryNodeGridToMesh(GeometryNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GeometryNodeGridToMesh(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.GeometryNodeGridToMesh(*GeometryNode*)
:   Generate a mesh on the “surface” of a volume grid

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: [image reference removed]

Vertex weight operators.

Normalize
:   Recalculates the weights of the active vertex so that they add up to 1.0 while
    retaining their relative magnitude.

Copy
:   Copies all the weights from the active vertex to the other selected vertices.
user: Provide the full official documentation entry for Freestyle Shaders (freestyle.shaders), preserving all code examples.

assistant: :   Limits the stroke’s alpha between a min and max value.

    shade(*stroke*)

*class* freestyle.shaders.pyNonLinearVaryingThicknessShader
:   Assigns thickness to a stroke based on an exponential function.

    shade(*stroke*)

*class* freestyle.shaders.pyPerlinNoise1DShader
:   Displaces the stroke using the curvilinear abscissa. This means
    that lines with the same length and sampling interval will be
    identically distorted.

    shade(*stroke*)

*class* freestyle.shaders.pyPerlinNoise2DShader
:   Displaces the stroke using the strokes coordinates. This means
    that in a scene no strokes will be distorted identically.

    More information on the noise shaders can be found at:
    <https://freestyleintegration.wordpress.com/2011/09/25/development-updates-on-september-25/>

    shade(*stroke*)

*class* freestyle.shaders.pyRandomColorShader
:   Assigns a color to the stroke based on given seed.

    shade(*stroke*)

*class* freestyle.shaders.pySLERPThicknessShader
:   Assigns thickness to a stroke based on spherical linear interpolation.

    shade(*stroke*)

*class* freestyle.shaders.pySamplingShader
:   Resamples the stroke, which gives the stroke the amount of
    vertices specified.

    shade(*stroke*)

*class* freestyle.shaders.pySinusDisplacementShader
:   Displaces the stroke in the shape of a sine wave.

    shade(*stroke*)

*class* freestyle.shaders.pyTVertexRemoverShader
:   Removes t-vertices from the stroke.

    shade(*stroke*)

*class* freestyle.shaders.pyTVertexThickenerShader
:   Thickens TVertices (visual intersections between two edges).

    shade(*stroke*)

*class* freestyle.shaders.pyTimeColorShader
:   Assigns a grayscale value that increases for every vertex.
    The brightness will increase along the stroke.

    shade(*stroke*)

*class* freestyle.shaders.pyTipRemoverShader
:   Removes the tips of the stroke.

    shade(*stroke*)

    Undocumented

*class* freestyle.shaders.pyZDependingThicknessShader
:   Assigns thickness based on an object’s local Z depth (point
    closest to camera is 1, point furthest from camera is zero).

    shade(*stroke*)
user: Explain Outputs in complete detail according to the official Blender documentation.

assistant: Volume
:   The resulting volume geometry after optionally removing the retrieved grid.

Grid
:   The extracted grid corresponding to the given *Name* and *Data Type*.
    This grid can be passed to other nodes such as
    [Sample Grid](../sample/sample_grid.xhtml) or
    [Grid to Mesh](../operations/grid_to_mesh.xhtml)
    for further manipulation or conversion.
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Bricks 1, Bricks 2
:   Sets the color range of the bricks. Brick colors are chosen randomly between these two colors.

Mortar
:   Sets the mortar color, in between the bricks.

Thickness
:   Sets the thickness of the mortar.

Bias
:   The bias of randomly chosen colors,
    between (-1 to 1). -1 Makes all bricks Color 1, and a value of 1 makes them all Color 2.

Brick Width
:   Sets the horizontal size of all the bricks.

Row Height
:   Sets the vertical size of all the bricks.
user: Give a detailed overview of Trimming: syntax, arguments, return values, common patterns.

assistant: The trimming operators add or remove geometry from the mesh based on a gesture input.
These operators are especially useful for sketching an early base mesh for further
sculpting with the [voxel remesher](../tool_settings/remesh.html).

[Line Project](../tools/line_project.html)
:   Flattens the geometry along a plane determined by the camera view and a drawn line.
    The region of the mesh being flattened is visualized by the side of the line that is shaded.

[Box Trim](../tools/trim_tools.html#tool-box-trim)
:   Removes geometry based on a [box selection](../../../interface/selecting.html#tool-select-box).

[Lasso Trim](../tools/trim_tools.html#tool-lasso-trim)
:   Removes geometry based on a [lasso selection](../../../interface/selecting.html#tool-select-lasso).

[Box Add](../tools/trim_tools.html#tool-box-trim)
:   Adds geometry based on a [box selection](../../../interface/selecting.html#tool-select-box).

[Lasso Add](../tools/trim_tools.html#tool-lasso-trim)
:   Adds geometry based on a [lasso selection](../../../interface/selecting.html#tool-select-lasso).
user: What is Image Generated Type Items and how is it used in Blender Python scripting?

assistant: # Image Generated Type Items

BLANK:
:   Blank.

    Generate a blank image.

UV_GRID:
:   UV Grid.

    Generated grid to test UV mappings.

COLOR_GRID:
:   Color Grid.

    Generated improved UV grid to test UV mappings.
user: Show practical ways to work with Options in a Blender add-on or script – include code.

assistant: [[image reference removed]](../../../_images/modeling_modifiers_generate_build_panel.png)

The Build modifier.

Start Frame
:   The start frame of the building process.

Length
:   The number of frames over which to rebuild the object.

Reversed
:   The modifier will operate in reverse, essentially allowing it to be used as a “deconstruction” effect.
    This is useful for making a set of instancing objects gradually disappear.

### Randomize

Randomizes the order in which the faces are built.

Seed
:   The random seed.
    Changing this value gives a different “random” order when *Randomize* is checked.
    This order is always the same for a given seed/mesh set.
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Mesh
:   Standard geometry input.

Selection
:   Boolean field that controls which faces will have the Face Set value applied.

Face Set
:   Integer field for specifying which face set each selected face should be moved to.
    Ignored for faces where the value of Selection is false.
user: Give a detailed overview of basic.raw_copy: syntax, arguments, return values, common patterns.

assistant: Single-bone rig type that copies the bone without the `ORG-` name prefix.

Normally all bones copied from the meta-rig are prefixed with `ORG-` and placed on an invisible layer.
This precludes their use as controls or deforming bones, which makes it difficult to transfer complex
fully custom rigging verbatim from the meta-rig.

This rig type does not add the automatic prefix, thus allowing an appropriate `ORG-`, `MCH-` or `DEF-`
prefix to be manually included in the meta-rig bone name, or alternatively using no prefix to create
a control bone.

Relink Constraints
:   Allows retargeting constraints belonging to the bone to point at bones created in the process
    of generating the rig, thus allowing custom rigging to integrate with generated bones.

    To use this feature, add `@` and the intended target bone name to the constraint name, resulting
    in the `...@bone_name` syntax. After all bones of the rig are generated, the constraint target
    bone will be replaced. If the new bone name is just `CTRL`, `MCH` or `DEF`, this will just
    replace the `ORG` prefix in the existing target bone name. For the Armature constraint you can add
    a `@` suffix for each target, or just one `@CTRL`, `@MCH` or `@DEF` suffix to update all.

    Parent
    :   If the field is not empty, applies the same name substitution logic to the parent of the bone.

    When this feature is enabled, the bone will not be automatically parented to the root bone even
    if it has no parent; enter `root` in the *Parent* field if that is necessary.
user: Show practical ways to work with Collection in a Blender add-on or script – include code.

assistant: Include or exclude objects for line calculation,
based on their belonging to a [Collection](../../../scene_layout/collections/index.html).

Line Set Collection
:   The name of the object collection to use.

Negation
:   Whether to include or exclude lines from those objects in this line set.
user: Describe View Layer from the Blender manual or Python API, including usage steps and snippets.

assistant: # View Layer

[image reference removed]

View Layer panel.

The Layer Panel shows the settings of the active View Layer.

Use for Rendering
:   The active view layer will be used during rendering.

Render Single Layer
:   Only render the active view layer.
user: What is Brush Control and how is it used in Blender Python scripting?

assistant: These are the most common hotkeys for controlling the brush.

- Set brush size `F`
- Set brush strength `Shift`-`F`
- Rotate brush texture / Set brush weight `Ctrl`-`F`

After pressing these hotkeys, you can then either adjust the value interactively or by typing in numbers.
Move the mouse right or left to increase/reduce the value
(additionally with precision (`Shift`) and/or snapping (`Ctrl`) activated).
Finally confirm (`LMB`, `Return`) or cancel (`RMB`, `Esc`).

You can also invert the brush direction/effect by holding `Ctrl`.
user: Give a detailed overview of SpaceNodeEditorPath(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # SpaceNodeEditorPath(bpy_struct)

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

*class* bpy.types.SpaceNodeEditorPath(*bpy_struct*)
:   Get the node tree path as a string

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

    clear()
    :   Reset the node tree path

    start(*node_tree*)
    :   Set the root node tree

        Parameters:
        :   **node_tree** ([`NodeTree`](bpy.types.NodeTree.html#bpy.types.NodeTree "bpy.types.NodeTree")) – Node Tree

    append(*node_tree*, *\**, *node=None*)
    :   Append a node group tree to the path

        Parameters:
        :   - **node_tree** ([`NodeTree`](bpy.types.NodeTree.html#bpy.types.NodeTree "bpy.types.NodeTree")) – Node Tree, Node tree to append to the node editor path
            - **node** ([`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), (optional)) – Node, Group node linking to this node tree

    pop()
    :   Remove the last node tree from the path

    *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 Exr Codec Items in complete detail according to the official Blender documentation.

assistant: # Exr Codec Items

NONE:
:   None.

    No compression.

ZIP:
:   ZIP.

    Lossless zip compression of 16 row image blocks.

PIZ:
:   PIZ.

    Lossless wavelet compression, effective for noisy/grainy images.

DWAA:
:   DWAA (lossy).

    JPEG-like lossy compression on 32 row image blocks.

DWAB:
:   DWAB (lossy).

    JPEG-like lossy compression on 256 row image blocks.

ZIPS:
:   ZIPS.

    Lossless zip compression, each image row compressed separately.

RLE:
:   RLE.

    Lossless run length encoding compression.

PXR24:
:   Pxr24 (lossy).

    Lossy compression for 32 bit float images (stores 24 bits of each float).

B44:
:   B44 (lossy).

    Lossy compression for 16 bit float images, at fixed 2.3:1 ratio.

B44A:
:   B44A (lossy).

    Lossy compression for 16 bit float images, at fixed 2.3:1 ratio.
user: Show practical ways to work with Dt Method Poly Items in a Blender add-on or script – include code.

assistant: # Dt Method Poly Items

TOPOLOGY:
:   Topology.

    Copy from identical topology meshes.

NEAREST:
:   Nearest Face.

    Copy from nearest face (using center points).

NORMAL:
:   Best Normal-Matching.

    Copy from source face which normal is the closest to destination one.

POLYINTERP_PNORPROJ:
:   Projected Face Interpolated.

    Interpolate all source polygons intersected by the projection of destination one along its own normal.
user: Provide the full official documentation entry for Retopology, preserving all code examples.

assistant: The automatic remesh tools generally don’t result in topology that lends itself to deformation.
Therefore, if you have sculpted a character and want to simplify it for animation,
you’ll typically have to do this manually in a process known as retopologizing.

To do this, you typically create a new mesh that overlaps the original one,
then adjust it until it fully covers the original mesh and matches its shape.

- The [Retopology](../../editors/3dview/display/overlays.html#bpy-types-view3doverlay-show-retopology) overlay of the 3D Viewport is useful here,
  as it lets you see the original mesh through the retopologized one and vice versa –
  without getting distracted by geometry on the other side as would be the case with
  [X-Ray](../../editors/3dview/display/shading.html#bpy-types-view3dshading-show-xray).
- You can use the [Poly Build](tools/poly_build.html) tool to quickly add, change,
  and remove faces.
- Use [Snapping](../../editors/3dview/controls/snapping.html) to align new vertices to the original mesh.
user: How do I use Animation Options in Blender? Include parameters, examples, warnings and best practices.

assistant: ### Draw Mode

In Draw Mode there are three options related to the animation workflow that you can use.

[image reference removed]

General drawing/animation options.

Add Weight Data
:   When enabled, new strokes weight data is added according to the current vertex group and weights.
    If there is no vertex group selected, no weight data is added.

    This is useful for example in cut-out animation for adding new drawing
    on the same vertex group without the need to creating it afterwards.

    See [Weight Paint Mode](../modes/weight_paint/introduction.xhtml) for more information.

Additive Drawing
:   When creating new frames, the strokes from the previous/active frame are include as a basis for the new one.

Multiframe
:   If you need to add new strokes to your animation on several frames you can use multiframe drawing.

    You can activate multiframe drawing with the Multiframe button next to the modes selector (faded lines icon).
    See [Multiframe](../multiframe.xhtml) for more information.

### Edit Mode

In Edit Mode there is an option related to the animation workflow that you can use.

[image reference removed]

Multiframe editing.

Multiframe
:   Sometimes you may need to modify several frames at the same time with edit tools,
    for example to repositioning drawings in an animation.

    You can activate multiframe editing with the Multiframe button next to the modes selector (faded lines icon).
    See [Multiframe](../multiframe.xhtml) for more information.
user: Give a detailed overview of TextureNodeDecompose(TextureNode): syntax, arguments, return values, common patterns.

assistant: # TextureNodeDecompose(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.TextureNodeDecompose(*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: What is Shortcuts and how is it used in Blender Python scripting?

assistant: - `Ctrl`-`LMB` (drag): Snap hue to 30° intervals.
- `Shift`-`LMB` (drag): Fine-tune color movement for precise adjustments.
- `Wheel`: Adjust value or lightness.
- `Backspace`: Reset the current value to its default.
user: Explain View Menu in complete detail according to the official Blender documentation.

assistant: Toolbar `T`
:   Show or hide the [Toolbar](../../../interface/tool_system.html#ui-region-toolbar).

Sidebar `N`
:   Show or hide the [Sidebar](../../../interface/window_system/regions.html#ui-region-sidebar).

Tool Settings
:   Show or hide the settings for the currently selected tool.

Footer
:   Show or hide the [Sidebar](../../../interface/window_system/regions.html#ui-region-footer).

---

Preview During Transform
:   Show a preview of the start or end frame of a strip while transforming its respective handle.

---

Refresh All
:   Reloads external files and refreshes the current frame preview.
    This is useful when you modified an external file or made a change in a scene that Blender
    didn’t detect.

---

Frame Selected
:   Pan and zoom the view to focus on the selected image.

Fit Preview in Window `Home`
:   Pan and zoom the view so that the entire video is visible.
    This enables *Zoom to Fit*.

Zoom
:   Menu with convenient zoom levels and operations.
    The zoom levels are calculated based on the images resolution compared to the screen resolution.

    - 12.5% (1:8) `Numpad8` zoom out to a factor of 12.5%.
    - 25% (1:4) `Numpad4` zoom out to a factor of 25%.
    - 50% (1:2) `Numpad2` zoom out to a factor of 50%.
    - 100% (1:1) `Numpad1` resets the zoom to 100%.
    - 200% (2:1) `Ctrl`-`Numpad2` zoom in to a factor of 200%.
    - 400% (4:1) `Ctrl`-`Numpad4` zoom in to a factor of 400%.
    - 800% (8:1) `Ctrl`-`Numpad8` zoom in to a factor of 800%.

    Zoom In/Out `Wheel`
    :   Zooms the view in or out.

    Zoom to Fit `Shift`-`Home`
    :   Like *Frame All*, but uses as much space in the editor as possible.

    Zoom Region `Shift`-`B`
    :   Zoom in the view to the nearest item contained in the border.

Auto Zoom
:   As long as this option is enabled, the preview will automatically zoom to keep the
    video size synchronized with the editor size.

---

Proxy
:   See [Proxy](../sequencer/sidebar/proxy.html).

---

Sequence Render Image
:   Show the current frame preview as a Render Result where you can save it as an image file.

Sequence Render Animation
:   Save previews of the frames in the scene range (or the preview range, if active) to a video file
    or a series of image files. See the [Output](../../../render/output/properties/output.html) panel for details.

---

Export Subtitles
:   Exports [Text strips](../../../video_editing/edit/montage/strips/text.html),
    which can act as subtitles, to a [SubRip](https://en.wikipedia.org/wiki/SubRip) file (`.srt`).
    The exported file contains all Text strips in the video sequence.

---

Toggle Sequencer/Preview `Ctrl`-`Tab`
:   Switch the editor mode between *Sequencer* and *Preview*.

---

Area
:   Area controls. See the [user interface](../../../interface/window_system/areas.html)
    documentation for more information.
user: What is Asset and how is it used in Blender Python scripting?

assistant: If you want to move a tool into a menu of your choice, reuse it in other blend-files,
or share it with other people, you need to turn it into an
[asset](../../files/asset_libraries/introduction.xhtml). Simply right-click the node group name
in the Geometry Node Editor’s header and choose *Mark as Asset*.

Once this is done, the node group will appear in the [Asset Browser](../../editors/asset_browser.xhtml)’s
*Unassigned* [catalog](../../files/asset_libraries/catalogs.xhtml). You can then move it into a catalog
named after a menu to make it appear at the end of that menu.

Finally, you can save the blend-file as an [asset bundle](../../editors/asset_browser.xhtml#asset-bundles) and copy it into
an asset library (described on linked page). From then on, the tool will be available in any
blend-file you work with. You can also share the asset bundle file with others.