PGCRYPT/OpenBlender_Train huggingface dataset:
user: Give a detailed overview of Grease Pencil: syntax, arguments, return values, common patterns.

assistant: These overlays are available when a [Grease Pencil](../../../grease_pencil/index.xhtml) object is selected.

Onion Skin
:   Show ghosts of the keyframes before and after the current frame.
    If [Multiframe](../../../grease_pencil/multiframe.xhtml) is enabled,
    ghosts of the selected keyframes are shown instead.
    See [Onion Skinning](../../../grease_pencil/properties/onion_skinning.xhtml).

Active Object Only
:   Show only the onion skins of the active object.

Fade Inactive Layers
:   Decrease the opacity of all the layers in the object other than the active one.
    The opacity factor can be controlled with the slider.

Fade Inactive Objects
:   Cover all of the viewport except the active Grease Pencil object with a full color layer to improve visibility
    while drawing over complex scenes.

    Fade Grease Pencil Objects
    :   Include or exclude Grease Pencil objects.

Edit Lines Edit, Sculpt, Weight Paint, or Vertex Paint Modes `Shift`-`Q`
:   Shows a line between points on top of other geometry when editing strokes.

Only in Multiframe `Shift`-`Alt`-`Q`
:   When Multiframe is enabled and keyframes other than the current frame are selected,
    strokes on those keyframes are displayed as just their edit lines – the strokes themselves are hidden.
    Note that this does not affect Onion Skinning.

Handles
:   Controls the visibility of Bézier curve handles in edit mode.

    None:
    :   Hides all Bézier curve handles, providing an unobstructed view of the curve.

    Selected:
    :   Displays the handles only for selected control points.

    All:
    :   Displays the handles for all control points in the curve.

Stroke Direction Edit
:   Toggle the display of the selected strokes’ start points (green) and end points (red) to visualize their direction.

Material Name Edit
:   Show material name next to the selected strokes.

Vertex Paint

Vertex Paint Opacity Vertex Paint
:   The opacity of the vertex color overlay in Vertex Paint Mode and Draw Mode.
    Note that in Draw Mode, vertex paint is only visible in the *Material Preview*
    and *Rendered* shading modes by default. To see it in *Solid* mode, you either
    need to use Vertex Paint Mode, or set the [Color](../../../render/workbench/color.xhtml)
    shading setting to *Attribute*.

### Canvas

Display a grid over the Grease Pencil drawing plane.

Canvas Grid Opacity
:   The opacity of the grid.

Canvas X-Ray
:   Objects are drawn behind the canvas grid.

Subdivisions
:   The number of subdivisions between grid lines.

Grid Color
:   The color of the grid lines.

Scale X/Y
:   The horizontal/vertical size of the grid.

Offset X/Y
:   The amount to shift the grid up/down and left/right.
user: Show practical ways to work with ShaderNodeValue(ShaderNode) in a Blender add-on or script – include code.

assistant: # ShaderNodeValue(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.ShaderNodeValue(*ShaderNode*)
:   Input numerical values to other nodes in the tree

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

    *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 Connect to Output, preserving all code examples.

assistant: Connect the output of the selected node to the final output of the node tree
(Material Output or World Output in Shader,
the final Group Output in Geometry Nodes and Compositor, Output in Texture Nodes),
or, if the node is inside a group, to the Group Output.
user: Describe Render As from the Blender manual or Python API, including usage steps and snippets.

assistant: ### None

When set to *None*, particles are not rendered.
This is useful if you are using the particles to duplicate objects.

### Halo

Halos are rendered as glowing dots or a little cloud of light.
Although they are not really lights because they do not cast light into the scene like a light object.
They are called *Halos* because you can see them, but they do not have any substance.

### Path

[image reference removed]

The Visualization panel for Path visualization.

The *Path* visualization needs a [Hair](../hair/index.html) particle system or
[Keyed](physics/keyed.html) particles.

