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

assistant: Splines are the fundamental components of curve objects, defining their shapes.
A curve object can consist of multiple splines,
similar to how a mesh object can contain multiple disconnected meshes.
Each spline’s shape is determined by its [Control Points](../curves/structure.xhtml#curve-spline-types).
Splines come in several types: Poly, Bézier, and NURBS, each with its own algorithm for representing curves,
as described in the [Spline Types](#spline-types) section.

### Control Points

Splines are made up of control points, which connect to form the spline.
Control points can be [selected](../curves/selecting.xhtml) and transformed to adjust the spline’s shape.
This is analogous to vertices in a mesh object.
user: Provide the full official documentation entry for Tool Settings, preserving all code examples.

assistant: These settings are only available when using the tool from the Toolbar
(not when pressing `K`). They can be found in the *Tool* tab of the
[Properties Editor](../../../../editors/properties_editor.xhtml) editor and of the Sidebar.

Occlude Geometry
:   Only cut geometry visible on screen. By disabling this, you can cut all the way
    through the mesh, including faces that are on the backside or behind others.

Only Selected
:   Only cut through selected geometry. You can press `Shift`-`K` instead of
    `K` to start cutting with this option enabled.

X-Ray
:   Show the cutting path even if it’s occluded by geometry.

Measurements
:   The measurements to show along the cutting path: distances, angles, or both.

    |  |  |  |
    | --- | --- | --- |
    | ../../../../_images/modeling_meshes_tools_knife-measurement-distance.png   Only distances. | ../../../../_images/modeling_meshes_tools_knife-measurement-angles.png   Only angles. | ../../../../_images/modeling_meshes_tools_knife-measurement-both.png   Both distances and angles. |

Angle Snapping
:   Whether to constrain the cutting lines to multiples of the *Snap Increment* angle.

    None:
    :   No snapping.

    Screen:
    :   Snap in screen space (the viewing plane).

    Relative:
    :   Snap in a plane on the geometry, relative to an adjacent edge or cutting line.

    |  |  |
    | --- | --- |
    | ../../../../_images/modeling_meshes_tools_knife_angle-before.png   Relative snapping at 90°. Blender highlights the reference edge in yellow and shows the snapping direction in white. | ../../../../_images/modeling_meshes_tools_knife_angle-after.png   Doing a few more cuts and applying. |

Snap Increment
:   The angle to use for *Angle Snapping*.
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: The inputs of the node are dynamic. Some inputs are only available for certain operations.
For instance, the *Addend* input is only available for the *Multiply Add* operator.

Value
:   Input Value. Trigonometric functions read this value as radians.

Addend
:   Input Addend.

Base
:   Input Base.

Exponent
:   Input Exponent.

Epsilon
:   Input Epsilon.

Distance
:   Input Distance.

Min
:   Input Minimum.

Max
:   Input Maximum.

Increment
:   Input Increment.

Scale
:   Input Scale.

Degrees
:   Input Degrees.

Radians
:   Input Radians.
user: Provide the full official documentation entry for Export Scene Operators, preserving all code examples.

assistant:  Level, Log Level
        - **filter_glob** (*string**,* *(**optional**,* *never None**)*) – filter_glob

    File:
    :   [addons_core/io_scene_gltf2/__init__.py:1084](https://projects.blender.org/blender/blender/src/branch/main/scripts/addons_core/io_scene_gltf2/__init__.py#L1084)
user: Describe SequencerPreviewOverlay(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # SequencerPreviewOverlay(bpy_struct)

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

*class* bpy.types.SequencerPreviewOverlay(*bpy_struct*)
:   show_annotation
    :   Show annotations for this view

        Type:
        :   boolean, default False

    show_cursor
    :   Type:
        :   boolean, default False

    show_image_outline
    :   Type:
        :   boolean, default False

    show_metadata
    :   Show metadata of first visible strip

        Type:
        :   boolean, default False

    show_safe_areas
    :   Show TV title safe and action safe areas in preview

        Type:
        :   boolean, default False

    show_safe_center
    :   Show safe areas to fit content in a different aspect ratio

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Derivative of [limbs.paw](#limbs-paw) with extended IK suitable for use in front paws.
The additional IK limits the degree of change in the angle between shin and
paw bones (2nd and 3rd) as the main IK control moves and rotates.

For best results, the shin bone should not be parallel to either thigh or paw in rest pose,
i.e. there should be some degree of bend in all joints of the paw.

Heel IK Influence
:   Influence of the extended IK. At full rotating the main IK control or digit bone would
    not affect the rotation of the paw bone, while lower values provide some blending.
user: Show practical ways to work with Edge Angle Node in a Blender add-on or script – include code.

assistant: # Edge Angle Node

[image reference removed]

The *Edge Angle* node calculates the angle in radians between two faces that meet at an edge.
For the Face, Face Corner, and Point [domains](../../attributes_reference.xhtml#attribute-domains),
the node uses simple domain interpolation to move values from the mesh’s edges.
user: Give a detailed overview of Springs: syntax, arguments, return values, common patterns.

assistant: Internally, cloth physics is simulated with virtual springs that connect the vertices of a mesh.
There are four types of springs that control how the cloth bends.
These four types are defined below and illustrated in the following image:

[image reference removed]

Illustration of cloth springs; tension springs (blue),
compression springs (red), shear springs (cyan),
and angular bending springs (green).

Tension Springs
:   Control the stiffness of the cloth.

Compression Springs
:   Control the amount of force required to collapse or compress the cloth.

Shear Springs
:   Like compression springs but it controls the angular deformation.

Angular Bending Springs
:   Control how resilient the cloth is to folding or crumpling.

All four of these spring types can be controlled independently in
the [Physical Properties](settings/physical_properties.html) panel. While these settings
control surface springs, optionally, internal springs can be used for 3D meshes
and behave similarly to [Soft Bodies](../soft_body/index.html).
user: Give a detailed overview of GeometryNodeInputNormal(GeometryNode): syntax, arguments, return values, common patterns.

assistant: # GeometryNodeInputNormal(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.GeometryNodeInputNormal(*GeometryNode*)
:   Retrieve a unit length vector indicating the direction pointing away from the geometry at each element

    legacy_corner_normals
    :   Always use face normals for the face corner domain, matching old behavior of the node

        Type:
        :   boolean, default False

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`ShaderFx.name`](bpy.types.ShaderFx.html#bpy.types.ShaderFx.name "bpy.types.ShaderFx.name") - [`ShaderFx.type`](bpy.types.ShaderFx.html#bpy.types.ShaderFx.type "bpy.types.ShaderFx.type") - [`ShaderFx.show_viewport`](bpy.types.ShaderFx.html#bpy.types.ShaderFx.show_viewport "bpy.types.ShaderFx.show_viewport") | - [`ShaderFx.show_render`](bpy.types.ShaderFx.html#bpy.types.ShaderFx.show_render "bpy.types.ShaderFx.show_render") - [`ShaderFx.show_in_editmode`](bpy.types.ShaderFx.html#bpy.types.ShaderFx.show_in_editmode "bpy.types.ShaderFx.show_in_editmode") - [`ShaderFx.show_expanded`](bpy.types.ShaderFx.html#bpy.types.ShaderFx.show_expanded "bpy.types.ShaderFx.show_expanded") |
user: Describe Working with Audio Tracks from the Blender manual or Python API, including usage steps and snippets.

assistant: A Sound strip is just like any other strip in the Video Sequencer. You can select and move it,
adjust its starting offset using `LMB` over the strip handles,
and `K` cut it into pieces.
A useful example is cutting out the “um’s” and dead voice time.

You can have as many Sound strips as you wish and the result will be the mixing of all of them.
You can give each strip its own name and volume via the Sidebar region.

Overlapping strips are automatically mixed down during the rendering process.
For example, you can have the announcer on channel 5, background music on channel 6,
and Foley sound effects on channel 7.
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`NodeSeparateBundle.bundle_items`](bpy.types.NodeSeparateBundle.html#bpy.types.NodeSeparateBundle.bundle_items "bpy.types.NodeSeparateBundle.bundle_items") - [`NodeSeparateBundleItems.new`](bpy.types.NodeSeparateBundleItems.html#bpy.types.NodeSeparateBundleItems.new "bpy.types.NodeSeparateBundleItems.new") | - [`NodeSeparateBundleItems.remove`](bpy.types.NodeSeparateBundleItems.html#bpy.types.NodeSeparateBundleItems.remove "bpy.types.NodeSeparateBundleItems.remove") |
user: Show practical ways to work with Lattice Modifier in a Blender add-on or script – include code.

assistant: # Lattice Modifier

The *Lattice* modifier deforms the base object according to
the shape of a [Lattice](../../../animation/lattice.html) object.
Objects to be deformed can be meshes, curves,
surfaces, text, lattices and even particles.
user: Show practical ways to work with Enabling Add-on in a Blender add-on or script – include code.

assistant: This add-on is enabled by default, in case it is not:

1. Open Blender and go to [Add-ons](../../editors/preferences/addons.xhtml) section of the [Preferences](../../editors/preferences/index.xhtml).
2. Search “FBX” and check the *Enable Add-on* checkbox.
user: Describe Outputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Result
:   If both depth values are equal, it will use the foreground image.
    Whichever depth value is less decides which image pixel is used.
    See [Z-buffer](../../../glossary/index.xhtml#term-Z-buffer).

Depth
:   The combined depth, which allows to thread multiple Depth Combine nodes together.
user: Show practical ways to work with Workflow in a Blender add-on or script – include code.

assistant: # Workflow

Shape keys are created and managed in the [Shape Keys panel](shape_keys_panel.xhtml),
found in the *Object Data* tab of the Properties editor
(for example, the *Mesh* tab for mesh objects).

A shape key is edited by selecting it in the panel and then moving the object’s vertices
to new positions in the 3D Viewport.

The panel also contains controls to adjust the *Value* (influence or weight) of each shape key.
This allows you to view a shape in isolation, or see how it combines with other active shape keys.
user: Give a detailed overview of The Beginning: syntax, arguments, return values, common patterns.

assistant: Blender was created by Ton Roosendaal, a Dutch art director and self-taught software developer. Attracted to all
things technical and creative, Roosendaal began a degree in Industrial Design, but dropped out in order to start his
own 3D animation studio, NeoGeo, in 1989 (the video game console of the same name appeared a year later). Initially
based in Roosendaal’s attic, NeoGeo grew rapidly, garnering awards and becoming the biggest company of its type in the
Netherlands.

Roosendaal wrote the first source files titled “Blender” on the 2nd of January, 1994, still considered Blender’s
official birthday. Originally, Blender was planned as an in-house application for NeoGeo; it grew from a series of
pre-existing tools, including a ray-tracer built for the Amiga. This early version of Blender was intended to address
a perennial frustration among creatives: when a difficult client requires multiple changes to a project, how do you
implement those changes painlessly? Thanks to its highly configurable approach, Blender aimed at providing an answer.
(As an aside: the name refers to a song by a Swiss electronic band, Yello).

Roosendaal invested his savings in a Silicon Graphics workstation. Costing the equivalent of thirty thousand US
dollars, this computer led to Blender 1.0. Launched in January 1995, this first iteration of Blender proper
incorporated then innovative ideas, including a single window which could be subdivided as the user saw fit.

At the time, 3D was considered commercially uninteresting. However, Roosendaal had fallen in love with what he
describes as its “magical ability to create a whole world in a computer.” So when NeoGeo closed, he and partner Frank
van Beek founded a new company focused on further developing and marketing Blender. Not a Number (NaN) opened its
doors in June 1998, distributing Blender under a freemium pricing strategy: the software was free to download, with
NaN selling keys to unlock more advanced features.
user: Describe Weight Options from the Blender manual or Python API, including usage steps and snippets.

assistant: Multiframe
:   Sometimes you may need to assign weight to several frames at the same time with the Weight Paint tools.

    You can activate multiframe editing with the Multiframe button next to the modes selector (faded lines icon).
    See [Multiframe](../../multiframe.html) for more information.
user: Give a detailed overview of The Default Environment: syntax, arguments, return values, common patterns.

assistant: When developing your own scripts it may help to understand how Blender sets up its Python environment.
Many Python scripts come bundled with Blender and can be used as a reference
because they use the same API that script authors write tools in.
Typical usage for scripts include: user interface, import/export,
scene manipulation, automation, defining your own tool set and customization.

On startup Blender scans the `scripts/startup/` directory for Python modules and imports them.
The exact location of this directory depends on your installation.
See the [directory layout docs](https://docs.blender.org/manual/en/dev/advanced/blender_directory_layout.html#blender-directory-layout "(in Blender 5.1 Manual v5.1)").
user: Show practical ways to work with Tool Settings in a Blender add-on or script – include code.

assistant: Depth
:   The initial depth (from the screen into the scene) used when placing the object.

    Surface:
    :   Start placing on the surface under the mouse cursor. If there is no surface, this does the
        same as *Cursor Plane*.

    Cursor Plane:
    :   Start placing on a plane that goes through the [3D Cursor](../3d_cursor.xhtml)
        and is aligned according to the *Orientation* and *Plane Axis*.

    Cursor View:
    :   Start placing on a plane that goes through the 3D Cursor and is aligned to the view.

Orientation
:   The new object’s orientation – a set of three axes, out of which *Plane Axis* chooses one.

    Surface:
    :   The object uses the normal orientation of the surface under the mouse cursor.
        If there is no surface, this does the same as *Default*.

    Default:
    :   The object uses the default [Transform Orientation](../controls/orientation.xhtml).

Snap To
:   The target to use while [Snapping](../controls/snapping.xhtml).

    Geometry:
    :   Snap to all types of geometry (vertices, edges, and faces).

    Default:
    :   Snap to the target defined in the global snapping options.

Plane Axis
:   Which of the three *Orientation* axes (X, Y or Z) is “up” for the object.
    The object’s base will be perpendicular to this axis.

Auto Axis
:   Rather than using the *Orientation* axis indicated by *Plane Axis*,
    use the one that’s closest to the viewport’s viewing direction
    (when not hovering over a surface).

Base

Origin
:   How the base is defined.

    Edge:
    :   The base is defined from one corner to the opposing corner.

    Center:
    :   The base is defined from the centerpoint to a corner.

Aspect
:   Whether the base has a free or fixed aspect ratio.

    Free:
    :   The width and depth of the base can be chosen independently.

    Fixed:
    :   The width and depth of the base are forced to be equal.

Height

Origin
:   How the height is defined.

    Edge:
    :   The base becomes the bottom, after which you define the top.

    Center:
    :   The base becomes the center, after which you define the top.

Aspect
:   Whether the object’s side has a free or fixed aspect ratio.

    Free:
    :   The height can be chosen independently of the base.

    Fixed:
    :   The height is forced to be equal to the largest side of the base.
user: Show practical ways to work with Naming Conventions in a Blender add-on or script – include code.

assistant: These attributes do not exist by default, but are used implicitly by certain parts of Blender.
The data type of these attributes can be changed, just like any attribute besides the built-in attributes.
However, the attributes might be expected by Blender to have a certain type.

| Name | Type | Domain | Notes |
| --- | --- | --- | --- |
| `bevel_weight_vert` | *Float* | *Point* | Used as vertex control for the bevel modifier. |
| `bevel_weight_edge` | *Float* | *Edge* | Used as edge control for the bevel modifier. |
| `crease_edge` | *Float* | *Edge* | Edge attribute used by the Subdivision Surface modifier. The values are expected to be in a range of 0 and 1. |
| `crease_vert` | *Float* | *Point* | Vertex attribute used by the Subdivision Surface modifier. The values are expected to be in a range of 0 and 1. |
| `custom_normal` | *2D 16-Bit Integer Array* | *Face Corner* | Used by [Custom Split Normals](../meshes/structure.xhtml#modeling-meshes-normals-custom) for mesh objects. |
| `freestyle_edge` | *Boolean* | *Edge* | Used by [Edge Marks](../../render/freestyle/view_layer/line_set.xhtml#freestyle-edge-marks) for mesh objects. |
| `freestyle_face` | *Boolean* | *Edge* | Used by [Face Marks](../../render/freestyle/view_layer/line_set.xhtml#freestyle-face-marks) for mesh objects. |
| `rest_position` | *Vector* | *Point* | Holds the position of points or vertices from before a geometry is deformed procedurally. Can be created automatically before [Shape Keys](../../animation/shape_keys/index.xhtml) and [Modifiers](../modifiers/introduction.xhtml) are evaluated with the [Add Rest Position](../../animation/shape_keys/shape_keys_panel.xhtml#bpy-types-object-add-rest-position-attribute) option. |
| `sculpt_face_set` | *Integer* | *Face* | Used by the [Sculpt Face Sets Feature](../../sculpt_paint/sculpting/introduction/visibility_masking_face_sets.xhtml#face-sets). |
| `sculpt_mask` | *Float* | *Point* | Used by the [Sculpt Masking Feature](../../sculpt_paint/sculpting/introduction/visibility_masking_face_sets.xhtml#sculpt-masks). |
| `surface_uv_coordinate` | *2D Vector* | *Curve* | Used to describe curve attachment locations on a mesh surface, typically used for the hair system. |
| `uv_seam` | *Boolean* | *Edge* | True if an edge is considered a boundary between UV islands when unwrapping. |
| `velocity` | *Vector* | *Point* | Used to create motion blur when rendering animations. |
user: Give a detailed overview of Properties: syntax, arguments, return values, common patterns.

assistant: Spline Type
:   The type to convert the splines in the selection to.
    Read the [Spline Types](../../../curves/structure.xhtml#curve-spline-types) page for more details
    on the different spline types.

    Bézier:
    :   Convert to a Bézier spline. A spline converted from a poly spline gets vector handles,
        while one converted from NURBS or Catmull Rom spline gets auto handles.

    NURBS:
    :   Convert to a NURBS spline.

    Poly:
    :   Convert to a poly spline.

    Catmull Rom:
    :   Convert to a Catmull Rom spline.
user: Explain Tool Settings in complete detail according to the official Blender documentation.

assistant: Depth
:   The initial depth (from the screen into the scene) used when placing the object.

    Surface:
    :   Start placing on the surface under the mouse cursor.
        If there is no surface, this does the same as *Cursor Plane*.

    Cursor Plane:
    :   Start placing on a plane that goes through the [3D Cursor](../3d_cursor.xhtml)
        and is aligned according to the *Orientation* and *Plane Axis*.

    Cursor View:
    :   Start placing on a plane that goes through the 3D Cursor and is aligned to the view.

Orientation
:   The new object’s orientation – a set of three axes, out of which *Plane Axis* chooses one.

    Surface:
    :   The object uses the normal orientation of the surface under the mouse cursor.
        If there is no surface, this does the same as *Default*.

    Default:
    :   The object uses the default [Transform Orientation](../controls/orientation.xhtml).

Snap To
:   The target to use while [Snapping](../controls/snapping.xhtml).

    Geometry:
    :   Snap to all types of geometry (vertices, edges, and faces).

    Default:
    :   Snap to the target defined in the global snapping options.

Plane Axis
:   Which of the three *Orientation* axes (X, Y or Z) is “up” for the object.
    The object’s base will be perpendicular to this axis.

Auto Axis
:   Rather than using the *Orientation* axis indicated by *Plane Axis*,
    use the one that’s closest to the viewport’s viewing direction
    (when not hovering over a surface).

Base

Origin
:   How the base is defined.

    Edge:
    :   The base is defined from one corner to the opposing corner.

    Center:
    :   The base is defined from the centerpoint to a corner.

Aspect
:   Whether the base has a free or fixed aspect ratio.

    Free:
    :   The width and depth of the base can be chosen independently.

    Fixed:
    :   The width and depth of the base are forced to be equal.

Height

Origin
:   How the height is defined.

    Edge:
    :   The base becomes the bottom, after which you define the top.

    Center:
    :   The base becomes the center, after which you define the top.

Aspect
:   Whether the side of the bounding box has a free or fixed aspect ratio.

    Free:
    :   The height can be chosen independently of the base.

    Fixed:
    :   The height is forced to be equal to the largest side of the base.

Vertices
:   The number of vertices in the base.

Base Fill Type
:   Set how the circle at the base will be filled.

    Triangle Fan:
    :   Fill with triangular faces which share a vertex in the middle.

    N-gon:
    :   Fill with a single [N-gon](../../../glossary/index.xhtml#term-N-gon).

    Nothing:
    :   Do not fill. Creates only the outer ring of vertices.
user: Give a detailed overview of GreasePencilDashModifierData(Modifier): syntax, arguments, return values, common patterns.

assistant: # GreasePencilDashModifierData(Modifier)

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

*class* bpy.types.GreasePencilDashModifierData(*Modifier*)
:   Create dot-dash effect for strokes

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

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

    invert_layer_filter
    :   Invert layer filter

        Type:
        :   boolean, default False

    invert_layer_pass_filter
    :   Invert layer pass filter

        Type:
        :   boolean, default False

    invert_material_filter
    :   Invert material filter

        Type:
        :   boolean, default False

    invert_material_pass_filter
    :   Invert material pass filter

        Type:
        :   boolean, default False

    layer_pass_filter
    :   Layer pass filter

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

    material_filter
    :   Material used for filtering

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

    material_pass_filter
    :   Material pass

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

    open_influence_panel
    :   Type:
        :   boolean, default False

    segment_active_index
    :   Active index in the segment list

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

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

    tree_node_filter
    :   Layer name

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

    use_layer_group_filter
    :   Filter by layer group name

        Type:
        :   boolean, default False

    use_layer_pass_filter
    :   Use layer pass filter

        Type:
        :   boolean, default False

    use_material_pass_filter
    :   Use material pass filter

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # GeometryNodeInputPosition(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.GeometryNodeInputPosition(*GeometryNode*)
:   Retrieve a vector indicating the location of each element

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

assistant: ### General

Hardness
:   Higher by default to ensure the profile of layers is more noticeable.
    More info at [Hardness](../../brush/brush_settings.xhtml#bpy-types-brush-hardness)

### Unique

Height
:   The fixed height of each stroke. This is measured using the [scene scale](../../../scene_layout/scene/properties.xhtml#bpy-types-unitsettings-system),
    so it is consistent no matter the amount of zoom or object size.

Persistent
:   This will ensure that multiple strokes use the same height, as if sculpting a single layer.

Set Persistent Base
:   This button resets a new base so that you can sculpt new layer.
user: Provide the full official documentation entry for NodeSocketVectorPercentage2D(NodeSocketStandard), preserving all code examples.

assistant: # NodeSocketVectorPercentage2D(NodeSocketStandard)

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

*class* bpy.types.NodeSocketVectorPercentage2D(*NodeSocketStandard*)
:   3D vector socket of a node

    default_value
    :   Input value used for unconnected socket

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

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

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

        (readonly)

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Explain Blender Makes Open Movies in complete detail according to the official Blender documentation.

assistant: As a way to stress-test Blender’s increasing power, the Blender Foundation challenged its community’s most talented
artists to make an animated 3D short film. The only criterion was that they had to use open source tools, with Blender
prime among them.

Under the codename “Project Orange,” this project began in 2005, resulting in Elephants Dream, a surreal adventure
through a gigantic machine. The film and all its assets were made freely available under a Creative Commons license.

After the success of Elephants Dream, the Blender Institute was established in the summer of 2007. As well as helping
to define the Blender Foundation’s goals, the Blender Institute comprised a permanent office and studio, with the
express intention of generating Open Projects related to 3D movies, games or visual effects. As part of its output,
the Blender Institute has created a series of Open Movies in collaboration with leading artists. They include the
comedy Big Buck Bunny (2008), science fiction thriller Tears of Steel (2012), a poetic fantasy Spring (2019), and
horror-comedy Sprite Fright (2021).
user: Show practical ways to work with Workflow & Examples in a Blender add-on or script – include code.

assistant: # Workflow & Examples

Simple Drivers can be configured from the pop-over that appears when adding a new Driver.
When adding multiple Drivers or for more advanced configurations,
it is useful to have open the [Drivers Editor](../../editors/drivers_editor.html).
user: Show practical ways to work with Wireframe Node in a Blender add-on or script – include code.

assistant: # Wireframe Node

[image reference removed]

The Wireframe node is used to retrieve the edges of an object as it appears to Cycles.
As meshes are triangulated before being processed by Cycles,
topology will always appear triangulated when viewed with the Wireframe node.
user: What is Grease Pencil and how is it used in Blender Python scripting?

assistant: # Grease Pencil

This mode lets you adjust the timing of a [Grease Pencil object’s](../../../grease_pencil/introduction.html)
animation frames. It is especially useful for blocking out shots.

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

assistant: # Defaults

When you start Blender for the first time or update to a new version, the interactive region of
the [Splash Screen](../../interface/window_system/splash.html) is replaced with a few initial preferences to configure
how you interact with Blender.

[image reference removed]

The initial preferences dialog.
user: Describe Examples from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

Here, the compare node is used with the *Direction* mode to compare the direction of the
sphere’s [face normals](../../geometry/read/normal.xhtml) to the “direction”
of the cube object’s location. Anywhere that the directions are less than 32.9 degrees apart,
the faces will be selected, and deleted.
user: Provide the full official documentation entry for Points to Curves Node, preserving all code examples.

assistant: # Points to Curves Node

[image reference removed]

The *Points to Curves* node generates a [Curves](../../curves/introduction.xhtml) geometry by taking all
points and inserting them to new curves. All [Attributes](../attributes_reference.xhtml)
from points are propagated to [Curve Points](../attributes_reference.xhtml#attribute-domains).
[Built-in](../attributes_reference.xhtml#geometry-nodes-builtin-attributes) curves attributes stored in points will be ignored.
user: Give a detailed overview of Set Instance Transform Node: syntax, arguments, return values, common patterns.

assistant: # Set Instance Transform Node

[image reference removed]

The *Set Instance Transform* node [Transforms](../../../glossary/index.html#term-Transform) geometry instances
using a [Transformation Matrix](../../../glossary/index.html#term-Transformation-Matrix).

The [Instances](../instances.html) page contains more information about geometry instances.
user: What is Tips for Nice Setups and how is it used in Blender Python scripting?

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

assistant: - The pull request text should be usable as the git commit message (see the [guidelines](../../guides/commit_guide.xhtml#contribute-commit-good-message) for details).
- Be explicit when some changes are to be addressed before committing, without the need for a review iteration.
- If the pull request is not approved the author is expected to make another iteration.
- If the change needs agreement on the design task first, put the pull request on hold by adding a `WIP:` prefix in
  the title, indicating the author considers the pull request not ready to be merged. No review is expected unless the
  author specifically asks for it.
- Writers are expected to reply to pull requests in 3 working days.
- Add relevant modules/projects to the labels.
- Encourage new writes to do review, it’s a good way to learn and important to grow the project.
user: Show practical ways to work with Snap Source Items in a Blender add-on or script – include code.

assistant: # Snap Source Items

CLOSEST:
:   Closest.

    Snap closest point onto target.

CENTER:
:   Center.

    Snap transformation center onto target.

MEDIAN:
:   Median.

    Snap median onto target.

ACTIVE:
:   Active.

    Snap active onto target.
user: How do I use Tool Settings in Blender? Include parameters, examples, warnings and best practices.

assistant: Depth
:   The initial depth (from the screen into the scene) used when placing the object.

    Surface:
    :   Start placing on the surface under the mouse cursor. If there is no surface, this does the
        same as *Cursor Plane*.

    Cursor Plane:
    :   Start placing on a plane that goes through the [3D Cursor](../3d_cursor.html)
        and is aligned according to the *Orientation* and *Plane Axis*.

    Cursor View:
    :   Start placing on a plane that goes through the 3D Cursor and is aligned to the view.

Orientation
:   The new object’s orientation – a set of three axes, out of which *Plane Axis* chooses one.

    Surface:
    :   The object uses the normal orientation of the surface under the mouse cursor.
        If there is no surface, this does the same as *Default*.

    Default:
    :   The object uses the default [Transform Orientation](../controls/orientation.html).

Snap To
:   The target to use while [Snapping](../controls/snapping.html).

    Geometry:
    :   Snap to all types of geometry (vertices, edges, and faces).

    Default:
    :   Snap to the target defined in the global snapping options.

Plane Axis
:   Which of the three *Orientation* axes (X, Y or Z) is “up” for the object.
    The object’s base will be perpendicular to this axis.

Auto Axis
:   Rather than using the *Orientation* axis indicated by *Plane Axis*,
    use the one that’s closest to the viewport’s viewing direction
    (when not hovering over a surface).

Base

Origin
:   How the base is defined.

    Edge:
    :   The base is defined from one corner to the opposing corner.

    Center:
    :   The base is defined from the centerpoint to a corner.

Aspect
:   Whether the base has a free or fixed aspect ratio.

    Free:
    :   The width and depth of the base can be chosen independently.

    Fixed:
    :   The width and depth of the base are forced to be equal.

Height

Origin
:   How the height is defined.

    Edge:
    :   The base becomes the bottom, after which you define the top.

    Center:
    :   The base becomes the center, after which you define the top.

Aspect
:   Whether the side of the bounding box has a free or fixed aspect ratio.

    Free:
    :   The height can be chosen independently of the base.

    Fixed:
    :   The height is forced to be equal to the largest side of the base.

Vertices
:   The number of vertices in the caps.

Cap Fill Type
:   Set how the caps will be filled.

    Triangle Fan:
    :   Fill with triangular faces which share a vertex in the middle.

    N-gon:
    :   Fill each ring with an [N-gon](../../../glossary/index.html#term-N-gon).

    Nothing:
    :   Do not fill. Creates only the outer rings of vertices.
user: Provide the full official documentation entry for Brush Settings, preserving all code examples.

assistant: ### General

### Unique

Deformation
:   Drag:
    :   Smear colors along the direction of the stroke.

    Pinch:
    :   Smear colors inwards towards your brush center.

    Expand:
    :   Smear colors outwards away from your brush center.
user: Provide the full official documentation entry for GeometryNodeImageTexture(GeometryNode), preserving all code examples.

assistant: # GeometryNodeImageTexture(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.GeometryNodeImageTexture(*GeometryNode*)
:   Sample values from an image texture

    extension
    :   How the image is extrapolated past its original bounds

        - `REPEAT`
          Repeat – Cause the image to repeat horizontally and vertically.
        - `EXTEND`
          Extend – Extend by repeating edge pixels of the image.
        - `CLIP`
          Clip – Clip to image size and set exterior pixels as transparent.
        - `MIRROR`
          Mirror – Repeatedly flip the image horizontally and vertically.

        Type:
        :   enum in [`'REPEAT'`, `'EXTEND'`, `'CLIP'`, `'MIRROR'`], default `'REPEAT'`

    interpolation
    :   Method for smoothing values between pixels

        - `Linear`
          Linear – Linear interpolation.
        - `Closest`
          Closest – No interpolation (sample closest texel).
        - `Cubic`
          Cubic – Cubic interpolation.

        Type:
        :   enum in [`'Linear'`, `'Closest'`, `'Cubic'`], default `'Linear'`

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

assistant: While going through the tutorial, you may want to look into our reference documentation.

- [Blender API Overview](https://docs.blender.org/api/current/info_overview.html):
  This document is rather detailed but helpful if you want to know more on a topic.
- [`bpy.context`](https://docs.blender.org/api/5.0/bpy.context.html#module-bpy.context "(in Blender 5.0.1 Python API v5.0)") API reference –
  Handy to have a list of available items your script may operate on.
- [`bpy.types.Operator`](https://docs.blender.org/api/5.0/bpy.types.Operator.html#bpy.types.Operator "(in Blender 5.0.1 Python API v5.0)") –
  The following add-ons define operators, these docs give details and more examples of operators.
user: Explain Bpy.Types.Rigidbodyobject in complete detail according to the official Blender documentation.

assistant: unctions References
user: Provide the full official documentation entry for Toggle Bold, Italics, Underline, Small Caps, preserving all code examples.

assistant: To apply the *Bold*, *Italics*, *Underline* or *Small Caps* attribute to a set of characters,
you either turn on the related setting prior to typing characters,
or select existing text, and then toggle desired style from the menu.