PGCRYPT/OpenBlender_Train huggingface dataset:
user: Give a detailed overview of ShaderNodeTexCoord(ShaderNode): syntax, arguments, return values, common patterns.

assistant: # ShaderNodeTexCoord(ShaderNode)

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

*class* bpy.types.ShaderNodeTexCoord(*ShaderNode*)
:   Retrieve multiple types of texture coordinates.
    Typically used as inputs for texture nodes

    from_instancer
    :   Use the parent of the instance object if possible

        Type:
        :   boolean, default False

    object
    :   Use coordinates from this object (for object texture coordinates output)

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

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

assistant: # CompositorNodeScale(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.CompositorNodeScale(*CompositorNode*)
:   Change the size of the image

    *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: Explain Inherited Properties in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`BoidRule.name`](bpy.types.BoidRule.html#bpy.types.BoidRule.name "bpy.types.BoidRule.name") - [`BoidRule.type`](bpy.types.BoidRule.html#bpy.types.BoidRule.type "bpy.types.BoidRule.type") | - [`BoidRule.use_in_air`](bpy.types.BoidRule.html#bpy.types.BoidRule.use_in_air "bpy.types.BoidRule.use_in_air") - [`BoidRule.use_on_land`](bpy.types.BoidRule.html#bpy.types.BoidRule.use_on_land "bpy.types.BoidRule.use_on_land") |
user: Provide the full official documentation entry for LineStyleColorModifier_Tangent(LineStyleColorModifier), preserving all code examples.

assistant: # LineStyleColorModifier_Tangent(LineStyleColorModifier)

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

*class* bpy.types.LineStyleColorModifier_Tangent(*LineStyleColorModifier*)
:   Change line color based on the direction of a stroke

    blend
    :   Specify how the modifier value is blended into the base value

        Type:
        :   enum in [Ramp Blend Items](bpy_types_enum_items/ramp_blend_items.html#rna-enum-ramp-blend-items), default `'MIX'`

    color_ramp
    :   Color ramp used to change line color

        Type:
        :   [`ColorRamp`](bpy.types.ColorRamp.html#bpy.types.ColorRamp "bpy.types.ColorRamp"), (readonly)

    expanded
    :   True if the modifier tab is expanded

        Type:
        :   boolean, default False

    influence
    :   Influence factor by which the modifier changes the property

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

    type
    :   Type of the modifier

        Type:
        :   enum in [Linestyle Color Modifier Type Items](bpy_types_enum_items/linestyle_color_modifier_type_items.html#rna-enum-linestyle-color-modifier-type-items), default `'ALONG_STROKE'`, (readonly)

    use
    :   Enable or disable this modifier during stroke rendering

        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](#bpy.types.LineStyleColorModifier_Tangent.type "bpy.types.LineStyleColorModifier_Tangent.type")
user: What is Texture Coordinate Node and how is it used in Blender Python scripting?

assistant: # Texture Coordinate Node

[image reference removed]

The *Texture Coordinate* node outputs various coordinate systems
that can be used for procedural textures, image textures, and other vector-based texture inputs.

It is most commonly connected to the *Vector* input of texture nodes,
allowing textures to be placed or manipulated in different coordinate spaces.
user: Explain Bpy.Types.Movietrackingsettings in complete detail according to the official Blender documentation.

assistant: ean, 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 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 Inherited Properties ¶ bpy_struct.id_data Inherited Functions ¶ bpy_struct.as_pointer bpy_struct.driver_add bpy_struct.driver_remove bpy_struct.get bpy_struct.id_properties_clear bpy_struct.id_properties_ensure bpy_struct.id_properties_ui bpy_struct.is_property_hidden bpy_struct.is_property_overridable_library bpy_struct.is_property_readonly bpy_struct.is_property_set bpy_struct.items bpy_struct.keyframe_delete bpy_struct.keyframe_insert bpy_struct.keys bpy_struct.path_from_id bpy_struct.path_from_module bpy_struct.path_resolve bpy_struct.pop bpy_struct.property_overridable_library_set bpy_struct.property_unset bpy_struct.rna_ancestors bpy_struct.type_recast bpy_struct.values References ¶ MovieTracking.settings Next MovieTrackingStabilization(bpy_struct) Previous MovieTrackingReconstruction(bpy_struct) Copyright &#169; Blender Authors Made with Furo Report issue on this page On this page MovieTrackingSettings(bpy_struct) MovieTrackingSettings MovieTrackingSettings.clean_action MovieTrackingSettings.clean_error MovieTrackingSettings.clean_frames MovieTrackingSettings.default_correlation_min MovieTrackingSettings.default_frames_limit MovieTrackingSettings.default_margin MovieTrackingSettings.default_motion_model MovieTrackingSettings.default_pattern_match MovieTrackingSettings.default_pattern_size MovieTrackingSettings.default_search_size MovieTrackingSettings.default_weight MovieTrackingSettings.distance MovieTrackingSettings.object_distance MovieTrackingSettings.refine_intrinsics_focal_length MovieTrackingSettings.refine_intrinsics_principal_point MovieTrackingSettings.refine_intrinsics_radial_distortion MovieTrackingSettings.refine_intrinsics_tangential_distortion MovieTrackingSettings.speed MovieTrackingSettings.use_default_blue_channel MovieTrackingSettings.use_default_brute MovieTrackingSettings.use_default_green_channel MovieTrackingSettings.use_default_mask MovieTrackingSettings.use_default_normalization MovieTrackingSettings.use_default_red_channel MovieTrackingSettings.use_keyframe_selection MovieTrackingSettings.use_tripod_solver MovieTrackingSettings.bl_rna_get_subclass() MovieTrackingSettings.bl_rna_get_subclass_py() Inherited Properties Inherited Functions References
user: Give a detailed overview of Properties: syntax, arguments, return values, common patterns.

assistant: Phase
:   Volume scattering phase function.

    Henyey-Greenstein:
    :   Simple and widely used phase function, useful for approximating scattering in biological tissues.

    Fournier-Forand:
    :   Cycles Only
        Suitable for modeling the scattering of light in underwater environments.

    Draine:
    :   Cycles Only
        Suitable for modeling the scattering of interstellar dust.

    Rayleigh:
    :   Cycles Only
        Describes the scattering by particles with a size smaller than the wavelength of light,
        such as the scattering of sunlight in earth’s atmosphere.

    Mie:
    :   Cycles Only
        Describes the scattering by particles with a size larger than the wavelength of light, such as cloud and fog.

[image reference removed]

Volume scattering phase as a function of angles between the incoming and the outgoing direction,
in logarithmic scale. Light comes from the left side.
user: Explain Notes in complete detail according to the official Blender documentation.

assistant: While the noise is random in nature, it follows a certain pattern that might not evaluate to
random values in some configurations. For instance, consider the following configuration
where a grid of objects have a material that evaluates a noise texture at their locations.
One might expect the objects to have random values since they have different locations,
but this is not the case.

[image reference removed]

An example configuration where the noise evaluates to a constant value.

It seems all objects have a value of 0.5. To understand why this happens, let us
look at the following plot of a 1D noise texture.

[image reference removed]

A plot of a 1D noise with zero details and zero distortion.

The horizontal line denotes a value of 0.5 and the vertical lines denotes whole numbers assuming
a noise scale of 1. As can be seen, the noise always intersects the 0.5 line at whole numbers.
Since the aforementioned objects were distributed on a grid and have whole number locations,
they all evaluate to 0.5. Which explains the issue at hand.

Generally, any discrete evaluation of noise at integer multiples of the reciprocal of
the noise scale will always evaluate to 0.5. It also follows that evaluations closer to
that will have values close to 0.5. In such cases, it is almost always preferred to use
the White Noise Texture.

Regardless, one can mitigate this issue in a number of ways:

- Adjust the scale of the noise to avoid aligning the noise with the evaluation domain.
- Add an arbitrary offset to the texture coordinates to break the alignment with the evaluation domain.
- Evaluate the noise at a higher dimension and adjust the extra dimension
  until a satisfactory result is achieved.

|  |  |
| --- | --- |
| ../../../_images/render_shader-nodes_textures_noise_issue-constant-value.png   Constant value issue. | ../../../_images/render_shader-nodes_textures_noise_solution1-constant-value.png   Mitigating the issue by adjusting the scale. |
| ../../../_images/render_shader-nodes_textures_noise_solution2-constant-value.png   Mitigating the issue by adding an arbitrary offset. | ../../../_images/render_shader-nodes_textures_noise_solution3-constant-value.png   Mitigating the issue by evaluating at a higher dimension. |

Similarly, in other configurations, one might experience some banding patterns in the noise,
where there are bands of high contrast areas followed by banding of low contrast areas.
For instance, planar surfaces that are slightly tilted along one of the axis
will have such a banding pattern.

[image reference removed]

An example configuration where the noise have a banding pattern.

This happens because the slight tilt along one of the axis causes values along
the perpendicular axis to change very slowly making the grid structure of
the noise more apparent. The easiest way to mitigate this issue to rotate
the coordinates by an arbitrary amount.

[image reference removed]

Mitigating the issue by rotating the coordinates by an arbitrary amount.
user: Describe Set Curve Type from the Blender manual or Python API, including usage steps and snippets.

assistant: Converts splines in a curve object between Bézier, NURBS, Poly, and Catmull Rom types.
This is a basic conversion, meaning Blender does not preserve the exact shape or the number of control points.
For example, converting a NURBS spline to a Bézier spline maps each group of three NURBS control points
to a single Bézier control point with two handles.

Type
:   Specifies the target spline type. For more details on spline types, see the
    [Spline Types](../../curves/structure.xhtml#curve-spline-types) documentation.

    Bézier:
    :   Converts the spline to a Bézier type.
        - Poly splines are converted with vector handles.
        - NURBS or Catmull Rom splines are converted with automatic handles.

    NURBS:
    :   Converts the spline to a NURBS type.

    Poly:
    :   Converts the spline to a poly type.

    Catmull Rom:
    :   Converts the spline to a Catmull Rom type.

Handles
:   Includes handle information during the conversion process.
user: What is Active Element and how is it used in Blender Python scripting?

assistant: [image reference removed]

Active Element panel.

These settings apply only to the selected metaball element.

Type
:   Changes the [primitive shape](primitives.xhtml) of the meta object.

Stiffness
:   Controls the influence range for individual metaball elements, unlike *Influence Threshold*
    which controls the influence for the entire [meta family](editing.xhtml#meta-ball-object-families).
    This essentially defines how sensitive a meta is to being affected by other metas.
    With a low stiffness, the meta will begin to deform from further away.
    A higher value means the meta needs to be close to another one to begin merging.
    The *Stiffness* is visualized by the *green ring* and can be selected and [scaled](../../scene_layout/object/editing/transform/scale.xhtml#bpy-ops-transform-resize)
    to also change the *Stiffness* value.

    To be visible, the *Stiffness* must be slightly larger than the *Threshold* value.

    [image reference removed]

    The left meta ball, has a smaller *Stiffness* value than the right one.

Radius
:   Controls the physical size of the metaball.
    This works the same as scaling the metaball in Object Mode.
    The *Radius* is visualized by the *white ring* and can be selected and [scaled](../../scene_layout/object/editing/transform/scale.xhtml#bpy-ops-transform-resize)
    to also change the *Radius* value.

Negative
:   Controls whether the influence is *positive* or *negative*.

    A *positive* influence is defined as an attraction,
    meaning that the meshes will stretch towards each other as the *rings of influence* intersect.
    The opposite effect would be a *negative* influence where the objects repel each other.

    |  |  |
    | --- | --- |
    | ../../_images/modeling_metas_editing_family.png   Positive influence of three metaballs. | ../../_images/modeling_metas_editing_negative-influence.png   Negative influence of a meta ball; the first is negative and the second positive. |

Hide
:   As in [Show/Hide](../../scene_layout/object/editing/show_hide.xhtml#object-show-hide) in Object Mode, you can hide the selected meta(s),
    and then reveal what was hidden. This is very handy for cleaning your views up a bit.
user: Give a detailed overview of Line Gestures: syntax, arguments, return values, common patterns.

assistant: Dragging creates a line. The resulting action acts upon everything on the highlighted side of the line. The area acted
upon is extended in both directions of the viewport.

### Controls

Flip `F`
:   Toggles the side of the line that the tool affects.

Snap `Ctrl`
:   Hold to constrain the rotation of the line to user-specified intervals. Defaults to 5 degree increments,
    customizable via the Snapping menu indicated by the magnet icon in the header.

Move `Spacebar`
:   Hold to reposition the line.

### Tool Settings

Limit to Segment
:   The affected area will not extend the length of the drawn line.
    This helps defining a smaller area instead of extending the line infinitely long.
user: Give a detailed overview of Properties: syntax, arguments, return values, common patterns.

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](../../../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 Add-on Extensions in complete detail according to the official Blender documentation.

assistant: Add-ons should follow [semantic versioning](https://semver.org/) in spirit.

Semantic versioning was designed for software libraries with APIs, and that’s
not (typically) what add-ons are. Rather, add-ons provide user-facing
functionality, and therefore semantic versioning doesn’t strictly apply.

Nevertheless, we recommend following the *spirit* of semantic versioning with
add-ons in the following way:

- Version numbers should use the **MAJOR.MINOR.PATCH** format (e.g. 2.3.1).
- **The MAJOR number** should be incremented for changes that remove or alter
  existing functionality in such a way that users can’t just continue using the
  add-on as they previously were. Rules of thumb:

  > - If the new version doesn’t work with data created for/by the previous
  >   version, increment the MAJOR number.
  > - If the user needs to relearn anything non-trivial about the add-on to
  >   continue using it as they already were, increment the MAJOR number.
- **The MINOR number** should be incremented when introducing new functionality,
  but *without* significantly affecting existing functionality. Rule of thumb:

  > - If new functionality was introduced, but the user can simply ignore it (if
  >   desired) and continue working with the add-on as they already were,
  >   increment the MINOR number.
- **The PATCH number** should be incremented for bug fixes and small changes
  that don’t affect the add-on’s intended functionality. Rule of thumb:

  > - If the new version isn’t notably different from an end-user perspective
  >   aside from bug fixes, increment the PATCH number.

These guidelines won’t cover every possible situation, but hopefully they give a
good sense of how to approach the common cases. Extension developers should use
their best judgment when dealing with situations not covered well by these
guidelines.
user: What is Examples and how is it used in Blender Python scripting?

assistant: Below are some common curves you can use to achieve desired effects.

[image reference removed]

From left to right: 1. Lighten shadows 2. Negative 3. Decrease contrast 4. Posterize.

### Color Correction using Curves

[image reference removed]

Color correction with curves.

In this example, the image has too much red in it,
so we run it through an *RGB Curves* node and reduce the Red channel.

The documentation for the [Mix Color Node](../mix_color.xhtml) has an additional
example about fixing overexposure.

### Color Correction using Black/White Levels

[image reference removed]

Color correction with Black/White Levels.

Manually adjusting the RGB curves for color correction can be difficult.
Another option for color correction is to use the Black and White Levels instead,
which really might be their main purpose.

In this example,
the White Level is set to the color of a bright spot of the sand in the background,
and the Black Level to the color in the center of the fish’s eye.
To do this efficiently it is best to bring up the Image Editor showing the original input image.
You can then use the levels’ color picker to easily choose
the appropriate colors from the input image, zooming into pixel level if necessary.
The result can be fine-tuned with the R, G, and B curves like in the previous example.

The curve for C is used to compensate for the increased contrast that is a side effect of
setting Black and White Levels.

### Effects

[image reference removed]

Changing colors by inverting the red channel.
user: Give a detailed overview of VectorFont(ID): syntax, arguments, return values, common patterns.

assistant: # VectorFont(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.VectorFont(*ID*)
:   Vector font for Text objects

    filepath
    :   Type:
        :   string, default “”, (never None, blend relative `//` prefix supported)

    packed_file
    :   Type:
        :   [`PackedFile`](bpy.types.PackedFile.html#bpy.types.PackedFile "bpy.types.PackedFile"), (readonly)

    pack()
    :   Pack the font into the current blend file

    unpack(*\**, *method='USE_LOCAL'*)
    :   Unpack the font to the samples filename

        Parameters:
        :   **method** (enum in [Unpack Method Items](bpy_types_enum_items/unpack_method_items.html#rna-enum-unpack-method-items), (optional)) – method, How to unpack

    *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 Set Geometry Name Node in a Blender add-on or script – include code.

assistant: # Set Geometry Name Node

[image reference removed]

The *Set Geometry Name* node stores a custom name on the geometry, overriding the name which
might come from the [Object Info Node](../../input/scene/object_info.xhtml) or a
[Grease Pencil to Curves Node](../../grease_pencil/operations/grease_pencil_to_curves.xhtml).
The name is displayed in the spreadsheet and can helpful for debugging purposes.
user: Explain Properties in complete detail according to the official Blender documentation.

assistant: Data Type
:   The [data type](../../attributes_reference.html#attribute-data-types) used for the retrieved data.
    [Attribute Search](../../inspection.html#geometry-nodes-attribute-search) can be used to give a basic list of possible
    attribute names and data types. When a value is chosen from the search menu, the data
    type is set to automatically choose the data type from the geometry nodes result.
user: Provide the full official documentation entry for Build Modifier, preserving all code examples.

assistant: # Build Modifier

The *Build* modifier causes the faces of the mesh object to appear or disappear one after the other over time.

By default, faces appear in the order in which they are stored in memory (by default, the order of creation).
The face/vertex order can be altered in Edit Mode by using [Sort Mesh Elements](../../meshes/editing/mesh/sort_elements.xhtml#mesh-edit-sort-elements).
user: Describe Charge from the Blender manual or Python API, including usage steps and snippets.

assistant: # Charge

A *Charge* force field is similar to a *Force* field except it changes it’s behavior (attract/repulse)
based on the effected particles charge field (negative/positive),
like real particles with a charge.
Which means that this field has only an effect on particles that have also a *Charge* field
(else, they have no “charge”, and hence are unaffected)!

[image reference removed]

UI for a Charge force field.
user: Explain Inputs in complete detail according to the official Blender documentation.

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

assistant: # Defaults

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

[image reference removed]

The initial preferences dialog.
user: Explain Outputs in complete detail according to the official Blender documentation.

assistant: The *Main Geometry* outputs create attributes on the “main” output geometry (the first output).
Every single value on the inside of the zone becomes a value of the attribute at the current index.

The outputs in the *Generated* panel, including the default *Geometry* output are joined together from the
geometry generated from each element. Any non-geometry type below a specific geometry in this list will output
as an [anonymous attribute](../attributes_reference.html#anonymous-attributes) on that joined geometry (and not the others).
Attributes from the zone’s input geometry are also propagated to these geometry outputs.
user: Explain GeometryNodeToolSetSelection(GeometryNode) in complete detail according to the official Blender documentation.

assistant: # GeometryNodeToolSetSelection(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.GeometryNodeToolSetSelection(*GeometryNode*)
:   Set selection of the edited geometry, for tool execution

    domain
    :   Type:
        :   enum in [Attribute Domain Point Edge Face Curve Items](bpy_types_enum_items/attribute_domain_point_edge_face_curve_items.html#rna-enum-attribute-domain-point-edge-face-curve-items), default `'POINT'`

    selection_type
    :   - `BOOLEAN`
          Boolean – Store true or false selection values in edit mode.
        - `FLOAT`
          Float – Store floating point selection values. For mesh geometry, stored inverted as the sculpt mode mask.

        Type:
        :   enum in [`'BOOLEAN'`, `'FLOAT'`], default `'BOOLEAN'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Reaction Speed
:   How fast fuel burns. Larger values result in smaller flames (fuel burns before it can go very far),
    smaller values result in larger flames (fuel has time to flow farther before being fully consumed).

Flame Smoke
:   Amount of extra smoke created automatically to simulate burnt fuel. This smoke is best visible
    when using a “Fire + Smoke” [Flow Object](../flow.html#bpy-types-fluidflowsettings-flow-type).

Vorticity
:   Vorticity for flames in addition to the global fluid
    [Vorticity](#bpy-types-fluiddomainsettings-vorticity).

Temperature Maximum
:   Maximum temperature of flames. Larger values result in faster rising flames.

Minimum
:   Minimum temperature of flames. Larger values result in faster rising flames.

Smoke Color
:   Color of smoke emitted from burning fuel.
user: How do I use Examples in Blender? Include parameters, examples, warnings and best practices.

assistant: The Anti-Aliasing node has three properties shown here.

|  |  |
| --- | --- |
| ../../../_images/compositing_types_filter_antialiasing-node_example-1-threshold.gif   Changing threshold affects all edges. | ../../../_images/compositing_types_filter_antialiasing-node_example-2-contrast_limit.gif   Changing contrast limit affects neighboring edges below contrast limit. |

The effect of corner rounding.

|  |  |
| --- | --- |
| ../../../_images/compositing_types_filter_antialiasing-node_example-3-corner_rounding-off.png   Corner detection and rounding off (set to 0). Notice how corners are smoothed because they are treated as artifacts. | ../../../_images/compositing_types_filter_antialiasing-node_example-3-corner_rounding-on.png   Full corner detection and rounding preserves the sharp edges around the corner. |
user: Show practical ways to work with Keys to Samples in a Blender add-on or script – include code.

assistant: Switches the selected curves from interpolating between a set of keyframes to using
a sampled value at each full frame.
**This is a destructive process that removes the ability to edit the curve.**
It’s mainly used to reduce the file size with large datasets, as samples take up
less space than keyframes.

Between samples (on subframes), the curve interpolates linearly.
user: Explain Limit Rotation Constraint in complete detail according to the official Blender documentation.

assistant: # Limit Rotation Constraint

The *Limit Rotation* constraint limits the Euler rotation angle for each axis
to a certain range.

Angles outside a range are clamped to whichever boundary is closer on a circle.
For example, if an axis is limited to the range 0°-90° and the original rotation
is 340°, the constraint changes this to 0°, not 90°.

This constraint doesn’t work for bones that are affected by [Inverse Kinematics](../../armatures/posing/bone_constraints/inverse_kinematics/introduction.xhtml).
Please use the *Limit* settings in the bone’s [IK panel](../../armatures/posing/bone_constraints/inverse_kinematics/introduction.xhtml#bpy-types-posebone-ik)
instead.
user: Provide the full official documentation entry for Workflow & Examples, preserving all code examples.

assistant: # Workflow & Examples

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

assistant: Samples
:   Number of samples to take for each shader evaluation.
    More samples give more accurate results, but are also slower to render.
    The default value of 4 works well for most cases, with any noise resolved by using more AA samples.
user: Provide the full official documentation entry for Edge Bevel Weight, preserving all code examples.

assistant: Sets the value for the `bevel_weight_edge` attribute, a value between (0.0 to 1.0).

This attribute is used by the [Bevel Modifier](../../../modifiers/generate/bevel.xhtml)
to control the bevel intensity of the edges.

This operator enters an interactive mode (a bit like transform tools),
where by moving the mouse (or typing a value with the keyboard)
you can set the bevel weight of selected edges. If more than one edge is selected,
this operator alters the average weight of the edges.
user: How do I use Action Panel in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

Actions with and without a Manual Frame Range in Dope Sheet.

When the editor is in [Action Editor](modes/action.html) mode,
or in Dope Sheet mode with a channel selected that belongs to an action,
this panel allows changing some settings of that action.
See [Action Properties](../../animation/actions.html#actions-properties) for details.
user: What is Blend and how is it used in Blender Python scripting?

assistant: # Blend

The Blend texture generates a smoothly interpolated progression.
This is one of the most frequently used procedural textures.
You can use blend textures to blend other textures together (with *Stencil*),
or to create nice effects (especially with the *Mapping: Normal* trick).

[image reference removed]

Blend Texture panels.
user: Describe Relative from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

The “Relative” panel has copy/paste buttons that work relative to a chosen
object. When copying, the world-space transform is determined, and then adjusted
to become relative to the world-space transform of the chosen object. When
pasting, this happens in reverse.

If no object is chosen, the copy/paste will happen relative to the active scene
camera. What is the active scene camera is determined for every action, so when
you paste it can be different from when you copied. This can help to keep an
object visually in the same place when switching cameras, or when switching
between scenes.
user: How do I use Options in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

UI for a Harmonic force field.

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

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

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

assistant: This panel is used to add, select, manage “Absolute Keying Sets”.

[image reference removed]

The Keying Set panel.

Active Keying Set
:   A [List View](../../interface/controls/templates/list_view.html#ui-list-view) of Keying Sets in the active scene.
    Selecting a keying set makes it active

    Add Empty Keying Set
    :   Adds an empty Keying Set.

    Remove Active Keying Set
    :   Removes the active keying set.

Description
:   A short description of the Keying Set.

Export to File
:   Export Keying Set to a Python script `File.py`.
    To re-add the Keying Set from the `File.py`, open then run the `File.py` from the Text Editor.

### Active Keying Set Panel

This panel is used to add properties to the active Keying Set.

[image reference removed]

The Active Keying Set panel.

Paths
:   A collection of paths in a [List View](../../interface/controls/templates/list_view.html#ui-list-view) each with a *Data Path* to a property
    to add to the active Keying Set.

    Add Empty Keying Set Path
    :   Adds an empty path.

    Remove Active Keying Set Path
    :   Removes the selected path.

Target ID-Block
:   Set the ID Type and the *Object IDs* data path for the property.

Data Path
:   Set the rest of the Data Path for the property.

Array All Items
:   Use *All Items* from the Data Path or select the array index for a specific property.

F-Curve Grouping
:   This controls what group to add the channels to.

    Keying Set Name, None, Named Group

### Keyframing Settings

General Override
:   These options control all properties in the Keying Set.
    Note that the same settings in *Preferences* override these settings if enabled.

Active Set Override
:   These options control individual properties in the Keying Set.

Common Settings
:   Needed
    :   Only insert keyframes where they are needed in the relevant F-Curves.

    Visual
    :   Insert keyframes based on the visual transformation.
user: Give a detailed overview of Deleting a Material: syntax, arguments, return values, common patterns.

assistant: To delete a material, select the material and click X in the Available Materials List entry.

Although the material will seem to disappear immediately,
the Delete action can depend on how the material is used elsewhere.

If the material is linked to the object and there are other objects which use this material,
then the material will be removed from that object (but remain on all its other objects).

If the “Fake User” button has been lit in the Available Materials list,
then the material will be retained when the file is saved, even if it has no users.

Only if it has 0 “real” users, and no “Fake” user, will the material be permanently deleted.
Note that it will still remain in the Materials list until the blend-file is saved,
but will have disappeared when the file is reloaded.
user: Give a detailed overview of Inputs: syntax, arguments, return values, common patterns.

assistant: Image
:   Standard color input.

Crypto Passes
:   Each crypto layer will be given its own render pass;
    each of these render passes must be connected to one of these crypto layer inputs.
    By default there are only four layers, see [Adding/Removing Layers](#adding-removing-layers) to add more.
user: Give a detailed overview of Rest Pose: syntax, arguments, return values, common patterns.

assistant: The initial shape of a B-Bone can be defined in Edit Mode as a rest pose of that bone.
This is useful for curved facial features like curved eyebrows or mouths.

B-Bones have two sets of the Bendy Bone properties – one for Edit Mode (i.e. the Rest Pose/Base Rig) and
another for Pose Mode – adding or multiplying together their values to get the final transforms.
user: Describe Inputs from the Blender manual or Python API, including usage steps and snippets.

assistant: The inputs are dynamic, they become available if needed depending on the node properties.

Vector
:   Texture coordinate to evaluate the noise at;
    defaults to *Generated* texture coordinates if the socket is left unconnected.

W
:   Texture coordinate to evaluate the noise at.

Scale
:   Scale of the noise.

Detail
:   Number of noise octaves.
    The fractional part of the input is multiplied by the magnitude of the highest octave.
    Higher number of octaves corresponds to a higher evaluation time.

Roughness
:   Blend between a smoother noise pattern, and rougher with sharper peaks.

Lacunarity
:   The difference between the scale of each two consecutive octaves.
    Larger values corresponds to larger scale for higher octaves.

Smoothness
:   The smoothness of the noise.

    |  |  |  |  |
    | --- | --- | --- | --- |
    | ../../../_images/render_shader-nodes_textures_voronoi_smoothness-distance-zero.png   Smoothness: 0.0. | ../../../_images/render_shader-nodes_textures_voronoi_smoothness-distance-quarter.png   Smoothness: 0.25. | ../../../_images/render_shader-nodes_textures_voronoi_smoothness-distance-half.png   Smoothness: 0.5. | ../../../_images/render_shader-nodes_textures_voronoi_smoothness-distance-one.png   Smoothness: 1.0. |
    | ../../../_images/render_shader-nodes_textures_voronoi_smoothness-color-zero.png   Smoothness: 0.0. | ../../../_images/render_shader-nodes_textures_voronoi_smoothness-color-quarter.png   Smoothness: 0.25. | ../../../_images/render_shader-nodes_textures_voronoi_smoothness-color-half.png   Smoothness: 0.5. | ../../../_images/render_shader-nodes_textures_voronoi_smoothness-color-one.png   Smoothness: 1.0. |

Exponent
:   Exponent of the Minkowski distance metric.

    |  |  |  |  |
    | --- | --- | --- | --- |
    | ../../../_images/render_shader-nodes_textures_voronoi_minkowski-half.png   Exponent: 0.5. | ../../../_images/render_shader-nodes_textures_voronoi_minkowski-one.png   Exponent: 1.0. | ../../../_images/render_shader-nodes_textures_voronoi_minkowski-two.png   Exponent: 2.0. | ../../../_images/render_shader-nodes_textures_voronoi_minkowski-32.png   Exponent: 32.0. |

Randomness
:   The randomness of the noise.

    |  |  |  |  |
    | --- | --- | --- | --- |
    | ../../../_images/render_shader-nodes_textures_voronoi_randomness-one.png   Randomness: 1.0. | ../../../_images/render_shader-nodes_textures_voronoi_randomness-half.png   Randomness: 0.5. | ../../../_images/render_shader-nodes_textures_voronoi_randomness-quarter.png   Randomness: 0.25. | ../../../_images/render_shader-nodes_textures_voronoi_randomness-zero.png   Randomness: 0.0. |
user: Describe Clear Tilt from the Blender manual or Python API, including usage steps and snippets.

assistant: You can also reset the tilt to its default value (i.e. perpendicular to the original curve plane).
With NURBS, the tilt is always smoothly interpolated. However, with Bézier,
you can choose the [interpolation algorithm](../properties/active_spline.xhtml#bpy-types-spline-tilt-interpolation).
user: Give a detailed overview of BrushCapabilitiesWeightPaint(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # BrushCapabilitiesWeightPaint(bpy_struct)

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

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

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Curve
:   Standard geometry input.

Cuts
:   The number of control points to create on the segment following each point.
    When the input is a field, the number of cuts for a segment is determined by
    the value of the field when evaluated at the previous point.