B-Spline
:   Interpolate hair using B-splines.
    This may be an option for you if you want to use low *Render* values.
    You loose a bit of control but gain smoother paths.

Steps
:   Set the number of subdivisions of the rendered paths (the value is a power of 2).
    You should set this value carefully,
    because if you increase the render value by two you need four times more memory to render.
    Also the rendering is faster if you use low render values (sometimes drastically).
    But how low you can go with this value depends on the waviness of the hair (the value is a power of 2).
    This means 0 steps give 1 subdivision,
    1 give 2 subdivisions, 2 → 4, 3 → 8, 4 → 16, … 𝓃 → 2𝓃.

### Timing

Absolute Path Time
:   Path timing is in absolute frames.

End
:   End time of the practical path.

Random
:   Give the path length a random variation.

### Object

Instance Object
:   The specified object is instanced in place of each particle.

Global Coordinates
:   Use object’s global coordinates for instancing.

Object Rotation
:   Use the rotation of the object.

Object Scale
:   Use the size of the object.

### Collection

Instance Collection
:   The objects that belong to a collection are instanced sequentially in the place of the particles.

Whole Collection
:   Use the whole group at once, instead of one of its elements, the group being displayed in place of each particle.

Pick Random
:   The objects in the group are selected in a random order, and only one object is displayed in place of a particle.

Global Coordinates
:   Use object’s global coordinates for instancing.

Object Rotation
:   Use the rotation of the objects.

Object Scale
:   Use the size of the objects.

#### Use Count

