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

assistant: # Curve Modifier

The *Curve* modifier provides a simple but efficient method of deforming a mesh along a curve object.

It works on a (global) dominant axis, X, Y, or Z.
This means that when you move your mesh in the dominant direction (by default, the X axis),
the mesh will traverse along the curve, as if it was a train following and deforming along rails.
Moving the mesh perpendicularly to this axis, the object will move closer or further away from the curve.

When you move the object beyond the curve’s ends, the object will continue
to deform based on the direction vector at those ends.

If the curve is 3D, the *Tilt* value of its control points will be used to twist the deformed object.
And the *Radius* property controls the size of the object as well.
Those options are in the *Shape* panel, under [Path/Curve-Deform](../../curves/properties/shape.xhtml#curve-shape-path-curve-deform).
user: Give a detailed overview of Examples: syntax, arguments, return values, common patterns.

assistant: ### Table

| Value | Group Index | Leading | Trailing | Total |
| --- | --- | --- | --- | --- |
| 1 | 7 | 1 | 0 | 6 |
| 3 | 7 | 4 | 1 | 6 |
| 2 | 7 | 6 | 4 | 6 |
| 1 | 3 | 1 | 0 | 3 |
| 0 | 3 | 1 | 1 | 3 |
| 2 | 3 | 3 | 1 | 3 |

A few examples of input values and the node’s results. One important take-away from this table
is that the specific values for the *Group Input* do not matter; it only matters that the
values are shared between elements.

### Stacking Boxes

[image reference removed]

Here, the node is used in combination with the [Random Value Node](../random_value.html)
to create a stack of randomly scaled boxes. The *Group Index* input is not used, because all boxes
are meant to be in the same stack.

[image reference removed]

A slightly more complicated version of the previous example,
using the *Group Index* input to create three separate stacks.
user: Give a detailed overview of ShaderNodeBsdfRayPortal(ShaderNode): syntax, arguments, return values, common patterns.

assistant: # ShaderNodeBsdfRayPortal(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.ShaderNodeBsdfRayPortal(*ShaderNode*)
:   Continue tracing from an arbitrary new position and in a new direction

    *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 Open Recent: syntax, arguments, return values, common patterns.

assistant: Displays a list of recently opened blend-files.
Hovering over items will show a preview, and information about the blend-file.
Select any of the file names in the list to open that blend-file.
When `RMB` on a listed item, a context menu will appear; One of the available options is *Open File Location*,
which will open that location in an OS file explorer or Finder window.

### Clear Recent Files List

Removes items from the recent files list.

Remove
:   Choose which type of items to remove.

    All Items:
    :   Removes all recent files.

    Items Not Found:
    :   Removes files from the list that cannot be found i.e. that have been moved or deleted.
user: Give a detailed overview of Inputs: syntax, arguments, return values, common patterns.

assistant: Start/End Frame
:   Start frame and End frame of the range of time specifying the values
    the output should last. This range becomes the X axis of the graph.
    The time input could be reversed by specifying a start frame greater than the end frame.
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Grease Pencil
:   The input Grease Pencil geometry.

Selection
:   A boolean field to determine which elements to affect.
    Elements with a value of true will be modified.

Color
:   The new color to apply.

Opacity
:   The opacity value to apply.
user: Describe Snap Base from the Blender manual or Python API, including usage steps and snippets.

assistant: Determines which point in the geometry is the snap base that will snap to the target.

Active:
:   Snaps using the origin (in Object Mode) or center (in Edit Mode) of the active element.

Median:
:   Snaps using the median of the selection.

Center:
:   Snaps using the current transformation center
    (another word for the [pivot point](pivot_point/index.html)).
    This option is especially useful in combination with the
    [3D Cursor](../3d_cursor.html) for choosing the snapping
    point completely manually.

Closest:
:   Snaps using the vertex that’s closest to the target.

|  |  |  |
| --- | --- | --- |
| ../../../_images/editors_3dview_controls_snapping_target-closest.png   Closest. | ../../../_images/editors_3dview_controls_snapping_target-active.png   Active. | ../../../_images/editors_3dview_controls_snapping_target-median.png   Median. |
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: UV
:   The UV map to modify.

Selection
:   Faces to consider when packing islands.
    UVs that are part of any other face will not be affected.

Margin
:   The distance to leave between UV islands.

Rotate
:   Allow Rotating islands for best fit.

Method
:   The method to use when considering the shape of each island.

    Bounding Box:
    :   Uses the simple bounding box of the island.

    Convex Hull):
    :   Takes into account the boundary (Convex Hull) of the island.
        This method will not place islands inside holes.

    Exact Shape:
    :   Use the complete shape of the island, including filling any holes or concave regions around the island.
