PGCRYPT/OpenBlender_Train huggingface dataset:
user: Describe RENDER_UL_renderviews(UIList) from the Blender manual or Python API, including usage steps and snippets.

assistant: # RENDER_UL_renderviews(UIList)

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

*class* bpy.types.RENDER_UL_renderviews(*UIList*)
:   draw_item(*_context*, *layout*, *_data*, *item*, *icon*, *_active_data*, *_active_propname*, *index*)

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

assistant: Cloth with Dynamic Paint using animated vertex groups:
[Regression blend-file](https://archive.blender.org/wiki/2015/index.php/File:Cloth_dynamic_paint.blend).
Unsupported: Starting with a goal of 0 and increasing it, but still having the vertex not pinned will **not** work
(e.g. from goal = 0 to goal = 0.5) because the necessary “goal springs” cannot be generated on-the-fly.
user: Describe Properties from the Blender manual or Python API, including usage steps and snippets.

assistant: Phase
:   Volume scattering phase function.

    Henyey-Greenstein:
    :   Simple and widely used phase function, useful for approximating scattering in biological tissues.

    Fournier-Forand:
    :   Cycles Only
        Suitable for modeling the scattering of light in underwater environments.

    Draine:
    :   Cycles Only
        Suitable for modeling the scattering of interstellar dust.

    Rayleigh:
    :   Cycles Only
        Describes the scattering by particles with a size smaller than the wavelength of light,
        such as the scattering of sunlight in earth’s atmosphere.

    Mie:
    :   Cycles Only
        Describes the scattering by particles with a size larger than the wavelength of light, such as cloud and fog.
user: How do I use Properties in Blender? Include parameters, examples, warnings and best practices.

assistant: Tone Compositor Only
:   Standard:
    :   The Combined curve is applied to each channel individually, which may result in a change of hue.

    Filmlike:
    :   Keeps the hue constant.

Channel
:   The curve to show.

    C:
    :   Combined

    R:
    :   Red

    G:
    :   Green

    B:
    :   Blue

Curve
:   A Bézier curve that maps each input level (X axis) to an output level (Y axis).
    For the curve controls, see [Curve widget](../../../interface/controls/templates/curve.html#ui-curve-widget).
user: Explain In Object Mode in complete detail according to the official Blender documentation.

assistant: Each object gets transformed around its [origin](../../../../scene_layout/object/origin.xhtml),
which is a point that can be chosen freely and doesn’t have to be in the center.
In the example below, the orange rectangle has it in a corner instead.

[image reference removed]

Rotation around individual origins.

The images below compare Individual Origins to [Median Point](median_point.xhtml).

[image reference removed]

Starting situation, rotation around Individual Origins, rotation around Median Point.

[image reference removed]

Starting situation, scaling using Individual Origins, scaling using Median Point.
user: Provide the full official documentation entry for Text Editing in Preview, preserving all code examples.

assistant: Text strips can be edited directly in the **Preview** window, providing a more intuitive workflow.

- **Enable Editing**: Press `Tab` to enter edit mode. A boundary box and cursor will appear.
- **Disable Editing**: Press `Tab` again to exit edit mode.

### Editing

Copy Text `Ctrl`-`C`
:   Copy the selected text.

Paste Text `Ctrl`-`V`
:   Uses the system clipboard, allowing text from external applications to be pasted.

Cut Text `Ctrl`-`X`
:   Cut the selected text.

Delete Character `Backspace`
:   Delete the character before the cursor.

Insert Line Break `Return`
:   Insert a new line.

Select All `Ctrl`-`A`
:   Select all the text.

Deselect All `Esc`
:   Deselect the text.

### Navigation

- `Left` – Move the cursor one character left.
- `Right` – Move the cursor one character right.
- `Up` – Move the cursor one line up\*\*.
- `Down` – Move the cursor one line down\*\*.
- `Home` – Move the cursor to the beginning of the current line.
- `End` – Move the cursor to the end of the current line.
- `Ctrl`-`Left` – Move the cursor one word left.
- `Ctrl`-`Right` – Move the cursor one word right.
- `PageUp` – Move the cursor to the start of the text.
- `PageDown` – Move the cursor to the end of the text.

### Text Selection

Holding `Shift` while pressing a navigation key enables text selection.

- `Shift`-`Left` – Select the previous character.
- `Shift`-`Right` – Select the next character.
- `Shift`-`Up` – Select the previous line.
- `Shift`-`Down` – Select the next line.
- `Shift`-`Home` – Select from the cursor to the beginning of the line.
- `Shift`-`End` – Select from the cursor to the end of the line.
- `Shift`-`Ctrl`-`Left` – Select the previous word.
- `Shift`-`Ctrl`-`Right` – Select the next word.
- `Shift`-`PageUp` – Select from the cursor to the start of the text.
- `Shift`-`PageDown` – Select from the cursor to the end of the text.
user: Show practical ways to work with CompositorNodeCryptomatte(CompositorNode) in a Blender add-on or script – include code.

assistant: # CompositorNodeCryptomatte(CompositorNode)

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

*class* bpy.types.CompositorNodeCryptomatte(*CompositorNode*)
:   Deprecated. Use Cryptomatte Node instead

    add
    :   Add object or material to matte, by picking a color from the Pick output

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

    matte_id
    :   List of object and material crypto IDs to include in matte

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

    remove
    :   Remove object or material from matte, by picking a color from the Pick output

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

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

    update()

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of Frame Cache: syntax, arguments, return values, common patterns.

assistant: Image files are cached during playback for faster access.

While loading images is rarely a bottleneck,
there are situations where high resolution images may slow down playback causing frame skipping.
user: Provide the full official documentation entry for Introduction, preserving all code examples.

assistant: # Introduction

Grease Pencil has their own set of modifiers.
Modifiers are automatic operations that affect an object in a non-destructive way.
With modifiers, you can perform many effects automatically that would otherwise be
too tedious to do manually and without affecting the base geometry of your object.

With [Geometry Nodes](../../modeling/geometry_nodes/index.html), it is possible to create custom Grease Pencil modifiers.

They work by changing how an object is displayed and rendered, but not the geometry which you can edit directly.
You can add several modifiers to a single object forming the modifier stack
and [Apply](#grease-pencil-modifiers-apply) a modifier if you wish to make its changes permanent.

There are four types of modifiers for Grease Pencil:

Edit
:   These are tools similar to the Deform ones (see below), however, they usually do not directly
    affect the geometry of the object, but some other data, such as vertex groups.

Generate
:   The *Generate* group of modifiers includes constructive tools that either change
    the general appearance of or automatically add new geometry to an object.

Deform
:   The *Deform* group of modifiers only changes the shape of an object without adding new geometry,

Color
:   The *Color* group of modifiers change the object color output.
user: Give a detailed overview of Node-Based Tools: syntax, arguments, return values, common patterns.

assistant: # Node-Based Tools

Geometry [node groups](../../interface/controls/nodes/groups.xhtml) can not just be applied to
an object using a modifier. It’s also possible to turn them into tools that can be invoked
from the Blender menu.

You can create such tools in the [Tool Context](#tool-context), after which they appear in the
*Non-Assets* menu of the 3D Viewport. If you want to move them to a different menu,
reuse them in other blend-files, or share them with someone else, you need to turn
them into an asset as described below.

[image reference removed]

Node group tools integrated in the Curves menu.
user: Explain Tips for Nice Setups in complete detail according to the official Blender documentation.

assistant: - For optimal deformations, it is recommended that the bones are roughly the same length,
  and that they are not too long, to facilitate a better fit to the curve.
  Also, bones should ideally be created in a way that follows the shape of the curve in its ‘rest pose’ shape,
  to minimize the problems in areas where the curve has sharp bends
  which may be especially noticeable when stretching is disabled.
- For control of the curve, it is recommended that hooks (in particular, Bone Hooks)
  are used to control the control points of the curve, with one hook per control point.
  In general, only a few control points should be needed for the curve
  (e.g. one for every 3-5 bones offers decent control).
- The type of curve used does not really matter,
  as long as a path can be extracted from it that could also be used by the Follow Path Constraint.
  This really depends on the level of control required from the hooks.
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`Area.regions`](bpy.types.Area.html#bpy.types.Area.regions "bpy.types.Area.regions") - [`Context.region`](bpy.types.Context.html#bpy.types.Context.region "bpy.types.Context.region") | - [`Context.region_popup`](bpy.types.Context.html#bpy.types.Context.region_popup "bpy.types.Context.region_popup") |
user: Explain Separate Transform Node in complete detail according to the official Blender documentation.

assistant: # Separate Transform Node

[image reference removed]

The *Separate Transform* node separates a [Transformation Matrix](../../../../glossary/index.xhtml#term-Transformation-Matrix)
into a translation vector, a rotation vector, and a scale vector.
user: Explain ScriptDirectory(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # ScriptDirectory(bpy_struct)

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

*class* bpy.types.ScriptDirectory(*bpy_struct*)
:   directory
    :   Alternate script path, matching the default layout with sub-directories: startup, add-ons, modules, and presets (requires restart)

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

    name
    :   Identifier for the Python scripts directory

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

assistant: # GeometryNodeResampleCurve(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.GeometryNodeResampleCurve(*GeometryNode*)
:   Generate a poly spline for each input spline

    keep_last_segment
    :   Do not collapse curves to single points if they are shorter than the given length. The collapsing behavior exists for compatibility reasons.

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

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

Iterations
:   The number of Laplacian smoothing iterations to apply.
    Each iteration progressively diffuses high-frequency surface variations,
    reducing surface noise.
    Higher values increase smoothness but may cause slight surface shrinkage.
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Image
:   Standard color input.

Channel
:   Selects which color values are used to calculate analytics.

    Combined:
    :   Calculate values based on the red, green, and blue channels.

    Red:
    :   Calculate values based on the red channel.

    Green:
    :   Calculate values based on the green channel.

    Blue:
    :   Calculate values based on the blue channel.

    Luminance:
    :   Calculate values based on the [Luminance](../../../glossary/index.html#term-Luminance) of the image.
user: Show practical ways to work with ShaderNodeSqueeze(ShaderNode) in a Blender add-on or script – include code.

assistant: # ShaderNodeSqueeze(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.ShaderNodeSqueeze(*ShaderNode*)
:   Deprecated

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

assistant: ### Unsupported Graphics Driver Error

This means your graphics card and driver do not have the minimum required OpenGL 3.3 version needed by Blender.

Installing the latest version of the correct driver can help upgrade the OpenGL version, though some graphics cards
are simply too old to run the latest Blender. In such cases, using Blender 2.79 or earlier is the only option.
Starting with Blender 2.8 (which added EEVEE), there is less support for older graphics hardware.

### Crash on Startup

Try running Blender from the [command line](../../../advanced/command_line/index.html), to see if any helpful error messages
are printed.

On Windows, graphics drivers can sometimes get corrupted or incorrectly replaced by Windows Update. In this case, it
can help to uninstall all graphics drivers (there may be multiple sets installed from Intel, AMD and NVIDIA) and
perform a clean installation with drivers from the manufacturer’s website.

### Poor Performance

- Update your graphics drivers (see above).
- On laptops, make sure you are using a dedicated GPU (see above).
- Try lowering quality settings in Preferences ‣ System ‣ Memory & Limits.
- Try undoing settings in your graphics drivers, if you made any changes there.

### Render Errors

See [EEVEE](../../../render/eevee/limitations/index.html) and [Cycles](../../../render/cycles/gpu_rendering.html) documentation
respectively.

### Wrong Selection in 3D Viewport

See [Invalid Selection, Disable Anti-Aliasing](../../3d_view.html#troubleshooting-3dview-invalid-selection).

### Virtual Machines

Running Blender inside a virtual machine is known to have problems when OpenGL drawing calls are forwarded to the host
operating system.

To resolve this, configure the system to use PCI passthrough.

Some VM hosts may require turning on GPU paravirtualization. Some GPU vendors restrict this function to higher-priced
cards or models.
user: Show practical ways to work with Modifiers, Constraints, and Visual Effects in a Blender add-on or script – include code.

assistant: You can manage [Modifiers](../../modeling/modifiers/index.html), [Constraints](../../animation/constraints/index.html), and
[Visual Effects](../../grease_pencil/visual_effects/index.html) from the Outliner in a couple of ways:

- You can drag and drop individual items to change their order within the [stack](../../modeling/modifiers/introduction.html#modifier-stack) or to copy
  them to another object.
- You can drag and drop the group item (e.g. *Modifiers*) to copy the whole stack to another object.
  The target object’s existing stack will be replaced.
- You can apply and delete items using the context menu.
user: Provide the full official documentation entry for Properties, preserving all code examples.

assistant: Mode
:   How to link to OSL shaders.

    Internal:
    :   A text data-block is used to store the OSL shader, and the OSO bytecode is stored in the node itself.
        This is useful for distributing a blend-file with everything packed into it.

        Script Node Update
        :   Reloads the text file data-block, creating new inputs and outputs if needed.

    External:
    :   Used to specify a `.osl` file from a drive,
        and this will then be automatically compiled into a `.oso` file in the same directory.
        It is also possible to specify a path to a `.oso` file, which will then be used directly,
        with compilation done manually by the user. The third option is to specify just the module name,
        which will be looked up in the shader search path.

        The shader search path is located in the same place as the scripts or configuration path, under:

        **Linux:**

        ```
        $HOME/.config/blender/5.0/shaders/
        ```

        **Windows:**

        ```
        C:\Users\$user\AppData\Roaming\Blender Foundation\Blender\5.0\shaders\
        ```

        **macOS:**

        ```
        /Users/$USER/Library/Application Support/Blender/5.0/shaders/
        ```
user: Give a detailed overview of Adding Properties to a Keying Set: syntax, arguments, return values, common patterns.

assistant: Some ways to add properties to Keying Sets.

`RMB` the property in the *User Interface*, then select *Add Single to Keying Set* or *Add All to Keying Set*.
This will add the properties to the active Keying Set, or to a new Keying Set if none exist.

Hover the mouse over the properties, then press `K`, to add *Add All to Keying Set*.
user: Describe Inputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Image
:   Standard color input.

Corners
:   Four vector inputs to define the plane warping. (Z component of vector inputs is ignored.)

### Sampling

Interpolation
:   Determines how pixel values are interpolated when scaling or transforming images.

    Nearest:
    :   Uses the value of the closest pixel with no smoothing.
        This is the fastest method and is well-suited for pixel art or low-resolution images
        where sharp, blocky edges are desirable.
        In animations, motion appears in single-pixel steps, which can cause visible jittering.

    Bilinear:
    :   Averages the values of surrounding pixels to create a smoother result than *Nearest*.
        Provides a good balance between performance and visual quality.

    Bicubic:
    :   Computes a weighted average of a larger neighborhood of pixels for even smoother results.
        Ideal for photographic images or gradients where preserving fine detail is important.

    Anisotropic:
    :   Adjusts interpolation based on the direction and scale of the transformation.
        Helps reduce blurring or aliasing when scaling at steep angles or uneven resolutions,
        especially useful in textures viewed at oblique angles or in detailed 3D projections.
user: Describe Data-Block Menu from the Blender manual or Python API, including usage steps and snippets.

assistant: # Data-Block Menu

Lets you select a [Data-Block](../../../files/data_blocks.xhtml) (such as a material)
in order to link it to something else (such as an object).

[image reference removed]

A data-block menu with a search field.

Type
:   Shows an icon indicating the data-block type. Clicking the image or the down arrow opens the popup menu.
    Dragging the image lets you apply the data-block to something else. (For example, you can drag a
    material onto an object in the 3D Viewport to [assign](../../../render/materials/assignment.xhtml) it.
    Dragging onto [Data ID](#ui-data-id) fields is also possible.)

    List
    :   A list of data-blocks available in the current blend-file, or a link to select an item from.
        The menu may show a preview besides the items and
        a search field to search the items in the list by name.

Name
:   Displays, and allows [editing](../../../files/data_blocks.xhtml#data-system-datablock-name-and-rename) of, the name of the selected
    data-block.

User Count
:   Displays the number of [users](../../../glossary/index.xhtml#term-Data-User) of the data (if there’s more than one user).
    Clicking it will create a single-user copy.

    As an example, if three separate objects referenced the same material, the material’s user count would be 3.
    Changing the material would affect all three objects. If you now selected an object and clicked the user count,
    the object would receive its very own copy of the material, which can be modified independently of the original
    that’s still used by the other two.

Fake User (shield icon)
:   If a data-block has no [real users](../../../glossary/index.xhtml#term-Real-User), it’ll normally be cleaned up
    (deleted) when saving the blend-file. To prevent this, you can give it a fake user;
    that way, it’s guaranteed to “survive.” Data-blocks with a fake user have an “F”
    prefix in the drop-down list.

    The [Outliner](../../../editors/outliner/introduction.xhtml) can show an overview of all data-blocks
    without real users in the blend-file. Simply change its Display Mode to Orphan Data.

New/Add (files icon)
:   Creates a new data-block (or duplicates the current one) and selects it.

Open File (folder icon)
:   Opens the [File Browser](../../../editors/file_browser.xhtml), for importing an image for example.

Unpack File (bin icon)
:   [Unpack](../../../files/blend/packed_data.xhtml#pack-unpack-data) the file packed into the current blend-file to an external one.

(Unlink Data-block)
:   Clears the link. `Shift`-`LMB` to set the users to zero
    allowing the data to be fully deleted from the blend-file.

Sometimes there is a [list](list_view.xhtml#ui-list-view) of applied data-blocks
(such as a list of materials used on the object).
user: Give a detailed overview of Fly & Walk: syntax, arguments, return values, common patterns.

assistant: View Navigation
:   The default mode for interactive first person navigation.

    See [Fly/Walk Navigation](../3dview/navigate/walk_fly.html#dview-fly-walk).

### Walk

Reverse Mouse
:   Inverts the mouse’s Y movement.

Mouse Sensitivity
:   Speed factor for when looking around, high values mean faster mouse movement.

Teleport Duration
:   Interval of time warp when teleporting in navigation mode.

Walk Speed
:   Base speed for walking and flying.

Speed Factor
:   The multiplication factor for the speed boost.

### Gravity

Simulates the effect of gravity when walking.

View Height
:   The distance from the ground floor to the camera when walking.

Jump Height
:   The maximum height of a jump.
user: How do I use GeometryNodeGizmoDial(GeometryNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # GeometryNodeGizmoDial(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.GeometryNodeGizmoDial(*GeometryNode*)
:   Show a dial gizmo in the viewport for a value

    color_id
    :   Type:
        :   enum in [Geometry Nodes Gizmo Color Items](bpy_types_enum_items/geometry_nodes_gizmo_color_items.html#rna-enum-geometry-nodes-gizmo-color-items), default `'PRIMARY'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Thanks to this business model, NaN was able to fund a booth at a renowned computer graphics conference in Los Angeles,
SIGGRAPH (Special Interest Group on Computer Graphics and Interactive Techniques). As a consequence, Blender attracted
two rounds of funding totaling some five and a half million US dollars. Despite this investment, a harsh economic
climate, excess spending, and troubled relations between NaN and its investors meant that the company closed in early
2002.

With NaN’s demise, Blender’s development ceased. Unable to buy the rights from NaN’s backers, Roosendaal opted for a
novel plan. In May of 2002, he started a non-profit, the Blender Foundation, with the intention of making Blender
[open-source](https://opensource.org/). His hope was to create a public monument to Blender, and give everyone who
had worked on the Blender project the chance to use it for their portfolios. In July of the same year, he launched the
first-ever crowdfunding campaign: Free Blender. Thanks to Blender’s community of 250,000 users, the Blender Foundation
was able to raise one hundred and ten thousand euros in just seven weeks — sufficient to regain Blender from its
investors.

On Sunday, October 13th, 2002, Blender was released under the terms of the [GNU General Public License](https://www.gnu.org/licenses/gpl.html), the strictest possible open-source contract. Not only would Blender be
free, but its source code would remain free, forever, to be used for any purpose whatsoever.

The success of Free Blender cleared the way for a style of development that has become Blender’s defining strength.
While Blender’s evolution is partly driven by grant-funded developers and guided by a core team at the Blender
Foundation, Amsterdam, its greatest advantage is a global community of dedicated volunteers. Thanks to their efforts,
Blender is able to iterate rapidly and respond to the needs of artists and makers. Such nimbleness and creativity
would be much harder within the confines of a traditional business model.
user: What is Shader Nodes and how is it used in Blender Python scripting?

assistant: - All BSDF’s are using approximations to achieve realtime performance
  so there will always be small differences between Cycles and EEVEE.
- Some utility nodes are not yet compatible with EEVEE.
- Certain combinations of BSDF’s will result in more noise than others.
  This is the case when mixing Diffuse BSDF and Refraction BSDF.
- Displacement of flat shaded surfaces will split the mesh into triangles.
  See [Displacement](../material_settings.xhtml#bpy-types-material-displacement-method) for a workaround.
user: Describe Spiral Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Spiral Node

[image reference removed]

The *Spiral* node generates a poly spline in a spiral shape.
It can be used to create springs or other similar objects.
By default the spiral twists in a clockwise fashion.
user: Show practical ways to work with View Tab in a Blender add-on or script – include code.

assistant: ### Display

You can set the editor’s display options in this panel.

Aspect Ratio X, Y
:   Display aspect for this image. Does not affect rendering.

Repeat Image
:   Tile the image so it completely fills the editor.

Pixel Coordinates
:   Use pixel coordinates rather than relative coordinates (0 to 1) for the UV Vertex
    and 2D Cursor Location fields.

### 2D Cursor

Location X, Y
:   View and change the location of the 2D Cursor.

### Annotations

Options for the [Annotate tool](../../interface/annotate_tool.xhtml).
user: What is Set Curve Type and how is it used in Blender Python scripting?

assistant: Sets the spline type for the splines in the stroke component that are in the selection.

Type
:   Specifies the target spline type. For more details on spline types, see the
    [Spline Types](../../../modeling/curves/structure.html#curve-spline-types) documentation.

    Bézier:
    :   Converts the spline to a Bézier type.
        - Poly splines are converted with vector handles.
        - NURBS or Catmull Rom splines are converted with automatic handles.

    NURBS:
    :   Converts the spline to a NURBS type.

    Poly:
    :   Converts the spline to a poly type.

    Catmull Rom:
    :   Converts the spline to a Catmull Rom type.

Handles
:   Includes handle information during the conversion process.
user: Describe Display from the Blender manual or Python API, including usage steps and snippets.

assistant: You can see these segments only if bones are visualized as *B-bones*.

When not visualized as *B-Bone*s, bones are always shown as rigid sticks,
even though the bone segments are still present and effective.
This means that even in e.g. *Octahedron* visualization,
if some bones in a chain have several segments,
they will nonetheless smoothly deform their geometry.
user: What is Extrude Faces Along Normals and how is it used in Blender Python scripting?

assistant: # Extrude Faces Along Normals

Extrusion and offset will be locked in to only move along the local normals of the selected mesh.

Flip Normals
:   Only the *normals* of the new faces created from the extrusion will be flipped.

Dissolve Orthogonal Edges
:   Removes and connects edges whose faces form a flat surface and intersect new edges.

Offset
:   Amount to move geometry along the normals.

Offset Even
:   The length of the new edges will be uniform.

Proportional Editing
:   The extruded face will affect nearby geometry.
    See [Proportional Editing](../../../../editors/3dview/controls/proportional_editing.xhtml) for a full reference.
user: Provide the full official documentation entry for AnyType(bpy_struct), preserving all code examples.

assistant: # AnyType(bpy_struct)

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

*class* bpy.types.AnyType(*bpy_struct*)
:   RNA type used for pointers to any possible 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: Describe Properties from the Blender manual or Python API, including usage steps and snippets.

assistant: Data Type
:   Float:
    :   The node will average a *Float* field.

    Vector:
    :   The node will average a *Vector* field.

Domain
:   The [attribute domain](../../attributes_reference.xhtml#attribute-domains) used for evaluate the *Value* input.
user: Describe Settings from the Blender manual or Python API, including usage steps and snippets.

assistant: Rigid Body World
:   Enable/disable evaluation of the rigid body simulation based on the rigid body objects
    participating in the specified group of Rigid Body World.

Remove Rigid Body World
:   Remove rigid body simulation from the current scene.

Collection
:   Containing rigid body objects participating in this simulation.

Constraints
:   Containing rigid body object constraints participating in the simulation.

Simulation quality and timing settings:

Speed
:   Can be used to speed up/slow down the simulation.

Split Impulse
:   Enable/disable reducing extra velocity that can build up when objects collide
    (lowers the simulation stability a little so use only when necessary).
    Limits the force with which objects are separated on collision, generally produces nicer
    results, but makes the simulation less stable (especially when stacking many objects).

Substeps Per Frame
:   Number of simulation steps taken per frame (higher values are more accurate but slower).
    This only influences the accuracy and not the speed of the simulation.

Solver Iterations
:   Amount of constraint solver iterations made per simulation step (higher values are more accurate but slower).
    Increasing this makes constraints and object stacking more stable.
user: What is Developer Tools and how is it used in Blender Python scripting?

assistant: # Developer Tools

These preferences are reserved for features that aid Blender and add-on development.
This category is hidden by default and is visible enabling
[Developer Extras](interface.xhtml#bpy-types-preferencesview-show-developer-ui).
user: Show practical ways to work with Float2AttributeValue(bpy_struct) in a Blender add-on or script – include code.

assistant: # Float2AttributeValue(bpy_struct)

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

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

    vector
    :   2D vector

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Color
:   Volume scattering color.

Color Attribute
:   Volume grid for coloring the volume. Use “color” for smoke simulations.

Density
:   Density of the volume.

Density Attribute
:   Volume grid to define the density, typically “density”.

Anisotropy
:   Backward or forward scattering direction.

Absorption Color
:   Volume shadow color tint.

Emission Strength
:   Amount of light to emit.

Emission Color
:   Emission color tint.

Blackbody Intensity
:   Blackbody emission for fire. Set to 1 for physically accurate intensity.

Blackbody Tint
:   Color tint for blackbody emission.

Temperature
:   Temperature in kelvin for blackbody emission, higher values emit more.

Temperature Attribute
:   Volume grid to define the temperature, typically “temperature”.
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`MovieClip.metadata`](bpy.types.MovieClip.html#bpy.types.MovieClip.metadata "bpy.types.MovieClip.metadata") | - [`MovieStrip.metadata`](bpy.types.MovieStrip.html#bpy.types.MovieStrip.metadata "bpy.types.MovieStrip.metadata") |
user: Show practical ways to work with SpeedControlStrip(EffectStrip) in a Blender add-on or script – include code.

assistant: # SpeedControlStrip(EffectStrip)

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

*class* bpy.types.SpeedControlStrip(*EffectStrip*)
:   Sequence strip to control the speed of other strips

    input_1
    :   First input for the effect strip

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

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

    speed_control
    :   Speed control method

        - `STRETCH`
          Stretch – Adjust input playback speed, so its duration fits strip length.
        - `MULTIPLY`
          Multiply – Multiply with the speed factor.
        - `FRAME_NUMBER`
          Frame Number – Frame number of the input strip.
        - `LENGTH`
          Length – Percentage of the input strip length.

        Type:
        :   enum in [`'STRETCH'`, `'MULTIPLY'`, `'FRAME_NUMBER'`, `'LENGTH'`], default `'STRETCH'`

    speed_factor
    :   Multiply the current speed of the strip with this number or remap current frame to this frame

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

    speed_frame_number
    :   Frame number of input strip

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

    speed_length
    :   Percentage of input strip length

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

    use_frame_interpolate
    :   Do crossfade blending between current and next frame

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

assistant: |  |  |
| --- | --- |
| - [`PreferencesFilePaths.script_directories`](bpy.types.PreferencesFilePaths.html#bpy.types.PreferencesFilePaths.script_directories "bpy.types.PreferencesFilePaths.script_directories") |  |
user: How do I use Boolean Modifier in Blender? Include parameters, examples, warnings and best practices.

assistant: # Boolean Modifier

The *Boolean* modifier combines multiple meshes using a Boolean operation.

[image reference removed]

Applying the modifier to a sphere and creating the Intersection, Union, and Difference
with a cube. The cube is hidden for a better view.
user: How do I use Limit Distance Constraint in Blender? Include parameters, examples, warnings and best practices.

assistant: # Limit Distance Constraint

The *Limit Distance* constraint forces an object or bone to stay further from,
nearer to, or exactly at a given distance from a target. In other words,
the owner’s location is constrained to be either outside, inside,
or on the surface of a sphere centered on the target.
user: How do I use References in Blender? Include parameters, examples, warnings and best practices.

assistant: |  |  |
| --- | --- |
| - [`FreestyleLineStyle.thickness_modifiers`](bpy.types.FreestyleLineStyle.html#bpy.types.FreestyleLineStyle.thickness_modifiers "bpy.types.FreestyleLineStyle.thickness_modifiers") - [`LineStyleThicknessModifiers.new`](bpy.types.LineStyleThicknessModifiers.html#bpy.types.LineStyleThicknessModifiers.new "bpy.types.LineStyleThicknessModifiers.new") | - [`LineStyleThicknessModifiers.remove`](bpy.types.LineStyleThicknessModifiers.html#bpy.types.LineStyleThicknessModifiers.remove "bpy.types.LineStyleThicknessModifiers.remove") |
user: What is Limit Location Constraint and how is it used in Blender Python scripting?

assistant: # Limit Location Constraint

The *Limit Location* constraint forces an object or bone to stay above a coordinate,
below a coordinate, or between two coordinates along one or more axes.

Like other constraints, *Limit Location* only looks at the [origin](../../../scene_layout/object/origin.xhtml)
for objects; their geometry is not taken into account. This means that, if a cube’s origin
is at its center and a *Limit Location* constraint is added for the coordinates of a
floor plane, the cube will still be able to sink halfway into the plane.