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

assistant: Color
:   Color of the surface, or physically speaking, the probability that light is reflected for each wavelength.

Roughness
:   Sharpness of the reflection; perfectly sharp at 0.0 and smoother with higher values.

Anisotropy Cycles Only
:   Controls the amount the reflection stretches the reflection along the surface of the material.
    A value of 0.0 results in no anisotropic reflections.
    Higher values give elongated highlights orthogonal to the tangent direction;
    negative values give highlights shaped along the tangent direction.

    This is a phenomenon know as “Anisotropic Reflections” which is often seen in metallic materials.

Rotation
:   Rotation of the anisotropic tangent direction.
    Value 0.0 equals 0° rotation, 0.25 equals 90° and 1.0 equals 360° = 0°.
    This can be used to texture the tangent direction.

    |  |  |
    | --- | --- |
    | ../../../_images/render_shader-nodes_shader_anisotropic_rot0.jpg   Anisotropic rotation on 0. | ../../../_images/render_shader-nodes_shader_anisotropic_rot025.jpg   Anisotropic rotation on 0.25 (90°). |

Normal
:   Normal used for shading; if nothing is connected the default shading normal is used.

Tangent
:   Tangent used for shading; if nothing is connected the default shading tangent is used.
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`CollectionChild.light_linking`](bpy.types.CollectionChild.html#bpy.types.CollectionChild.light_linking "bpy.types.CollectionChild.light_linking") | - [`CollectionObject.light_linking`](bpy.types.CollectionObject.html#bpy.types.CollectionObject.light_linking "bpy.types.CollectionObject.light_linking") |
user: Describe Set Origin from the Blender manual or Python API, including usage steps and snippets.

assistant: The object origin and geometry can be moved relative to each other and to the 3D cursor.

Type
:   Geometry to Origin
    :   Moves the model to the origin and this way the origin of the object will
        also be at the center of the object.

    Origin to Geometry
    :   Moves the origin to the center of the object.

    Origin to 3D Cursor
    :   Moves the origin of the model to the position of the 3D cursor.

    Origin to Center of Mass
    :   Moves the origin to the calculated center of mass of model
        (assuming the mesh has a uniform density).

Center
:   Median Point Center, Bounding Box Center
user: What is Bokeh Blur Node and how is it used in Blender Python scripting?

assistant: # Bokeh Blur Node

[image reference removed]

The Bokeh Blur node generates a bokeh type blur similar to Defocus.
Unlike defocus an in-focus region is defined in the Compositor.
There is also more flexibility in the type of blur applied through
the [Bokeh Image](../../input/bokeh_image.html) node.

Several performance optimizations are also available such calculation area restriction and masking.
user: Provide the full official documentation entry for ObjectModifiers(bpy_struct), preserving all code examples.

assistant: # ObjectModifiers(bpy_struct)

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

*class* bpy.types.ObjectModifiers(*bpy_struct*)
:   Collection of object modifiers

    active
    :   The active modifier in the list

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

    new(*name*, *type*)
    :   Add a new modifier

        Parameters:
        :   - **name** (*string**,* *(**never None**)*) – New name for the modifier
            - **type** (enum in [Object Modifier Type Items](bpy_types_enum_items/object_modifier_type_items.html#rna-enum-object-modifier-type-items)) – Modifier type to add

        Returns:
        :   Newly created modifier

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

    remove(*modifier*)
    :   Remove an existing modifier from the object

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

    clear()
    :   Remove all modifiers from the object

    move(*from_index*, *to_index*)
    :   Move a modifier to a different position

        Parameters:
        :   - **from_index** (*int in* *[**-inf**,* *inf**]*) – From Index, Index to move
            - **to_index** (*int in* *[**-inf**,* *inf**]*) – To Index, Target index

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

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

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

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

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

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

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

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

    None:
    :   No snapping.

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

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

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

Snap Increment
:   The angle to use for *Angle Snapping*.
user: Give a detailed overview of Simulation: syntax, arguments, return values, common patterns.

assistant: # Simulation

Speed
:   You can control the internal timing of the soft body system with this value.
    It sets the correlation between frame rate and tempo of the simulation.
    A free falling body should cover a distance of about five meters after
    one second and travel at a speed of ten meters per seconds.

    You can adjust the scale of your scene and simulation with this correlation.
    If you render with 25 frames per second, you will have to set *Speed* to 1.3.
user: Show practical ways to work with Paintcurve Operators in a Blender add-on or script – include code.

assistant: # Paintcurve Operators

bpy.ops.paintcurve.add_point(*\**, *location=(0, 0)*)
:   Add New Paint Curve Point

    Parameters:
    :   **location** (*int array* *of* *2 items in* *[**0**,* *32767**]**,* *(**optional**)*) – Location, Location of vertex in area space

bpy.ops.paintcurve.add_point_slide(*\**, *PAINTCURVE_OT_add_point=None*, *PAINTCURVE_OT_slide=None*)
:   Add new curve point and slide it

    Parameters:
    :   - **PAINTCURVE_OT_add_point** (`PAINTCURVE_OT_add_point`, (optional)) – Add New Paint Curve Point, Add New Paint Curve Point
        - **PAINTCURVE_OT_slide** (`PAINTCURVE_OT_slide`, (optional)) – Slide Paint Curve Point, Select and slide paint curve point

bpy.ops.paintcurve.cursor()
:   Place cursor

bpy.ops.paintcurve.delete_point()
:   Remove Paint Curve Point

bpy.ops.paintcurve.draw()
:   Draw curve

bpy.ops.paintcurve.new()
:   Add new paint curve

bpy.ops.paintcurve.select(*\**, *location=(0, 0)*, *toggle=False*, *extend=False*)
:   Select a paint curve point

    Parameters:
    :   - **location** (*int array* *of* *2 items in* *[**0**,* *32767**]**,* *(**optional**)*) – Location, Location of vertex in area space
        - **toggle** (*boolean**,* *(**optional**)*) – Toggle, (De)select all
        - **extend** (*boolean**,* *(**optional**)*) – Extend, Extend selection

bpy.ops.paintcurve.slide(*\**, *align=False*, *select=True*)
:   Select and slide paint curve point

    Parameters:
    :   - **align** (*boolean**,* *(**optional**)*) – Align Handles, Aligns opposite point handle during transform
        - **select** (*boolean**,* *(**optional**)*) – Select, Attempt to select a point handle before transform
user: Provide the full official documentation entry for Installing on Windows, preserving all code examples.

assistant: # Installing on Windows

Check the [Downloading Blender](index.html) page to find the minimum requirements and the
different versions that are available for Blender (if you have not done so yet).

Download the zip-file or Windows Installer File.
user: Provide the full official documentation entry for Time Stretching, preserving all code examples.

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

assistant: # Ocean Modifier

The *Ocean* modifier is a tool to simulate and generate a deforming ocean surface,
and associated texture, used to render the simulation data.
It is intended to simulate deep ocean waves and foam.

It is a port from the open source [Houdini Ocean Toolkit](https://code.google.com/archive/p/houdini-ocean-toolkit/).
user: Show practical ways to work with 2D Traditional Animation in a Blender add-on or script – include code.

assistant: ### Keyframes

Traditional animation in Grease Pencil is achieved with the use of
[keyframes](../../animation/keyframes/introduction.xhtml)
that hold the strokes information at a particular frame or frame range.

With [Auto keyframe](../../animation/animation_editors.xhtml#bpy-types-toolsettings-use-keyframe-insert-auto) activated,
every time you create a stroke in Grease Pencil object Draw Mode
a new keyframe is added at the current frame on the active channel.
With Auto keyframe deactivated, you will have to add manually
a new keyframe or your new strokes will be added on the active keyframe.

See [Keyframe Editing](../../animation/keyframes/editing.xhtml) for more information.

Grease Pencil has its own mode in the Dope Sheet to work with keyframes.
See Grease Pencil mode in the [Dope Sheet](../../editors/dope_sheet/modes/grease_pencil.xhtml)
section for more information.
There are also several tools on the Stroke menu to work with keyframes and strokes.
See [Animation tools](tools.xhtml) for more information.

### Onion Skinning

One key element in traditional animation is the use of onion skinning.
Grease Pencil offer a lot of flexibility and options for this tool.
See [Onion Skinning](../properties/onion_skinning.xhtml) for more information.
user: Provide the full official documentation entry for Examples, preserving all code examples.

assistant: |  |  |
| --- | --- |
| ../../../_images/render_shader-nodes_shader_translucent_example.jpg   Translucent shader example. | ../../../_images/render_shader-nodes_shader_translucent_behavior.svg   Translucent shader behavior. |
user: Describe Output from the Blender manual or Python API, including usage steps and snippets.

assistant: Geometry
:   Standard geometry output.

Duplicate Index
:   An attribute field with a value for every output element describing which
    duplicate of the corresponding input. The value for every input element will
    start at 0 and increase to `Amount - 1`.
user: Provide the full official documentation entry for References, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`Image.render_slots`](bpy.types.Image.html#bpy.types.Image.render_slots "bpy.types.Image.render_slots") - [`RenderSlots.active`](bpy.types.RenderSlots.html#bpy.types.RenderSlots.active "bpy.types.RenderSlots.active") | - [`RenderSlots.new`](bpy.types.RenderSlots.html#bpy.types.RenderSlots.new "bpy.types.RenderSlots.new") |
user: Give a detailed overview of Selections and the Active Object: syntax, arguments, return values, common patterns.

assistant: Blender distinguishes between two different states of selection:

[image reference removed]

Active object in yellow, selected object in orange, and unselected object in black.

In *Object Mode* the last (de)selected item is called the “Active Object”
and is outlined in yellow (the others are orange).
There is at most one active object at any time.

Many actions in Blender use the active object as a reference (for example linking operations).
If you already have a selection and need to make a different object the active one,
simply reselect it with `Shift`-`LMB`.

All other selected objects are just selected. You can select any number of objects.
In order to change a property or to perform an operation on all selected objects (bones, and sequencer strips)
hold `Alt`, while confirming.
user: Provide the full official documentation entry for Introduction, preserving all code examples.

assistant: # Introduction

Montage is the technique of assembling separate clips (video, audio, text, effects) into a coherent sequence.
The importance of montage was first demonstrated by the Russian filmmaker Lev Kuleshov in the 1910s and 1920s.
Famous is the Kuleshov effect: viewers derive more meaning from the
interaction of two sequential shots than from a single shot in isolation
(see the [Wikipedia article](https://en.wikipedia.org/wiki/Kuleshov_effect) for a nice illustration).

Obviously, the first thing in assembling your timeline is importing or adding strips.
There are several ways to do this and each has its own advantages and disadvantages.

Before you can do anything with a strip, you have to select them. There are multiple ways of selecting strips.

Strips can be moved in time (left to right on the X axis) or in the display stack (bottom to top on the Y axis).

Splitting or cutting a strip will create two parts of the strip (before and after the split).
There are two variants: Split and Hold Split.

Trimming is the process of removing or adding a portion of the video at its head or tail.
This will result in a decrease or increase of the duration of the video.

Grouping is the creating of a meta strip whereby several strips are grouped together.
user: Describe Duplicate Hair Curves from the Blender manual or Python API, including usage steps and snippets.

assistant: # Duplicate Hair Curves

The *Duplicate Hair Curves* node creates additional copies of existing hair curves,
distributing them around the original guide curves within a specified radius.
This is useful for increasing hair density, creating secondary strands around guides,
or achieving fuller grooms without manually adding more guides.
user: Explain CompositorNodeInpaint(CompositorNode) in complete detail according to the official Blender documentation.

assistant: # CompositorNodeInpaint(CompositorNode)

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

*class* bpy.types.CompositorNodeInpaint(*CompositorNode*)
:   Extend borders of an image into transparent or masked regions

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

    update()

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Duplicate

This will create a visually-identical copy of the selected object(s).
The copy is created at the same position as the original object and
you are automatically placed in move mode. See the examples below.

This copy is a new object, which shares data-blocks with the original object
(by default, all the materials, textures, and F-Curves), but which has copied others,
like the mesh, for example. That is why this form of duplication is sometimes called “shallow link”,
because not all data-blocks are shared; some of them are “hard copied”!
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Reload Strips `Alt`-`R`
:   Reloads the strips from their external saved location.

Reload Strips and Adjust Length `Shift`-`Alt`-`R`
:   Reloads the strips from their external saved location and re-adjusts the strip duration.

Change Path/Files
:   Changes the source file contained in a selected strip.

Swap Data
:   Swaps two sequence strips.
user: Provide the full official documentation entry for Warp, preserving all code examples.

assistant: # Warp

[image reference removed]

Warp options.

The *Warp* transformation takes selected elements and
warps them around the 3D cursor by a certain angle.
Note that this transformation is always dependent on the location of the 3D cursor.
The Pivot Point is not taken into account.
The results of the *Warp* transformation are also view dependent.
user: What is Camera and how is it used in Blender Python scripting?

assistant: # Camera

This panel contains all settings of the camera used for filming the movie
which is currently being edited in the Clip editor.
Different predefined settings can be used here and can be chosen from the panel header.
But such settings as distortion coefficients and principal point are not included in the presets and
should be filled in even if camera presets are used.

Sensor Width
:   Is the width of the CCD sensor in the camera. This value can be found in camera specifications.

Pixel Aspect
:   Is the pixel aspect of the CCD sensor. This value can be found in camera specifications,
    but can also be guessed. For example, you know that the footage should be 1920×1080,
    but the images themselves are 1280×1080. In this case, the pixel aspect is: 1920 / 1280 = 1.5.
user: How do I use Getting Started in Blender? Include parameters, examples, warnings and best practices.

assistant: [About Blender](getting_started/about/index.html)

[Installing Blender](getting_started/installing/index.html)

[Configuring Blender](getting_started/configuration/index.html)

[Help System](getting_started/help.html)
user: How do I use Tone Map Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Tone Map Node

[image reference removed]

Tone mapping is used to map high dynamic range colors into a more limited dynamic
range supported by the display, while preserving the appearance as much as possible.

This is a legacy node. It is recommended to use view transforms in the
color management settings instead, and output linear high dynamic range images
from the compositor instead of low dynamic range.
user: What is Laptops and how is it used in Blender Python scripting?

assistant: Laptops often have two GPUs for power saving purposes. One slower onboard GPU integrated into the main CPU (typically
Intel or AMD) that uses lower power, and one faster dedicated GPU for better performance (AMD or NVIDIA) that uses
more power.

For the best performance, the dedicated GPU should be used for Blender. Which GPU to use for which application can be
configured in your graphics driver or operating system settings.

If there is a graphics glitch or crash specific to the onboard GPU, then using the dedicated GPU can help avoid that.
Or vice versa, if the dedicated GPU causes issues, then using the onboard graphics can help.
user: Explain Selection Node in complete detail according to the official Blender documentation.

assistant: # Selection Node

[image reference removed]

The *Selection* node outputs true for geometry that is [selected](../../../../interface/selecting.html), and false elsewhere.

The corresponding data flow node is the [Set Selection Node](../write/set_selection.html).
user: Explain GeometryNodeSetSplineCyclic(GeometryNode) in complete detail according to the official Blender documentation.

assistant: # GeometryNodeSetSplineCyclic(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.GeometryNodeSetSplineCyclic(*GeometryNode*)
:   Control whether each spline loops back on itself by changing the “cyclic” attribute

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

assistant: The *Batch Rename* operator can rename many data-block names at once.
This uses a pop-up dialog with operations and their options to change the name.
These actions are applied in order, from first to last.

Data Source
:   Where to look for the data-blocks that are intended to be renamed.

    Selected:
    :   Operates on the currently selected objects.

    All:
    :   Operates on all data in the blend file.

Data Type
:   The [data-block type](../data_blocks.xhtml#data-system-datablock-types) to perform the batch rename operations on.

### Operations

The *Batch Rename* has several sub Operations to change the data names.
The default operation is *Find/Replace* however, other operations can be added
to change the data names further.
Below all the operations gives a message in the status bar on how many data-blocks were renamed.

#### Find/Replace

*Find/Replace* searches for a particular text in the names and optionally replaces it with a new text.
[Regular Expressions](https://en.wikipedia.org/wiki/Regular_expression)
can be used as a powerful way to tailor the *Find*/*Replace* texts
and can be enabled using the icon to the right of the text fields.

Find
:   The text to search for in names.

Replace
:   The text to replace for in matching names found from the *Find* text.

Case Sensitive
:   Search results must exactly match the case of the *Find* text.

#### Set Name

*Set Name* works the most similar to [Rename Active Item](#rename-active-item)
by renaming the current data-block without having to do a find and replace operation.

Method
:   New:
    :   Disregards the current name replacing it with the “new” name.

    Prefix:
    :   Adds text to the beginning of the current name.
        This is useful for tools that look for special text in the prefix of a data-block name.

    Suffix:
    :   Adds text to the end of the current name.
        This is useful for tools that look for special text in the suffix of a data-block name.

Name
:   Defines the new name or the text to add as a prefix/suffix.

#### Strip Characters

*Strip Characters* cleans up names by removing certain
character types from either the beginning or the end of the name.

Characters
:   Spaces:
    :   Strips any space characters from the name, e.g. “Living Room “ becomes “Living Room”.

    Digits:
    :   Strips any numerical characters from the name, e.g. `cube.001` becomes `cube.`.

    Punctuation:
    :   Strips any punctuation characters (`,.?!:;` etc.) from the name, e.g. `cube?` becomes `cube`.

Strip From
:   Start:
    :   Strips any leading characters in the name.

    End:
    :   Strips any trailing characters in the name.

#### Change Case

*Change Case* modifies the case of names to be one of the following:

Convert To
:   Upper Case:
    :   Changes all text to be in upper case, e.g. `cube.001` becomes `CUBE.001`.

    Lower Case:
    :   Changes all text to be in lower case, e.g. `CUBE.001` becomes `cube.001`.

    Title Case:
    :   Changes all text to be in title case, e.g. `living room` becomes `Living Room`.
user: Show practical ways to work with Outputs in a Blender add-on or script – include code.

assistant: Curve
:   Poly spline generated from the inputs.

Center
:   The center of the arc described by the three points. *Points* mode only.

Normal
:   The normal direction of the plane described by the three points,
    pointing towards the positive Z axis. *Points* mode only.

Radius
:   The radius of the arc described by the three points. *Points* mode only.
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`bpy.context.lattice`](bpy.context.html#bpy.context.lattice "bpy.context.lattice") - [`BlendData.lattices`](bpy.types.BlendData.html#bpy.types.BlendData.lattices "bpy.types.BlendData.lattices") - [`BlendDataLattices.new`](bpy.types.BlendDataLattices.html#bpy.types.BlendDataLattices.new "bpy.types.BlendDataLattices.new") | - [`BlendDataLattices.remove`](bpy.types.BlendDataLattices.html#bpy.types.BlendDataLattices.remove "bpy.types.BlendDataLattices.remove") - [`Lattice.unit_test_compare`](#bpy.types.Lattice.unit_test_compare "bpy.types.Lattice.unit_test_compare") |
user: What is Examples and how is it used in Blender Python scripting?

assistant: [image reference removed]

The node can be used to round the corners of simple 3D poly splines.

[image reference removed]

The node can be combined with the curve primitive nodes to make more interesting shapes.
user: Show practical ways to work with Relax Slide in a Blender add-on or script – include code.

assistant: # Relax Slide

This brush deforms the topology of the mesh
while minimizing changes to the geometrical shape of the mesh.
By default it will drag geometry, but this can be changed in the *Deformation* settings.

This brush is especially useful for redistributing topology to areas that require more detail,
or sliding geometry to somewhere where they should be.

Holding `Shift` changes the brush effect to Relax geometry,
creating an even distribution of topology.
user: Show practical ways to work with Examples in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| ../../../_images/render_shader-nodes_shader_glossy_example.jpg   Sharp Glossy example. | ../../../_images/render_shader-nodes_shader_glossy_behavior-sharp.svg   Sharp Glossy behavior. |
| ../../../_images/render_shader-nodes_shader_glossy_rough.jpg   Rough Glossy example. | ../../../_images/render_shader-nodes_shader_glossy_behavior.svg   Rough Glossy behavior. |

[image reference removed]

Anisotropic shading with 0° rotation, 90° rotation and textured rotation of the tangent direction.
[Example blend-file](https://archive.blender.org/wiki/2015/uploads/b/b7/Blender2.65_cycles_anisotropic.blend).
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: Fill Type
:   How the circles at the top and bottom are filled with faces when their radius is larger than zero.

    None:
    :   Do not fill the circles.

    N-Gon:
    :   Fill the innermost segment of the circles with a single face.

    Triangles:
    :   Fill the innermost segment of the circles with triangles connected to a new vertex on the Z axis.
user: Provide the full official documentation entry for Mask Display, preserving all code examples.

assistant: # Mask Display

This popover controls how masks are displayed in Mask mode.

Spline
:   Toggles the display of the mask splines. Note that if they’re hidden,
    you won’t be able to edit them.

    Edge Display Type
    :   Line style of the splines.

Overlay
:   Visualizes masks by shading the whole clip.

    Overlay Mode
    :   Alpha Channel:
        :   Displays just the masks as a grayscale image. Excluded areas are black,
            while included areas are white.

        Combined:
        :   Displays the clip with excluded areas darkened.

Blending Factor
:   How much excluded areas are darkened when using the “Combined” *Overlay Mode*.
user: Provide the full official documentation entry for Bone Collections, preserving all code examples.

assistant: This list shows the [bone collections](../../../../glossary/index.html#term-Bone-Collection) the bone is assigned to.
Press the eye icon to show or hide the entire bone collection.
Press the star icon to show only this bone collection, and others also marked as ‘solo’
Press the X icon to remove the bone from that particular collection.

To assign the bone to other bone collections, either use the `M` or `Shift`-`M` shortcuts
(see [Moving Bones Between Collections](../../properties/bone_collections.html#moving-bones-between-collections))
or go to the [Armature properties panel](../../properties/bone_collections.html#bpy-types-bonecollection).
user: Show practical ways to work with Object Collisions in a Blender add-on or script – include code.

assistant: If the cloth object needs to be deflected by some other object. To deflect a cloth,
the object must be enabled as an object that collides with the cloth object.
To enable objects to collide with cloth objects enable
[collision physics](../../collision.html#physics-collision-soft-bodt-cloth)
for the collider object (not on the cloth object).

Distance
:   The distance another object must get to the cloth for
    the simulation to repel the cloth out of the way.
    Smaller values might give errors but gives some speed-up while
    larger will give unrealistic results if too large and can be slow.
    It is best to find a good in between value.

Impulse Clamping
:   Prevents explosions in tight and complicated collision situations
    by restricting the amount of movement after a collision.

Vertex Group
:   Faces that have all vertices assigned to this
    [Vertex Group](../../../modeling/meshes/properties/vertex_groups/index.html) are excluded from collision with objects.

Collision Collection
:   Only objects that are a part of this [Collection](../../../scene_layout/collections/index.html)
    can collide with the cloth. Note that these objects must also have Collision physics enabled.
user: What is Displace Modifier and how is it used in Blender Python scripting?

assistant: # Displace Modifier

The *Displace* modifier displaces vertices in a mesh based on the intensity of a texture.
Either procedural or image textures can be used.

The displacement can be along a particular local axis, along the vertex normal,
or the separate RGB components of the texture can be used to displace vertices in the local X,
Y and Z directions simultaneously (sometimes referred to as *Vector Displacement*).
user: Explain Sinus Displacement in complete detail according to the official Blender documentation.

assistant: # Sinus Displacement

The *Sinus Displacement* modifier adds a sinusoidal displacement to the stroke.

Wavelength
:   How wide the undulations are along the stroke.

Amplitude
:   How high the undulations are across the stroke.

Phase
:   Allows “offsetting” (“moving”) the undulations along the stroke.

[image reference removed]

Sinus Displacement modifier demo by T.K.
([blend-file](https://archive.blender.org/wiki/2015/index.php/File:Toycar_Sinus.zip)).
user: Give a detailed overview of Screen(ID): syntax, arguments, return values, common patterns.

assistant: # Screen(ID)

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

*class* bpy.types.Screen(*ID*)
:   Screen data-block, defining the layout of areas in a window

    areas
    :   Areas the screen is subdivided into

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

    is_animation_playing
    :   Animation playback is active

        Type:
        :   boolean, default False, (readonly)

    is_scrubbing
    :   True when the user is scrubbing through time

        Type:
        :   boolean, default False, (readonly)

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

    show_fullscreen
    :   An area is maximized, filling this screen

        Type:
        :   boolean, default False, (readonly)

    show_statusbar
    :   Show status bar

        Type:
        :   boolean, default False

    use_follow
    :   Follow current frame in editors

        Type:
        :   boolean, default False

    use_play_3d_editors
    :   Type:
        :   boolean, default False

    use_play_animation_editors
    :   Type:
        :   boolean, default False

    use_play_clip_editors
    :   Type:
        :   boolean, default False

    use_play_image_editors
    :   Type:
        :   boolean, default False

    use_play_node_editors
    :   Type:
        :   boolean, default False

    use_play_properties_editors
    :   Type:
        :   boolean, default False

    use_play_sequence_editors
    :   Type:
        :   boolean, default False

    use_play_spreadsheet_editors
    :   Type:
        :   boolean, default False

    use_play_top_left_3d_editor
    :   Type:
        :   boolean, default False

    statusbar_info()
    :   statusbar_info

        Returns:
        :   Status Bar Info

        Return type:
        :   string, (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: Show practical ways to work with Marker in a Blender add-on or script – include code.

assistant: Add
:   See [Add Marker](../editing/track.html#bpy-ops-clip-add-marker-move).

Delete
:   See [Delete Track](../editing/track.html#bpy-ops-clip-delete-track).

Detect Features
:   See [Detect Features](../editing/track.html#bpy-ops-clip-detect-features).
user: Describe Dt Layers Select Dst Items from the Blender manual or Python API, including usage steps and snippets.

assistant: # Dt Layers Select Dst Items

ACTIVE:
:   Active Layer.

    Affect active data layer of all targets.

NAME:
:   By Name.

    Match target data layers to affect by name.

INDEX:
:   By Order.

    Match target data layers to affect by order (indices).
user: Explain Selection Mode in complete detail according to the official Blender documentation.

assistant: Vertex:
:   `1` Select vertices.

Edge:
:   `2` Select edges.

Face:
:   `3` Select faces.

If *Sync Selection* is enabled, you can hold `Shift` while clicking a selection mode to
activate multiple ones at the same time, or `Ctrl` to expand/contract the selection.
user: Give a detailed overview of Contribute Documentation: syntax, arguments, return values, common patterns.

assistant: # Contribute Documentation

The Blender Manual is a community driven effort to which anyone can contribute. Whether you’d like to fix a tiny
spelling mistake or rewrite an entire chapter, your help with the Blender manual is most welcome!

If you find an error in the documentation, please [report the problem](https://projects.blender.org/blender/documentation/issues/new).

Get involved in discussions through any of the project [Contacts](#contacts).
user: Explain skin.basic_chain in complete detail according to the official Blender documentation.

assistant: This is the basic chain rig, which bridges controls with B-Bones but does not add
any automation to the controls themselves.

When controls are merely moved, the chains behave as if using standard
automatic handles, but rotating and optionally scaling the controls will adjust the result.

B-Bone Segments
:   Specifies the number of segments to use. Setting this to 1 disables
    all advanced behavior and merely bridges the points with a Stretch To bone.

Merge Parent Rotation and Scale
:   This can be enabled to let the chain respond to rotation and scale induced by parents of
    controls owned by other chains that this chain’s control merged into.

Use Handle Scale
:   Enables using control scale to drive scale and/or easing of the B-Bone.

Connect With Mirror
:   Specifies whether the ends of the chain should smoothly connect when merging controls
    with its `.T`/`.B` `.L`/`.R` symmetry counterpart. The relevant option must be enabled
    on both chains to work.

Connect Matching Ends
:   Specifies whether the end of the chain should connect to the opposite end of a different chain
    when merging controls. Thus forming a continuous smooth chain in the same direction.
    The relevant options must be enabled on both chains.

Sharpen Corner
:   Specifies whether the rig should generate a mechanism to form a sharp corner at
    the relevant connected end, depending on the angle formed by adjacent control locations.
    When the control angle becomes sharper than the specified value, ease starts reducing from 1 to 0.

Orientation
:   Specifies that the controls should be oriented the same as the selected bone, rather than being
    aligned to the chain.

    Copy To Selected
    :   Copy to selected rigs that have the same option. Thus allowing to indiscriminately selecting bones
        without assigning unnecessary values.

Chain Priority
:   Allows overriding the heuristic used to select the primary owner when merging controls.
user: What is Warp and how is it used in Blender Python scripting?

assistant: # Warp

[image reference removed]

Warp options.

The *Warp* transformation takes selected elements and
warps them around the 3D cursor by a certain angle.
Note that this transformation is always dependent on the location of the 3D cursor.
The Pivot Point is not taken into account.
The results of the *Warp* transformation are also view dependent.
user: What is Keying Flag Items and how is it used in Blender Python scripting?

assistant: # Keying Flag Items

INSERTKEY_NEEDED:
:   Only Needed.

    Only insert keyframes where they’re needed in the relevant F-Curves.

INSERTKEY_VISUAL:
:   Visual Keying.

    Insert keyframes based on ‘visual transforms’.
user: Provide the full official documentation entry for Options, preserving all code examples.

assistant: [[image reference removed]](../../../_images/modeling_modifiers_generate_triangulate_panel.png)

The Triangulate modifier.

Quad Method
:   Beauty
    :   Split the quads in nice triangles, slower method.

    Fixed
    :   Split the quads on their 1st and 3rd vertices.

    Fixed Alternate
    :   Split the quads on their 2nd and 4th vertices.

    Shortest Diagonal
    :   Split the quads along their shortest diagonal.

    Longest Diagonal
    :   Split the quads along their longest diagonal. This is the preferred mode for cloth simulations.

N-gon Method
:   Beauty
    :   Arrange the new triangles nicely, slower method.

    Clip
    :   Splits n-gons using an ear-clipping algorithm
        (the same method of tessellation used for viewport display).

Minimum Vertices
:   Minimum number of vertices a face must have to be triangulated.
    For example, setting this value to 5, will prevent triangulation of [Quads](../../../glossary/index.html#term-Quad)
    and only triangulate [N-gons](../../../glossary/index.html#term-N-gon).
user: Give a detailed overview of LimitLocationConstraint(Constraint): syntax, arguments, return values, common patterns.

assistant: # LimitLocationConstraint(Constraint)

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

*class* bpy.types.LimitLocationConstraint(*Constraint*)
:   Limit the location of the constrained object

    max_x
    :   Highest X value to allow

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

    max_y
    :   Highest Y value to allow

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

    max_z
    :   Highest Z value to allow

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

    min_x
    :   Lowest X value to allow

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

    min_y
    :   Lowest Y value to allow

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

    min_z
    :   Lowest Z value to allow

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

    use_max_x
    :   Use the maximum X value

        Type:
        :   boolean, default False

    use_max_y
    :   Use the maximum Y value

        Type:
        :   boolean, default False

    use_max_z
    :   Use the maximum Z value

        Type:
        :   boolean, default False

    use_min_x
    :   Use the minimum X value

        Type:
        :   boolean, default False

    use_min_y
    :   Use the minimum Y value

        Type:
        :   boolean, default False

    use_min_z
    :   Use the minimum Z value

        Type:
        :   boolean, default False

    use_transform_limit
    :   Transform tools are affected by this constraint as well

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Applies a radial weight gradient;
this is useful at times when painting gradual changes in weight becomes difficult.
Blends the weights of selected vertices with unselected 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: Explain Controls in complete detail according to the official Blender documentation.

assistant: ### Overlap Mode

Overlap Mode defines the result of transforming a strip so that it overlaps another strip.

Expand:
:   All strips on the right side of (each) transformed will be shifted forward to accommodate the overlapping strip.

Overwrite:
:   The overlapped strip will be overwritten, trimmed or split by the overlapping strip.

Shuffle:
:   The overlapping strip will be moved to the nearest free space so that it does not overlap.

### Snapping

Snapping can be toggled by clicking  (Snap Off) /  (Snap On)
in the 3D Viewport’s header, or temporarily by holding `Ctrl` after starting to drag a strip.

The drop-down arrow offers the following options:

Snap to
:   Frame Range
    :   Snap to preview or scene start and end frame.

    Current Frame
    :   Snaps the transformed selection to the Playhead.

    Hold Offset
    :   Snaps the transformed selection to the [Hold Offset](../../../editors/video_sequencer/sequencer/sidebar/strip.html#sequencer-duration-hard).

    Markers
    :   Snaps the transformed selection to [Markers](../../../animation/markers.html).

    Retiming Keys
    :   Snaps the transformed selection to [Retiming Keys](#sequencer-editing-retiming).

Ignore
:   Muted Strips
    :   Muted Strips are not considered as snap targets.

    Sound Strips
    :   Sound Strips are not considered as snap targets.