user: Describe CompositorNodeNormal(CompositorNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # CompositorNodeNormal(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.CompositorNodeNormal(*CompositorNode*)
:   Input normalized normal values to other nodes in the tree

    *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: How do I use Toggle/Enable/Disable Channel Settings in Blender? Include parameters, examples, warnings and best practices.

assistant: Toggles, enables, or disables a certain setting for the selected channels:

Protect
:   When a channel is protected (closed padlock icon), it can’t be edited.
    Instead of pressing `Shift`-`W` and selecting *Toggle*,
    you can also simply press `Tab`.

Mute
:   When a channel is muted (empty checkbox), it doesn’t affect the animation.
user: Provide the full official documentation entry for Useful Constructs, preserving all code examples.

assistant: - `|BLENDER_VERSION|`:
  Inserts the current Blender version number automatically. e.g. “4.5”.
- `|BLENDER_VERSION_LABEL|`:
  Inserts the current Blender version label automatically. e.g. “4.5 LTS”.
- `` :abbr:`SSAO (Screen Space Ambient Occlusion)` ``:
  Abbreviation displays the full text on hover.
- `` :term:`Manifold` ``:
  Links to the corresponding entry in the [Glossary](../../../glossary/index.xhtml).
- `` :bl-icon:`icon_name` ``:
  Include Blender icons as inline text, see the full list at [Icons](icons.xhtml).
user: Describe Perlin Noise 1D from the Blender manual or Python API, including usage steps and snippets.

assistant: # Perlin Noise 1D

The *Perlin Noise 1D* modifier adds one-dimensional Perlin noise to the stroke.
The curvilinear abscissa (value between 0 and 1 determined by a point’s position
relative to the first and last point of a stroke) is used as the input to
the noise function to generate noisy displacements.

This means that this modifier will give an identical result for two strokes
with the same length and sampling interval.

Frequency
:   How dense the noise is (kind of a scale factor along the stroke).

Amplitude
:   How much the noise distorts the stroke in the *Angle* direction.

Seed
:   The seed of the random generator (the same seed over a stroke will always give the same result).

Octaves
:   The “level of detail” of the noise.

Angle
:   In which direction the noise is applied (0.0 is fully horizontal).
user: How do I use Properties in Blender? Include parameters, examples, warnings and best practices.

assistant: Target Element
:   Faces:
    :   Calculate the closest point anywhere on the faces of the target’s mesh geometry.

    Edges:
    :   Calculate the closest point anywhere on the edges of the target’s mesh geometry.

    Points:
    :   Calculate the closest point or vertex on the target geometry. This mode is usually the fastest.
        This mode works for both point cloud and mesh geometry, the other modes only work for meshes.
user: Explain Troubleshooting macOS – Intel in complete detail according to the official Blender documentation.

assistant: # Troubleshooting macOS – Intel

Blender uses OpenGL for the 3D Viewport and user interface. The graphics processing unit (GPU) and driver have a big
impact on Blender’s behavior and performance.

This section lists possible solutions for graphics glitches, problems with EEVEE and Cycles, and crashes related to
your GPU.
user: Give a detailed overview of Arrange: syntax, arguments, return values, common patterns.

assistant: Change the drawing order of the strokes in the 2D layer.

Bring to Front
:   Moves to the top the selected points/strokes.

Bring Forward
:   Moves the selected points/strokes upper the next one in the drawing order.

Send Backward
:   Moves the selected points/strokes below the previous one in the drawing order.

Send to Back
:   Moves to the bottom the selected points/strokes.
user: How do I use GeometryNodeInputMeshEdgeAngle(GeometryNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # GeometryNodeInputMeshEdgeAngle(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.GeometryNodeInputMeshEdgeAngle(*GeometryNode*)
:   The angle between the normals of connected manifold faces

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Objects Panel

[[image reference removed]](../../../../../_images/movie-clip_tracking_clip_sidebar_track_objects_panel.png)

Objects panel.

This panel contains a [list view](../../../../../interface/controls/templates/list_view.html#ui-list-view) with all objects which can be used for tracking,
camera or object solving.
By default there is only one object in this list which is used for camera solving.
It cannot be deleted and other objects cannot be used for camera solving;
all added objects are used for object tracking and solving only.
These objects can be referenced from Follow Track and Object Solver constraints.
Follow Track uses the camera object by default.

If some tracks were added and tracked to the wrong object, they can be copied to another
object using Track ‣ Copy Tracks and Track ‣ Paste Tracks.

The usage for all kind of objects (used for camera and object tracking) is the same:
track features, set camera data, solve motion. Camera data is sharing between all objects and
refining of camera intrinsics happens when solving camera motion only.
user: Provide the full official documentation entry for Make Vertex Parent, preserving all code examples.

assistant: You can make other selected objects [children](../../../scene_layout/object/editing/parent.xhtml#object-parenting)
of one or three control points, as with mesh objects.

To select a mesh (that is in view) while editing a curve, `Ctrl`-`P` click on it.
Select either one or three control points,
then `Ctrl`-`LMB` the object and use `Ctrl`-`P` to make a vertex parent.
Selecting three control points will make the child follow
the median point between the three vertices. An alternative would be to use
a [Child Of constraint](../../../animation/constraints/relationship/child_of.xhtml).
See also the [Curve modifier](../../modifiers/deform/curve.xhtml).
user: How do I use Example in Blender? Include parameters, examples, warnings and best practices.

assistant: For this example the model was shot against a *white* background.
Using the Luminance Key node, we get a matte out where the background is white,
and the model is black; the opposite of what we want.
If we wanted to use the matte, we have to switch the white and the black.
How to do this? Color Ramp node to the rescue – we set the left color to White Alpha 1.0,
and the right color to be Black Alpha 0.0. Thus, when the Color Ramp gets in black,
it spits out white, and vice versa. The reversed mask is shown;
its white outline is usable as an alpha mask now.

[image reference removed]

Using Luma Key with a twist.

Now to mix, we do not really need the *Alpha Over* node;
we can just use the mask as our Factor input. In this kinda weird case,
we can use the matte directly; we just switch the input nodes. As you can see,
since the matte is white (1.0) where we do not want to use the model picture,
we feed the background photo to the bottom socket
(recall the Mix node uses the top socket where the factor is 0.0,
and the bottom socket where the factor is 1.0). Feeding our original photo into the top socket
means it will be used where the Luminance Key node has spit out Black. Voilà,
our model is teleported from Atlanta to aboard a cruise ship docked in Miami.
user: Give a detailed overview of Dual Mesh Node: syntax, arguments, return values, common patterns.

assistant: # Dual Mesh Node

[image reference removed]

The *Dual Mesh Node* converts a mesh into its dual, i.e. faces are turned into
vertices and vertices are turned into faces. This also means that attributes
which were on the face domain are transferred to the point domain in the dual mesh.
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: Value
:   Special gizmo value socket.
    Everything that linked into this socket will be modified when the gizmo is moved.

Position
:   Position of the gizmo in the local space of the object.

Direction
:   Specifies the direction in with the gizmo points or is moved.
user: How do I use Examples in Blender? Include parameters, examples, warnings and best practices.

assistant: Combined with the [Index of Nearest](../geometry/sample/index_of_nearest.html),
this can be used for a number of sphere-based simulations.

[image reference removed]

Index of Nearest sample file CC-BY Sean Christofferson.
user: Show practical ways to work with Addon(bpy_struct) in a Blender add-on or script – include code.

assistant: # Addon(bpy_struct)

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

*class* bpy.types.Addon(*bpy_struct*)
:   Python add-ons to be loaded automatically

    module
    :   Module name

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

    preferences
    :   Type:
        :   [`AddonPreferences`](bpy.types.AddonPreferences.html#bpy.types.AddonPreferences "bpy.types.AddonPreferences"), (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: Show practical ways to work with Fur in a Blender add-on or script – include code.

assistant: Adds a fur setup to the selected objects.
The fur setup is based on [Geometry Nodes](../geometry_nodes/index.xhtml) and built with
[Hair Node Groups](../geometry_nodes/hair/index.xhtml) that come with Blender as bundled assets.

See [Quick Fur](../../physics/introduction.xhtml#bpy-ops-object-quick-fur) for more information.
user: Explain Dolly View in complete detail according to the official Blender documentation.

assistant: In most cases it’s sufficient to zoom the view to get a closer look at something.
However, zooming only gets you up to the point of interest and no further.
If you hit this point where zooming no longer works, you can instead Dolly
by holding `Shift`-`Ctrl` and dragging up or down with `MMB`.
This will move the point of interest (and the view along with it).

`RMB` cancels the dolly operation.
user: What is Randomize and how is it used in Blender Python scripting?

assistant: # Randomize

The *Randomize* tool in Edit Mode allows you to displace the vertices of a mesh
along their normal.

Amount
:   Distance of the displacement.

Uniform
:   Adds a random offset of the amount.

Normal
:   Adds a random offset to the displacement normal.

Random Seed
:   The random seed is an offset to the random transformation.
    A different seed will produce a new result.
user: What is Introduction and how is it used in Blender Python scripting?

assistant: # Introduction

Volume objects are containers used to represent [OpenVDB](https://www.openvdb.org/) files in Blender.
OpenVDB is a library and file format for the interoperability and storage of volumetric data.
OpenVDB files may be generated by other software such as Houdini,
or from Blender’s [fluid simulation cache](../../physics/fluid/type/domain/cache.html).

Volume objects can be created from the Add menu in the 3D Viewport,
or by dragging and dropping vdb-files into Blender.
For animations, a frame sequence of OpenVDB files can be imported.

[image reference removed]

WDAS cloud data set rendered in wireframe, Workbench, and Cycles.
user: Describe NodeSeparateBundleItem(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # NodeSeparateBundleItem(bpy_struct)

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

*class* bpy.types.NodeSeparateBundleItem(*bpy_struct*)
:   color
    :   Color of the corresponding socket type in the node editor

        Type:
        :   float array of 4 items in [0, inf], default (0.0, 0.0, 0.0, 0.0), (readonly)

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

    socket_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'`

    structure_type
    :   What kind of higher order types are expected to flow through this socket

        Type:
        :   enum in [Node Socket Structure Type Items](bpy_types_enum_items/node_socket_structure_type_items.html#rna-enum-node-socket-structure-type-items), default `'AUTO'`

    *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 Combine Bundle Node in complete detail according to the official Blender documentation.

assistant: # Combine Bundle Node

[image reference removed]

The *Combine Bundle* node creates a new [Bundle](../../../../interface/controls/nodes/types/utilities/bundles/index.xhtml)
from multiple input values.
Each input becomes an element of the bundle, identified by its socket name.
Values can be accessed in other parts of the node tree using the
[Separate Bundle](../../../../interface/controls/nodes/types/utilities/bundles/separate_bundle.xhtml)
user: Give a detailed overview of VIEW3D_FH_vdb_volume(FileHandler): syntax, arguments, return values, common patterns.

assistant: # VIEW3D_FH_vdb_volume(FileHandler)

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Introduction

In Blender, objects are not directly part of the scenes.
Instead, they all get stored in a main database (basically the blend-file).

[image reference removed]

The blend-file and its stored data.

From there they are referenced into as many Scenes as you would like to see them.

When they are stored in a scene, they are part of a so-called *scene collection*.
So ultimately all the scene objects belong to this special collection.

[image reference removed]

The scene collection.
user: Describe Limit Total from the Blender manual or Python API, including usage steps and snippets.

assistant: Reduce the number of weight groups per vertex to the specified Limit.
The tool removes lowest weights first until the limit is reached.

Subset
:   Restrict the tool to a subset.
    See above [The Subset Option](#sculpt-paint-weight-paint-editing-subset) for how subsets are defined.

Limit
:   Maximum number of weights allowed on each vertex.
user: Show practical ways to work with Cycles Render Devices in a Blender add-on or script – include code.

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

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

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

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

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

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

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

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

    Currently only NVLink on NVIDIA GPUs is supported.

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

    Only supported with oneAPI rendering devices.

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

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

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

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

    On:
    :   Enable MetalRT for intersection queries.

    Auto:
    :   Automatically pick the fastest intersection method.
user: How do I use View Menu in Blender? Include parameters, examples, warnings and best practices.

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

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

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

Asset Shelf
:   Toggle the visibility of the [Asset Shelf](../../interface/window_system/regions.xhtml#ui-region-asset-shelf).

Adjust Last Operation
:   Displays a pop-up panel to alter properties of the last
    completed operation. See [Adjust Last Operation](../../interface/undo_redo.xhtml#bpy-ops-screen-redo-last).

Update Automatically
:   Instantly update any other editors that are affected by changes in this Image Editor.
    When disabled, the other editors may display outdated information until they’re manually refreshed
    (e.g. by orbiting for the 3D Viewport).

Show Metadata
:   Displays metadata about the selected Render Result. See the Output tab’s
    [Metadata](../../render/output/properties/metadata.xhtml) panel to change what metadata to include.

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

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

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

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

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

Frame All `Home`
:   Pans and zooms the view so that the image is centered and fully visible.

Center View to Cursor
:   Pan the view so that the 2D cursor is at the center of the editor.

Render Region `Ctrl`-`B`
:   Only available when viewing the Render Result.
    See [Render Region](../3dview/navigate/regions.xhtml#editors-3dview-navigate-render-region).

Clear Render Region `Ctrl`-`Alt`-`B`
:   Only available when viewing the Render Result.
    See [Render Region](../3dview/navigate/regions.xhtml#editors-3dview-navigate-render-region).

Render Slot Cycle Next/Previous `J`/`Alt`-`J`
:   Switch to the next/previous render slot (that contains a render).

Area
:   Adjust the [area](../../interface/window_system/areas.xhtml) the Image Editor is in.
user: Explain PointCloud(ID) in complete detail according to the official Blender documentation.

assistant: # PointCloud(ID)

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

*class* bpy.types.PointCloud(*ID*)
:   Point cloud data-block

    animation_data
    :   Animation data for this data-block

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

    attributes
    :   Geometry attributes

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

    color_attributes
    :   Geometry color attributes

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

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

    points
    :   Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`Point`](bpy.types.Point.html#bpy.types.Point "bpy.types.Point"), (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: Show practical ways to work with Transform in a Blender add-on or script – include code.

assistant: Filter
:   The technique used to estimate the values of pixels at non-integer coordinates within the image.

    Auto:
    :   Automatically choose filter based on scaling factor.

        - No scale, no rotation, integer positions: *Nearest*
        - Scaling up by more than 2x: *Cubic Mitchell*
        - Scaling down by more than 2x: *Box*
        - Otherwise: Bilinear

    Nearest:
    :   No interpolation; uses nearest neighboring pixel (fastest).

    Bilinear:
    :   Interpolate between 2×2 samples.

    Cubic Mitchell:
    :   Cubic Mitchell filter on 4×4 samples.

    Cubic B-Spline:
    :   Cubic B-Spline filter (blurry but no ringing) on 4×4 samples.

    Box:
    :   Averages source image samples that fall under destination pixel.

Position X, Y
:   Used to move the frames along the X and Y axis.

Scale X, Y
:   Scale the image on the X and Y axis.

Rotation
:   Rotates the input two-dimensionally along the Z axis.

Mirror
:   Mirrors the image along the X axis (left to right) or the Y axis (top to bottom).
user: Give a detailed overview of Clamp Fireflies: syntax, arguments, return values, common patterns.

assistant: Ideally with all the previous tricks, [Fireflies](../../../glossary/index.html#term-Fireflies) would be eliminated, but they could still happen.
For that, the *intensity* that any individual light ray sample will contribute to a pixel can be *clamped*
to a maximum value with the integrator [Clamp setting](../render_settings/light_paths.html#render-cycles-integrator-clamp-samples).

If set too low this can cause missing highlights in the image,
which might be useful to preserve for camera effects such as bloom or glare.
To mitigate this conundrum it’s often useful to clamp only indirect bounces,
leaving highlights directly visible to the camera untouched.

|  |  |
| --- | --- |
| <../../../_images/render_cycles_optimizations_reducing-noise_no-clamp.jpg>   No Clamp (0). | <../../../_images/render_cycles_optimizations_reducing-noise_clamp4.jpg>   With Clamp set to 4. |
user: Provide the full official documentation entry for Toolbar, preserving all code examples.

assistant: The *Toolbar* contains a set of tools that can be used in the node editor.

[Select](../../selecting.xhtml#tool-select-tweak)
:   Select or move nodes and links.

    [Select Box](../../selecting.xhtml#tool-select-box)
    :   Select nodes or links by dragging a box around them.

    [Select Circle](../../selecting.xhtml#tool-select-circle)
    :   Select nodes or links by clicking or dragging with a circular brush.

    [Select Lasso](../../selecting.xhtml#tool-select-lasso)
    :   Select nodes or links by drawing a free-form lasso.

[Annotate](../../annotate_tool.xhtml#tool-annotate-freehand)
:   Draw free-hand annotation.

    [Annotate Line](../../annotate_tool.xhtml#tool-annotate-line)
    :   Draw straight line annotation.

    [Annotate Polygon](../../annotate_tool.xhtml#tool-annotate-polygon)
    :   Draw a polygon annotation.

    [Annotate Eraser](../../annotate_tool.xhtml#tool-annotate-eraser)
    :   Erase previous drawn annotations.

Link Cuts
:   Delete connections between nodes by drawing a line across the links.
    See [Cut Links](editing.xhtml#bpy-ops-node-links-cut) for more information.

Mute Links
:   Mute connections between nodes by drawing a line across the links.
    Muted links are kept in place but ignored in evaluation.
    See [Mute Links](editing.xhtml#bpy-ops-node-links-mute) for more information.

Add Reroute
:   Insert a [Reroute Node](types/layout/reroute.xhtml)
    point on links by drawing a line across them.
    Reroute nodes help organize complex node trees by redirecting connections.
user: How do I use StripElements(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # StripElements(bpy_struct)

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

*class* bpy.types.StripElements(*bpy_struct*)
:   Collection of StripElement

    append(*filename*)
    :   Push an image from ImageStrip.directory

        Parameters:
        :   **filename** (*string**,* *(**never None**)*) – Filepath to image

        Returns:
        :   New StripElement

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

    pop(*index*)
    :   Pop an image off the collection

        Parameters:
        :   **index** (*int in* *[**-inf**,* *inf**]*) – Index of image to remove

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Explain Outputs in complete detail according to the official Blender documentation.

assistant: Mesh
:   Standard geometry output.

UV Map
:   A 2D vector representing the default X/Y coordinates of the [UV Map](../../../../glossary/index.html#term-UV-Map) for the primitive’s shape.
    This can be connected to the [Store Named Attribute Node](../../attribute/store_named_attribute.html),
    to be used once the Geometry Nodes Modifier get applied.
    The UV map must be stored on the face corner in order to be accessed.
user: Give a detailed overview of ShaderNodeNewGeometry(ShaderNode): syntax, arguments, return values, common patterns.

assistant: # ShaderNodeNewGeometry(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.ShaderNodeNewGeometry(*ShaderNode*)
:   Retrieve geometric information about the current shading point

    *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 WireframeModifier(Modifier) and how is it used in Blender Python scripting?

assistant: # WireframeModifier(Modifier)

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

*class* bpy.types.WireframeModifier(*Modifier*)
:   Wireframe effect modifier

    crease_weight
    :   Crease weight (if active)

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

    invert_vertex_group
    :   Invert vertex group influence

        Type:
        :   boolean, default False

    material_offset
    :   Offset material index of generated faces

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

    offset
    :   Offset the thickness from the center

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

    thickness
    :   Thickness factor

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

    thickness_vertex_group
    :   Thickness factor to use for zero vertex group influence

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

    use_boundary
    :   Support face boundaries

        Type:
        :   boolean, default False

    use_crease
    :   Crease hub edges for improved subdivision surface

        Type:
        :   boolean, default False

    use_even_offset
    :   Scale the offset to give more even thickness

        Type:
        :   boolean, default True

    use_relative_offset
    :   Scale the offset by surrounding geometry

        Type:
        :   boolean, default False

    use_replace
    :   Remove original geometry

        Type:
        :   boolean, default True

    vertex_group
    :   Vertex group name for selecting the affected areas

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

assistant: ### Find & Replace

Find Text `Ctrl`-`F`
:   Searches for instances of a text that occur after the cursor.
    Using the eyedropper icon will search for the currently selected text
    and sets the selection to the match.
    *Find Next* searches for the next instance of the text.

Replace Text `Ctrl`-`H`
:   Searches for the text specified in *Find Text* and replaces it with the new text.
    Using the eyedropper icon will set the currently selected text as the replace text.
    *Replace* searches for the next match and replaces it.
    *Replace All* searches for the match and replaces all occurrences of the match with the new text.

Case
:   Search is sensitive to uppercase and lowercase letters.

Wrap
:   Search again from the start of the file when reaching the end.

All
:   Search in all text data-blocks instead of only the active one.

### Properties

Margin
:   Shows a vertical margin line to help keep text lines at a reasonable length.
    The position of this margin line is specified by *Margin Column*.

Font Size `Ctrl`-`WheelUp`
:   The size of the font used to display text.

Tab Width
:   The number of character spaces to display tab characters with.

Indentation
:   Whether to use *Tabs* or *Spaces* for indentation.
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") | - [`IKParam.ik_solver`](bpy.types.IKParam.html#bpy.types.IKParam.ik_solver "bpy.types.IKParam.ik_solver") |
user: Provide the full official documentation entry for Outputs, preserving all code examples.

assistant: Position
:   Closest location on the surface of the target mesh, or the closest point in the target point cloud
    in *Points* mode.

Distance
:   Distance (as floating-point value) from the source position to the closest location in the target.

Is Valid
:   Whether the sampling was successful. It can fail when the sampled group is empty.
user: Show practical ways to work with Auto-Masking in a Blender add-on or script – include code.

assistant: [Auto-Masking](../controls.html) is also a fast way of only editing specific geometry
without having to manually create a new mask or hide geometry.
This feature is especially useful in combination with face sets.

[image reference removed]