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

assistant: Move `Spacebar`
:   Changes the location of the line.

Snap `Ctrl`
:   Constrains the rotation of the line to 15 degree intervals.

Flip `F`
:   Changes the side of the line that is the inner/outer side;
    this option is useful when using *Clear Inner*, *Clear Outer* and/or *Fill*.
user: How do I use Modifiers, Constraints, and Visual Effects in Blender? Include parameters, examples, warnings and best practices.

assistant: You can manage [Modifiers](../../modeling/modifiers/index.xhtml), [Constraints](../../animation/constraints/index.xhtml), and
[Visual Effects](../../grease_pencil/visual_effects/index.xhtml) from the Outliner in a couple of ways:

- You can drag and drop individual items to change their order within the [stack](../../modeling/modifiers/introduction.xhtml#modifier-stack) or to copy
  them to another object.
- You can drag and drop the group item (e.g. *Modifiers*) to copy the whole stack to another object.
  The target object’s existing stack will be replaced.
- You can apply and delete items using the context menu.
user: What is Properties and how is it used in Blender Python scripting?

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.html#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: What is TextureNodeRGBToBW(TextureNode) and how is it used in Blender Python scripting?

assistant: # TextureNodeRGBToBW(TextureNode)

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

*class* bpy.types.TextureNodeRGBToBW(*TextureNode*)
:   *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 Window Stereo 3D Display in a Blender add-on or script – include code.

assistant: An essential component of the Stereoscopy pipeline is the ability to display the stereo image in a proper display.
Blender supports from high-end 3D displays to simple red-cyan glasses.
On top of that, you can set a different display mode for each window.

The display mode can be changed via the Window menu
or if you create your own shortcuts for the `wm.set_stereo_3d` operator.

[image reference removed]

Window menu, stereo 3D operator.

### Display Mode

Anaglyph
:   Render two differently filtered colored images for each eye.
    Anaglyph glasses are required. We support red-cyan, green-magenta and yellow-blue glasses.

Interlace
:   Render two images for each eye into one interlaced image.
    A 3D-ready monitor is required. We support Row, Column and Checkerboard Interleaved.
    An option to Swap Left/Right helps to adjust the image for the screen. This method works better in fullscreen.

Time Sequential
:   Render alternate eyes.
    This method is also known as Page Flip.
    This requires the graphic card to support Quad Buffer and it only works in fullscreen.

Side-by-Side
:   Render images for left and right eye side-by-side.
    There is an option to support Cross-Eye glasses.
    It works only in fullscreen, and it should be used with the Full Editor operator.

Top-Bottom
:   Render images for left and right eye one above another.
    It works only in fullscreen, and it should be used with the Full Editor operator.
user: Give a detailed overview of Options: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

UI for a Harmonic force field.

Rest Length
:   Controls the rest length of the harmonic force.

Multiple Springs
:   Causes every point to be affected by multiple springs.

Normally every particle of the field system influences every particle of the target system.
Not with *Harmonic*! Here every target particle is assigned to a field particle.
So particles will move to the place of other particles, thus forming shapes.
user: How do I use Hints in Blender? Include parameters, examples, warnings and best practices.

assistant: - Make sure that the normals of the mesh surface are facing towards the particles/points
  for correct deflection. Negative scales on the object can have a similar effect.
  Make sure to recalculate the normals after applying the scale.
- Hair particles react directly to force fields,
  so if you use a force field with a short range you do not need necessarily collision.
- Hair particles avoid their emitting mesh if you edit them in *Particle Edit Mode*.
  So you can at least model the hair with collision.
user: What is Distance from Object and how is it used in Blender Python scripting?

assistant: # Distance from Object

The *Distance from Object* modifier alters the base property with a new one
from a given range using the distance to the active *camera* or to a given *object* as the parameter.

Target
:   The object to measure distance from.

Range Min, Max
:   The limits of the mapping from “distance to camera” to “property in mapping”.
    If the current point of the stroke is at *Range Min* or less from the active camera or the object,
    it will take the start value. And conversely,
    if it is at *Max* or more from the camera/object, it will take the end value.
    These values are in the current scene’s units, not in pixels!

Fill Range by Selection
:   Set the min/max range values from the distances between the current selected mesh vertices and
    the camera or the target.
user: Provide the full official documentation entry for Inherited Properties, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`StripModifier.name`](bpy.types.StripModifier.html#bpy.types.StripModifier.name "bpy.types.StripModifier.name") - [`StripModifier.type`](bpy.types.StripModifier.html#bpy.types.StripModifier.type "bpy.types.StripModifier.type") - [`StripModifier.mute`](bpy.types.StripModifier.html#bpy.types.StripModifier.mute "bpy.types.StripModifier.mute") - [`StripModifier.enable`](bpy.types.StripModifier.html#bpy.types.StripModifier.enable "bpy.types.StripModifier.enable") - [`StripModifier.show_expanded`](bpy.types.StripModifier.html#bpy.types.StripModifier.show_expanded "bpy.types.StripModifier.show_expanded") | - [`StripModifier.input_mask_type`](bpy.types.StripModifier.html#bpy.types.StripModifier.input_mask_type "bpy.types.StripModifier.input_mask_type") - [`StripModifier.mask_time`](bpy.types.StripModifier.html#bpy.types.StripModifier.mask_time "bpy.types.StripModifier.mask_time") - [`StripModifier.input_mask_strip`](bpy.types.StripModifier.html#bpy.types.StripModifier.input_mask_strip "bpy.types.StripModifier.input_mask_strip") - [`StripModifier.input_mask_id`](bpy.types.StripModifier.html#bpy.types.StripModifier.input_mask_id "bpy.types.StripModifier.input_mask_id") - [`StripModifier.is_active`](bpy.types.StripModifier.html#bpy.types.StripModifier.is_active "bpy.types.StripModifier.is_active") |
user: Describe Drawing Plane from the Blender manual or Python API, including usage steps and snippets.

assistant: # Drawing Plane

[image reference removed]

Drawing Planes pop-over.

The Drawing Planes selector helps to select the plane in which strokes are drawn.

To see which plane you are using when drawing strokes,
you can enable *Canvas* in [Viewport Overlays](../../../editors/3dview/display/overlays.html#dview-overlay-grease-pencil).
See [Viewport Display](../../../interface/controls/templates/curve.html) to know more about Canvas settings.

View:
:   Strokes are drawn with the current 3D Viewport orientation.

Front (X-Z):
:   Strokes are drawn on the plane determined by the XZ axes (front view).

Side (Y-Z):
:   Strokes are drawn on the plane determined by the YZ axes (side view).

Top (X-Y):
:   Strokes are drawn on the plane determined by the XY axes (top view).

Cursor:
:   Strokes are drawn with the current 3D cursor orientation.

Stroke using different Drawing Planes with Canvas overlay activated.

|  |  |  |  |  |
| --- | --- | --- | --- | --- |
| <../../../_images/grease-pencil_modes_draw_drawing-planes_front.png>   Front. | <../../../_images/grease-pencil_modes_draw_drawing-planes_side.png>   Side. | <../../../_images/grease-pencil_modes_draw_drawing-planes_top.png>   Top. | <../../../_images/grease-pencil_modes_draw_drawing-planes_view.png>   View. | <../../../_images/grease-pencil_modes_draw_drawing-planes_cursor.png>   Cursor. |
user: Describe Displays from the Blender manual or Python API, including usage steps and snippets.

assistant: A full HD display (1920x1080) or higher is recommended. Multi-monitor setups are supported, and workspaces can be
configured to span multiple monitors.

[image reference removed]

Example of Blender’s multi-monitor support.
user: What is Split and how is it used in Blender Python scripting?

assistant: # Split

The *Split* operator disconnects selected bones from the rest of the armature,
creating a new, unconnected bone chain.

This is useful for restructuring rigs, separating limbs, or preparing bone chains to be transformed independently.
user: Describe Frame Cache from the Blender manual or Python API, including usage steps and snippets.

assistant: Image files are cached during playback for faster access.

While loading images is rarely a bottleneck,
there are situations where high resolution images may slow down playback causing frame skipping.
user: Show practical ways to work with Random Mask in a Blender add-on or script – include code.

assistant: Generates a mask with random values for the entire object based on different mesh data.

Per Vertex
:   Assigns a random mask value for each vertex.

Per Face Set
:   Assigns a random mask value for each [Face Set](face_sets.html).

Per Loose Mask
:   Assigns a random mask value for each disjoint part of the mesh.
user: Describe Selecting from the Blender manual or Python API, including usage steps and snippets.

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: What is FunctionNodeTransformDirection(FunctionNode) and how is it used in Blender Python scripting?

assistant: # FunctionNodeTransformDirection(FunctionNode)

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"), [`FunctionNode`](bpy.types.FunctionNode.html#bpy.types.FunctionNode "bpy.types.FunctionNode")

*class* bpy.types.FunctionNodeTransformDirection(*FunctionNode*)
:   Apply a transformation matrix (excluding translation) to the given vector

    *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 NodeTreeInterfaceSocketVector4D(NodeTreeInterfaceSocket): syntax, arguments, return values, common patterns.

assistant: # NodeTreeInterfaceSocketVector4D(NodeTreeInterfaceSocket)

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

*class* bpy.types.NodeTreeInterfaceSocketVector4D(*NodeTreeInterfaceSocket*)
:   3D vector socket of a node

    default_value
    :   Input value used for unconnected socket

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

    dimensions
    :   Dimensions of the vector socket

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

    max_value
    :   Maximum value

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

    min_value
    :   Minimum value

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

    subtype
    :   Subtype of the default value

        Type:
        :   enum in [`'DEFAULT'`], default `'DEFAULT'`

    draw(*context*, *layout*)
    :   Draw interface socket settings

        Parameters:
        :   **layout** ([`UILayout`](bpy.types.UILayout.html#bpy.types.UILayout "bpy.types.UILayout"), (never None)) – Layout, Layout in the UI

    init_socket(*node*, *socket*, *data_path*)
    :   Initialize a node socket instance

        Parameters:
        :   - **node** ([`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), (never None)) – Node, Node of the socket to initialize
            - **socket** ([`NodeSocket`](bpy.types.NodeSocket.html#bpy.types.NodeSocket "bpy.types.NodeSocket"), (never None)) – Socket, Socket to initialize
            - **data_path** (*string**,* *(**never None**)*) – Data Path, Path to specialized socket data

    from_socket(*node*, *socket*)
    :   Setup template parameters from an existing socket

        Parameters:
        :   - **node** ([`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), (never None)) – Node, Node of the original socket
            - **socket** ([`NodeSocket`](bpy.types.NodeSocket.html#bpy.types.NodeSocket "bpy.types.NodeSocket"), (never None)) – Socket, Original socket

    *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 FloatVectorAttribute(Attribute): syntax, arguments, return values, common patterns.

assistant: # FloatVectorAttribute(Attribute)

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

*class* bpy.types.FloatVectorAttribute(*Attribute*)
:   Geometry attribute that stores floating-point 3D vectors

    data
    :   Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`FloatVectorAttributeValue`](bpy.types.FloatVectorAttributeValue.html#bpy.types.FloatVectorAttributeValue "bpy.types.FloatVectorAttributeValue"), (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: |  |  |
| --- | --- |
| - [`KeyConfigurations.find_item_from_operator`](bpy.types.KeyConfigurations.html#bpy.types.KeyConfigurations.find_item_from_operator "bpy.types.KeyConfigurations.find_item_from_operator") - [`KeyMap.keymap_items`](bpy.types.KeyMap.html#bpy.types.KeyMap.keymap_items "bpy.types.KeyMap.keymap_items") - [`KeyMap.restore_item_to_default`](bpy.types.KeyMap.html#bpy.types.KeyMap.restore_item_to_default "bpy.types.KeyMap.restore_item_to_default") - [`KeyMapItem.compare`](#bpy.types.KeyMapItem.compare "bpy.types.KeyMapItem.compare") - [`KeyMapItems.find_from_operator`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.find_from_operator "bpy.types.KeyMapItems.find_from_operator") - [`KeyMapItems.find_match`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.find_match "bpy.types.KeyMapItems.find_match") - [`KeyMapItems.find_match`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.find_match "bpy.types.KeyMapItems.find_match") - [`KeyMapItems.from_id`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.from_id "bpy.types.KeyMapItems.from_id") | - [`KeyMapItems.match_event`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.match_event "bpy.types.KeyMapItems.match_event") - [`KeyMapItems.new`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.new "bpy.types.KeyMapItems.new") - [`KeyMapItems.new_from_item`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.new_from_item "bpy.types.KeyMapItems.new_from_item") - [`KeyMapItems.new_from_item`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.new_from_item "bpy.types.KeyMapItems.new_from_item") - [`KeyMapItems.new_modal`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.new_modal "bpy.types.KeyMapItems.new_modal") - [`KeyMapItems.remove`](bpy.types.KeyMapItems.html#bpy.types.KeyMapItems.remove "bpy.types.KeyMapItems.remove") - [`UILayout.template_event_from_keymap_item`](bpy.types.UILayout.html#bpy.types.UILayout.template_event_from_keymap_item "bpy.types.UILayout.template_event_from_keymap_item") - [`UILayout.template_keymap_item_properties`](bpy.types.UILayout.html#bpy.types.UILayout.template_keymap_item_properties "bpy.types.UILayout.template_keymap_item_properties") |
user: How do I use Options in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

Screw panel (in Edit Mode).

Steps
:   The number of extrusions to be done for each 360° turn.

Turns
:   The number of turns to create.

Center X, Y, Z
:   The world space coordinates of the centerpoint around which to spin the geometry.
    Initially this is the location of the 3D Cursor.

Axis X, Y, Z
:   The direction vector around which to spin the geometry.
    Initially this is the screen-space vertical axis (so the global Z axis when in a
    side view or the global Y axis when in top view). By inverting the *Axis*,
    you can flip between going clockwise and counterclockwise.

Notice that the *Axis* only determines how the geometry spins “horizontally” around
the centerpoint. It doesn’t determine how the geometry moves “vertically.”
Instead, the geometry always moves by a distance and direction given by the endpoints
of the open profile, and goes downward in the object’s local space.
user: Show practical ways to work with Transforming in a Blender add-on or script – include code.

assistant: # Transforming

Transform tools to [move, rotate and scale](../tools/transforms.html)
are also available in Sculpt Mode,
but with an important difference to other modes. Sculpt Mode uses its own pivot point,
which can be manually positioned `Shift`-`RMB`
or automatically positioned with [Mask Expand](../editing/expand.html#bpy-ops-sculpt-mask-expand).
This ensures that the pivot point can be more freely placed and always moves with the transformed geometry.

Optionally instead of keeping the transform tools active, you can enable the
[viewport gizmos](../../../editors/3dview/display/gizmo.html) to have access to the gizmo at all times.

Apart from the transform tools there are also special brushes to move,
rotate and scale the topology like [Pose](../brushes/pose.html),
[Boundary](../brushes/boundary.html)
and [Elastic Deform](../brushes/elastic_deform.html).
user: Describe Custom Properties from the Blender manual or Python API, including usage steps and snippets.

assistant: # Custom Properties

[image reference removed]

Custom Properties panel.

Custom properties are a way to store your own data in Blender’s data-blocks. It can be used for rigging
(where bones and objects can have custom properties driving other properties), and Python scripts,
where it’s common to define new settings not available in Blender. It is also possible to access
custom properties from materials via the [Attribute Node](../render/shader_nodes/input/attribute.html).

Only certain data supports custom properties:

- All [data-blocks types](data_blocks.html#data-system-datablock-types).
- Bones and pose bones.
- Sequence strips.

To add a custom property, search for the *Custom Properties* panel,
found at the bottom of most [Properties](../editors/properties_editor.html) or Sidebar region, and click *New*.
Properties can be removed from the same location with the delete icon.
Once properties are added they can be configured via the edit icon to work for a particular use case;
see [Editing Properties](#editing-properties) for more information.
user: What is MaskLayers(bpy_struct) and how is it used in Blender Python scripting?

assistant: # MaskLayers(bpy_struct)

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

*class* bpy.types.MaskLayers(*bpy_struct*)
:   Collection of layers used by mask

    active
    :   Active layer in this mask

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

    new(*\**, *name=''*)
    :   Add layer to this mask

        Parameters:
        :   **name** (*string**,* *(**optional**,* *never None**)*) – Name, Name of new layer

        Returns:
        :   New mask layer

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

    remove(*layer*)
    :   Remove layer from this mask

        Parameters:
        :   **layer** ([`MaskLayer`](bpy.types.MaskLayer.html#bpy.types.MaskLayer "bpy.types.MaskLayer"), (never None)) – Shape to be removed

    clear()
    :   Remove all mask layers

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

assistant: |  |  |
| --- | --- |
| - [**HDRI**](glossary/index.xhtml#term-HDRI) - [**Head**](glossary/index.xhtml#term-Head) | - [**High Dynamic Range Image**](glossary/index.xhtml#term-High-Dynamic-Range-Image) - [**Hue**](glossary/index.xhtml#term-Hue) |
user: Provide the full official documentation entry for Frame Sequence Workflow, preserving all code examples.

assistant: 1. First prepare your animation.
2. In the *Format* panel, choose the render size, Pixel Aspect Ratio, and the Range of Frames to use,
   as well as the frame rate, which should already be set.
3. In the Output panel set up your animation to be rendered out as images,
   generally using a format that does not compromise any quality.
4. Choose the output path and file type in the Output panel as well, for example `//render/my-anim-`.
5. Confirm the range of your animation (frame Start and End).
6. Save your blend-file.
7. Press the *Animation* button and once the animation is finished,
   use your file manager to navigate to the output folder (`render` in this example).
   You will see lots of images that have a sequence number attached to. These are the single frames.
8. In Blender, open the [Video Sequencer](../../video_editing/index.xhtml).
9. Choose *Add Image* from the add menu. Select all the frames from your output folder that you want to include
   in your animation. They will be added as a strip in the Sequence editor.
10. Now you can edit the strip and add effects or leave it like it is.
    You can add other strips, like an audio strip.
11. Scrub through the animation to check if you have included all the frames.
12. In the Output panel, choose the container and codec you want (e.g. `MPEG H.264`) and configure them.
    The video codecs are described in [Output Options](properties/output.xhtml).
13. Click the *Animation* render button and Blender will render out the Sequence editor output into a movie.
user: Show practical ways to work with GeometryNodeCurveArc(GeometryNode) in a Blender add-on or script – include code.

assistant: # GeometryNodeCurveArc(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.GeometryNodeCurveArc(*GeometryNode*)
:   Generate a poly spline arc

    mode
    :   Method used to determine radius and placement

        - `POINTS`
          Points – Define arc by 3 points on circle. Arc is calculated between start and end points.
        - `RADIUS`
          Radius – Define radius with a float.

        Type:
        :   enum in [`'POINTS'`, `'RADIUS'`], default `'RADIUS'`

    *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 TexPaintSlot(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # TexPaintSlot(bpy_struct)

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

*class* bpy.types.TexPaintSlot(*bpy_struct*)
:   Slot that contains information about texture painting

    icon_value
    :   Paint slot icon

        Type:
        :   int in [-inf, inf], default 0, (readonly)

    is_valid
    :   Slot has a valid image and UV map

        Type:
        :   boolean, default False, (readonly)

    name
    :   Name of the slot

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

    uv_layer
    :   Name of UV map

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # GreasePencilLatticeModifier(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.GreasePencilLatticeModifier(*Modifier*)
:   Deform strokes using a lattice object

    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

    invert_vertex_group
    :   Invert vertex group weights

        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

    object
    :   Lattice object to deform with

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

    open_influence_panel
    :   Type:
        :   boolean, default False

    strength
    :   Strength of modifier effect

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

    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

    vertex_group_name
    :   Vertex group name for modulating the deform

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: [image reference removed]

Follow Path constraint.

[Target](../interface/common.xhtml#rigging-constraints-interface-common-target)
:   The Curve object to follow.

Offset Fixed Position disabled
:   The number of frames to subtract from the Curve’s *Evaluation Time*. A positive value will
    move the owner to an earlier point on the Curve, while a negative value will move it to
    a later point.

Offset Factor Fixed Position enabled
:   Relative position along the Curve, independent of its *Evaluation Time*. A value of 0 corresponds
    to the start of the Curve while a value of 1 corresponds to the end.

Forward Axis
:   The local axis of the owner that should be aligned to the Curve’s tangent direction.
    Requires that *Follow Curve* is enabled.

    A negative axis will make the owner point in the opposite direction.

Up Axis
:   The local axis of the owner that should be aligned (as much as possible) to the global Z axis.
    Requires that *Follow Curve* is enabled.

Fixed Position
:   Ignore the Curve’s *Evaluation Time* and position the owner using only the *Offset Factor*.

    Despite the name of this property, the owner can still be moved over time by animating
    the *Offset Factor*.

Curve Radius
:   Scale the owner based on the [radii](../../../modeling/curves/editing/curve.xhtml#modeling-curve-radius) of the Curve’s
    control points.

Follow Curve
:   Rotate the owner according to the *Forward Axis* and the *Up Axis*.

Animate Path
:   By default, the Curve’s *Evaluation Time* is static and the constraint owner doesn’t move.
    Clicking this button will animate the *Evaluation Time* so that it’s always equal to the
    current scene frame.

    Of course, it’s also possible to skip this button and animate the *Evaluation Time* by hand.

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

assistant: # View3DCursor(bpy_struct)

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

*class* bpy.types.View3DCursor(*bpy_struct*)
:   location
    :   Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    matrix
    :   Matrix combining location and rotation of the cursor

        Type:
        :   [`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix") of 4 \* 4 items in [-inf, inf], default ((0.0, 0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.0))

    rotation_axis_angle
    :   Angle of Rotation for Axis-Angle rotation representation

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

    rotation_euler
    :   3D rotation

        Type:
        :   [`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    rotation_mode
    :   The kind of rotation to apply, values from other rotation modes are not used

        Type:
        :   enum in [Object Rotation Mode Items](bpy_types_enum_items/object_rotation_mode_items.html#rna-enum-object-rotation-mode-items), default `'XYZ'`

    rotation_quaternion
    :   Rotation in quaternions (keep normalized)

        Type:
        :   [`mathutils.Quaternion`](mathutils.html#mathutils.Quaternion "mathutils.Quaternion") rotation of 4 items in [-inf, inf], default (1.0, 0.0, 0.0, 0.0)

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # UDIMTiles(bpy_struct)

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

*class* bpy.types.UDIMTiles(*bpy_struct*)
:   Collection of UDIM tiles

    active
    :   Active Image Tile

        Type:
        :   [`UDIMTile`](bpy.types.UDIMTile.html#bpy.types.UDIMTile "bpy.types.UDIMTile"), (never None)

    active_index
    :   Active index in tiles array

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

    new(*tile_number*, *\**, *label=''*)
    :   Add a tile to the image

        Parameters:
        :   - **tile_number** (*int in* *[**1**,* *inf**]*) – Number of the newly created tile
            - **label** (*string**,* *(**optional**,* *never None**)*) – Optional label for the tile

        Returns:
        :   Newly created image tile

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

    get(*tile_number*)
    :   Get a tile based on its tile number

        Parameters:
        :   **tile_number** (*int in* *[**0**,* *inf**]*) – Number of the tile

        Returns:
        :   The tile

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

    remove(*tile*)
    :   Remove an image tile

        Parameters:
        :   **tile** ([`UDIMTile`](bpy.types.UDIMTile.html#bpy.types.UDIMTile "bpy.types.UDIMTile"), (never None)) – Image tile to remove

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Adds new keyframes and selects them. Previously selected keyframes stay selected too.

All Channels
:   Insert a keyframe on all visible and editable F-Curves using each curve’s current value.

Only Selected Channels
:   Insert a keyframe on the selected F-Curves using each curve’s current value.

Only Active F-Curve
:   Insert a keyframe on the active F-Curve using the curve’s current value.

Active Channels at Cursor
:   Insert a keyframe on the active F-Curve at the 2D Cursor’s value.

Selected Channels at Cursor
:   Insert a keyframe on the selected F-Curves at the 2D Cursor’s value.
user: Describe Surface from the Blender manual or Python API, including usage steps and snippets.

assistant: Direct Light
:   This option limits the maximum light intensity a surface can reflect.
    It reduces [Aliasing](../../../glossary/index.xhtml#term-Aliasing) noise and [Fireflies](../../../glossary/index.xhtml#term-Fireflies) at the cost of accuracy.
    Setting this option to 0.0 disables clamping altogether.
    Lower values have a greater effect on the resulting image than higher values.

Indirect Light
:   Similar to **Direct Light** but limits the maximum light intensity reflected using ray-tracing and light-probes.
    This also limits the intensity of the world lighting since it is considered as indirect light.
user: Show practical ways to work with Inherited Properties in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`ID.name`](bpy.types.ID.html#bpy.types.ID.name "bpy.types.ID.name") - [`ID.name_full`](bpy.types.ID.html#bpy.types.ID.name_full "bpy.types.ID.name_full") - [`ID.id_type`](bpy.types.ID.html#bpy.types.ID.id_type "bpy.types.ID.id_type") - [`ID.session_uid`](bpy.types.ID.html#bpy.types.ID.session_uid "bpy.types.ID.session_uid") - [`ID.is_evaluated`](bpy.types.ID.html#bpy.types.ID.is_evaluated "bpy.types.ID.is_evaluated") - [`ID.original`](bpy.types.ID.html#bpy.types.ID.original "bpy.types.ID.original") - [`ID.users`](bpy.types.ID.html#bpy.types.ID.users "bpy.types.ID.users") - [`ID.use_fake_user`](bpy.types.ID.html#bpy.types.ID.use_fake_user "bpy.types.ID.use_fake_user") - [`ID.use_extra_user`](bpy.types.ID.html#bpy.types.ID.use_extra_user "bpy.types.ID.use_extra_user") - [`ID.is_embedded_data`](bpy.types.ID.html#bpy.types.ID.is_embedded_data "bpy.types.ID.is_embedded_data") | - [`ID.is_linked_packed`](bpy.types.ID.html#bpy.types.ID.is_linked_packed "bpy.types.ID.is_linked_packed") - [`ID.is_missing`](bpy.types.ID.html#bpy.types.ID.is_missing "bpy.types.ID.is_missing") - [`ID.is_runtime_data`](bpy.types.ID.html#bpy.types.ID.is_runtime_data "bpy.types.ID.is_runtime_data") - [`ID.is_editable`](bpy.types.ID.html#bpy.types.ID.is_editable "bpy.types.ID.is_editable") - [`ID.tag`](bpy.types.ID.html#bpy.types.ID.tag "bpy.types.ID.tag") - [`ID.is_library_indirect`](bpy.types.ID.html#bpy.types.ID.is_library_indirect "bpy.types.ID.is_library_indirect") - [`ID.library`](bpy.types.ID.html#bpy.types.ID.library "bpy.types.ID.library") - [`ID.library_weak_reference`](bpy.types.ID.html#bpy.types.ID.library_weak_reference "bpy.types.ID.library_weak_reference") - [`ID.asset_data`](bpy.types.ID.html#bpy.types.ID.asset_data "bpy.types.ID.asset_data") - [`ID.override_library`](bpy.types.ID.html#bpy.types.ID.override_library "bpy.types.ID.override_library") - [`ID.preview`](bpy.types.ID.html#bpy.types.ID.preview "bpy.types.ID.preview") |
user: Describe Introduction from the Blender manual or Python API, including usage steps and snippets.

assistant: # Introduction

The creation of a 3D scene needs at least three key components: Models, materials and lights.
In this part, the first of these is covered, that being modeling.
Modeling is simply the art and science of creating a surface that either mimics the shape
of a real-world object or expresses your imagination of abstract objects.
user: Provide the full official documentation entry for Examples, preserving all code examples.

assistant: Mirror around the individual origins.

|  |  |
| --- | --- |
| ../../../_images/modeling_meshes_editing_mesh_mirror_cursor-before.png   Mesh before mirroring. | ../../../_images/modeling_meshes_editing_mesh_mirror_individual-after.png   Mesh after mirroring along the X axis. |

The next example shows mirroring around the *3D Cursor*, with the orientation set to *Local*:

Mirror around the 3D Cursor.

|  |  |
| --- | --- |
| ../../../_images/modeling_meshes_editing_mesh_mirror_cursor-before.png   Mesh before mirroring. | ../../../_images/modeling_meshes_editing_mesh_mirror_cursor-after.png   Mesh after mirroring along the X axis using the 3D Cursor as the pivot point. |
user: Describe GeometryNodeRealizeInstances(GeometryNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GeometryNodeRealizeInstances(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.GeometryNodeRealizeInstances(*GeometryNode*)
:   Convert instances into real geometry data

    *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 Enabling Add-on, preserving all code examples.

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

1. Open Blender and go to [Add-ons](../../editors/preferences/addons.html) section of the [Preferences](../../editors/preferences/index.html).
2. Search “FBX” and check the *Enable Add-on* checkbox.