PGCRYPT/OpenBlender_Train huggingface dataset:
user: Provide the full official documentation entry for The Brush, preserving all code examples.

assistant: # The Brush

Sculpt Mode is very recognizable by the behavior and visualization of the brush.
All the usual brush controls still apply, yet the brush for sculpting is displayed in 3D.
This means that the brush will follow the curvature of the surface
by orienting the radius to match the topology [Normal](../../../glossary/index.html#term-Normal).

The inner ring of the brush cursor is used to visualize the strength of the brush.

[image reference removed]

The brush is also used for other [tools](../tools/index.html) in the toolbar
to better display how that tool works. For example, the [Box Trim](../tools/trim_tools.html#tool-box-trim)
and [Lasso Trim](../tools/trim_tools.html#tool-lasso-trim) tools are able to use the current brush radius
for how deep geometry is trimmed or added.
user: Show practical ways to work with Show/Hide in a Blender add-on or script – include code.

assistant: # Show/Hide

Show Hidden Objects `Alt`-`H`
:   Reveals all hidden objects.

Hide Selected `H`
:   Hides all selected objects.

Hide Unselected `Shift`-`H`
:   Hides all unselected objects of the scene.
user: Give a detailed overview of FCurveKeyframePoints(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # FCurveKeyframePoints(bpy_struct)

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

*class* bpy.types.FCurveKeyframePoints(*bpy_struct*)
:   Collection of keyframe points

    insert(*frame*, *value*, *\**, *options={}*, *keyframe_type='KEYFRAME'*)
    :   Add a keyframe point to a F-Curve

        Parameters:
        :   - **frame** (*float in* *[**-inf**,* *inf**]*) – X Value of this keyframe point
            - **value** (*float in* *[**-inf**,* *inf**]*) – Y Value of this keyframe point
            - **options** (enum set in {`'REPLACE'`, `'NEEDED'`, `'FAST'`}, (optional)) –

              Keyframe options

              - `REPLACE`
                Replace – Don’t add any new keyframes, but just replace existing ones.
              - `NEEDED`
                Needed – Only adds keyframes that are needed.
              - `FAST`
                Fast – Fast keyframe insertion to avoid recalculating the curve each time.
            - **keyframe_type** (enum in [Beztriple Keyframe Type Items](bpy_types_enum_items/beztriple_keyframe_type_items.html#rna-enum-beztriple-keyframe-type-items), (optional)) – Type of keyframe to insert

        Returns:
        :   Newly created keyframe

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

    add(*count*)
    :   Add a keyframe point to a F-Curve

        Parameters:
        :   **count** (*int in* *[**0**,* *inf**]*) – Number, Number of points to add to the spline

    remove(*keyframe*, *\**, *fast=False*)
    :   Remove keyframe from an F-Curve

        Parameters:
        :   - **keyframe** ([`Keyframe`](bpy.types.Keyframe.html#bpy.types.Keyframe "bpy.types.Keyframe"), (never None)) – Keyframe to remove
            - **fast** (*boolean**,* *(**optional**)*) – Fast, Fast keyframe removal to avoid recalculating the curve each time

    clear()
    :   Remove all keyframes from an F-Curve

    sort()
    :   Ensure all keyframe points are chronologically sorted

    deduplicate()
    :   Ensure there are no duplicate keys. Assumes that the points have already been sorted

    handles_recalc()
    :   Update handles after modifications to the keyframe points, to update things like auto-clamping

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

assistant: # Cast Modifier

The *Cast* modifier shifts the shape of a mesh, curve,
surface or lattice, towards any of a few predefined shapes (sphere, cylinder, cuboid).

It is equivalent to the [To Sphere](../../meshes/editing/mesh/transform/to_sphere.xhtml#tool-transform-to-sphere) tool in Edit Mode,
and what other programs call “Spherify” or “Spherize”, but, as written above,
it is not limited to casting to a sphere.
user: Provide the full official documentation entry for Surface, preserving all code examples.

assistant: Displacement
:   Method used to perform [Displacement](../materials/components/displacement.html) on materials.

    Displacement Only:
    :   Mesh vertices will be displaced before rendering, modifying the actual mesh.
        This gives the best quality results, if the mesh is finely subdivided.
        As a result, this method is also the most memory intensive.

    Bump Only:
    :   When executing the surface shader, a modified surface normal is used instead of the true normal.
        This is a less memory intensive alternative to actual displacement, but only an approximation.
        Surface silhouettes will not be accurate and there will be no self-shadowing of the displacement.

    Displacement and Bump:
    :   Both methods can be combined, to do displacement on a coarser mesh,
        and use bump mapping for the final detail.

Emission Sampling
:   The method used for sampling the emissive component of the material.
    This option will only have an influence if the material contains an emissive material node,
    otherwise it will be ignored.

    None:
    :   Do not use this surface as a light for sampling.

    Auto:
    :   Automatically determine if the surface should be treated as a light for sampling based on
        emission intensity.

    Front:
    :   Treat only the front side of the surface as a light, useful for closed meshes whose interior
        is not visible.

    Back:
    :   Treat only the back side of the surface as a light for sampling.

    Front and Back:
    :   Treat surface as a light for sampling, emitting from both the front and back side.

Transparent Shadows
:   Use transparent shadows if it contains a [Transparent BSDF](../shader_nodes/shader/transparent.html),
    disabling will render faster but will not give accurate shadows.

Bump Map Correction
:   Applies corrections to solve shadow terminator artifacts caused by bump mapping.
user: Give a detailed overview of StudioLights(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # StudioLights(bpy_struct)

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

*class* bpy.types.StudioLights(*bpy_struct*)
:   Collection of studio lights

    load(*path*, *type*)
    :   Load studiolight from file

        Parameters:
        :   - **path** (*string**,* *(**never None**)*) – File Path, File path where the studio light file can be found
            - **type** (enum in [`'STUDIO'`, `'WORLD'`, `'MATCAP'`]) – Type, The type for the new studio light

        Returns:
        :   Newly created StudioLight

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

    new(*path*)
    :   Create studiolight from default lighting

        Parameters:
        :   **path** (*string**,* *(**never None**)*) – Path, Path to the file that will contain the lighting info (without extension)

        Returns:
        :   Newly created StudioLight

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

    remove(*studio_light*)
    :   Remove a studio light

        Parameters:
        :   **studio_light** ([`StudioLight`](bpy.types.StudioLight.html#bpy.types.StudioLight "bpy.types.StudioLight"), (never None)) – The studio light to remove

    refresh()
    :   Refresh Studio Lights from disk

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

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

assistant: Display
:   The target display device as defined in the current OCIO configuration.
    See [Display](../../../render/color_management/displays_views.xhtml#bpy-types-colormanageddisplaysettings-display-device) for an explanation of all options.

View
:   The view transform to apply for the selected display.
    See [View](../../../render/color_management/displays_views.xhtml#bpy-types-colormanagedviewsettings-view-transform) for an explanation of all options.

Look
:   The look transform to apply.
    Optional, and may be *None* depending on the configuration.
    See [Look](../../../render/color_management/displays_views.xhtml#bpy-types-colormanagedviewsettings-look) for an explanation of all options.
user: Describe Editors from the Blender manual or Python API, including usage steps and snippets.

assistant: # Editors

Blender provides a number of different editors for displaying and modifying different aspects of data.
An Editor is contained inside an [Area](../interface/window_system/areas.xhtml)
which determines its size and placement within the Blender window.
Every area may contain any type of editor.

The *Editor Type* selector, the first button at the left side of a header,
allows you to change the Editor in that area.
It is also possible to open the same Editor type in different areas at the same time.

See [User Interface](../interface/index.xhtml) for documentation on the general interface.

[image reference removed]

The Editor Type selector.
user: Explain GeometryNodeRepeatOutput(GeometryNode) in complete detail according to the official Blender documentation.

assistant: # GeometryNodeRepeatOutput(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.GeometryNodeRepeatOutput(*GeometryNode*)
:   active_index
    :   Index of the active item

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

    active_item
    :   Index of the active item

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

    inspection_index
    :   Iteration index that is used by inspection features like the viewer node or socket inspection

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

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

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Explain StringAttributeValue(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # StringAttributeValue(bpy_struct)

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

*class* bpy.types.StringAttributeValue(*bpy_struct*)
:   String value in geometry attribute

    value
    :   Type:
        :   byte 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: Provide the full official documentation entry for Scale, preserving all code examples.

assistant: |  |  |
| --- | --- |
| ../../../../_images/scene-layout_object_properties_instancing_faces_scale-enabled.png   Scale enabled. | ../../../../_images/scene-layout_object_properties_instancing_faces_scale-changed.png   Top face of cube scaled down. |

By enabling *Scale* for the parent object,
the scale of the child objects will be adapted to the size of each face in the parent object.

Thus, by rescaling the face of the parent object,
the size of the instanced object will change accordingly.
user: Explain PointCaches(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # PointCaches(bpy_struct)

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

*class* bpy.types.PointCaches(*bpy_struct*)
:   Collection of point caches

    active_index
    :   Type:
        :   int in [0, inf], default 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: Show practical ways to work with Property Unit Items in a Blender add-on or script – include code.

assistant: # Property Unit Items

NONE:
:   None.

LENGTH:
:   Length.

AREA:
:   Area.

VOLUME:
:   Volume.

ROTATION:
:   Rotation.

TIME:
:   Time (Scene Relative).

TIME_ABSOLUTE:
:   Time (Absolute).

VELOCITY:
:   Velocity.

ACCELERATION:
:   Acceleration.

MASS:
:   Mass.

CAMERA:
:   Camera.

POWER:
:   Power.

TEMPERATURE:
:   Temperature.

WAVELENGTH:
:   Wavelength.

COLOR_TEMPERATURE:
:   Color Temperature.

FREQUENCY:
:   Frequency.
user: Provide the full official documentation entry for Options, preserving all code examples.

assistant: [image reference removed]

Flip Visual Effect.

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

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

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

assistant: Opens a dialog box to input the entry of any Unicode character by entering its hexadecimal code point value.

See Wikipedia for a [List of Unicode characters](https://en.wikipedia.org/wiki/List_of_Unicode_characters)
which list there respective hexadecimal code point values.
user: Give a detailed overview of XrNavigation(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # XrNavigation(bpy_struct)

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

*class* bpy.types.XrNavigation(*bpy_struct*)
:   VR navigation settings

    invert_rotation
    :   Reverses the direction of rotation input

        Type:
        :   boolean, default False

    snap_turn
    :   Instantly rotates the camera by a fixed angle instead of smoothly turning

        Type:
        :   boolean, default True

    turn_amount
    :   Amount in degrees per turn when using snap turn

        Type:
        :   float in [0, 6.28319], default 0.523599

    turn_speed
    :   Turn speed in degrees per second

        Type:
        :   float in [0, inf], default 1.0472

    vignette_intensity
    :   Intensity of vignette that appears when moving

        Type:
        :   float in [0, 100], default 60.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: What is Generated Rig Features and how is it used in Blender Python scripting?

assistant: # Generated Rig Features

After human rig generation a new armature named `rig` will be added to your scene.
This is the character rig you have generated from the human meta-rig and will contain all the features.
user: Show practical ways to work with Options in a Blender add-on or script – include code.

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

The Hook modifier.

Object
:   The name of the object to hook vertices to.

Vertex Group
:   Allows you to define the influence per vertex.

    Useful when you want something other than a spherical field of influence.

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

        The setting reverses the weight values of the group.

Strength
:   Adjust this hooks influence on the vertices, were (0.0 to 1.0) (no change to fully follows the hook).

    Since multiple hooks can work on the same vertices, you can weight the influence of a hook using this property.

The following settings are only available in Edit Mode:

Reset
:   Recalculate and clear the offset transform of the hook.

Recenter
:   Set the hook center to the 3D cursor position.

Select
:   Select the vertices affected by this hook.

Assign
:   Assigns selected vertices to this hook.

### Falloff

Type
:   This can be used to adjust the kind of influence curve that the hook has on the mesh.
    You can also define a custom curve to get a much higher level of control.

Radius
:   The size of the hooks influence.

Uniform Falloff
:   This setting is useful when using hooks on scaled objects,
    especially in cases where non-uniform scale would stretch the result of the hook.

    This is especially useful for lattices, where it is common to use non-uniform scaling.
user: Show practical ways to work with Inherited Properties in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") | - [`PropertyGroup.name`](bpy.types.PropertyGroup.html#bpy.types.PropertyGroup.name "bpy.types.PropertyGroup.name") |
user: Provide the full official documentation entry for MovieTrackingPlaneMarker(bpy_struct), preserving all code examples.

assistant: # MovieTrackingPlaneMarker(bpy_struct)

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

*class* bpy.types.MovieTrackingPlaneMarker(*bpy_struct*)
:   Match-moving plane marker data for tracking

    corners
    :   Array of coordinates which represents UI rectangle corners in frame normalized coordinates

        Type:
        :   float multi-dimensional array of 4 \* 2 items in [-inf, inf], default ((0.0, 0.0), (0.0, 0.0), (0.0, 0.0), (0.0, 0.0))

    frame
    :   Frame number marker is keyframed on

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

    mute
    :   Is marker muted for current 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: What is Tips and how is it used in Blender Python scripting?

assistant: - Soft bodies work especially well if the objects have an even vertex distribution.
  You need enough vertices for good collisions. You change the deformation
  (the stiffness) if you add more vertices in a certain region.
- The calculation of collisions may take a long time. If something is not visible, why calculate it?
- To speed up the collision calculation it is often useful to collide with an additional,
  simpler, invisible, somewhat larger object.
- Use soft bodies only where it makes sense.
  If you try to cover a body mesh with a tight piece of cloth and animate solely with soft body,
  you will have no success. Self-collision of soft body hair may be activated,
  but that is a path that you have to wander alone. We will deal with
  [Collisions](collision.xhtml) in detail later.
- Try and use a *Lattice* or a *Curve Guide* soft body instead of the object itself. This may be magnitudes faster.
user: Give a detailed overview of NodeSocketObject(NodeSocketStandard): syntax, arguments, return values, common patterns.

assistant: # NodeSocketObject(NodeSocketStandard)

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

*class* bpy.types.NodeSocketObject(*NodeSocketStandard*)
:   Object socket of a node

    default_value
    :   Input value used for unconnected socket

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

    links
    :   List of node links from or to this socket.

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

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

assistant: |  |  |
| --- | --- |
| - [`RenderEngine.pass_by_index_get`](bpy.types.RenderEngine.html#bpy.types.RenderEngine.pass_by_index_get "bpy.types.RenderEngine.pass_by_index_get") - [`RenderLayer.passes`](bpy.types.RenderLayer.html#bpy.types.RenderLayer.passes "bpy.types.RenderLayer.passes") | - [`RenderPasses.find_by_name`](bpy.types.RenderPasses.html#bpy.types.RenderPasses.find_by_name "bpy.types.RenderPasses.find_by_name") |
user: Give a detailed overview of Scopes: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Scopes in the Image Editor.

Displays different kinds of statistical information about the colors in the image.

Note that the Scopes tab is not shown if the active object is in Edit Mode
or Texture Paint Mode.

### Histogram

Displays a graph of the color distribution in the image. For each color value
(such as Luminance) on the X axis, it shows the number of pixels with that value
on the Y axis.
A predominantly dark image would have the highest values toward the left side of the graph.

Use this mode to balance out the tonal range in an image.
A well-balanced image should have a nice smooth distribution of color values.

You can drag `LMB` in the histogram to adjust its vertical zoom.

Luma
:   Shows a luminosity histogram.

RGB
:   Shows the RGB channels stacked on top of each other.

R/G/B/A
:   Shows a single color channel.

Show Line
:   Displays lines rather than filled shapes.

### Waveform

Plots the color distribution for each vertical line of pixels in the image.
The X axis of the Waveform corresponds to the X axis of the image, while the Y axis
represents the range of a color component such as Luminance. The brighter
a specific point is, the more pixels in that vertical line have that color value.

Waveform Opacity
:   Opacity of the points.

Waveform Mode
:   Luma
    :   Show a single Waveform plotting the luminosity distribution.

    YCbCr
    :   Show the Y, Cb and Cr Waveforms side by side.

    Parade
    :   Show the R, G and B Waveforms side by side.

    Red Green Blue
    :   Show the R, G and B Waveforms overlaid on top of each other.

### Vectorscope

Shows the color distribution in a radial fashion. The angle represents the hue,
while the distance from the center represents the saturation.

Vectorscope Opacity
:   Opacity of the points.

### Sample Line

The *Sample Line* scope is the same as the [Histogram](#histogram)
but allows you to get the sample data from a line.

Sample Line
:   Used to draw a line to read the sample data from.

### Samples

Full Sample
:   Sample every pixel.

Accuracy
:   Proportion of image pixels to sample if *Full Sample* is disabled.
user: Describe Operator Menus from the Blender manual or Python API, including usage steps and snippets.

assistant: Each operator should receive its own heading or page based on the length of the content. At the start should be a
reference admonition documenting the context of the operator:

```
.. reference::

   :Mode:      Edit Mode
   :Menu:      :menuselection:`Curve --> Snap`
   :Shortcut:  :kbd:`Shift-S`
```
user: Explain Environment Variables in complete detail according to the official Blender documentation.

assistant: BLENDER_USER_RESOURCES:
:   Replace default directory of all user files.
    Other `BLENDER_USER_*` variables override when set.

BLENDER_USER_CONFIG:
:   Directory for user configuration files.

BLENDER_USER_SCRIPTS:
:   Directory for user scripts.

BLENDER_USER_EXTENSIONS:
:   Directory for user extensions.

BLENDER_USER_DATAFILES:
:   Directory for user data files (icons, translations, ..).

BLENDER_SYSTEM_RESOURCES:
:   Replace default directory of all bundled resource files.

BLENDER_SYSTEM_SCRIPTS:
:   Directories to add extra scripts.

BLENDER_SYSTEM_EXTENSIONS:
:   Directory for system extensions repository.

BLENDER_SYSTEM_DATAFILES:
:   Directory to replace bundled datafiles.

BLENDER_SYSTEM_PYTHON:
:   Directory to replace bundled Python libraries.

BLENDER_CUSTOM_SPLASH:
:   Full path to an image that replaces the splash screen.

BLENDER_CUSTOM_SPLASH_BANNER:
:   Full path to an image to overlay on the splash screen.

BLENDER_OCIO:
:   Path to override the OpenColorIO configuration file.
    If not set, the `OCIO` environment variable is used.

TEMP:
:   Store temporary files here (MS-Windows).

TMPDIR:
:   Store temporary files here (UNIX Systems).
    The path must reference an existing directory or it will be ignored.
user: Describe Space Type Items from the Blender manual or Python API, including usage steps and snippets.

assistant: # Space Type Items

EMPTY:
:   Empty.

**General**

VIEW_3D:
:   3D Viewport.

    Manipulate objects in a 3D environment.

IMAGE_EDITOR:
:   UV/Image Editor.

    View and edit images and UV Maps.

NODE_EDITOR:
:   Node Editor.

    Editor for node-based shading and compositing tools.

SEQUENCE_EDITOR:
:   Video Sequencer.

    Non-linear editor for arranging and mixing scenes, video, audio, and effects.

CLIP_EDITOR:
:   Movie Clip Editor.

    Motion tracking tools.

**Animation**

DOPESHEET_EDITOR:
:   Dope Sheet.

    Adjust timing of keyframes.

GRAPH_EDITOR:
:   Graph Editor.

    Edit drivers and keyframe interpolation.

NLA_EDITOR:
:   Nonlinear Animation.

    Combine and layer Actions.

**Scripting**

TEXT_EDITOR:
:   Text Editor.

    Edit scripts and in-file documentation.

CONSOLE:
:   Python Console.

    Interactive programmatic console for advanced editing and script development.

INFO:
:   Info.

    Log of operations, warnings and error messages.

TOPBAR:
:   Top Bar.

    Global bar at the top of the screen for global per-window settings.

STATUSBAR:
:   Status Bar.

    Global bar at the bottom of the screen for general status information.

**Data**

OUTLINER:
:   Outliner.

    Overview of scene graph and all available data-blocks.

PROPERTIES:
:   Properties.

    Edit properties of active object and related data-blocks.

FILE_BROWSER:
:   File Browser.

    Browse for files and assets.

SPREADSHEET:
:   Spreadsheet.

    Explore geometry data in a table.

PREFERENCES:
:   Preferences.

    Edit persistent configuration settings.
user: How do I use Shader Nodes in Blender? Include parameters, examples, warnings and best practices.

assistant: # Shader Nodes

Cycles applies a number of shader node optimizations both at compile time and run-time.
By exploiting them it is possible to design complicated “Uber Shader”
style node groups that incur minimal render time overhead for unused features.
user: Explain NodesModifierBakeDataBlocks(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # NodesModifierBakeDataBlocks(bpy_struct)

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

*class* bpy.types.NodesModifierBakeDataBlocks(*bpy_struct*)
:   Collection of data-blocks that can be referenced by baked data

    active_index
    :   Type:
        :   int in [-inf, inf], default 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 Bump Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Bump Node

[image reference removed]

The *Bump* node generates a perturbed normal from a height texture, for bump mapping.
The height value will be sampled at the shading point and two nearby points
on the surface to determine the local direction of the normal.
user: How do I use References in Blender? Include parameters, examples, warnings and best practices.

assistant: |  |  |
| --- | --- |
| - [`bpy.context.cloth`](bpy.context.html#bpy.context.cloth "bpy.context.cloth") | - [`ParticleSystem.cloth`](bpy.types.ParticleSystem.html#bpy.types.ParticleSystem.cloth "bpy.types.ParticleSystem.cloth") |
user: Explain Frequently Asked Questions in complete detail according to the official Blender documentation.

assistant: ### Why is Blender unresponsive during rendering?

On older GPU generations, graphics cards can only either render or draw the user interface.
This can make Blender unresponsive while it is rendering.
Heavy scenes can also make Blender unresponsive on newer GPUs,
when using a lot of memory or executing expensive shaders, however this is generally less of a problem.

The only complete solution for this is to use a dedicated GPU for rendering, and another for display.

### Why does a scene that renders on the CPU not render on the GPU?

There may be multiple causes,
but the most common one is that there is not enough memory on your graphics card.
Typically, the GPU can only use the amount of memory that is on the GPU
(see [Would multiple GPUs increase available memory?](#would-multiple-gpus-increase-available-memory) for more information).
This is usually much smaller than the amount of system memory the CPU can access.
With CUDA, OptiX, HIP and Metal devices, if the GPU memory is full Blender will automatically
try to use system memory. This has a performance impact, but will usually still result in a faster render
than using CPU rendering.

### Can multiple GPUs be used for rendering?

Yes, go to Preferences ‣ System ‣ Compute Device Panel, and configure it as you desire.

### Would multiple GPUs increase available memory?

Typically, no, each GPU can only access its own memory.

The exception is NVIDIA GPUs connected with NVLink, where multiple GPUs can share memory at a small performance cost.
This can be enabled with [Distributed Memory Across Devices](../../editors/preferences/system.html#prefs-system-cycles-distributive-memory)
in the preferences.

### What renders faster?

This varies depending on the hardware used. Different technologies also have different compute times
depending on the scene tested. For the most up to date information on the performance of different devices,
browse the [Blender Open Data](https://opendata.blender.org/) resource.
user: Explain Rendering in complete detail according to the official Blender documentation.

assistant: ### Depth Buffer Glitches

Sometimes when setting a large [clipping range](../editors/3dview/sidebar.xhtml#bpy-types-spaceview3d-clip-start) will allow you to see both
near and far objects, but reduces the depth precision resulting in artifacts.

|  |  |  |
| --- | --- | --- |
| ../_images/troubleshooting_3d-view_graphics-z-fighting-none.png   Model with no clipping artifacts. | ../_images/troubleshooting_3d-view_graphics-z-fighting-example.png   Model with clipping artifacts. | ../_images/troubleshooting_3d-view_graphics-z-fighting-example-editmode.png   Mesh with artifacts in Edit Mode. |

To avoid this:

- Increase the near clipping when working on large scenes.
- Decrease the far clipping when objects are not viewed at a distance.

When perspective is disabled only the far Clip End is used, very high values can still result in artifacts. This is
**not** specific to Blender, all graphics applications have these same limitations.

### Objects Invisible in Camera View

If you have a large scene, viewing it through Camera View may not display all of the objects in the scene. One
possibility may be that the [clipping distance](../render/cameras.xhtml#camera-clipping) of the camera is too low. The camera will only
show objects that fall within the clipping range.
user: Show practical ways to work with Adding a Modifier in a Blender add-on or script – include code.

assistant: [image reference removed]

Modifiers panel.

Modifiers can be managed on the *Modifiers* tab of the Sidebar.
Select an F-Curve (in the channel region or by selecting one of its keyframes),
then click the *Add Modifier* dropdown and choose the modifier to add.
user: Describe Principled BSDF from the Blender manual or Python API, including usage steps and snippets.

assistant: # Principled BSDF

[image reference removed]

The *Principled* BSDF
that combines multiple layers into a single easy to use node.
It can model a wide variety of materials.

It is based on the OpenPBR Surface shading model, and provides parameters
compatible with similar PBR shaders found in other software,
such as the Disney and Standard Surface models.
Image textures painted or baked from software like Substance Painter
may be directly linked to the corresponding input in this shader.
user: Describe Usage from the Blender manual or Python API, including usage steps and snippets.

assistant: 1. Open the *Storyboarding* template from the **File → New → Storyboarding** menu.
2. Use the **Edit** scene’s Sequencer to organize shots.
3. Duplicate the **Shot.000** asset in the Sequencer to create new shots.
4. Draw storyboards in each shot’s 2D workspace using *Grease Pencil*.
5. Adjust timing or order of scenes directly in the Sequencer to refine the flow.

This setup allows artists and directors to plan visual storytelling sequences efficiently,
with a clean link between individual drawings and the master storyboard timeline.
user: Provide the full official documentation entry for GeometryNodeSetGreasePencilDepth(GeometryNode), preserving all code examples.

assistant: # GeometryNodeSetGreasePencilDepth(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.GeometryNodeSetGreasePencilDepth(*GeometryNode*)
:   Set the Grease Pencil depth order to use

    depth_order
    :   Type:
        :   enum in [Stroke Depth Order Items](bpy_types_enum_items/stroke_depth_order_items.html#rna-enum-stroke-depth-order-items), default `'2D'`

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

assistant: # VolumeRender(bpy_struct)

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

*class* bpy.types.VolumeRender(*bpy_struct*)
:   Volume object render settings

    clipping
    :   Value under which voxels are considered empty space to optimize rendering

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

    precision
    :   Specify volume data precision. Lower values reduce memory consumption at the cost of detail.

        - `FULL`
          Full – Use 32-bit floating-point numbers for all data.
        - `HALF`
          Half – Use 16-bit floating-point numbers for all data.
        - `VARIABLE`
          Variable – Use variable bit quantization.

        Type:
        :   enum in [`'FULL'`, `'HALF'`, `'VARIABLE'`], default `'HALF'`

    space
    :   Specify volume density and step size in object or world space

        - `OBJECT`
          Object – Keep volume opacity and detail the same regardless of object scale.
        - `WORLD`
          World – Specify volume step size and density in world space.

        Type:
        :   enum in [`'OBJECT'`, `'WORLD'`], default `'OBJECT'`

    step_size
    :   Distance between volume samples. Lower values render more detail at the cost of performance. If set to zero, the step size is automatically determined based on voxel size.

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Mesh
:   Standard Mesh input.

Density
:   Value of voxels inside the generated fog volume.

Resolution Mode
:   How the voxel size is specified.

    Amount:
    :   Specify the approximate number of voxels along the diagonal.

    Size:
    :   Specify the voxel side length. It is recommended to be careful when tweaking this value,
        because small changes can have a large effect on the processing time.

Voxel Amount Amount
:   Specify the approximate number of voxels along the diagonal.

Voxel Size Size
:   Specify the voxel side length.

Interior Band Width
:   The maximum distance of the included voxels to the surface on the inside of the mesh.
user: Provide the full official documentation entry for NodeEnableOutput(NodeInternal), preserving all code examples.

assistant: # NodeEnableOutput(NodeInternal)

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")

*class* bpy.types.NodeEnableOutput(*NodeInternal*)
:   Either pass through the input value or output the fallback value

    data_type
    :   Type:
        :   enum in [Node Socket Data Type Items](bpy_types_enum_items/node_socket_data_type_items.html#rna-enum-node-socket-data-type-items), default `'FLOAT'`

    *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: Give a detailed overview of Example: syntax, arguments, return values, common patterns.

assistant: [[image reference removed]](../../../_images/modeling_modifiers_deform_displace_example-1.jpg)

Three different objects created with the Displace modifier.
[Sample blend-file](https://archive.blender.org/wiki/2015/uploads/9/9e/Manual-Modifier-Displace-Example01.blend).

[[image reference removed]](../../../_images/modeling_modifiers_deform_displace_example-2.jpg)

A slime animation created with the Displace modifier.
[Sample blend-file](https://archive.blender.org/wiki/2015/uploads/6/62/Manual-Modifier-Displace-Slime01.blend).
user: What is Example and how is it used in Blender Python scripting?

assistant: Colorize Effect samples.

|  |  |  |  |
| --- | --- | --- | --- |
| ../../_images/grease-pencil_visual-effects_colorize_grayscale.png   Mode: Grayscale. | ../../_images/grease-pencil_visual-effects_colorize_sepia.png   Mode: Sepia. | ../../_images/grease-pencil_visual-effects_colorize_duotone.png   Mode: Duotone. | ../../_images/grease-pencil_visual-effects_colorize_transparent.png   Mode: Transparent. |
user: What is Node Warnings and how is it used in Blender Python scripting?

assistant: [image reference removed]

Node Warning.

When the inputs to a node are invalid, it displays a warning in the title.
Hovering over the warning icon shows the error message. These warnings are only
generated when the node is executed, so a node must be connected to the *Group Output*
to have a warning.