PGCRYPT/OpenBlender_Train huggingface dataset:
user: What is Example and how is it used in Blender Python scripting?

assistant: [image reference removed]

The goal of this example is to turn a Curve into a tube-shaped mesh with pieces
cut away at regular intervals. At first, this seems straightforward: use the
[Curve to Mesh Node](../curve/operations/curve_to_mesh.xhtml) to create the tube,
read from the [Spline Parameter Node](../curve/read/spline_parameter.xhtml) to find
out where each tube vertex lies on the original curve, and do some math to decide
whether to delete the vertex.

This alone doesn’t work, however: the *Spline Parameter* node calculates its outputs
on the fly, and it can only do so for curves. Once the curve has been converted
to a mesh, this node can no longer be used.

This is where the *Capture Attribute* node comes in: it can *store* the calculated
distance on each curve control point. The *Curve to Mesh* node then transfers these
numbers to the mesh vertices (as it does for any attribute). From there, the attribute
can be retrieved again by connecting to the same *Capture Attribute* node that stored it.
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`SceneDisplay.shading`](bpy.types.SceneDisplay.html#bpy.types.SceneDisplay.shading "bpy.types.SceneDisplay.shading") - [`SpaceView3D.shading`](bpy.types.SpaceView3D.html#bpy.types.SpaceView3D.shading "bpy.types.SpaceView3D.shading") | - [`XrSessionSettings.shading`](bpy.types.XrSessionSettings.html#bpy.types.XrSessionSettings.shading "bpy.types.XrSessionSettings.shading") |
user: How do I use ThemeRegions(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # ThemeRegions(bpy_struct)

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

*class* bpy.types.ThemeRegions(*bpy_struct*)
:   Theme settings for regions that are common among editors

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

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

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

    sidebars
    :   Type:
        :   [`ThemeRegionsSidebars`](bpy.types.ThemeRegionsSidebars.html#bpy.types.ThemeRegionsSidebars "bpy.types.ThemeRegionsSidebars"), (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: How do I use Orbit & Pan in Blender? Include parameters, examples, warnings and best practices.

assistant: Orbit Method
:   Choose your preferred method of interactively rotating the 3D Viewport.

    Turntable:
    :   Rotates the view keeping the horizon horizontal.

        This behaves like a potter’s wheel or record player where you have two axes of rotation available,
        and the world seems to have a better definition of what is “Up” and “Down” in it.

        The drawback to using the *Turntable* style is that you lose some flexibility when working with your objects.
        However, you gain the sense of “Up” and “Down” which can help if you are feeling disoriented.

    Trackball:
    :   Is less restrictive, allowing any orientation.

Orbit Sensitivity
:   Adjusts the reactivity/speed of orbiting in the 3D Viewport.
    This setting works differently depending on what *Orbit Method* is used:

    - Turntable: *Orbit Sensitivity* controls the amount
      of rotation per-pixel to control how fast the 3D Viewport rotates.
    - Trackball: *Orbit Sensitivity* as a simple factor for how fast the 3D Viewport rotates.

Orbit Around Selection
:   The selection center becomes the rotation center of the viewport.
    When there is no selection the last selection will be used.

    The method used to calculate the center depends on the current mode:

    - Object mode uses the selections bounding box center.
    - Edit & pose mode use the selected elements center.
    - Paint modes use the center of the last brush stroke.

Auto – Perspective
:   When enabled, the view switches to Perspective when orbiting the view,
    and to Orthographic when aligning to an axis (Top, Side, Front, Back, etc.).

    When disabled, this switching needs to be done manually.

Auto – Depth
:   Use the depth under the mouse to improve view pan, rotate, zoom functionality.
    Useful in combination with *Zoom To Mouse Position*.

Smooth View
:   Time (in milliseconds) the animation takes when changing views
    (Top/Side/Front/Camera…). Reduce to zero to remove the animation.

Rotation Angle
:   Rotation step size in degrees, when `Numpad4`, `Numpad6`, `Numpad8`,
    or `Numpad2` are used to rotate the 3D Viewport.
user: Show practical ways to work with Collection Operators in a Blender add-on or script – include code.

assistant: # Collection Operators

bpy.ops.collection.create(*\**, *name=''*)
:   Create an object collection from selected objects

    Parameters:
    :   **name** (*string**,* *(**optional**,* *never None**)*) – Name, Name of the new collection

bpy.ops.collection.export_all()
:   Invoke all configured exporters on this collection

bpy.ops.collection.exporter_add(*\**, *name=''*)
:   Add exporter to the exporter list

    Parameters:
    :   **name** (*string**,* *(**optional**,* *never None**)*) – Name, FileHandler idname

bpy.ops.collection.exporter_export(*\**, *index=0*)
:   Invoke the export operation

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

bpy.ops.collection.exporter_move(*\**, *direction='UP'*)
:   Move exporter up or down in the exporter list

    Parameters:
    :   **direction** (enum in [`'UP'`, `'DOWN'`], (optional)) – Direction, Direction to move the active exporter

bpy.ops.collection.exporter_remove(*\**, *index=0*)
:   Remove exporter from the exporter list

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

bpy.ops.collection.objects_add_active(*\**, *collection=''*)
:   Add selected objects to one of the collections the active-object is part of. Optionally add to “All Collections” to ensure selected objects are included in the same collections as the active object

    Parameters:
    :   **collection** (*enum in* *[**]**,* *(**optional**)*) – Collection, The collection to add other selected objects to

bpy.ops.collection.objects_remove(*\**, *collection=''*)
:   Remove selected objects from a collection

    Parameters:
    :   **collection** (*enum in* *[**]**,* *(**optional**)*) – Collection, The collection to remove this object from

bpy.ops.collection.objects_remove_active(*\**, *collection=''*)
:   Remove the object from an object collection that contains the active object

    Parameters:
    :   **collection** (*enum in* *[**]**,* *(**optional**)*) – Collection, The collection to remove other selected objects from

bpy.ops.collection.objects_remove_all()
:   Remove selected objects from all collections
user: What is Selection Paint and how is it used in Blender Python scripting?

assistant: # Selection Paint

Paint curves or control paints to use as masks for the other tools.
The selection visibility can be controlled by the *Selection Opacity* option in the Viewport Overlays.

By default the selection sets a new selection. The selection paint can be extended
by holding `Shift` and it can be subtracted by holding `Ctrl` while painting.
user: Show practical ways to work with Splash Screen in a Blender add-on or script – include code.

assistant: # Splash Screen

When starting Blender, the splash screen appears in the center of the window.
It contains options to create new projects or open recent ones.
A more detailed description can be found below.

[image reference removed]

Blender Splash Screen.

To close the splash screen and start a new project,
click anywhere outside the splash screen (but inside the Blender window) or press `Esc`.
The splash screen will disappear revealing the default screen.
To reopen the splash screen, click on the Blender icon in the Topbar and select *Splash Screen*.
user: Explain Inputs in complete detail according to the official Blender documentation.

assistant: Enable
:   A boolean field controlling whether the connected output socket is visible and active.
    When *False*, the corresponding output socket in the group is hidden.

Value
:   The value to pass to the output when it is enabled.
    This input can be any supported data type depending on the node’s *Data Type* property.
user: What is Noise Texture Node and how is it used in Blender Python scripting?

assistant: # Noise Texture Node

[image reference removed]

The *Noise Texture* node evaluates a fractal Perlin noise at the input texture coordinates.
It can be used for a single Perlin noise evaluation, or for combining multiple octaves
(layers) with increasingly finer detail.
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`GreasePencil.layer_groups`](bpy.types.GreasePencil.html#bpy.types.GreasePencil.layer_groups "bpy.types.GreasePencil.layer_groups") - [`GreasePencilTreeNode.parent_group`](bpy.types.GreasePencilTreeNode.html#bpy.types.GreasePencilTreeNode.parent_group "bpy.types.GreasePencilTreeNode.parent_group") - [`GreasePencilv3LayerGroup.active`](bpy.types.GreasePencilv3LayerGroup.html#bpy.types.GreasePencilv3LayerGroup.active "bpy.types.GreasePencilv3LayerGroup.active") - [`GreasePencilv3LayerGroup.move`](bpy.types.GreasePencilv3LayerGroup.html#bpy.types.GreasePencilv3LayerGroup.move "bpy.types.GreasePencilv3LayerGroup.move") - [`GreasePencilv3LayerGroup.move_bottom`](bpy.types.GreasePencilv3LayerGroup.html#bpy.types.GreasePencilv3LayerGroup.move_bottom "bpy.types.GreasePencilv3LayerGroup.move_bottom") - [`GreasePencilv3LayerGroup.move_to_layer_group`](bpy.types.GreasePencilv3LayerGroup.html#bpy.types.GreasePencilv3LayerGroup.move_to_layer_group "bpy.types.GreasePencilv3LayerGroup.move_to_layer_group") - [`GreasePencilv3LayerGroup.move_to_layer_group`](bpy.types.GreasePencilv3LayerGroup.html#bpy.types.GreasePencilv3LayerGroup.move_to_layer_group "bpy.types.GreasePencilv3LayerGroup.move_to_layer_group") | - [`GreasePencilv3LayerGroup.move_top`](bpy.types.GreasePencilv3LayerGroup.html#bpy.types.GreasePencilv3LayerGroup.move_top "bpy.types.GreasePencilv3LayerGroup.move_top") - [`GreasePencilv3LayerGroup.new`](bpy.types.GreasePencilv3LayerGroup.html#bpy.types.GreasePencilv3LayerGroup.new "bpy.types.GreasePencilv3LayerGroup.new") - [`GreasePencilv3LayerGroup.new`](bpy.types.GreasePencilv3LayerGroup.html#bpy.types.GreasePencilv3LayerGroup.new "bpy.types.GreasePencilv3LayerGroup.new") - [`GreasePencilv3LayerGroup.remove`](bpy.types.GreasePencilv3LayerGroup.html#bpy.types.GreasePencilv3LayerGroup.remove "bpy.types.GreasePencilv3LayerGroup.remove") - [`GreasePencilv3Layers.move_to_layer_group`](bpy.types.GreasePencilv3Layers.html#bpy.types.GreasePencilv3Layers.move_to_layer_group "bpy.types.GreasePencilv3Layers.move_to_layer_group") - [`GreasePencilv3Layers.new`](bpy.types.GreasePencilv3Layers.html#bpy.types.GreasePencilv3Layers.new "bpy.types.GreasePencilv3Layers.new") |
user: Provide the full official documentation entry for Details, preserving all code examples.

assistant: Depending on your desktop environment setup, a Blender icon may appear on your desktop or
an entry for Blender is added to your menu after you install Blender.

Many desktop environments support the ability to “Run in terminal”.

[image reference removed]

Configuring the KDE menu icon to start Blender from a terminal.

This screenshot shows Blender started from a Linux Terminal and
the resulting text output written to it:

[image reference removed]

Starting Blender from a Linux terminal window.
user: Explain ShaderFx(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # ShaderFx(bpy_struct)

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

subclasses —
[`ShaderFxBlur`](bpy.types.ShaderFxBlur.html#bpy.types.ShaderFxBlur "bpy.types.ShaderFxBlur"), [`ShaderFxColorize`](bpy.types.ShaderFxColorize.html#bpy.types.ShaderFxColorize "bpy.types.ShaderFxColorize"), [`ShaderFxFlip`](bpy.types.ShaderFxFlip.html#bpy.types.ShaderFxFlip "bpy.types.ShaderFxFlip"), [`ShaderFxGlow`](bpy.types.ShaderFxGlow.html#bpy.types.ShaderFxGlow "bpy.types.ShaderFxGlow"), [`ShaderFxPixel`](bpy.types.ShaderFxPixel.html#bpy.types.ShaderFxPixel "bpy.types.ShaderFxPixel"), [`ShaderFxRim`](bpy.types.ShaderFxRim.html#bpy.types.ShaderFxRim "bpy.types.ShaderFxRim"), [`ShaderFxShadow`](bpy.types.ShaderFxShadow.html#bpy.types.ShaderFxShadow "bpy.types.ShaderFxShadow"), [`ShaderFxSwirl`](bpy.types.ShaderFxSwirl.html#bpy.types.ShaderFxSwirl "bpy.types.ShaderFxSwirl"), [`ShaderFxWave`](bpy.types.ShaderFxWave.html#bpy.types.ShaderFxWave "bpy.types.ShaderFxWave")

*class* bpy.types.ShaderFx(*bpy_struct*)
:   Effect affecting the Grease Pencil object

    name
    :   Effect name

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

    show_expanded
    :   Set effect expansion in the user interface

        Type:
        :   boolean, default False

    show_in_editmode
    :   Display effect in Edit mode

        Type:
        :   boolean, default False

    show_render
    :   Use effect during render

        Type:
        :   boolean, default False

    show_viewport
    :   Display effect in viewport

        Type:
        :   boolean, default False

    type
    :   Type:
        :   enum in [Object Shaderfx Type Items](bpy_types_enum_items/object_shaderfx_type_items.html#rna-enum-object-shaderfx-type-items), default `'FX_BLUR'`, (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](#bpy.types.ShaderFx.type "bpy.types.ShaderFx.type")
user: What is IMAGE_FH_drop_handler(FileHandler) and how is it used in Blender Python scripting?

assistant: # IMAGE_FH_drop_handler(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.IMAGE_FH_drop_handler(*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: Explain NodeTreeInterfaceSocketVectorDirection(NodeTreeInterfaceSocket) in complete detail according to the official Blender documentation.

assistant: # NodeTreeInterfaceSocketVectorDirection(NodeTreeInterfaceSocket)

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

*class* bpy.types.NodeTreeInterfaceSocketVectorDirection(*NodeTreeInterfaceSocket*)
:   3D vector socket of a node

    default_value
    :   Input value used for unconnected socket

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

    dimensions
    :   Dimensions of the vector socket

        Type:
        :   int in [2, 4], default 0

    max_value
    :   Maximum value

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

    min_value
    :   Minimum value

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

    subtype
    :   Subtype of the default value

        Type:
        :   enum in [`'DEFAULT'`], default `'DEFAULT'`

    draw(*context*, *layout*)
    :   Draw interface socket settings

        Parameters:
        :   **layout** ([`UILayout`](bpy.types.UILayout.html#bpy.types.UILayout "bpy.types.UILayout"), (never None)) – Layout, Layout in the UI

    init_socket(*node*, *socket*, *data_path*)
    :   Initialize a node socket instance

        Parameters:
        :   - **node** ([`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), (never None)) – Node, Node of the socket to initialize
            - **socket** ([`NodeSocket`](bpy.types.NodeSocket.html#bpy.types.NodeSocket "bpy.types.NodeSocket"), (never None)) – Socket, Socket to initialize
            - **data_path** (*string**,* *(**never None**)*) – Data Path, Path to specialized socket data

    from_socket(*node*, *socket*)
    :   Setup template parameters from an existing socket

        Parameters:
        :   - **node** ([`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), (never None)) – Node, Node of the original socket
            - **socket** ([`NodeSocket`](bpy.types.NodeSocket.html#bpy.types.NodeSocket "bpy.types.NodeSocket"), (never None)) – Socket, Original socket

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

assistant: # Input Nodes

Input nodes produce information from a data source.
For instance, an input can be:

- Taken directly from the active camera in a selected scene.
- A static image.
- A movie clip (such as an image sequence or video).
- A color or value.

These nodes generate the information that is passed to other nodes.
As such, they have no input sockets; only outputs.

---

---
user: Explain Example in complete detail according to the official Blender documentation.

assistant: Opacity Factor samples.

|  |  |  |
| --- | --- | --- |
| ../../../_images/grease-pencil_modifiers_color_texture-mapping_1.png   Rotation: 0°. | ../../../_images/grease-pencil_modifiers_color_texture-mapping_2.png   Rotation: 45°. | ../../../_images/grease-pencil_modifiers_color_texture-mapping_3.png   Rotation: 90°. |
user: Describe Field Weights from the Blender manual or Python API, including usage steps and snippets.

assistant: The Field Weight panel allows you to control how much influence each type of external force field, or effector,
has on the particle system. Force fields are external forces that give dynamic system’s motion.
The force fields types are detailed on the [Force Field Page](../../forces/force_fields/index.xhtml).

Effector Group
:   Limit effectors to a specified group. Only effectors in this group will have an effect on the current system.

Gravity
:   Control how much the Global Gravity has an effect on the system.

All
:   Scale all of the effector weights.
user: Explain ClothModifier(Modifier) in complete detail according to the official Blender documentation.

assistant: # ClothModifier(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.ClothModifier(*Modifier*)
:   Cloth simulation modifier

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

    hair_grid_max
    :   Type:
        :   float array of 3 items in [-inf, inf], default (0.0, 0.0, 0.0), (readonly)

    hair_grid_min
    :   Type:
        :   float array of 3 items in [-inf, inf], default (0.0, 0.0, 0.0), (readonly)

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

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

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

    solver_result
    :   Type:
        :   [`ClothSolverResult`](bpy.types.ClothSolverResult.html#bpy.types.ClothSolverResult "bpy.types.ClothSolverResult"), (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 Options in complete detail according to the official Blender documentation.

assistant: Shape
:   The shape key to blend from.

Blend
:   Factor controlling how much of the shape is applied.

Add
:   If enabled, the blended offset is added on top of the current mesh positions.
    If disabled, the mesh is interpolated directly between its current shape and the chosen shape key.
user: Give a detailed overview of RenderResult(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # RenderResult(bpy_struct)

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

*class* bpy.types.RenderResult(*bpy_struct*)
:   Result of rendering, including all layers and passes

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

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

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

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

    load_from_file(*filepath*)
    :   Copies the pixels of this render result from an image file

        Parameters:
        :   **filepath** (*string**,* *(**never None**)*) – File Name, Filename to load into this render tile, must be no smaller than the render result

    stamp_data_add_field(*field*, *value*)
    :   Add engine-specific stamp data to the result

        Parameters:
        :   - **field** (*string**,* *(**never None**)*) – Field, Name of the stamp field to add
            - **value** (*string**,* *(**never None**)*) – Value, Value of the stamp data

    *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 GreasePencilDashModifierData(Modifier), preserving all code examples.

assistant: # GreasePencilDashModifierData(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.GreasePencilDashModifierData(*Modifier*)
:   Create dot-dash effect for strokes

    dash_offset
    :   Offset into each stroke before the beginning of the dashed segment generation

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

    invert_layer_filter
    :   Invert layer filter

        Type:
        :   boolean, default False

    invert_layer_pass_filter
    :   Invert layer pass filter

        Type:
        :   boolean, default False

    invert_material_filter
    :   Invert material filter

        Type:
        :   boolean, default False

    invert_material_pass_filter
    :   Invert material pass filter

        Type:
        :   boolean, default False

    layer_pass_filter
    :   Layer pass filter

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

    material_filter
    :   Material used for filtering

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

    material_pass_filter
    :   Material pass

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

    open_influence_panel
    :   Type:
        :   boolean, default False

    segment_active_index
    :   Active index in the segment list

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

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

    tree_node_filter
    :   Layer name

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

    use_layer_group_filter
    :   Filter by layer group name

        Type:
        :   boolean, default False

    use_layer_pass_filter
    :   Use layer pass filter

        Type:
        :   boolean, default False

    use_material_pass_filter
    :   Use material pass filter

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

assistant: # Curve Tip

The *Curve Tip* node outputs information about the tip (end) point of each curve.
It is commonly used in hair grooming, deformation, and simulation setups to control
operations at the ends of curves, such as shaping, alignment, or applying tip-based effects.
user: Explain Cycles in complete detail according to the official Blender documentation.

assistant: In addition to the options above, which apply to all render engines,
Cycles has additional options to further control its behavior.
See [Cycles Render Options](arguments.xhtml#command-line-args-cycles-render-options)
user: Give a detailed overview of Thickness: syntax, arguments, return values, common patterns.

assistant: # Thickness

Controls the thickness of the Freestyle strokes.

[image reference removed]

Line Style: Thickness.

Base Thickness
:   The base thickness for this line style.

Thickness Position
:   Control the position of stroke thickness from the original (backbone) stroke geometry. There are four choices:

    Center:
    :   The thickness is evenly split to the left and right side of the stroke geometry.

    Inside:
    :   The strokes are drawn within object boundary.

    Outside:
    :   The strokes are drawn outside the object boundary.

    Relative:
    :   Specifies the relative position by a number between 0.0 (inside) and 1.0 (outside),
        in the *Thickness Ratio* number field just below.
user: What is Aerodynamics and how is it used in Blender Python scripting?

assistant: Edges can be affected by wind as they move, and sail or flutter in a breeze.
A simple aerodynamic model of a flag sailing in the wind.

This special exterior force is not applied to the vertices but to the connecting edges.
Technically, a force perpendicular to the edge is applied.
The force scales with the projection of the relative speed on the edge (dot product).
Note that the force is the same if wind is blowing or if you drag the edge through the air
with the same speed. That means that an edge moving in its own direction subject to no force,
and an edge moving perpendicular to its own direction is subjected to maximum force.

The angle and the relative speed between medium and edge is used to calculate the force on the edge.
This force results that vertices with few connecting edges (front of a plane)
fall faster than vertices with more connecting edges (middle of a plane).
If all vertices have the same amount of edges in a direction they fall with equal speed.

The *Aerodynamics* settings are set in the [Soft Body Edges](../settings/edges.xhtml#physics-softbody-settings-aerodynamics) panel.
user: Describe Read View Layers from the Blender manual or Python API, including usage steps and snippets.

assistant: Reads all the current scene’s render layers from cache, as needed.
This can be used to save RAM while rendering because the render layers do not have to be saved in RAM.
And also for recovering some information from a failed render.
For this to work, [Cache Result](../../../render/output/properties/output.xhtml#bpy-types-rendersettings-use-render-cache) must be enabled.
user: Give a detailed overview of ActionChannelbags(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # ActionChannelbags(bpy_struct)

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

*class* bpy.types.ActionChannelbags(*bpy_struct*)
:   For each action slot, a list of animation channels that are meant for that slot

    new(*slot*)
    :   Add a new channelbag to the strip, to contain animation channels for a specific slot

        Parameters:
        :   **slot** ([`ActionSlot`](bpy.types.ActionSlot.html#bpy.types.ActionSlot "bpy.types.ActionSlot")) – Action Slot, The slot that should be animated by this channelbag

        Returns:
        :   Newly created channelbag

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

    remove(*channelbag*)
    :   Remove the channelbag from the strip

        Parameters:
        :   **channelbag** ([`ActionChannelbag`](bpy.types.ActionChannelbag.html#bpy.types.ActionChannelbag "bpy.types.ActionChannelbag")) – The channelbag to remove

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

assistant: # Despeckle Node

[image reference removed]

The *Despeckle* node is used to smooth areas of an image in which noise is noticeable,
while leaving complex areas untouched.

This works by the standard deviation of each pixel and its neighbors is calculated to determine
if the area is one of high complexity or low complexity.
If the complexity is lower than the threshold then the area is smoothed using a simple mean filter.
user: Give a detailed overview of QuaternionAttribute(Attribute): syntax, arguments, return values, common patterns.

assistant: # QuaternionAttribute(Attribute)

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

*class* bpy.types.QuaternionAttribute(*Attribute*)
:   Geometry attribute that stores rotation

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of ShaderNodeScript(ShaderNode): syntax, arguments, return values, common patterns.

assistant: # ShaderNodeScript(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.ShaderNodeScript(*ShaderNode*)
:   Generate an OSL shader from a file or text data-block.
    Note: OSL shaders are not supported on all GPU backends

    bytecode
    :   Compile bytecode for shader script node

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

    bytecode_hash
    :   Hash of compile bytecode, for quick equality checking

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

    filepath
    :   Shader script path

        Type:
        :   string, default “”, (never None, blend relative `//` prefix supported)

    mode
    :   - `INTERNAL`
          Internal – Use internal text data-block.
        - `EXTERNAL`
          External – Use external .osl or .oso file.

        Type:
        :   enum in [`'INTERNAL'`, `'EXTERNAL'`], default `'INTERNAL'`

    script
    :   Internal shader script to define the shader

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

    use_auto_update
    :   Automatically update the shader when the .osl file changes (external scripts only)

        Type:
        :   boolean, default False

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

assistant: The *Color Picker Type* determines how colors are visualized and selected.
Different picker types offer alternative layouts for adjusting hue, saturation, and value components.
The choice is a matter of personal preference and workflow.

You can choose the default picker type in the Preferences under
[Interface Preferences](../../../editors/preferences/interface.html#bpy-types-preferencesview-color-picker-type).

Color Picker Types

|  |  |  |
| --- | --- | --- |
| ../../../_images/interface_controls_templates_color-picker_circle-hsv.png   Circle HSV | ../../../_images/interface_controls_templates_color-picker_circle-hsl.png   Circle HSL |  |
| ../../../_images/interface_controls_templates_color-picker_square-sv-h.png   Square (SV + H) | ../../../_images/interface_controls_templates_color-picker_square-hs-v.png   Square (HS + V) | ../../../_images/interface_controls_templates_color-picker_square-hv-s.png   Square (HV + S) |
user: Provide the full official documentation entry for BoidRuleFollowLeader(BoidRule), preserving all code examples.

assistant: # BoidRuleFollowLeader(BoidRule)

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

*class* bpy.types.BoidRuleFollowLeader(*BoidRule*)
:   distance
    :   Distance behind leader to follow

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

    object
    :   Follow this object instead of a boid

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

    queue_count
    :   How many boids in a line

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

    use_line
    :   Follow leader in a line

        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: What is Sample Grid Node and how is it used in Blender Python scripting?

assistant: # Sample Grid Node

[image reference removed]

The *Sample Grid* node retrieves values from a voxel grid at given positions in space.
It evaluates the grid’s stored data (such as float, integer, boolean, or vector values)
and returns the interpolated result for each queried position.

This node is useful for reading data from grids created by other nodes
(e.g. *Mesh to SDF Grid*, *Field to Grid*, or *Points to SDF Grid*) and using
those values to drive procedural effects, geometry deformation, or shading.
user: Describe Editing from the Blender manual or Python API, including usage steps and snippets.

assistant: ### Moving Keypoints or Particles

- To move selected keypoints press `G`, or use one of the various other methods to move vertices.
- To move a particle root you have to turn off Keep *Root* in the Toolbar.
- You can do many of the things like with vertices, including scaling,
  rotating and removing (complete particles or single keys).
- You may not duplicate or extrude keys or particles,
  but you can subdivide particles which adds new keypoints
  Particle ‣ Subdivide.
- Alternatively you can re-key a particle
  Particle ‣ Rekey.

How smoothly the hair and particle paths are displayed depends on the *Path Steps*
setting in the Toolbar. Low settings produce blocky interpolation between points,
while high settings produce a smooth curve.

### Mirror

If you want to create an X axis symmetrical haircut you have to do following steps:

1. Select all particles with `A`.
2. Mirror the particles with Particle ‣ Mirror.
3. Turn on *X Mirror* in Sidebar Region ‣ Tool ‣ Options.

It may happen that after mirroring two particles occupy nearly the same place.
Since this would be a waste of memory and render time,
you can use *Merge by Distance* from the *Particle* menu.

### Unify Length

This tool is used to make all selected hair uniform length by finding the average length.

### Show/Hide

Hiding and unhiding of particles works similar as with vertices in the 3D Viewport.
Select one or more keypoints of the particle you want to hide and press `H`.
The particle in fact does not vanish, only the key points.

Hidden particles (i.e. particles whose keypoints are hidden)
do not react on the various brushes. But:

If you use *Mirror Editing* even particles with hidden keypoints may be moved,
if their mirrored counterpart is moved.

To unhide all hidden particles press `Alt`-`H`.
user: Give a detailed overview of Collections: syntax, arguments, return values, common patterns.

assistant: # Collections

Flow
:   If set, only objects in the specified [Collection](../../../../scene_layout/collections/collections.xhtml)
    will be allowed to act as [Flow](../flow.xhtml) objects in this domain.

Effector
:   If set, only objects in the specified [Collection](../../../../scene_layout/collections/collections.xhtml)
    will be allowed to act as [Effector](../effector.xhtml) objects in this domain.
user: Provide the full official documentation entry for Selection History, preserving all code examples.

assistant: *class* bmesh.types.BMEditSelSeq
:   add(*element*)
    :   Add an element to the selection history (no action taken if its already added).

    clear()
    :   Empties the selection history.

    discard(*element*)
    :   Discard an element from the selection history.

        Like remove but doesn’t raise an error when the elements not in the selection list.

    remove(*element*)
    :   Remove an element from the selection history.

    validate()
    :   Ensures all elements in the selection history are selected.

    active
    :   The last selected element or None (read-only).

        Type:
        :   [`bmesh.types.BMVert`](#bmesh.types.bmesh.types.BMVert "bmesh.types.bmesh.types.BMVert"), [`bmesh.types.BMEdge`](#bmesh.types.bmesh.types.BMEdge "bmesh.types.bmesh.types.BMEdge") or [`bmesh.types.BMFace`](#bmesh.types.bmesh.types.BMFace "bmesh.types.bmesh.types.BMFace")

*class* bmesh.types.BMEditSelIter
user: How do I use Getting Started in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

Default UV editing workspace.

By default, meshes are not created with UVs. First you must map the faces, then
you can [edit them](../editing.xhtml).
The process of unwrapping your model is done within Edit Mode in the 3D Viewport.
This process creates one or more UV Islands in the [UV Editor](../../../../editors/uv/index.xhtml#editors-uv-index).

To begin, choose the *UV Editing* [workspace](../../../../interface/window_system/workspaces.xhtml)
from the selection list at the top of your screen in the Preferences header.
This sets one of the areas to show you the UV Editor, and the other area to the 3D Viewport.

Enter *Edit Mode*, as all unwrapping is done in Edit Mode.
You can be in vertex, face, or edge selection mode.

### Workflow

The general workflow is as follows, but know that different models may require
different approaches to unwrapping:

1. Mark Seams if necessary. See more about [marking seams](seams.xhtml).
2. Select mesh faces in the 3D Viewport.
3. Select a UV mapping method from the UV ‣ Unwrap menu or
   the UV menu in the 3D Viewport.
4. Adjust the unwrap settings in the [Adjust Last Operation](../../../../interface/undo_redo.xhtml#bpy-ops-screen-redo-last) panel.
5. Add a test image to see if there will be any distortion.
   See [Applying Images to UVs](../applying_image.xhtml).
6. Adjust UVs in the UV editor. See [Editing UVs](../editing.xhtml).
user: Describe Controls from the Blender manual or Python API, including usage steps and snippets.

assistant: Move `Spacebar`
:   Changes the location of the line.

Snap `Ctrl`
:   Constrains the rotation of the line to 15 degree intervals.

Flip `F`
:   Changes the side of the line that is the inner/outer side;
    this option is useful when using *Clear Inner*, *Clear Outer* and/or *Fill*.
user: Show practical ways to work with Zoom in a Blender add-on or script – include code.

assistant: Zoom Method
:   Choose your preferred style of zooming in and out,
    when using interactive zoom.

    Scale:
    :   *Scale* zooming depends on where you first click in the view.
        To zoom out, move the cursor to the area center.
        To zoom in, move the cursor away from the area center.

    Continue:
    :   The *Continue* zooming option allows you to control the speed
        (and not the value) of zooming by moving away from the initial cursor position.

        Moving up from the initial click point or to the right will zoom out,
        moving down or to the left will zoom in. The further away you move,
        the faster the zoom movement will be.
        The directions can be altered by the *Vertical* and *Horizontal* radio buttons and
        the *Invert Zoom Direction* option.

    Dolly:
    :   *Dolly* zooming works similarly to *Continue* zooming except that zoom speed is constant.

Zoom Axis
:   The axis of the mouse to use for zooming.

    Vertical:
    :   Moving up zooms out and moving down zooms in.

    Horizontal:
    :   Moving left zooms in and moving right zooms out.

Zoom to Mouse Position
:   When enabled, the mouse pointer position becomes the focus point of zooming instead of the 2D window center.
    Helpful to avoid panning if you are frequently zooming in and out.

Invert Zoom Direction – Mouse
:   Inverts the Zoom direction for *Dolly* and *Continue* zooming.

Invert Zoom Direction – Wheel
:   Inverts the direction of the mouse wheel zoom.