PGCRYPT/OpenBlender_Train huggingface dataset:
user: Explain CompositorNodeStabilize(CompositorNode) in complete detail according to the official Blender documentation.

assistant: # CompositorNodeStabilize(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.CompositorNodeStabilize(*CompositorNode*)
:   Stabilize footage using 2D stabilization motion tracking settings

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

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

assistant: Mode
:   Points:
    :   The position and radius of the arc are determined by three points.
        The center of the arc, radius and normal are also given as outputs.

    Radius:
    :   The arc is determined by the radius, start angle and sweep angle.
user: Explain Inherited Properties in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") | - [`LineStyleThicknessModifier.name`](bpy.types.LineStyleThicknessModifier.html#bpy.types.LineStyleThicknessModifier.name "bpy.types.LineStyleThicknessModifier.name") |
user: What is Curves and how is it used in Blender Python scripting?

assistant: # Curves

Shape
:   Strand:
    :   Render curves as a thin strand roughly a pixel wide.
        Curve diameter parameters are ignored with this setting.

    Strip:
    :   Render curves as a flat ribbon with rounded normals.

Additional Subdivisions
:   Additional subdivisions to be applied on top of the curve resolution set in the
    hair system settings. Increasing this value will smooth out the curves of the strands.
user: How do I use ShaderNodeVectorDisplacement(ShaderNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # ShaderNodeVectorDisplacement(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.ShaderNodeVectorDisplacement(*ShaderNode*)
:   Displace the surface along an arbitrary direction

    space
    :   Space of the input height

        - `TANGENT`
          Tangent Space – Tangent space vector displacement mapping.
        - `OBJECT`
          Object Space – Object space vector displacement mapping.
        - `WORLD`
          World Space – World space vector displacement mapping.

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

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

assistant: # ID Node

[image reference removed]

The *ID* node gives an integer value indicating the stable random identifier of each element on the point domain,
which is stored in the `id` attribute.

The node to set this data is the [Set ID Node](../write/set_id.xhtml) node.
user: How do I use Toolbar in Blender? Include parameters, examples, warnings and best practices.

assistant: # Toolbar

Curves Edit Mode tools:

[Select](../../../interface/selecting.html#tool-select-tweak)
:   Select or move.

    [Select Box](../../../interface/selecting.html#tool-select-box)
    :   Select objects by dragging a box.

        All objects that intersect the box will be selected.

    [Select Circle](../../../interface/selecting.html#tool-select-circle)
    :   Select objects by dragging a circle. All objects that intersect the path of
        the circle will be selected.

    [Select Lasso](../../../interface/selecting.html#tool-select-lasso)
    :   Select objects by drawing a lasso.

Cursor
:   Change the location of the 3D Cursor.

Move
:   Translation tool.

Rotate
:   Rotation tool.

Scale
:   Scale tool.

    [Scale Cage](../../../scene_layout/object/tools/scale_cage.html#tool-scale-cage)
    :   Change the scale of an object by controlling its cage.

Transform
:   Tool to adjust the objects translation, rotations and scale.

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

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

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

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

[Measure](../../../editors/3dview/toolbar/measure.html#tool-measure)
:   Measure distances in the scene.

[Draw](draw.html#modeling-curves-draw)
:   Free-hand drawing of new curves.

[Radius](../editing/curves.html#modeling-curves-radius)
:   Control the radius value of the control points.

[Tilt](../editing/control_points.html#modeling-curves-tilt)
:   Control the rotation value of the control points around the curve’s axis.
user: Provide the full official documentation entry for Properties, preserving all code examples.

assistant: Normalize
:   If enabled, the X-coordinates of the *Segment Coordinates* output are remapped into a 0.0 to 1.0 range
    and a constant value of 1.0 is added to the Y-coordinates which makes the output range non-negative.

    |  |  |
    | --- | --- |
    | ../../../../_images/render_shader-nodes_radial_tiling_normalize-disabled.png   Normalize: Disabled. | ../../../../_images/render_shader-nodes_radial_tiling_normalize-enabled.png   Normalize: Enabled. |
user: Show practical ways to work with Examples in a Blender add-on or script – include code.

assistant: For instance X: 0.5 and Y: 0.5 would produce an image which width and
height would be half of what they used to be.

Use this node to match image sizes.
Most nodes produce an image that is the same size as the image input into their top image socket.
To uniformly combine two images of different size,
the second image has to be scaled up to match the resolution of the first.
user: How do I use Action Properties in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

Actions with and without a Manual Frame Range in Dope Sheet.

It is possible to manually specify the intended useful frame range of an action via a panel
available in the [Dope Sheet](../editors/dope_sheet/introduction.html) or the [NLA Editor](../editors/nla/sidebar.html)
when a channel or NLA track is selected.

Manual Frame Range
:   Manually specify the intended playback frame range for the action
    (this range is used by some tools, but does not affect animation evaluation).
    The manual frame range feature can be toggled with the checkbox.

    When the range is set, it is used instead of the actual range occupied by key frames
    when adding a new track based on the action to NLA. It can also be used by exporters
    to determine the range of frames to export.

    The range is displayed in the background of the editor as diagonal hash fill, to
    distinguish it from the solid fill of the current playback range.

    The frame values are most commonly expected to be integers, but can be fractional.

Cyclic Animation
:   Specifies that the action is intended to be cyclic over the specified range. The first and last
    frames of the range should represent the same pose of the cycle one loop apart, i.e. the range
    should include the duplicated initial key of the loop.

### Slot

The properties of the action slot that is used by the currently selected item in the channel list.

Name
:   The name of the slot.

Type
:   The data-block type that the slot is intended to animate.

### Custom Properties

Create and manage your own properties to store data in the action’s data block.
See the [Custom Properties](../files/custom_properties.html#files-data-blocks-custom-properties) page for more information.
user: How do I use Inputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Image
:   Standard color input image.

Highlights
:   The color tint applied to the bright areas of the image.

Factor Highlights
:   Controls how strongly the *Highlights* color affects the bright regions.
    A value of 0 disables the effect, while 1 applies it fully.

Shadows
:   The color tint applied to the darker areas of the image.

Factor Shadows
:   Controls the strength of the *Shadows* tint.

### Transition

Balance
:   Shifts the midpoint that defines what parts of the image are considered highlights or shadows.
    Increasing this value favors the highlight color; decreasing it favors the shadow color.

Smoothness
:   Adjusts how gradually the image transitions between tinted shadows and highlights.
    Higher values create a smooth, natural blend; lower values make the transition more abrupt.
user: Describe Shortest Path from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

Select a face or vertex path with `Ctrl`-`LMB`.

Selects all geometry along the shortest path from
the active vertex, edge, or face to the one which was selected.

Edge Tag (in Edge select mode only)
:   This select button indicates what should be done when selecting a vertex path with `Ctrl`-`LMB`:

    Select
    :   Just selects all the edges in the path.

    Tag Seam
    :   Marks all edges in the path as seams for UV unwrapping.

    Tag Sharp
    :   Marks all edges in the path as sharp for the Edge Split Modifier.

    Tag Crease
    :   Marks all edges in the path as creases for the Subdivision Surface Modifier, with weight 1.0.

    Tag Bevel
    :   Gives bevel weight 1.0 (for the Bevel Modifier) to all edges in the path.

    Tag Freestyle Edge Mark
    :   Marks all edges in the path as Freestyle edges.

Face Stepping
:   Supports diagonal paths for vertices and faces, and
    selects edge rings with edges.

Topology Distance
:   Only takes into account the number of edges of the path and
    not the length of the edges to calculate the distances.

Fill Region `Shift`-`Ctrl`-`LMB`
:   Selects all elements in the shortest paths from the active selection to the clicked area.

Checker Deselect Options
:   Allows to quickly select alternate elements in a path.

    Deselected
    :   The number of deselected elements in the repetitive sequence.

    Selected
    :   The number of selected elements in the repetitive sequence.

    Offset
    :   Offset from the starting point.
user: Give a detailed overview of Recovering Save Versions: syntax, arguments, return values, common patterns.

assistant: By default Blender keeps an additional backup when saving files.
So saving renames the previously saved file with a `.blend1` extension instead of overwriting it.

This file can be used to revert to a previous state.

See [Save Versions](../editors/preferences/save_load.xhtml#bpy-types-preferencesfilepaths-save-version) to configure the number of versions kept.
user: Explain Geometry Component Type Items in complete detail according to the official Blender documentation.

assistant: # Geometry Component Type Items

MESH:
:   Mesh.

    Mesh component containing point, corner, edge and face data.

POINTCLOUD:
:   Point Cloud.

    Point cloud component containing only point data.

CURVE:
:   Curve.

    Curve component containing spline and control point data.

INSTANCES:
:   Instances.

    Instances of objects or collections.

GREASEPENCIL:
:   Grease Pencil.

    Grease Pencil component containing layers and curves data.
user: Give a detailed overview of BlendDataActions(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # BlendDataActions(bpy_struct)

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

*class* bpy.types.BlendDataActions(*bpy_struct*)
:   Collection of actions

    new(*name*)
    :   Add a new action to the main database

        Parameters:
        :   **name** (*string**,* *(**never None**)*) – New name for the data-block

        Returns:
        :   New action data-block

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

    remove(*action*, *\**, *do_unlink=True*, *do_id_user=True*, *do_ui_user=True*)
    :   Remove an action from the current blendfile

        Parameters:
        :   - **action** ([`Action`](bpy.types.Action.html#bpy.types.Action "bpy.types.Action"), (never None)) – Action to remove
            - **do_unlink** (*boolean**,* *(**optional**)*) – Unlink all usages of this action before deleting it
            - **do_id_user** (*boolean**,* *(**optional**)*) – Decrement user counter of all data-blocks used by this action
            - **do_ui_user** (*boolean**,* *(**optional**)*) – Make sure interface does not reference this action

    tag(*value*)
    :   tag

        Parameters:
        :   **value** (*boolean*) – Value

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

assistant: # GeometryNodeCameraInfo(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.GeometryNodeCameraInfo(*GeometryNode*)
:   Retrieve information from a camera object

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: The initial shape of a B-Bone can be defined in Edit Mode as a rest pose of that bone.
This is useful for curved facial features like curved eyebrows or mouths.

B-Bones have two sets of the Bendy Bone properties – one for Edit Mode (i.e. the Rest Pose/Base Rig) and
another for Pose Mode – adding or multiplying together their values to get the final transforms.
user: Provide the full official documentation entry for Options, preserving all code examples.

assistant: [image reference removed]

Noise Modifier.

Position
:   Strength of the noise effect over the point location.

Strength
:   Strength of the noise effect over the point strength (opacity).

Thickness
:   Strength of the noise effect over the point thickness.

UV
:   Strength of the noise effect over the point UV rotation.

Noise Scale
:   Control the noise frequency scale.

Noise Offset
:   Moves the noise along the strokes.

Seed
:   [Seed](../../../glossary/index.html#term-Seed) used by the pseudo-random number generator.

### Randomize

When enabled, the noise uses a random value over time.

Mode
:   Steps:
    :   New random value at defined steps.

        Step
        :   Number of frames before using a new random value.

    Keyframes:
    :   New random value only on keyframes.

### Influence

See [Influence Filters](../introduction.html#grease-pencil-modifier-influence-filters).
user: Describe Node Parts from the Blender manual or Python API, including usage steps and snippets.

assistant: # Node Parts

All nodes in Blender are based on a similar construction.
This applies to [any type of node](index.html#tab-node-tree-types).
These parts include the title, sockets, properties and more.

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

assistant: AngleModifier.use_multiply GreasePencilWeightAngleModifier.vertex_group_name GreasePencilWeightAngleModifier.bl_rna_get_subclass() GreasePencilWeightAngleModifier.bl_rna_get_subclass_py() Inherited Properties Inherited Functions
user: Give a detailed overview of Viewport Display: syntax, arguments, return values, common patterns.

assistant: Wireframe
:   Method used to represent volumes in [wireframe](../../editors/3dview/display/shading.xhtml#dview-shading-rendered) shading mode.
    For heavy volume data sets, it can be useful to set the object to always display as wireframe.
    This way, the 3D Viewport remains responsive but the volume still appears in the final render.

    None:
    :   The volume is not displayed in wireframe mode.

    Bounds:
    :   Displays the volume as a [Bounding Box](../../glossary/index.xhtml#term-Bounding-Box) for the entire grid.

    Boxes:
    :   Displays bounding boxes for nodes in the volume tree.

    Points:
    :   Displays points for nodes in the volume tree.

Detail
:   The amount of detail to display for *Boxes* or *Points* wireframe mode.

    Coarse:
    :   Display one box or point for each intermediate tree node.

    Fine:
    :   Display a box or point for each leaf node containing 8×8 voxels.

Density
:   Thickness of the volume in the 3D Viewport.
    The density of the volume in the render is adjusted via
    [Volume Shading](../../render/shader_nodes/shader/volume_principled.xhtml).

Interpolation
:   Interpolation method to use for the visualization of the fluid grid.

    Linear:
    :   Linear interpolation between voxels. Gives good smoothness and speed.

    Cubic:
    :   Cubic interpolation between voxels. Gives smoothed high quality interpolation, but is slower.

    Closest:
    :   No interpolation between voxels. Gives raw voxels.

### Slice

Renders only a single 2D section of the domain object.

Axis
:   Auto:
    :   Adjust slice direction according to the view direction.

    X/Y/Z:
    :   Slice along the X, Y, or Z axis.

Position
:   Position of the slice relative to the length of the respective domain side.
user: Explain Hints in complete detail according to the official Blender documentation.

assistant: - The simulation is only calculated for positive frames
  in between the *Start* and *End* frames of the *Cache* panel, whether you bake or not.
  So if you want a simulation that is longer than the default frame range, you have to change the *End* frame.
- When an animation is played, each physics system writes each frame to the cache.
  Note that for the cache to fill up,
  one has to start the playback before or on the frame that the simulation starts.
- The cache is cleared automatically on changes. But not on all changes,
  so it may be necessary to delete it manually, e.g. if you change a force field.
- The system is protected against changes after baking.
  If for example the mesh changes the simulation is not calculated anew.
- The bake result can be cleared by clicking on the *Delete Bake* button in the simulation cache settings.
- A simulation can only be edited in Particle Edit Mode when it has been baked in memory.
  And cannot be edited if the Disk Cache is used.
- If you are not allowed to write to the required subdirectory caching will not take place,
  e.g. if your blend-file path is very long and your operating system
  has a limit on the path length that is supported.
- Be careful with the sequence of modifiers in the modifier stack.
  You may have a different number of faces in the 3D Viewport and
  for rendering (e.g. when using subdivision surface), if so,
  the rendered result may be very different from what you see in
  the 3D Viewport.
user: What is Importing Alembic Files and how is it used in Blender Python scripting?

assistant: When importing an Alembic file, [Mesh Sequence Cache modifiers](../../modeling/modifiers/modify/mesh_sequence_cache.xhtml)
are automatically added to time-varying meshes. For time-varying object transforms
(so animation of rotation, location, or scale)
the [Transform Cache Constraint](../../animation/constraints/transform/transform_cache.xhtml#bpy-types-transformcacheconstraint) is used.

### General

Scale
:   Value by which to enlarge or shrink the objects with respect to the world’s origin

### Options

Relative Path
:   Select the file relative to the blend-file.

Set Frame Range
:   If checked, update scene’s start and end frame to match those of the Alembic archive.

Is Sequence
:   Set to true if the cache is split into separate files.

Validate Meshes
:   Check the imported mesh for corrupt data and fix it if necessary.
    When disabled, erroneous data may cause crashes displaying or editing the meshes.
    This option will make the importing slower but is recommended, as data errors are not always obvious.

Always Add Cache Reader
:   Add cache modifiers and constraints to imported objects even if they are
    not animated so that they can be updated when reloading the Alembic archive.
user: How do I use Unified Settings in Blender? Include parameters, examples, warnings and best practices.

assistant: Some settings (e.g. size, strength, color), indicated with ,
allow for using a per-mode setting instead of the individual brush setting.
These settings are shared across all brushes of a given mode (e.g. Sculpt Mode)
but do not overwrite the individual brush value.
user: Provide the full official documentation entry for Introduction, preserving all code examples.

assistant: # Introduction

Brushes are the main way of interacting with any painting and sculpting mode. By click & dragging in the 3D Viewport
(or the Image Editor when using [Texture Paint](../texture_paint/index.xhtml)), the active brush creates a
[stroke](stroke.xhtml) with a certain effect, depending on the used brush settings. Brushes are
used as brush assets and stored in asset libraries, which makes it easy to reuse and share them. Typically they have a
preview image and a name that indicate the effect they create.
user: Describe TextureNodeBricks(TextureNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # TextureNodeBricks(TextureNode)

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

*class* bpy.types.TextureNodeBricks(*TextureNode*)
:   offset
    :   Determines the brick offset of the various rows

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

    offset_frequency
    :   Offset every N rows

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

    squash
    :   Factor to adjust the brick’s width for particular rows determined by the Offset Frequency

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

    squash_frequency
    :   Squash every N rows

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

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") | - [`LineStyleAlphaModifier.name`](bpy.types.LineStyleAlphaModifier.html#bpy.types.LineStyleAlphaModifier.name "bpy.types.LineStyleAlphaModifier.name") |
user: How do I use Menu Selection Tools in Blender? Include parameters, examples, warnings and best practices.

assistant: These tools are variants of the previously described ones.
They’re available in the menu rather than the Toolbar
and work slightly differently.

### Box Select

To use this tool, you first activate the menu item or keyboard shortcut
and then drag a box as usual. Unlike *Select Box*, the default behavior
here is to add the items inside the box to the selection.
(The ones outside the box are not deselected.)

To remove the items inside the box from the selection,
hold `Shift`, or drag with `MMB` instead.

While dragging, you can additionally hold `Spacebar` to move the box around with the mouse.

### Circle Select

To use this tool, you first activate the menu item or keyboard shortcut
and then drag a circle around as usual. Unlike *Select Circle*, the default
behavior here is to add the items inside the circle to the selection.
(The ones outside the circle are not deselected.)

To remove the items inside the circle from the selection,
hold `Shift`, or drag with `MMB` instead.

You can change the radius of the circle by scrolling with the `Wheel`
or using the `NumpadPlus` and `NumpadMinus` keys.

Once activated, *Circle Select* stays active: you can release the mouse button
and start dragging somewhere else without having to press `C` again.
At the same time, however, it blocks all other parts of Blender while it’s active.
To deactivate the tool again, press `RMB`, `Return`, or `Esc`.

### Lasso Select

To use this tool, you first activate the menu item and drag a freeform shape
around the item(s) you want to select with `LMB`. The menu lets you choose
whether to set, extend or reduce the selection.

Alternatively, you can immediately start dragging with `Ctrl`-`RMB`.
Unlike *Select Lasso*, the default behavior then is to add the items inside
the lasso to the selection. (The ones outside the lasso are not deselected.)

To remove the items inside the lasso from the selection,
drag with `Shift`-`Ctrl`-`RMB` instead.

While dragging, you can additionally hold `Spacebar` to move the lasso
around with the mouse.
user: How do I use Notes in Blender? Include parameters, examples, warnings and best practices.

assistant: It is possible that this node will put out a value set that has values beyond the normal range,
i.e. values greater than one and less than zero.
If you will be using the output to mix with other images in the normal range,
you should clamp the values using the Map Value node (with the Min and Max enabled),
or put through a Color Ramp node (with all normal defaults).

[image reference removed]

Clamp the values to normal range.

Either of these nodes will scale the values back to normal range.
In the example image, we want to intensify the specular pass.
The bottom thread shows what happens if we do not clamp the values;
the specular pass has a value much less than one in the dark areas;
when added to the medium gray, it makes black. Passing the brightened image through either
the Map Value or the Color Ramp node produces the desired effect.
user: Provide the full official documentation entry for Reference API Scope, preserving all code examples.

assistant: The reference API covers [`bpy.types`](bpy.types.html#module-bpy.types "bpy.types"), which stores types accessed via [`bpy.context`](bpy.context.html#module-bpy.context "bpy.context") – *the user context*
or [`bpy.data`](bpy.data.html#module-bpy.data "bpy.data") – *blend-file data*.

Other modules such as [`bmesh`](bmesh.html#module-bmesh "bmesh") and [`aud`](aud.html#module-aud "aud") are not using Blender’s data API
so this document doesn’t apply to those modules.
user: Provide the full official documentation entry for ShaderNodeAmbientOcclusion(ShaderNode), preserving all code examples.

assistant: # ShaderNodeAmbientOcclusion(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.ShaderNodeAmbientOcclusion(*ShaderNode*)
:   Compute how much the hemisphere above the shading point is occluded, for example to add weathering effects to corners.
    Note: For Cycles, this may slow down renders significantly

    inside
    :   Trace rays towards the inside of the object

        Type:
        :   boolean, default False

    only_local
    :   Only consider the object itself when computing AO

        Type:
        :   boolean, default False

    samples
    :   Number of rays to trace per shader evaluation

        Type:
        :   int in [1, 128], default 0

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

assistant: [image reference removed]

Shortest Edge Paths on a deformed Ico Sphere.

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

Gradient-colored maze showing shortest paths to a target sphere.

[[image reference removed]](../../../../_images/modeling_geometry-nodes_shortest_edge_paths_example-3.png)

Organic branching structure on Suzanne.
user: Explain Introduction in complete detail according to the official Blender documentation.

assistant: # Introduction

The Clip View is the main part of the Movie Clip editor;
almost all motion tracking tools are concentrated within the Clip View.

It should be mentioned that the camera solver consists of three quite separate steps:

1. 2D tracking of footage.
2. Camera intrinsics (focal length, distortion coefficients) specification/estimation/calibration.
3. Solving camera, scene orientation, and scene reconstruction.
user: Describe Baking from the Blender manual or Python API, including usage steps and snippets.

assistant: The simulation is automatically cached during playback.
The valid cache can be seen as a strong yellow line in the timeline editor.
This allows for animators to quickly inspect all the previous frames of a simulation.

[image reference removed]

Cached frames in the Timeline.

When the result is ready to be sent to a render-farm, it can be baked to disk.
This allows for the simulation to be rendered in a non-sequential order.

[image reference removed]

Simulation and Physics, Geometry Nodes user interface.

Calculate to Frame
:   Calculate simulations in geometry nodes modifiers from the start to current frame.

Bake
:   Bake simulations in geometry nodes modifiers.
    In order to bake the simulation, the blend-file must be saved to your computer.
    The location the file is saved determines where the baked data is also saved.
    The directory the baked data is saved to can be changed per modifier in the
    [Internal Dependencies](../modeling/modifiers/geometry_nodes.xhtml#bpy-types-nodesmodifier-bake-directory).

    Delete Cached Simulation
    :   Delete cached/baked simulations in geometry nodes modifiers

Cache
:   For the cases where the current frame is the only one relevant,
    users can opt-out of caching the results to save memory.
user: Describe Rotate Hair Curves from the Blender manual or Python API, including usage steps and snippets.

assistant: # Rotate Hair Curves

The *Rotate Hair Curves* node twists or rotates each hair curve around a chosen axis,
allowing for effects such as gentle twisting, spiral motion, or directional flow in grooms.
It can be used to add subtle styling variation or create complex twisting deformations.
user: Show practical ways to work with Sequencer Overlays in a Blender add-on or script – include code.

assistant: [image reference removed]

Overlays are information that is displayed on top of the sequencer region.
Clicking  (Show Overlays) toggles all overlays in one go,
while the drop-down button shows a pop-over where you can toggle individual ones:

Grid
:   Shows vertical lines at regular time intervals.

Cache
:   Visualize cached images on the timeline.

### Strips

Name
:   Shows the [Name](sidebar/strip.xhtml#bpy-types-strip-name) of each strip.

Source
:   Shows the file path of each strip.

Duration
:   Shows the length of each strip (in frames).

Animation Curves
:   Shows animation curves for volume (Sound strips) and opacity (other strips).

Thumbnails
:   Displays thumbnails across the full width of each Movie or Image strip.
    The thumbnail size depends on the vertical zoom level (which can be adjusted
    by dragging up and down with `Ctrl`-`MMB`). Zooming in results in taller
    strips with bigger, but fewer thumbnails. Zooming out results in narrower
    strips with smaller, but more thumbnails.

Color Tags
:   Displays each strip in its designated custom color (if applied) rather than a
    [color representing its type](../../../video_editing/edit/montage/strips/introduction.xhtml#sequencer-strip-colors). To set a custom color,
    either click the *Color Tag* button next to the strip’s name in
    Sidebar ‣ Strip, or use *Set Color Tag* in the strip’s context menu.

Offsets
:   Shows overflow bars of content that was trimmed from the strip (by moving
    the strip’s handles). See [Strip Offset Start/End](sidebar/strip.xhtml#bpy-types-strip-frame-offset-start).

### Waveforms

Type
:   Global options for waveform display on Sound strips.

    On:
    :   Enable waveforms for all strips.

    Strip:
    :   Use the [Display Waveform](sidebar/strip.xhtml#bpy-types-soundstrip-show-waveform)
        option of each individual strip.

    Off:
    :   Disable waveforms for all strips.

Style
:   How Waveforms are displayed.

    Full:
    :   Displays the audio amplitude.

    Half:
    :   Displays the audio level.
user: How do I use Collections in Blender? Include parameters, examples, warnings and best practices.

assistant: While the *scene collection* contains all the Scene’s objects,
the user can also make their own collections to better organize these objects.

It works like a Venn diagram, where all the objects are part of the *scene collection*,
but can also be part of multiple collections.

[image reference removed]

Venn diagram.

The result is a clear and flexible way to arrange objects together on the Scene level.

[image reference removed]

Scene organization.
user: Provide the full official documentation entry for Outputs, preserving all code examples.

assistant: Geometry
:   The input geometry with two additions:

    - A `guide_curve_index` attribute that stores, for every curve,
      the index of its assigned guide curve.
    - A [anonymous attribute](../../attributes_reference.html#anonymous-attributes) representing the guide
      selection.
      The resulting geometry still contains both normal curves and the chosen guide curves.

Guide Curves
:   A geometry output that includes only the curves selected as guides.

Guide Index
:   An integer attribute giving, for each curve, the index of the closest guide curve
    with the same *Group ID*.

Guide Selection
:   A boolean selection attribute that is true only for curves that were chosen
    as guides.
    This can be used to isolate, visualize, or further process the guide curves.
user: Show practical ways to work with NodeCustomGroup(Node) in a Blender add-on or script – include code.

assistant: # NodeCustomGroup(Node)

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

*class* bpy.types.NodeCustomGroup(*Node*)
:   Base node type for custom registered node group types

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

    *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 Topology, preserving all code examples.

assistant: ### Loops

[image reference removed]

Edge and face loops.

*Edge* and *face* loops are sets of faces or edges that form continuous “loops” as shown in
Fig. [Edge and face loops.](#fig-mesh-topo-loop).

In the image above, loops that do not end in poles are cyclic (1 and 3).
They start and end at the same vertex and divide the model into two partitions.
Loops can be a quick and powerful tool to work with specific,
continuous regions of a mesh and are a prerequisite for organic character animation.
For a detailed description of how to work with loops in Blender, see:
[Select Edge Loops](selecting/loops.xhtml#bpy-ops-mesh-loop-multi-select).

Edge Loops

Loops (1 and 2) in Fig. [Edge and face loops.](#fig-mesh-topo-loop) are edge loops.
They connect vertices so that each one on the loop has exactly two neighbors that are not on
the loop and placed on both sides of the loop (except the start and end vertex in case of poles).

Edge loops are an important concept especially in organic (subsurface)
modeling and character animation. When used correctly, they allow you to build models with
relatively few vertices that look very natural when used as subdivision surfaces and
deform very well in animation.

Take Fig. [Edge and face loops.](#fig-mesh-topo-loop) in organic modeling as an example: the edge loops follow
the natural contours and deformation lines of the skin and the underlying muscles.
The loops are denser in areas that deform more when the character moves, for example at the shoulders or knees.

Further details on working with edge loops can be found in [Select Edge Loops](selecting/loops.xhtml#bpy-ops-mesh-loop-multi-select).

Face Loops

These are a logical extension of edge loops in that they consist of the faces between
two edge loops, as shown in loops (3 and 4) in Fig. [Edge and face loops.](#fig-mesh-topo-loop).
Note that for non-circular loops (4)
the faces containing the poles are not included in a face loop.

Further details on working with face loops can be found in
[Face Loop Selection](selecting/loops.xhtml#modeling-meshes-selecting-face-loops).

### Poles

See [N-poles & E-poles](https://blender.stackexchange.com/a/133676/55).

### Non-Manifold

See [Non-manifold](../../glossary/index.xhtml#term-Non-manifold).
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: Geometry
:   The input geometry to be smoothed.

Selection
:   Controls which elements are affected by the smoothing operation.
    Unselected elements remain unchanged.

Iterations
:   The number of smoothing steps to perform.
    Higher values result in a stronger smoothing effect.

Weight
:   Relative mix weight of neighboring elements.
    Determines how strongly each element is influenced by the positions of its neighbors.
user: Explain Extension Settings in complete detail according to the official Blender documentation.

assistant: Visit Extensions Platform
:   Opens [extensions.blender.org](https://extensions.blender.org/) in a web browser.

Refresh Remote
:   Manually check the online repositories for available updates.

Refresh Local
:   Scan extension & legacy add-ons for changes to modules & meta-data
    (similar to restarting). Any issues are reported as warnings.

Install Available Updates
:   Update all the extensions that have an update available.

Install from Disk
:   Install an extension from a `.zip` package.
    This is installed to a Local Repository and no updates will be available.

    This can also be used to install legacy Add-ons, for more information see:
    [Installing Legacy Add-ons](addons.xhtml#prefs-extensions-install-legacy-addon).
user: How do I use Introduction in Blender? Include parameters, examples, warnings and best practices.

assistant: # Introduction

Transform is the modality of operations that perform transformations in 2D and 3D elements.
Transformations can include things like moving, rotating, scaling,
and applying other operations to objects in the scene.

They work by changing the geometry which you can edit directly.
user: What is Add-on Information and how is it used in Blender Python scripting?

assistant: You can click the arrow at the left of the add-on box to see more information,
such as its location, a description and a link to the documentation.
Here you can also find a button to report a bug specific of this add-on.

### Add-on Preferences

Some add-ons may have their own preferences which can be found
in the *Preferences* section of the add-on information box.

Some add-ons use this section for example to enable/disable
certain functions of the add-on. Sometimes these might even all default to off.
So it is important to check if the enabled add-on has any particular preferences.