Use objects multiple times in the same groups.
Specify the order and number of times to repeat each object with the [list view](../../../interface/controls/templates/list_view.html#ui-list-view) that appears.

Copy Particle Instance Object
:   Duplicates the selected object in the list.

Remove Particle Instance Object
:   Removes the selected object from the list.
user: Show practical ways to work with Clay Thumb in a Blender add-on or script – include code.

assistant: # Clay Thumb

Similar to the [Clay](clay.html) brush.
It imitates the effect of deforming clay with the finger, accumulating material during the stroke.
The sculpt plane tilts during the stroke in the front part of the brush to achieve this effect.
user: How do I use ShaderNodeHueSaturation(ShaderNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # ShaderNodeHueSaturation(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.ShaderNodeHueSaturation(*ShaderNode*)
:   Apply a color transformation in the HSV color model

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

assistant: The [X-Ray](../../../editors/3dview/display/shading.xhtml#bpy-types-view3dshading-show-xray) setting is not just for shading, it impacts selection too.
When enabled, selection isn’t occluded by the objects geometry (as if the object was solid).

|  |  |
| --- | --- |
| ../../../_images/modeling_meshes_selecting_introduction_limit-selection-to-visible-off.png   X-ray enabled. | ../../../_images/modeling_meshes_selecting_introduction_limit-selection-to-visible-on.png   X-ray disabled. |
user: What is Boid and how is it used in Blender Python scripting?

assistant: # Boid

The *Boid* force fields do not affect physics,
and are used together with the [Boids Particles](../../../particles/emitter/physics/boids.html)
to define boid predators and goals for the *Boid Brain* rules.

[image reference removed]

UI for a Boid force field.
user: Give a detailed overview of Selecting: syntax, arguments, return values, common patterns.

assistant: Click `LMB` on the marker’s triangle to select it.
Use `Shift`-`LMB` to select multiple markers.

In the Graph Editor, Dope Sheet, NLA Editor, Timeline, and Video Sequence Editor,
you can also select all markers with `A` while hovering the mouse over the marker row,
and apply selection tools on them like Box Select, etc.
(as usual, `LMB` to select, `RMB` to deselect).
The corresponding options are found in the Select menu of these editors.
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

assistant: Data Type
:   The data type that is used for mixing.
    The node supports float, vector, color, and rotation data types.

Factor Mode (Vector only)
:   The factor mode can be set to *Uniform* and *Non-Uniform*.
    In uniform mode, a single float controls the factor.
    In non-uniform mode, a vector controls the factor for
    each XYZ channel separately.

Mix (Color only)
:   The Blend modes can be selected in the select menu.
    See [Color Blend Modes](../../../glossary/index.xhtml#term-Color-Blend-Modes) for details on each blending mode.

    Add, Subtract, Multiply, Screen, Divide, Difference,
    Darken, Lighten, Overlay, Color Dodge, Color Burn,
    Hue, Saturation, Value, Color, Soft Light, Linear Light

Clamp Factor
:   Limit the factor value between 0.0 and 1.0. If this option is
    unchecked then the node operates using *Extrapolation*.

Clamp Result (Color only)
:   Limit the Result to the range between 0.0 and 1.0.
user: Show practical ways to work with Edges of Vertex Node in a Blender add-on or script – include code.

assistant: # Edges of Vertex Node

[image reference removed]

Selects a neighboring edge of a vertex and outputs its index.

This node is a bit special because it operates in two different domains.
First, it evaluates a *Weight* for each edge in the geometry.
Then, for each item in the context domain, it will:

- Pick a vertex from the geometry based on the *Vertex Index*.
- Find the edges connected to this vertex.
- Sort these edges by their associated weight.
- Pick an edge from the above sorted list based on the *Sort Index*,
  where 0 means the edge with the lowest weight,
  1 means the edge with the second-lowest weight and so on.
- Output the geometry-wide index of this edge.
user: Explain Common Options in complete detail according to the official Blender documentation.

assistant: ### Settings

Enabled
:   Specifies whether the constraint is active during the simulation.

Disable Collisions
:   Allows constrained objects to pass through one another.

Breakable
:   Allows constraint to break during simulation. Disabled for the *Motor* constraint.
    This can be used to simulate destruction.

Threshold
:   Impulse strength that needs to be reached before the constraint breaks.

### Limits

By using limits you can constrain objects even more by specifying a translation/rotation range on/around
respectively one axis (see below for each one individually). To lock one axis, set both limits to 0.

### Objects

First
:   First object to be constrained.

Second
:   Second object to be constrained.

### Override Iterations

Allows making constraints stronger (more iterations) or weaker (less iterations)
than specified in the rigid body world.

Iterations
:   Number of constraint solver iterations made per simulation step for this constraint.
user: What is Properties and how is it used in Blender Python scripting?

assistant: The *Closure* node does not have functional properties of its own, but its interface is configurable through the
*Node* tab in the Sidebar. Inputs and outputs can be added, removed, and renamed to define the closure’s signature.

Sync Sockets
:   Updates the current node to match the socket signature of the connected nodes.
    Use this after renaming, adding, or removing sockets.

Define Signature
:   Marks the current zone as the source of a closure signature that other nodes can reference. This ensures consistent
    input and output definitions across multiple closure instances.

### Input Items

List of input sockets
:   Displays one entry per socket defined in the closure. Double-click an entry to rename it.

Add Item
:   Add a new input socket to the closure.

Remove Item
:   Delete the selected input socket.

Type
:   Defines the data type for the selected socket (e.g. Float, Vector, Geometry, Object, Bundle).
    For value types, a default value control appears and is used when the socket is unlinked.

Shape
:   Defines the data structure supported by the input socket, such as a *Single* value, *Field*, or *Grid*.
    The shape determines how the data is evaluated and passed through the node network.
    See [Socket Shape](../../../interface/controls/nodes/parts.html#interface-controls-nodes-socket-shape) for more information.

### Output Items

Available when the closure’s output zone is selected.

List of output sockets
:   Displays one entry per socket defined in the closure output. Double-click to rename.

Add Item
:   Add a new output socket to the closure.

Remove Item
:   Delete the selected output socket.

Type
:   Defines the data type for the selected socket (e.g. Float, Vector, Geometry, Object, Bundle).
    For value types, a default value control appears and is used when the socket is unlinked.

Shape
:   Defines the data structure supported by the input socket, such as a *Single* value, *Field*, or *Grid*.
    The shape determines how the data is evaluated and passed through the node network.
    See [Socket Shape](../../../interface/controls/nodes/parts.html#interface-controls-nodes-socket-shape) for more information.
user: Show practical ways to work with Point Constraint in a Blender add-on or script – include code.

assistant: # Point Constraint

The objects are linked by a point bearing allowing any kind of rotation around the location of the constraint object,
but no relative translation is permitted. The physics engine will do its best to make sure that the two points
designated by the constraint object on the two constrained objects are coincident.

[image reference removed]

*Point* constraint options.
user: Describe BrushCapabilitiesWeightPaint(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # BrushCapabilitiesWeightPaint(bpy_struct)

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

*class* bpy.types.BrushCapabilitiesWeightPaint(*bpy_struct*)
:   Read-only indications of supported operations

    has_weight
    :   Type:
        :   boolean, default False, (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: Give a detailed overview of GeometryNodeMaterialSelection(GeometryNode): syntax, arguments, return values, common patterns.

assistant: # GeometryNodeMaterialSelection(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.GeometryNodeMaterialSelection(*GeometryNode*)
:   Provide a selection of faces that use the specified material

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: What is NodeCombineBundleItem(bpy_struct) and how is it used in Blender Python scripting?

assistant: # NodeCombineBundleItem(bpy_struct)

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

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

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

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

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

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

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Show practical ways to work with BrushCapabilitiesSculpt(bpy_struct) in a Blender add-on or script – include code.

assistant: # BrushCapabilitiesSculpt(bpy_struct)

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

*class* bpy.types.BrushCapabilitiesSculpt(*bpy_struct*)
:   Read-only indications of which brush operations are supported by the current sculpt tool

    has_accumulate
    :   Type:
        :   boolean, default False, (readonly)

    has_auto_smooth
    :   Type:
        :   boolean, default False, (readonly)

    has_auto_smooth_pressure
    :   Type:
        :   boolean, default False, (readonly)

    has_color
    :   Type:
        :   boolean, default False, (readonly)

    has_direction
    :   Type:
        :   boolean, default False, (readonly)

    has_dyntopo
    :   Type:
        :   boolean, default False, (readonly)

    has_gravity
    :   Type:
        :   boolean, default False, (readonly)

    has_hardness_pressure
    :   Type:
        :   boolean, default False, (readonly)

    has_height
    :   Type:
        :   boolean, default False, (readonly)

    has_jitter
    :   Type:
        :   boolean, default False, (readonly)

    has_normal_weight
    :   Type:
        :   boolean, default False, (readonly)

    has_persistence
    :   Type:
        :   boolean, default False, (readonly)

    has_pinch_factor
    :   Type:
        :   boolean, default False, (readonly)

    has_plane_depth
    :   Type:
        :   boolean, default False, (readonly)

    has_plane_height
    :   Type:
        :   boolean, default False, (readonly)

    has_plane_offset
    :   Type:
        :   boolean, default False, (readonly)

    has_rake_factor
    :   Type:
        :   boolean, default False, (readonly)

    has_random_texture_angle
    :   Type:
        :   boolean, default False, (readonly)

    has_sculpt_plane
    :   Type:
        :   boolean, default False, (readonly)

    has_secondary_color
    :   Type:
        :   boolean, default False, (readonly)

    has_size_pressure
    :   Type:
        :   boolean, default False, (readonly)

    has_smooth_stroke
    :   Type:
        :   boolean, default False, (readonly)

    has_space_attenuation
    :   Type:
        :   boolean, default False, (readonly)

    has_strength_pressure
    :   Type:
        :   boolean, default False, (readonly)

    has_tilt
    :   Type:
        :   boolean, default False, (readonly)

    has_topology_rake
    :   Type:
        :   boolean, default False, (readonly)

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: [image reference removed]

Limit Scale constraint.

Minimum/Maximum X, Y, Z
:   The number fields determine the boundaries for each axis.
    The checkboxes determine whether each boundary applies.

Affect Transform
:   When the owner is manually scaled, restrict not just its
    [visual](../introduction.xhtml#constraint-visual-transform) scale but also its
    *Scale* in the [Properties Editor](../../../editors/properties_editor.xhtml)’s *Transform* panel.

[Owner](../interface/common.xhtml#rigging-constraints-interface-common-space)
:   The space for determining and limiting the scale of the owner.

[Influence](../interface/common.xhtml#bpy-types-constraint-influence)
:   How strongly the constraint affects the owner.
user: Provide the full official documentation entry for Color Strip, preserving all code examples.

assistant: # Color Strip

This effect generates solid color frames.
By default, when it is created, the Color strip is 25 frames long, but
you can extend it by selecting and moving one of the ends.
Use this strip crossed with your main movie to provide a fade-in or fade-out.
user: Explain UV Maps in complete detail according to the official Blender documentation.

assistant: If you have a mesh object selected, you’ll find its UV maps in the Data tab of the
[Properties editor](../../../editors/properties_editor.html). After selecting a map,
you can view and edit it in the [UV editor](../../../editors/uv/introduction.html).

One mesh can have multiple UV maps (e.g. one map per texture), although it’s
also possible to reuse a UV map for multiple textures.

[image reference removed]

The UV Maps panel in the Data tab.

/ Active Render
:   Marks the UV map as the the default one for rendering. The *Active Render* UV map is used for:

    - The [UV Pass](../../../render/layers/passes.html#bpy-types-viewlayer-use-pass-uv) for compositing
    - The [Texture Coordinate Node](../../../render/shader_nodes/input/texture_coordinate.html) for material shading.
    - The [UV Map Node](../../../render/shader_nodes/input/uv_map.html) for material shading when no UV map is specified.

Add UV Map
:   Duplicates the selected UV map, or creates a new one if the list is empty.

Remove UV Map
:   Removes the selected UV map.
user: Show practical ways to work with Outputs in a Blender add-on or script – include code.

assistant: Image
:   Processed image with the *Matte* applied to the images’ [Alpha Channel](../../../glossary/index.html#term-Alpha-Channel).

Matte
:   Output matte to use for checking the quality of the key, or to manually apply
    using a [Set Alpha Node](../color/set_alpha.html) or
    [Mix Node](../color/mix_color.html).

Edges
:   Shows what edges were detected on the matte.
    Useful for adjusting the *Edge* *Size* and *Tolerance*.
user: How do I use Relations in Blender? Include parameters, examples, warnings and best practices.

assistant: Target
:   This [list view](../../../../interface/controls/templates/list_view.html#ui-list-view) allows you to set up other particle systems to react with the boids.

Target Object
:   A [data ID](../../../../interface/controls/templates/data_block.html#ui-data-id) to select an object with a particle system set on.

System
:   Index of the *Object*‘s particle system as set in the list view in the particle panel.

Mode
:   Enemy:
    :   Setting the type to *Enemy* will cause the systems to fight with each other.

    Friend:
    :   Will make the systems work together.

    Neutral:
    :   Will not cause them to align or fight with each other.

### Deflection

Boids will try to avoid deflector objects according to the Collision rule’s weight.
It works best for convex surfaces (some work needed for concave surfaces).

### Force Fields

As other physics types, Boids is also influenced by external force fields.

In addition, special *Boid* force fields can be used with the Boids physics.
These effectors could be predators (positive Strength) that boids try to avoid,
or targets (negative Strength) that boids try to reach
according to the (respectively) *Avoid* and *Goal* rules of the *Boid Brain*.
user: Give a detailed overview of Mirror Modifier: syntax, arguments, return values, common patterns.

assistant: # Mirror Modifier

The *Mirror* modifier mirrors a mesh along its local X, Y and/or Z axes, across the [Object Origin](../../../glossary/index.html#term-Object-Origin).
It can also use another object as the mirror center, then use that object’s local axes instead of its own.
user: Give a detailed overview of View: syntax, arguments, return values, common patterns.

assistant: ### 2D Cursor

The 2D Cursor is the dashed crosshair in the main region. It can be used as a
transformation [pivot point](../3dview/controls/pivot_point/index.xhtml)
by selecting the corresponding option in the editor’s header.

Note that the 2D Cursor is only available in Mask mode, not in Tracking mode.

Location X, Y
:   The relative location of the 2D Cursor, going from (0, 0) for the bottom left
    corner to (1, 1) for the top right corner.

    You can also position the 2D Cursor by clicking `Shift`-`RMB`
    in (or around) the video.

### Annotations

See [Annotations](../../interface/annotate_tool.xhtml).
user: What is GeometryNodeSampleNearestSurface(GeometryNode) and how is it used in Blender Python scripting?

assistant: # GeometryNodeSampleNearestSurface(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.GeometryNodeSampleNearestSurface(*GeometryNode*)
:   Calculate the interpolated value of a mesh attribute on the closest point of its surface

    data_type
    :   Type:
        :   enum in [Attribute Type Items](bpy_types_enum_items/attribute_type_items.html#rna-enum-attribute-type-items), default `'FLOAT'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: A general process for working with cloth is to:

1. Model the cloth object as a general starting shape.
2. Designate the object as a “cloth” in the *Physics* tab of the Properties.
3. Model other deflection objects that will interact with the cloth.
   Ensure the Deflection modifier is last on the modifier stack, after any other mesh deforming modifiers.
4. Light the cloth and assign materials and textures, UV unwrapping if desired.
5. If desired, give the object particles, such as steam coming off the surface.
6. Run the simulation and adjust settings to obtain satisfactory results.
   The Timeline editors playback controls are great for this step.
7. Optionally age the mesh to some point in the simulation to obtain a new default starting shape.
8. Make minor edits to the mesh on a frame-by-frame basis to correct minor tears.
user: Describe NodeSocketVectorXYZ4D(NodeSocketStandard) from the Blender manual or Python API, including usage steps and snippets.

assistant: # NodeSocketVectorXYZ4D(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.NodeSocketVectorXYZ4D(*NodeSocketStandard*)
:   3D vector socket of a node

    default_value
    :   Input value used for unconnected socket

        Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 4 items in [-inf, inf], default (0.0, 0.0, 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: What is References and how is it used in Blender Python scripting?

assistant: |  |  |
| --- | --- |
| - [`Brush.mask_texture_slot`](bpy.types.Brush.html#bpy.types.Brush.mask_texture_slot "bpy.types.Brush.mask_texture_slot") | - [`Brush.texture_slot`](bpy.types.Brush.html#bpy.types.Brush.texture_slot "bpy.types.Brush.texture_slot") |
user: Explain Preset Menus in complete detail according to the official Blender documentation.

assistant: Preset menus are simply a convention that uses a menu sub-class
to perform the common task of managing presets.

This example shows how you can add a preset menu.

This example uses the object display options,
however you can use properties defined by your own scripts too.

```
import bpy
from bpy.types import Operator, Menu
from bl_operators.presets import AddPresetBase

class OBJECT_MT_display_presets(Menu):
    bl_label = "Object Display Presets"
    preset_subdir = "object/display"
    preset_operator = "script.execute_preset"
    draw = Menu.draw_preset

class AddPresetObjectDisplay(AddPresetBase, Operator):
    '''Add a Object Display Preset'''
    bl_idname = "camera.object_display_preset_add"
    bl_label = "Add Object Display Preset"
    preset_menu = "OBJECT_MT_display_presets"

    # Variable used for all preset values.
    preset_defines = [
        "obj = bpy.context.object"
    ]

    # Properties to store in the preset.
    preset_values = [
        "obj.display_type",
        "obj.show_bounds",
        "obj.display_bounds_type",
        "obj.show_name",
        "obj.show_axis",
        "obj.show_wire",
    ]

    # Where to store the preset.
    preset_subdir = "object/display"

# Display into an existing panel.
def panel_func(self, context):
    layout = self.layout

    row = layout.row(align=True)
    row.menu(OBJECT_MT_display_presets.__name__, text=OBJECT_MT_display_presets.bl_label)
    row.operator(AddPresetObjectDisplay.bl_idname, text="", icon='ZOOM_IN')
    row.operator(AddPresetObjectDisplay.bl_idname, text="", icon='ZOOM_OUT').remove_active = True

classes = (
    OBJECT_MT_display_presets,
    AddPresetObjectDisplay,
)

def register():
    for cls in classes:
        bpy.utils.register_class(cls)
    bpy.types.OBJECT_PT_display.prepend(panel_func)

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)
    bpy.types.OBJECT_PT_display.remove(panel_func)

if __name__ == "__main__":
    register()
```
user: What is Spot Light and how is it used in Blender Python scripting?

assistant: A spot light emits a cone-shaped beam of light from the tip of the cone,
in a given direction.

Power
:   Power of the light. Higher values increase the intensity of the light.
    Negative values can be set, but should be avoided for predictable and physically based result.

Radius
:   When larger than zero, light will be emitted from a spherical surfaces with the specified radius.
    Lights with larger size have softer shadows and specular highlights.

Soft Falloff
:   Apply falloff to avoid sharp edges when the light geometry intersects with other objects.

### Beam Shape

[image reference removed]

Changing the spot options also changes the appearance of the spotlight as displayed in the 3D Viewport.

Angle
:   The size of the outer cone of a spot light, which determines how wide the light spreads.
    A smaller angle produces a narrow, focused beam, while a larger angle results in a wider,
    softer illumination area.

    This value represents the angle at the top of the light cone in degrees,
    and can range from **1.0°** (narrow beam) to **180.0°** (very wide beam).

    Changing the spot *Angle* option

    |  |  |
    | --- | --- |
    | ../../_images/render_lights_light-object_size45.png   Angle: 45° | ../../_images/render_lights_light-object_size60.png   Angle: 60° |

Blend
:   The *Blend* slider controls the inner cone of the spot.
    The *Blend* value can be between (0.0 to 1.0).
    The value is proportional and represents that amount of space that the inner cone should
    occupy inside the outer cone *Size*.

    The inner cone boundary line indicates the point at which light from the spot will start to blur/soften;
    before this point its light will mostly be full strength.
    The larger the value of *Blend* the more blurred/soft the edges of the spotlight will be,
    and the smaller the inner cone’s circular area will be (as it starts to blur/soften earlier).

    To make the spot have a sharper falloff rate and therefore less blurred/soft edges,
    decrease the value of *Blend*.
    Setting *Blend* to 0.0 results in very sharp spotlight edges, without any transition between light and shadow.

    The falloff rate of the spot light is a ratio between the *Blend* and *Size* values;
    the larger the circular gap between the two, the more gradual the light fades between *Blend* and *Size*.

    *Blend* and *Size* only control the spot light cone’s aperture and softness (“radial” falloff);
    they do not control the shadow’s softness as shown below.

    [image reference removed]

    Render showing the soft edge spotlighted area and the sharp/hard object shadow.

    Notice in the picture above that the object’s shadow is sharp as a result of the ray tracing,
    whereas the spotlight edges are soft.
    If you want other items to cast soft shadows within the spot area, you will need to alter other shadow settings.

Show Cone
:   Displays a transparent cone in 3D Viewport to visualize which objects are contained in it.
user: What is Bpy.Types.Spacespreadsheet and how is it used in Blender Python scripting?

assistant: .show_region_toolbar SpaceSpreadsheet.show_region_ui SpaceSpreadsheet.tables SpaceSpreadsheet.use_filter SpaceSpreadsheet.viewer_path SpaceSpreadsheet.bl_rna_get_subclass() SpaceSpreadsheet.bl_rna_get_subclass_py() SpaceSpreadsheet.draw_handler_add() SpaceSpreadsheet.draw_handler_remove() Inherited Properties Inherited Functions
user: Provide the full official documentation entry for Bpy.Types.Compositornodeimage, preserving all code examples.

assistant: positorNodeImage.bl_rna_get_subclass() CompositorNodeImage.bl_rna_get_subclass_py() Inherited Properties Inherited Functions
user: Describe Editing Vertex Groups from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

Vertex Group panel in Edit or Weight Paint Mode.

When you switch either to Edit Mode or to Weight Paint Mode, vertex weights can be edited.
The same operations are available in the 3D Viewport’s
Vertex ‣ Vertex Groups menu or `Ctrl`-`G`.

Assign
:   To assign the selected vertices to the active group with the weight as defined in the *Weight* (see below).

Remove
:   To remove the selected vertices from the active group (and thus also delete their weight values).

Select
:   To select all vertices contained in the group.

Deselect
:   To deselect all vertices contained in the group.

Weight
:   The weight value that gets assigned to the selected vertices.

Auto Normalize
:   Ensure all bone-deforming vertex groups add up to 1.0 while weight painting or assigning to vertices.
user: Give a detailed overview of Modifiers: syntax, arguments, return values, common patterns.

assistant: ### Types

- [2D Offset](modifiers/geometry/2d_offset.html)
- [2D Transform](modifiers/geometry/2d_transform.html)
- [Backbone Stretcher](modifiers/geometry/backbone_stretcher.html)
- [Bézier Curve](modifiers/geometry/bezier_curve.html)
- [Blueprint](modifiers/geometry/blueprint.html)
- [Guiding Lines](modifiers/geometry/guiding_lines.html)
- [Perlin Noise 1D](modifiers/geometry/perlin_noise_1d.html)
- [Perlin Noise 2D](modifiers/geometry/perlin_noise_2d.html)
- [Polygonization](modifiers/geometry/polygonization.html)
- [Sampling](modifiers/geometry/sampling.html)
- [Simplification](modifiers/geometry/simplification.html)
- [Sinus Displacement](modifiers/geometry/sinus_displacement.html)
- [Spatial Noise](modifiers/geometry/spatial_noise.html)
- [Tip Remover](modifiers/geometry/tip_remover.html)
user: Show practical ways to work with Duplicate in a Blender add-on or script – include code.

assistant: This operator duplicates the selected control points,
along with the curve segments implicitly selected (if any).
.. If only a handle is selected, the full point will be duplicated too.
The copy is selected so you can move it to another place.
user: Describe Single Click Tools from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

Simpler tools that apply an operation on surfaces that are clicked on.

[Edit Face Set](tools/edit_face_set.html)
:   Modifies the face set under the cursor.

[Mask by Color](tools/mask_by_color.html)
:   Create a mask from any color from the color attribute by clicking on it.
user: Describe TimelineMarker(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # TimelineMarker(bpy_struct)

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

*class* bpy.types.TimelineMarker(*bpy_struct*)
:   Marker for noting points in the timeline

    camera
    :   Camera that becomes active on this frame

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

    frame
    :   The frame on which the timeline marker appears

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

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

    select
    :   Marker selection state

        Type:
        :   boolean, default False

    bl_system_properties_get(*\**, *do_create=False*)
    :   DEBUG ONLY. Internal access to runtime-defined RNA data storage, intended solely for testing and debugging purposes. Do not access it in regular scripting work, and in particular, do not assume that it contains writable data

        Parameters:
        :   **do_create** (*boolean**,* *(**optional**)*) – Ensure that system properties are created if they do not exist yet

        Returns:
        :   The system properties root container, or None if there are no system properties stored in this data yet, and its creation was not requested

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

    *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