PGCRYPT/OpenBlender_Train huggingface dataset:
user: How do I use E in Blender? Include parameters, examples, warnings and best practices.

assistant: |  |  |
| --- | --- |
| - [**Edge**](glossary/index.xhtml#term-Edge) - [**Edge Loop**](glossary/index.xhtml#term-Edge-Loop) - [**Edge Ring**](glossary/index.xhtml#term-Edge-Ring) - [Editors](editors/index.xhtml#index-0)   - [3D Viewport](editors/3dview/introduction.xhtml#index-0)   - [Asset Browser](editors/asset_browser.xhtml#index-0)   - [Compositor](editors/compositor.xhtml#index-0)   - [Dope Sheet](editors/dope_sheet/introduction.xhtml#index-0)   - [Drivers Editor](editors/drivers_editor.xhtml#index-0)   - [File Browser](editors/file_browser.xhtml#index-0)   - [Geometry Node Editor](editors/geometry_node.xhtml#index-0)   - [Graph Editor](editors/graph_editor/introduction.xhtml#index-0)   - [Image Editor](editors/image/introduction.xhtml#index-0)   - [Info Editor](editors/info_editor.xhtml#index-0)   - [Movie Clip Editor](editors/clip/introduction.xhtml#index-0)   - [NLA Editor](editors/nla/introduction.xhtml#index-0)   - [Outliner](editors/outliner/introduction.xhtml#index-0)   - [Preferences](editors/preferences/introduction.xhtml#index-0)   - [Properties](editors/properties_editor.xhtml#index-0)   - [Python Console](editors/python_console.xhtml#index-0)   - [Shader Editor](editors/shader_editor.xhtml#index-0)   - [Spreadsheet](editors/spreadsheet.xhtml#index-0)   - [Text Editor](editors/text_editor.xhtml#index-0)   - [Texture Node Editor](editors/texture_node/introduction.xhtml#index-0)   - [Timeline](editors/timeline.xhtml#index-0)   - [UV Editor](editors/uv/introduction.xhtml#index-0)   - [Video Sequencer](editors/video_sequencer/introduction.xhtml#index-0) | - [**Elastic**](glossary/index.xhtml#term-Elastic) - [**Elasticity**](glossary/index.xhtml#term-Elasticity) - [**Empty**](glossary/index.xhtml#term-Empty) - [**Euler**](glossary/index.xhtml#term-Euler) - [**Euler Rotation**](glossary/index.xhtml#term-Euler-Rotation) - [Extensions](advanced/extensions/getting_started.xhtml#index-0), [[1]](advanced/extensions/index.xhtml#index-0) |
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: Mesh 1/2
:   Standard geometry input.

Self Intersection Exact Solver
:   Correctly calculates cases when one or both operands have self-intersections.
    This involves more calculations making the node slower.

Hole Tolerant Exact Solver
:   Optimizes the Boolean output for [Non-manifold](../../../../glossary/index.xhtml#term-Non-manifold) geometry
    at the cost of increased computational time.
    Because of the performance impact, this option should only be enabled
    when the solver demonstrates errors with non-manifold geometry.
user: What is Add IK to Bone and how is it used in Blender Python scripting?

assistant: # Add IK to Bone

Adds an [Inverse Kinematics Constraint](../../../constraints/tracking/ik_solver.html) to the active bone.
The operator shows a menu for selecting the target of the constraint:

Without Target
:   Creates the constraint without a *Target*. Only available when no other bone
    or object is selected.

Target New Empty Object
:   Creates an [Empty](../../../../modeling/empties.html) at the bone’s tail and uses it
    as the constraint target. Only available when no other bone or object is
    selected.

Target Selected Bone
:   Sets the target to the selected bone that’s *not* active.

Target Selected Object
:   Sets the target to the selected object that’s *not* active. Either select
    the object before selecting the Armature and entering Pose Mode,
    or select it in the [Outliner](../../../../editors/outliner/introduction.html) when
    already in Pose Mode.

# Remove IK

Removes the [Inverse Kinematics Constraint](../../../constraints/tracking/ik_solver.html) from the selected bones.
user: Give a detailed overview of Outputs: syntax, arguments, return values, common patterns.

assistant: Tangent
:   The tangent direction vector derived from the input UV map.
    The output is a normalized vector field that lies along the surface and
    indicates the direction of increasing *U* values in the UV space.
    It can be combined with normals and bitangents for constructing a complete tangent space basis.
user: What is Mix Rotation and how is it used in Blender Python scripting?

assistant: # Mix Rotation

The *Mix Node* mixes values, colors and vectors inputs
using a factor to control the amount of interpolation.
The *Color* mode has additional blending modes.

[image reference removed]
user: Give a detailed overview of Rotate Rotation Node: syntax, arguments, return values, common patterns.

assistant: # Rotate Rotation Node

[image reference removed]

The *Rotate Rotation* node applies an additional rotation to a given one.

To rotate an [Euler Rotation](../../../../glossary/index.xhtml#term-Euler-Rotation), first use the
[Euler to Rotation Node](euler_to_rotation.xhtml).
user: Provide the full official documentation entry for Depth Combine Node, preserving all code examples.

assistant: # Depth Combine Node

[image reference removed]

The Depth Combine node combines two images based on their depth maps.
It overlays the images using the provided depth values to
detect which parts of one image are in front of the other.
user: Describe Outputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Index
:   The [index](../read/input_index.html)
    of the closest element in the same geometry component.

Has Neighbor
:   This is true when the group of the element has at least two elements.
    This is only relevant when using *Group ID*.
user: Show practical ways to work with Selection Modes in a Blender add-on or script – include code.

assistant: Selection modes limits selection operators to certain curve domains.
This feature is makes it easy to select whole segments at once, or to give more granular control over editing.

Control Points:
:   Allows selection of individual control points.

Curve:
:   Limits selection to whole curve segments.
user: Show practical ways to work with Extrude Repeat in a Blender add-on or script – include code.

assistant: This tool behaves similar to the [Array Modifier](../../../modifiers/generate/array.html),
by extruding the selection along the Z axis of the view.
If the selection is not [Manifold](../../../../glossary/index.html#term-Manifold) it’s extruded the specified number of times.

Offset X, Y, Z
:   Distance between the instances.

Steps
:   Number of instances.

Scale Offset
:   Multiplication factor to increase or decrease the offset.
user: Describe Add Duplicate from the Blender manual or Python API, including usage steps and snippets.

assistant: 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: Provide the full official documentation entry for Fluid Flow, preserving all code examples.

assistant: # Fluid Flow

The *Fluid Flow* force field creates a force based on a [Fluid simulation](../../../fluid/index.xhtml) air flow.
It applies the smoke simulation air flow velocity as a force to other simulations that use force fields.
To use it you need to add a *Fluid Flow* force field and select a domain object for it.
For example fire sparkles can realistically flow along the air turbulence near the simulated fire.
user: How do I use Levels Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Levels Node

[image reference removed]

The Levels Node read the input color channels and outputs analytical values.
The output is one-dimensional meaning the visualization will be a uniform gray color.
user: Show practical ways to work with Examples in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| ../../../../_images/modeling_meshes_editing_mesh_bisect_example.png   Example of a common use of bisect. | ../../../../_images/modeling_meshes_editing_mesh_bisect_uv.jpg   Example of bisect with the fill option enabled. |
user: Show practical ways to work with Tool Settings in a Blender add-on or script – include code.

assistant: ### Brush Asset

The asset selector can be used to open a pop-up asset browser to select the active brush asset for the tool.

See [Asset Operators](../../../../sculpt_paint/brush/brush_management.html#brush-management-utility-operators) for more information.

### Brush Settings

Radius
:   The radius of the brush in pixels.

    `F` allows you to change the brush size interactively by dragging the pointer or
    by typing a number then confirm.

    (Size Pressure)
    :   Adjusts the radius based on the stylus pressure when using a [Graphics Tablet](../../../../getting_started/configuration/hardware.html#hardware-tablet).

Strength
:   Control how much will affect the eraser has on the stroke transparency (alpha).

    You can change the brush strength interactively by pressing `Shift`-`F`
    in the 3D Viewport and then moving the pointer and then `LMB`.
    You can also enter the size numerically.

    (Strength Pressure)
    :   Adjusts the strength based on the stylus pressure when using a [Graphics Tablet](../../../../getting_started/configuration/hardware.html#hardware-tablet).

Mode
:   Determines how the erase tool behaves.

    Dissolve:
    :   To simulate a raster type eraser, this eraser type
        affects the strength and thickness of the strokes before actually delete a point.

    Point:
    :   Delete one point at a time.

    Stroke:
    :   Delete an entire stroke.

#### Cursor

The cursor can be disabled by toggling the checkbox in the *Cursor* pop-over menu.
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`Object.modifiers`](bpy.types.Object.html#bpy.types.Object.modifiers "bpy.types.Object.modifiers") - [`ObjectModifiers.active`](bpy.types.ObjectModifiers.html#bpy.types.ObjectModifiers.active "bpy.types.ObjectModifiers.active") | - [`ObjectModifiers.new`](bpy.types.ObjectModifiers.html#bpy.types.ObjectModifiers.new "bpy.types.ObjectModifiers.new") - [`ObjectModifiers.remove`](bpy.types.ObjectModifiers.html#bpy.types.ObjectModifiers.remove "bpy.types.ObjectModifiers.remove") |
user: Show practical ways to work with EEVEE Limitations in a Blender add-on or script – include code.

assistant: - [Depth of Field](../cameras.html#bpy-types-cameradofsettings) and [Motion Blur](../eevee/render_settings/motion_blur.html)
  are not rendered in passes other than *Combined*.
  They can be emulated in the Compositor using the [Defocus Node](../../compositing/types/filter/blur/defocus.html)
  and the [Vector Blur Node](../../compositing/types/filter/blur/vector_blur.html).
- Transparent materials that have their [Render Method](../eevee/material_settings.html#bpy-types-material-surface-render-method)
  set to *Blended* are not rendered in passes other than *Combined* and *Transparent*.
  Use the *Dithered* method instead.
- The [Shader To RGB Node](../shader_nodes/color/shader_to_rgb.html) only works correctly
  in the *Combined* pass as EEVEE excludes parts of the BSDF equation.
- There is a maximum of 16 *Color* and 16 *Value* AOVs (custom render passes).
user: Give a detailed overview of Time Stretching: syntax, arguments, return values, common patterns.

assistant: Use to remap the length of an animation; making it run slower or faster.
The *Old* and *New* settings may either be used as absolute values or as a ratio:
For example, setting *Old* to a value of 2 and *New* to 1 will run the animation twice as fast.

Old
:   The length in frames of the original animation.

New
:   The length in frames the new animation will last.
user: Explain Inputs in complete detail according to the official Blender documentation.

assistant: Geometry
:   The geometry to sample.

Sample Position
:   The position to start from when finding the closest location on the target geometry.
    By default, this is the same as if the [Position Node](../read/position.xhtml) was connected.
user: How do I use Follow Active Quads in Blender? Include parameters, examples, warnings and best practices.

assistant: Starts from the active quad and recursively attaches its neighboring, selected mesh quads to its
pre-existing UV quad. Non-quad faces are ignored.

### Options

The [Adjust Last Operation](../../../interface/undo_redo.html#bpy-ops-screen-redo-last) panel allows fine control over how the mesh is unwrapped:

Edge Length Mode
:   How to calculate the lengths of the UV edges for the newly attached quads.

    Even
    :   Give each new UV edge the same length as the UV edge it’s extending,
        regardless of its length on the mesh.

    Length
    :   Give each new UV edge a length that’s proportional to its length on the mesh.

    Length Average
    :   Give each new UV edge a length that’s proportional to the average edge length
        in its [edge ring](../selecting/loops.html#modeling-meshes-selecting-edge-rings) on the mesh.
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

assistant: The *Evaluate Closure* node does not have functional properties, but its input and output interface can be managed in
the *Node* tab of the Sidebar.

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 node as defining a closure signature to be used by other closure nodes. Ensures consistent input and output
    definitions across related closures.

### Input Items

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

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

Remove Item
:   Delete the selected input socket.

Type
:   The data type for the selected socket (e.g. Float, Vector, Geometry, Object, Bundle).
    For value types, a default value field 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

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

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

Remove Item
:   Delete the selected output socket.

Type
:   The data type for the selected socket (e.g. Float, Vector, Geometry, Object, Bundle).
    For value types, a default value field appears and is used when the socket is unlinked.
user: Explain Enabling Add-on in complete detail according to the official Blender documentation.

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

1. Open Blender and go to [Add-ons](../../editors/preferences/addons.xhtml) section of the [Preferences](../../editors/preferences/index.xhtml).
2. Search “Scalable Vector Graphics (SVG)” and check the *Enable Add-on* checkbox.
user: How do I use Object Type Visibility in Blender? Include parameters, examples, warnings and best practices.

assistant: # Object Type Visibility

This popover lets you control the visibility and selectability of the various object types.
For example, you can hide all the Lights in the scene with one click.

The settings only apply to the current 3D Viewport. Object types marked as unselectable
can still be selected in other viewports and in the
[Outliner](../../outliner/introduction.xhtml), for example.
user: Explain Geometry Data in complete detail according to the official Blender documentation.

assistant: Mesh objects can have different types of custom data attached to them.
This data is mostly used internally and can be exported by some [exporters](../../../files/import_export/index.xhtml).
See [Geometry Data](custom_data.xhtml) for more information.
user: Provide the full official documentation entry for Writing, preserving all code examples.

assistant: You can now edit the documentation files, which are the `.rst` files inside the `manual` folder using a text
editor of your choice.

Be sure to check the [Writing Style Guide](../../guides/writing_guide.xhtml) for conventions and
[Markup Style Guide](../../guides/markup_guide.xhtml) to learn how to write in the reStructuredText markup language.

Happy writing!

### Bigger Changes

If you are going to add or overhaul a section, be sure to check carefully that it does not already exist. In some
places, the docs are so disorganized that sections may be duplicated or in a strange location. In the case that you
find a duplicate or out of place section, [create an issue](https://projects.blender.org/blender/documentation/issues/new) explaining the issue, and optionally include a
revision (actual changes).

Before you make any edits that are not simple and plainly justified (for example, moving folders around), you should
verify with a manual maintainer that your contribution is along the community’s vision for the manual. This ensures
the best use of your time and good will as it is otherwise possible that, for some reason, your changes will conflict
and be rejected or need time-consuming review. For example, another person may be already working on the section you
wish to change, the section may be scheduled for deletion or to be updated according to a planned change to Blender.

[Communicating](../../index.xhtml#contribute-contact) early and frequently is the key to have a productive environment, to not
waste people’s effort and to attain a better Blender manual as a result.

### Getting Help/Answers

If you are in doubt about functionality that you wish to document, you should pose your questions to the Blender
developers responsible for that area or ask at the unofficial user support channel in the `#docs` or
`#blender-coders` channel in [Chat](../../../../getting_started/about/community.xhtml#blender-chat).

Blender itself has a system of module owners with developer and artist members who are responsible for the design and
maintenance of the assigned Blender areas. See the [module pages](https://projects.blender.org/blender/blender/wiki) for more information.
user: What is Introduction and how is it used in Blender Python scripting?

assistant: # Introduction

Much like in real-life skeletons, Bones are the building blocks of Armatures.
Each bone has a resting position, orientation, and length – and all of these
can be changed while posing or animating.

You can change the way bones are displayed in the armature’s
[Viewport Display](../properties/display.html) settings.
user: How do I use ActionLayer(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # ActionLayer(bpy_struct)

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

*class* bpy.types.ActionLayer(*bpy_struct*)
:   name
    :   Type:
        :   string, default “”, (never None)

    strips
    :   The list of strips that are on this animation layer

        Type:
        :   [`ActionStrips`](bpy.types.ActionStrips.html#bpy.types.ActionStrips "bpy.types.ActionStrips") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`ActionStrip`](bpy.types.ActionStrip.html#bpy.types.ActionStrip "bpy.types.ActionStrip"), (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: Describe Refining the Layout from the Blender manual or Python API, including usage steps and snippets.

assistant: After using the unwrapping tools, you may want to manually tweak the UV map,
for example scaling up an area so it receives more pixels of the texture
and can thus be more detailed. You can also use [Minimize Stretch](../editing.xhtml#bpy-ops-uv-minimize-stretch)
if the UV map is too warped compared to the 3D mesh.
user: Describe Extrude Faces from the Blender manual or Python API, including usage steps and snippets.

assistant: # Extrude Faces

*Extrude Faces* duplicate faces, while keeping the new geometry connected with the original vertices.

|  |  |
| --- | --- |
| <../../../../_images/modeling_meshes_tools_extrude-region_vert.png>   Single vertex extruded. | <../../../../_images/modeling_meshes_tools_extrude-region_edge.png>   Single edge extruded. |

This tool is of paramount importance for creating new geometry.
It allows you to create parallelepipeds from rectangles and cylinders from circles,
as well as easily creating such things as tree limbs.

The axis on which faces are extruded along can be set interactively.
Faces are extruded by default along their averaged normal.
The extrusion can be limited to a single axis by specifying an axis;
see [Axis Locking](../../../../scene_layout/object/editing/transform/control/axis_locking.html).

The extrude tools differentiate in how the new geometry is connected in itself.
Only the border loop gets extruded.
The inner region of the selection gets moved unchanged with the extrusion.

|  |  |  |
| --- | --- | --- |
| <../../../../_images/modeling_meshes_tools_extrude-region_face-before.png>   Selected face. | <../../../../_images/modeling_meshes_tools_extrude-region_face-after.png>   During extrude. | <../../../../_images/modeling_meshes_tools_extrude-region_face-after-zaxis.png>   Set to Z axis. |

Flip Normals
:   Only the *normals* of the new faces created from the extrusion will be flipped.

Dissolve Orthogonal Edges
:   Removes and connects edges whose faces form a flat surface and intersect new edges.

Orientation
:   Aligns the transformation axes to a specified orientation constraint.
    See [Transform Orientations](../../../../editors/3dview/controls/orientation.html) for more information.

Proportional Editing
:   The extruded face will affect nearby geometry.
    See [Proportional Editing](../../../../editors/3dview/controls/proportional_editing.html) for a full reference.
user: How do I use Precision in Blender? Include parameters, examples, warnings and best practices.

assistant: Holding `Shift` during transformations allows for very fine control that does not
rely on fixed increments. Rather, large movements of the mouse across
the screen only result in small transformations of the selection.

In rotation mode the selected element will be rotate in 0.01 degree increments.
user: Show practical ways to work with Dependency graph: Iterate over all object instances in a Blender add-on or script – include code.

assistant: Sometimes it is needed to know all the instances with their matrices (for example, when writing an
exporter or a custom render engine).
This example shows how to access all objects and instances in the scene.

```
import bpy

class OBJECT_OT_object_instances(bpy.types.Operator):
    """Access original object and do something with it"""
    bl_label = "DEG Iterate Object Instances"
    bl_idname = "object.object_instances"

    def execute(self, context):
        depsgraph = context.evaluated_depsgraph_get()
        for object_instance in depsgraph.object_instances:
            # This is an object which is being instanced.
            obj = object_instance.object
            # `is_instance` denotes whether the object is coming from instances (as an opposite of
            # being an emitting object. )
            if not object_instance.is_instance:
                print(f"Object {obj.name} at {object_instance.matrix_world}")
            else:
                # Instanced will additionally have fields like uv, random_id and others which are
                # specific for instances. See Python API for DepsgraphObjectInstance for details,
                print(f"Instance of {obj.name} at {object_instance.matrix_world}")
        return {'FINISHED'}

def register():
    bpy.utils.register_class(OBJECT_OT_object_instances)

def unregister():
    bpy.utils.unregister_class(OBJECT_OT_object_instances)

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

assistant: # NodeInternalSocketTemplate(bpy_struct)

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

*class* bpy.types.NodeInternalSocketTemplate(*bpy_struct*)
:   Type and default value of a node socket

    identifier
    :   Identifier of the socket

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

    name
    :   Name of the socket

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

    type
    :   Data type of the socket

        Type:
        :   enum in [Node Socket Type Items](bpy_types_enum_items/node_socket_type_items.html#rna-enum-node-socket-type-items), default `'VALUE'`, (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](#bpy.types.NodeInternalSocketTemplate.type "bpy.types.NodeInternalSocketTemplate.type")
user: How do I use Gradient (Linear) in Blender? Include parameters, examples, warnings and best practices.

assistant: Applies a linear weight gradient;
this is useful at times when painting gradual changes in weight becomes difficult.
Blends the weights of selected vertices with unselected vertices.

[image reference removed]

Example of the Gradient tool being used with selected vertices.

Weight
:   The gradient starts at the current selected weight value, blending out to nothing.

Strength
:   Lower values can be used so the gradient mixes in with the existing weights (just like with the brush).

Type
:   The shape of the gradient.

    Linear:
    :   Create gradient that forms a straight line.

    Radial:
    :   Create gradient that forms a circle.
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`GeometryNodeRepeatOutput.repeat_items`](bpy.types.GeometryNodeRepeatOutput.html#bpy.types.GeometryNodeRepeatOutput.repeat_items "bpy.types.GeometryNodeRepeatOutput.repeat_items") |  |
user: Explain Bpy.Types.Fileassetselectidfilter in complete detail according to the official Blender documentation.

assistant: AssetSelectIDFilter.experimental_filter_annotations FileAssetSelectIDFilter.experimental_filter_armature FileAssetSelectIDFilter.experimental_filter_cachefile FileAssetSelectIDFilter.experimental_filter_camera FileAssetSelectIDFilter.experimental_filter_curve FileAssetSelectIDFilter.experimental_filter_curves FileAssetSelectIDFilter.experimental_filter_font FileAssetSelectIDFilter.experimental_filter_grease_pencil FileAssetSelectIDFilter.experimental_filter_image FileAssetSelectIDFilter.experimental_filter_lattice FileAssetSelectIDFilter.experimental_filter_light FileAssetSelectIDFilter.experimental_filter_light_probe FileAssetSelectIDFilter.experimental_filter_linestyle FileAssetSelectIDFilter.experimental_filter_mask FileAssetSelectIDFilter.experimental_filter_mesh FileAssetSelectIDFilter.experimental_filter_metaball FileAssetSelectIDFilter.experimental_filter_movie_clip FileAssetSelectIDFilter.experimental_filter_paint_curve FileAssetSelectIDFilter.experimental_filter_palette FileAssetSelectIDFilter.experimental_filter_particle_settings FileAssetSelectIDFilter.experimental_filter_pointcloud FileAssetSelectIDFilter.experimental_filter_sound FileAssetSelectIDFilter.experimental_filter_speaker FileAssetSelectIDFilter.experimental_filter_text FileAssetSelectIDFilter.experimental_filter_texture FileAssetSelectIDFilter.experimental_filter_volume FileAssetSelectIDFilter.experimental_filter_work_space FileAssetSelectIDFilter.filter_action FileAssetSelectIDFilter.filter_brush FileAssetSelectIDFilter.filter_group FileAssetSelectIDFilter.filter_material FileAssetSelectIDFilter.filter_node_tree FileAssetSelectIDFilter.filter_object FileAssetSelectIDFilter.filter_scene FileAssetSelectIDFilter.filter_world FileAssetSelectIDFilter.bl_rna_get_subclass() FileAssetSelectIDFilter.bl_rna_get_subclass_py() Inherited Properties Inherited Functions References
user: How do I use Cross Strip in Blender? Include parameters, examples, warnings and best practices.

assistant: # Cross Strip

The *Cross* transition fades from one strip to another, also known as a crossfade.
Strips can be overlapping or have a gap between them,
however, when strips contain a gap the last and first frame of each strip
is extend which can cause a pause if any of the strips are a sequence.
user: Describe Script Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Script Node

Cycles Only

[image reference removed]

The *Script Node* allows you to load and use custom shaders written in
[Open Shading Language (OSL)](../../cycles/osl/index.xhtml) within the Cycles renderer.
This node acts as a bridge between OSL shader code and the node-based material system in Blender.

Each Script node represents a single OSL shader, with its inputs
and outputs defined by the parameters in the shader script.
These shaders can be stored directly within the blend-file or referenced externally.

This feature is ideal for technical artists and shader developers
who need fine-grained control over shading behavior beyond what the standard shader nodes provide.
user: Explain Distortion vs Undistortion in complete detail according to the official Blender documentation.

assistant: Although, both, distortion of render and undistortion of movie clip are possible, and produce similar results,
there is a difference between these two methods.

There are two kinds of lens distortion possible and, in simple terms, they can be said as:

1. When the movie clip is bulging out.
2. When the movie clip is bulging in.

For the first case, it is recommended to distort the render and leave the movie clip as it is, because,
undistorting the movie clip will require extra pixel information, which is not available to Blender.
Similarly, in the second case, it is recommended to undistort the movie clip and leave the render as it is,
because, distorting the render will require those extra unavailable pixels.
Doing the wrong method in the wrong case can create weird results around the edges, such as in the image shown.

[image reference removed]

Problems (notice the edges?)
user: Explain Export Anim Operators in complete detail according to the official Blender documentation.

assistant: # Export Anim Operators

bpy.ops.export_anim.bvh(*\**, *filepath=''*, *check_existing=True*, *filter_glob='\*.bvh'*, *global_scale=1.0*, *frame_start=0*, *frame_end=0*, *rotate_mode='NATIVE'*, *root_transform_only=False*)
:   Save a BVH motion capture file from an armature

    Parameters:
    :   - **filepath** (*string**,* *(**optional**,* *never None**)*) – File Path, Filepath used for exporting the file
        - **check_existing** (*boolean**,* *(**optional**)*) – Check Existing, Check and warn on overwriting existing files
        - **filter_glob** (*string**,* *(**optional**,* *never None**)*) – filter_glob
        - **global_scale** (*float in* *[**0.0001**,* *1e+06**]**,* *(**optional**)*) – Scale, Scale the BVH by this value
        - **frame_start** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – Start Frame, Starting frame to export
        - **frame_end** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – End Frame, End frame to export
        - **rotate_mode** (enum in [`'NATIVE'`, `'XYZ'`, `'XZY'`, `'YXZ'`, `'YZX'`, `'ZXY'`, `'ZYX'`], (optional)) –

          Rotation, Rotation conversion

          - `NATIVE`
            Euler (Native) – Use the rotation order defined in the BVH file.
          - `XYZ`
            Euler (XYZ) – Convert rotations to euler XYZ.
          - `XZY`
            Euler (XZY) – Convert rotations to euler XZY.
          - `YXZ`
            Euler (YXZ) – Convert rotations to euler YXZ.
          - `YZX`
            Euler (YZX) – Convert rotations to euler YZX.
          - `ZXY`
            Euler (ZXY) – Convert rotations to euler ZXY.
          - `ZYX`
            Euler (ZYX) – Convert rotations to euler ZYX.
        - **root_transform_only** (*boolean**,* *(**optional**)*) – Root Translation Only, Only write out translation channels for the root bone

    File:
    :   [addons_core/io_anim_bvh/__init__.py:281](https://projects.blender.org/blender/blender/src/branch/main/scripts/addons_core/io_anim_bvh/__init__.py#L281)
user: Describe Separate Bundle Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Separate Bundle Node

[image reference removed]

The *Separate Bundle* node extracts individual values from a
[Bundle](../../../../interface/controls/nodes/types/utilities/bundles/index.html).
Each output corresponds to an element in the bundle, identified by its socket name.

This node is the counterpart of the
[Combine Bundle](../../../../interface/controls/nodes/types/utilities/bundles/combine_bundle.html)
node and is typically used to retrieve structured data that was previously grouped together.
user: What is Operator Properties and how is it used in Blender Python scripting?

assistant: Most operators have properties that can be adjusted to refine their result.
First run the operator (which will use its default settings),
then adjust the properties in the [Adjust Last Operation](undo_redo.xhtml#bpy-ops-screen-redo-last) region.
user: Show practical ways to work with Hotkeys in a Blender add-on or script – include code.

assistant: Free-Align Toggle
:   Hold `LeftShift` while dragging a handle to switch between `Free` and `Align` handle types.
    Can be used to create sharp corners along the curve.

Move Adjacent Handle
:   Hold `LeftCtrl` while dragging a handle to move the closer handle of the adjacent control point.
    Can be helpful to make adjustments to newly created curve segments.

Move Entire
:   Hold `Spacebar` while dragging a handle to move the entire point.

Link Handles
:   Press `RightCtrl` while dragging a handle to mirror its movement on the opposite handle of the same point.

Lock Handle Angle
:   Hold `LeftAlt` while dragging a handle to limit the movement of the handle to its current direction,
    so only its length can be adjusted.
user: Give a detailed overview of Line Style: syntax, arguments, return values, common patterns.

assistant: # Line Style

In Freestyle, the line style settings define the appearance of a line set using five main aspects:
Stroke, Color, Alpha, Thickness, Geometry, and Texture with each on a separate tab.
These allow you to get many different styles of renders
(technical draw, rough sketch, cartoon, calligraphy, etc.).

You can create as many line styles as you wish, and reuse a given line style for several line
sets by selecting it from the select menu next to its name.

[image reference removed]

Line Style Example ([blend-file](https://archive.blender.org/wiki/2015/index.php/File:LineStyles.zip)).
user: Show practical ways to work with View Layer Override in a Blender add-on or script – include code.

assistant: # View Layer Override

View Layer overrides allow selectively replacing certain scene-level settings for a specific view layer.
This is useful for rendering multiple versions of a scene, for example, with different materials, lighting,
or sampling settings, without modifying the original scene data.

Overrides are applied only when rendering the specific view layer and do not affect the scene globally.

Material Override
:   Replaces all materials used in the view layer with a single material.
    This is often used for clay renders or lighting passes where the original material data is not needed.

World Override
:   Replaces the scene’s world settings (such as background color or HDRI lighting) for the current view layer.

    This can be used to render different lighting conditions
    or to isolate objects against a flat background for compositing.

Samples
:   Allows the view layer to use a different number of samples than the main scene.
    This is controlled by the [Layer Samples](../cycles/render_settings/sampling.xhtml#bpy-types-cyclesrendersettings-use-layer-samples)
    when using the Cycles renderer. When using EEVEE, the *Samples* override is always used.

    Lowering the number of samples for background or utility passes can speed up render times,
    while still using higher samples for beauty passes.
user: Provide the full official documentation entry for Examples, preserving all code examples.

assistant: |  |  |  |  |
| --- | --- | --- | --- |
| <../../../_images/modeling_modifiers_deform_laplacian-smooth_repeat0.jpg>   Femme front view [blend-file](https://archive.blender.org/wiki/2015/uploads/8/8f/Apinzonf_GSOC_2012_Media_femme_front.blend). | <../../../_images/modeling_modifiers_deform_laplacian-smooth_border0-0.jpg>   Femme side view [blend-file](https://archive.blender.org/wiki/2015/uploads/4/47/Apinzonf_GSOC_2012_Media_femme_side.blend). | <../../../_images/modeling_modifiers_deform_laplacian-smooth_t-wgroup.png>   Cube smooth [blend-file](https://archive.blender.org/wiki/2015/uploads/5/54/Apinzonf_GSOC_2012_Media_cube_smooth.blend). | <../../../_images/modeling_modifiers_deform_laplacian-smooth_camel-repeat0.jpg>   Shape enhanced [blend-file](https://archive.blender.org/wiki/2015/uploads/4/44/Apinzonf_Shape_Enhanced_camel.blend). |
user: What is Non Manifold and how is it used in Blender Python scripting?

assistant: Selects the [non-manifold](../../../glossary/index.xhtml#term-Non-manifold) geometry of a mesh.
This entry is only available in the *Vertex* and *Edge*
[selection modes](introduction.xhtml#bpy-types-toolsettings-mesh-select-mode).

The [Adjust Last Operation](../../../interface/undo_redo.xhtml#bpy-ops-screen-redo-last) panel offers the following options:

Extend
:   Adds to the current selection instead of replacing it.

Wire
:   Selects edges that do not belong to any face.

Boundaries
:   Selects edges at boundaries and holes.

Multiple Faces
:   Selects edges that belong to three or more faces.

Non Contiguous
:   Selects edges that belong to exactly two faces with opposite normals.

Vertices
:   Selects vertices that are isolated, belong to an edge that’s a *Wire*
    or has *Multiple Faces*, or are the only vertex connecting two faces.
user: How do I use Sound in Blender? Include parameters, examples, warnings and best practices.

assistant: Working with sound is documented further at [Sound Strip](../../../../video_editing/edit/montage/strips/sound.html#bpy-types-soundstrip).

Volume
:   Adjusts the perceived loudness or intensity of the sound.

    When this property is animated, the volume is drawn as an overlay on the strip.
    The overlay will look like a dark section that follows the animation curve.
    This can be hidden by disabling the [F-Curves](../display.html#bpy-types-sequencertimelineoverlay-show-fcurves).
    The value is also reflected in the waveform.

Offset
:   Offset of the sound from the beginning of the strip, expressed in seconds.

Mono
:   Mixdown all audio channels into a single channel.

[[image reference removed]](../../../../_images/vse_setup_project_striptypes_sound-pan.png)

Pan
:   Used to pan the audio between speakers in multichannel audio.
    Only mono sources can be panned; if the source file is not mono, enable *Mono* to mix the channels together.

    This value basically represents the angle at
    which it’s played if you multiply the value by 90 degrees.

    For stereo, output panning works from left (-1) to center (0) and finally right (1).

    To address rear speakers, you can pan to those with higher values,
    where -2 is back left and 2 is back right.

Preserve Pitch
:   When enabled, this option maintains the original pitch of the
    audio even when the playback speed of the strip is changed.
    When disabled, adjusting the playback speed of a sound strip also
    alters its pitch (for example, slowing down lowers the pitch, and speeding up raises it).

    This option is useful when synchronizing audio to video edits or animations
    that require timing adjustments without affecting tone or musical key.

Display Waveform
:   Display an approximate waveform of the sound file inside of the Sound strip.
    The waveform reflects strip volume and its animation using [keyframes](../../../../animation/keyframes/introduction.html).

    Clipping audio, i.e. values over 100% amplitude, will be shown in red.

    This option is only visible if the [Waveforms overlay](../display.html#bpy-types-sequencertimelineoverlay) is set to *Strip*.
user: Show practical ways to work with BezierSplinePoint(bpy_struct) in a Blender add-on or script – include code.

assistant: # BezierSplinePoint(bpy_struct)

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

*class* bpy.types.BezierSplinePoint(*bpy_struct*)
:   Bézier curve point with two handles

    co
    :   Coordinates of the control point

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

    handle_left
    :   Coordinates of the first handle

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

    handle_left_type
    :   Handle types

        Type:
        :   enum in [`'FREE'`, `'VECTOR'`, `'ALIGNED'`, `'AUTO'`], default `'FREE'`

    handle_right
    :   Coordinates of the second handle

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

    handle_right_type
    :   Handle types

        Type:
        :   enum in [`'FREE'`, `'VECTOR'`, `'ALIGNED'`, `'AUTO'`], default `'FREE'`

    hide
    :   Visibility status

        Type:
        :   boolean, default False

    radius
    :   Radius for beveling

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

    select_control_point
    :   Control point selection status

        Type:
        :   boolean, default False

    select_left_handle
    :   Handle 1 selection status

        Type:
        :   boolean, default False

    select_right_handle
    :   Handle 2 selection status

        Type:
        :   boolean, default False

    tilt
    :   Tilt in 3D View

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

    weight_softbody
    :   Softbody goal weight

        Type:
        :   float in [0.01, 100], default 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 Interface and how is it used in Blender Python scripting?

assistant: ### Header Menus

#### View Menu

Zoom In / Zoom Out
:   Increases/decreases the font size.

Move to Previous Word `Ctrl`-`Left`
:   Moves the cursor to the beginning of the previous word.
    If the cursor is in the middle of a word, the cursor is moved to the beginning of the current word.

Move to Next Word `Ctrl`-`Right`
:   Moves the cursor to the end of the next word.
    If the cursor is in the middle of a word, the cursor is moved to the end of the current word.

Move to Line Begin `Home`
:   Moves the cursor to the start of the current line.

    `Shift`-`Home`: Selects all text between the cursor and the start of the current line.

Move to Line End `End`
:   Moves the cursor to the end of the current line.

    `Shift`-`End`: Selects all text between the cursor and the end of the current line.

#### Console Menu

Clear All
:   Refreshes the console, giving the view a fresh start.
    Note that command history is not cleared.

Clear Line `Shift`-`Return`.
:   Removes everything from the prompt line.

Delete Previous Word `Ctrl`-`Backspace`
:   Deletes everything between the cursor and the beginning of the previous word (separated by periods).
    If the cursor is in the middle of a word, deletes everything to the beginning of the current word.

Delete Next Word `Ctrl`-`Delete`
:   Deletes everything between the cursor and the end of the next word.
    If the cursor is in the middle of a word, deletes everything to the end of the current word.

Copy as Script `Shift`-`Ctrl`-`C`
:   Copies the full history buffer to the clipboard.
    This can be pasted into a text file to be used as a Python script.

Cut `Ctrl`-`X`
:   Copies the selected text into the clipboard and deletes it.

Copy `Ctrl`-`C`
:   Copies the selected text into the clipboard.

Paste `Ctrl`-`V`
:   Pastes into the command line.

Indent `Tab`
:   Inserts a tab character at the cursor.

Unindent `Shift`-`Tab`
:   Unindents the selection.

Backward in History `Up`
:   Changes the current command to the previous one from the command history.

Forward in History `Down`
:   Changes the current command to the next one from the command history.

Autocomplete `Tab`
:   See [Auto Completion](#auto-completion).

### Main View

Key Bindings

- `LMB` – Moves the cursor along the input line.
- `Left` / `Right` – Moves the cursor by one character.
- `Ctrl`-`Left` / `Ctrl`-`Right` – Moves the cursor by one word.
- `Shift`-`Left` / `Shift`-`Right` – Selects characters to the left/right.
- `Shift`-`Ctrl`-`Left` / `Shift`-`Ctrl`-`Right` – Selects words to the left/right.
- `Ctrl`-`A` Selects all text and text history.
- `Backspace` / `Delete` – Erase characters.
- `Ctrl`-`Backspace` / `Ctrl`-`Delete` – Erase words.
- `Return` – Execute command.
- `Shift`-`Return` – Add to command history without executing.