PGCRYPT/OpenBlender_Train huggingface dataset:
user: Show practical ways to work with GeometryNodeInputInstanceBounds(GeometryNode) in a Blender add-on or script – include code.

assistant: # GeometryNodeInputInstanceBounds(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.GeometryNodeInputInstanceBounds(*GeometryNode*)
:   Calculate position bounds of each instance’s geometry set

    *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: How do I use Options in Blender? Include parameters, examples, warnings and best practices.

assistant: After the tool is run, these options are available in the [Adjust Last Operation](../../../interface/undo_redo.xhtml#bpy-ops-screen-redo-last) panel.

Error
:   Error distance in object units. This can be seen similar to a subdivision rate for the curve.
    Lower values give a result that is closer to the drawing stroke while higher values give more smoothed results.

Fit Method
:   Refit:
    :   Incrementally refits the curve (gives best results).

    Split:
    :   Splits the curve until the tolerance is met (gives a better drawing performance).

Corner Angle
:   Any angles above this are considered corners.

Cyclic
:   Toggles whether or not the curve is [Cyclic](../../../glossary/index.xhtml#term-Cyclic).
user: How do I use Select More/Less in Blender? Include parameters, examples, warnings and best practices.

assistant: Their purpose, based on the currently selected control points, is to reduce or enlarge this selection.

More
:   For each selected control point, select *all* its linked points (i.e. one or two…).

Less
:   For each selected control point, if *all* points linked to this point are selected, keep this one selected.
    Otherwise, deselect it.

This implies two points:

1. When *all* control points of a curve are selected, nothing will happen
   (as for *Less*, all linked points are always selected, and of course, *More* cannot add any).
   Conversely, the same goes when no control points are selected.
2. Second, these tools will never “go outside” of a curve
   (they will never “jump” to another curve in the same object).
user: Explain Options in complete detail according to the official Blender documentation.

assistant: [image reference removed]

Geometry Attribute constraint.

[Target](../interface/common.html#rigging-constraints-interface-common-target)
:   The target object to retrieve geometry from.
    The supported geometry types are Mesh, Curve, Point Cloud, and Instance.

Offset with Target Transform
:   Apply the target object’s world transform on top of the attribute’s transform.

Attribute Name
:   Name of the sampled attribute.
    The default attribute name is position.

Data Type
:   Data type of the sampled attribute.
    The type will determine which components will be used for transforming the constraint object.

    Vector:
    :   Vector data type, affects the location.

    Quaternion:
    :   Quaternion data type, affects the rotation.

    4x4 Matrix:
    :   4x4 Matrix data type, affects the entire transform.
        Location, Rotation, and Scale components can be toggled separately, but will remove matrix shearing.

Domain
:   Domain of the sampled attribute.

    Point:
    :   Point domain from a Mesh, Curve, or Point Cloud.

    Edge:
    :   Edge domain from a Mesh.

    Face:
    :   Face domain from a Mesh.

    Face Corner:
    :   Face Corner domain from a Mesh.

    Spline:
    :   Spline domain from a Curve.

    Instance:
    :   Instance domain from an Instance.

Sample Index
:   Index of the geometry element to sample the attribute.
    Index values are clamped to what is present on the target geometry.

Mix Mode
:   Specify how the copied and existing transformations are combined.

    Replace:
    :   Replace the original transformation with the transform from the attribute.

    Before Original (Full):
    :   Apply copied transformation before original, using simple matrix multiplication as if
        the constraint target is a parent in Full Inherit Scale mode.
        Will create shear when combining rotation and non-uniform scale.

    Before Original (Split Channels):
    :   Apply copied transformation before original, handling location, rotation and scale
        separately, similar to a sequence of three Copy constraints.

    After Original Full:
    :   Apply copied transformation after original, using simple matrix multiplication as if
        the constraint target is a child in Full Inherit Scale mode.
        Will create shear when combining rotation and non-uniform scale.

    After Original (Split Channels):
    :   Apply copied transformation after original, handling location, rotation and scale
        separately, similar to a sequence of three Copy constraints.

[Influence](../interface/common.html#bpy-types-constraint-influence)
:   How strongly the constraint affects the owner.
user: Show practical ways to work with Tool Settings in a Blender add-on or script – include code.

assistant: [image reference removed]

Curve Stroke panel.

Type
:   Type of curve to use for drawing.

    Poly:
    :   Bézier Curve with straight line segments (auto handles).

    Bézier:
    :   Tolerance
        :   Lower values give a result that is closer to the drawing stroke,
            while higher values give more smoothed results.

        Method
        :   Refit:
            :   Incrementally refits the curve (gives best results).

            Split:
            :   Splits the curve until the tolerance is met (gives a better drawing performance).

        Detect Corners
        :   Detects corners while drawing based on a specified angle;
            Any angles above the specified value are considered corners.
            If a corner is detected, the curve uses non-aligned handles
            for the corner resulting in a more crisp corner.

Taper Start, End
:   Taper factor for the radius of the start and end points along the curve.

Radius Min
:   Minimum radius when the minimum pressure is applied (also the minimum when tapering).

Max
:   Radius to use when the maximum pressure is applied (or when a tablet is not used).

Use Pressure
:   Uses stylus pressure to control the radius of the curve.

Depth
:   Controls where and how the curves are drawn.

    Cursor:
    :   Uses the depth under the cursor to draw curves.

    Surface:
    :   Used to draw on top of other objects.

        Project Onto Selected
        :   Only project the strokes onto selected objects.

        Offset
        :   Distance to offset the curve from the surface.

        Absolute Offset
        :   Applies a fixed offset (does not scale by the curve radius).

        Only First
        :   Only uses the start of the stroke for the depth.

        Plane
        :   The orientation plane to draw on, available when *Only First* is enabled.

            Normal to Surface:
            :   Draws aligned to the surface.

            Tangent to Surface:
            :   Draws perpendicular to the surface.

            View:
            :   Draws aligned to the viewport.
user: Explain Requirements in complete detail according to the official Blender documentation.

assistant: - Wheels must be bundled unmodified from [Python’s package index](https://pypi.org).
- Wheels must include their dependencies.
- Wheels filenames must match Python’s binary distribution specification:
  [see docs](https://packaging.python.org/en/latest/specifications/binary-distribution-format/#file-name-convention).
  *Wheels downloaded from Python’s package index will follow this convention.*
- Use forward slashes as path separators when listing them on the
  [manifest](getting_started.html#extensions-manifest).
user: Show practical ways to work with Advanced Operations in a Blender add-on or script – include code.

assistant: If the web-based interface does not suit your needs, PO-files can be downloaded, edited locally, and uploaded back to
the platform.

### Installing

Before proceeding with translation tasks, ensure the manual builds correctly by following the
[Getting Started](../manual/index.xhtml#about-getting-started) section.

#### Language Files

Run the following command from the manual’s root directory:

```
make checkout_locale
```

You will be prompted to specify the language folder to download. For example, type `fr` for French and press
`Return`. The command creates a `locale/fr` subdirectory after downloading.

Example directory structure:

You should have a directory layout like this:

```
blender-manual
   |- locale/
   |  |- fr/
   |  |  |- LC_MESSAGES/
   |- manual/
```

Alternatively, download the PO files directly from Weblate by navigating to the `Files` menu on the language’s page.

#### PO-File Editor

To edit the PO files, install a PO-file editor to modify the translation files. [Poedit](https://poedit.net/) is
recommended, but other editors are also suitable.

### Building with Translations

To build the manual with translations applied run the following commands in a terminal:

- **Linux/macOS**:

  ```
  make -e BF_LANG=fr
  ```
- **Windows**:

  ```
  set BF_LANG=fr
  make html
  ```

### Editing Translation Files

The PO files in the `LC_MESSAGES` folder include:

- `blender_manual.po`: The main file containing user manual translations.
- `sphinx.po`: A smaller file for translating the website theme.

1. Use the PO editor to open these files. Each entry represents a section of the manual.
2. Translate any untranslated strings using the input field provided by the editor.
3. Save changes and upload the modified `.po` files back to Weblate.

### Maintenance

#### Keeping Track of Fuzzy Strings

When the manual is updated, outdated translations are marked as fuzzy. To track these run:

```
make report_po_progress
```

For a detailed report, run:

```
python tools/translations/report_translation_progress.py locale/fr/
```

This lists files with fuzzy or empty strings. For more options, see:

```
python tools/translations/report_translation_progress.py --help
```

#### Updating PO Files

Administrators regularly update PO files to match the latest English manual (typically weekly). The last update can be
checked on the
[Blender Manual Translations](https://projects.blender.org/blender/blender-manual-translations) project page.

Translators can update files locally using:

```
make update_po
```

However, uploading these files to Weblate is not permitted.
user: How do I use Import in Blender? Include parameters, examples, warnings and best practices.

assistant: ### General

Scale
:   Value by which to scale the imported objects in relation to the world’s origin.

Scene Unit
:   Apply current scene’s unit (as defined by unit scale) to imported data.

Forward Axis, Up Axis
:   Since many applications use a different axis for ‘Up’, these are axis conversion for these settings,
    Forward and Up axes – By mapping these to different axes you can convert rotations
    between applications default up and forward axes.

    Blender uses Y Forward, Z Up (since the front view looks along the +Y direction).
    For example, it’s common for applications to use Y as the up axis, in that case -Z Forward, Y Up is needed.

### Options

Merge Vertices
:   Attempts to combine co-located vertices where possible.

Import Vertex Colors
:   The color space that the color data in the ply-file was saved in.

    None:
    :   Does not import vertex color data.

    sRGB:
    :   Vertex colors in the file are in sRGB [Color Space](../../glossary/index.html#term-Color-Space)

    Linear:
    :   Vertex colors in the file are in Linear [Color Space](../../glossary/index.html#term-Color-Space)
user: Show practical ways to work with Split in a Blender add-on or script – include code.

assistant: The *Split* operator separates the selected portion of a curve from the rest,
creating a new, independent curve segment.
This curve can then be moved or altered without affecting the other curve.

- If a segment of the curve is selected, it will be split off
  as a new curve that can be moved or edited independently.
- If only a single control point is selected, it will be duplicated as a loose control point,
  while the original remains attached to the rest of the curve.
user: Describe Perlin Noise 2D from the Blender manual or Python API, including usage steps and snippets.

assistant: # Perlin Noise 2D

The *Perlin Noise 2D* modifier adds one-dimensional Perlin noise to the stroke. The modifier generates
noisy displacements using 2D coordinates of stroke vertices as the input of the noise generator.

Frequency
:   How dense the noise is (kind of a scale factor along the stroke).

Amplitude
:   How much the noise distorts the stroke in the *Angle* direction.

Seed
:   The seed of the random generator (the same seed over a stroke will always give the same result).

Octaves
:   The “level of detail” of the noise.

Angle
:   In which direction the noise is applied (0.0 is fully horizontal).
user: Explain Mesh in complete detail according to the official Blender documentation.

assistant: Converts the selected curve, metaball, surface, or text object to a mesh object.
The actual defined resolution of these objects will be taken into account for the conversion.
Note that it also keeps the faces and volumes created by closed and extruded curves.
user: Explain AssetRepresentation(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # AssetRepresentation(bpy_struct)

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

*class* bpy.types.AssetRepresentation(*bpy_struct*)
:   Information about an entity that makes it possible for the asset system to deal with the entity as asset

    full_library_path
    :   Absolute path to the .blend file containing this asset

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

    full_path
    :   Absolute path to the .blend file containing this asset extended with the path of the asset inside the file

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

    id_type
    :   The type of the data-block, if the asset represents one (‘NONE’ otherwise)

        Type:
        :   enum in [Id Type Items](bpy_types_enum_items/id_type_items.html#rna-enum-id-type-items), default `'ACTION'`, (readonly)

    local_id
    :   The local data-block this asset represents; only valid if that is a data-block in this file

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

    metadata
    :   Additional information about the asset

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

    name
    :   Type:
        :   string, default “”, (readonly, 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 Development in a Blender add-on or script – include code.

assistant: Being open source, Blender welcomes development from volunteers. Communication between developers is done mostly
through three platforms:

- The [projects.blender.org](https://projects.blender.org/) system
- [Developer Forum](https://devtalk.blender.org/)
- Online Chat (see below)

If you are interested in helping develop Blender, see the [Get Involved](https://www.blender.org/get-involved/)
page.
user: Describe Options from the Blender manual or Python API, including usage steps and snippets.

assistant: Plastic / Wall In / Wall out
:   Plastic is the standard Stucci, while the “walls” is where Stucci gets it name.
    This is a typical wall structure with holes or bumps.

Soft / Hard
:   There are two methods available for working with Noise.

Size
:   Dimension of the Noise table.

Turbulence
:   Depth of the *Stucci* calculations.
user: Give a detailed overview of Relations: syntax, arguments, return values, common patterns.

assistant: # Relations

[image reference removed]

Bone Relations panel.

In this panel you can manage the relationship of this bone with its parent bone.
It also shows the bone collections the bone is assigned to.
user: Show practical ways to work with FunctionNodeRotationToQuaternion(FunctionNode) in a Blender add-on or script – include code.

assistant: # FunctionNodeRotationToQuaternion(FunctionNode)

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

*class* bpy.types.FunctionNodeRotationToQuaternion(*FunctionNode*)
:   Retrieve the quaternion components representing a rotation

    *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: Describe With Automatic Weights from the Blender manual or Python API, including usage steps and snippets.

assistant: *With Automatic Weights* parenting works similar to *With Empty Groups*,
but it will not leave the vertex groups empty. It calculates how much influence a particular bone
would have on vertices based on the distance from those vertices to a particular bone (“bone heat” algorithm).
This influence will be assigned as weights in the vertex groups.

This method of parenting is certainly easier to setup, but it can often lead to armatures which do not deform child
objects in ways you would want. Overlaps can occur when it comes to determining which bones should
influence certain vertices when calculating influences for more complex armatures and child objects.
Symptoms of this confusion are that when transforming the armature in *Pose Mode*,
parts of the child objects do not deform as you expect;
If Blender does not give you the results you require,
you will have to manually alter the weights of vertices in relation to the vertex groups they belong to and
have influence in.
user: How do I use Separate in Blender? Include parameters, examples, warnings and best practices.

assistant: # Separate

At some point, you will come to a time when you need to cut parts away from a mesh to be separate.

To separate an object, the vertices (or faces) must be selected and then separated,
though there are several different ways to do this.

[image reference removed]

Suzanne dissected neatly.

Selection
:   Separates the selected elements.

By Material
:   Separates fragments based on the materials assigned to the different faces.

By Loose Parts
:   Creates one object for every independent (disconnected) fragment of the original mesh.
user: Explain Sidebar in complete detail according to the official Blender documentation.

assistant: # Sidebar

The Sidebar can be toggled with the menu item View ‣ Sidebar
or with the shortcut `N`.

The image below shows two Video Sequencers, one in Preview mode and one in Sequencer mode,
both with their Sidebar open.

[image reference removed]
user: Explain World Operators in complete detail according to the official Blender documentation.

assistant: # World Operators

bpy.ops.world.convert_volume_to_mesh()
:   Convert the volume of a world to a mesh. The world’s volume used to be rendered by EEVEE Legacy. Conversion is needed for it to render properly

    File:
    :   [startup/bl_operators/world.py:26](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/world.py#L26)

bpy.ops.world.new()
:   Create a new world Data-Block
user: How do I use Transform Cache Constraint in Blender? Include parameters, examples, warnings and best practices.

assistant: # Transform Cache Constraint

The *Transform Cache Constraint* streams an animation from an
[Alembic](../../../files/import_export/alembic.html) or [USD](../../../files/import_export/usd.html)
file. For example, it can apply a baked rigid body simulation to an object.

The constraint is automatically added when importing such a file. However, it only applies
to transforms (location/rotation/scale of the whole object). For animations that cause
deformation, the [Mesh Sequence Cache Modifier](../../../modeling/modifiers/modify/mesh_sequence_cache.html) is used instead.
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Resolution
:   Number of edges on the arc.

Radius
:   The radius of the arc. *Radius* mode only.

Start Angle
:   Starting angle of the arc. *Radius* mode only.

Sweep Angle
:   Length of the arc. *Radius* mode only.

Connect Center
:   Connect the arc at the center.

Invert Arc
:   Invert and draw opposite arc.

Start, Middle, End
:   The three points on the arc. *Points* mode only.
    The order of the points determines the direction (clockwise or counterclockwise) of the arc.
    The arc will always draw from Start to End via the Middle point. This can be changed by using
    the Invert Arc option.

Offset Angle
:   Offset angle of the arc. *Points* mode only.
user: Give a detailed overview of Particle Edit Disconnected Hair Brush Items: syntax, arguments, return values, common patterns.

assistant: # Particle Edit Disconnected Hair Brush Items

COMB:
:   Comb.

    Comb hairs.

SMOOTH:
:   Smooth.

    Smooth hairs.

LENGTH:
:   Length.

    Make hairs longer or shorter.

CUT:
:   Cut.

    Cut hairs.

WEIGHT:
:   Weight.

    Weight hair particles.
user: Describe Output from the Blender manual or Python API, including usage steps and snippets.

assistant: Face Set
:   Integer indicating which face set a face is in, or 0 when the mesh does not have face sets.
    When evaluated in the edge or point domain, outputs an interpolated value based on the connected faces.

Exists
:   Boolean value that indicates whether the element’s mesh has face sets.
user: Describe Inputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Mask Type
:   Operation to use against the input mask.

    Add:
    :   This yields the *union* of the input mask and the generated mask:
        Areas covered by the generated mask are set to the specified *Value*.
        Other parts of the input masked are passed through unchanged, or set to black if there is no input mask.

    Subtract:
    :   Values of the input mask have the specified *Value* subtracted from them.

    Multiply:
    :   This yields the *intersection* of this generated mask and the input mask:
        Values of the input mask are multiplied by the specified *Value* for the area covered by the generated mask.
        All other areas become black.

    Not:
    :   Any area covered by both the input mask and the generated mask becomes black.
        Areas covered by the generated mask that are black on the input mask become the specified *Value*.
        Areas uncovered by the generated mask remain unchanged.

Mask
:   An optional mask to use as the base for mask operations.

Value
:   Intensity of the generated mask.

Position
:   Position of the center of the box as a fraction of the total width or height.
    (0.5, 0.5 creates a centered box; 0.0, 0.0 creates a box in the lower left.)

Size
:   Width/height of the box as a fraction of the total image width.

Rotation
:   Rotation of the box around its center point.
user: Provide the full official documentation entry for Properties, preserving all code examples.

assistant: Operation
:   The boolean operation to perform between the input SDF grids:

    Intersect:
    :   Keeps only the overlapping region of the two grids where both contain
        interior (negative) values.

    Union:
    :   Combines both grids by taking the minimum distance at each voxel.
        The resulting grid contains the merged shape of both inputs.

    Difference:
    :   Subtracts the second grid from the first by inverting its sign and then
        taking the maximum distance.
        Useful for cutting holes or carving one SDF out of another.
user: How do I use Workflow in Blender? Include parameters, examples, warnings and best practices.

assistant: # Workflow

Depending on the original footage’s properties, achieving good stabilization results might be simple and easy,
or it might require some work, dedication and careful planning. This section covers some practical considerations
to help improving the results.
user: What is Integration and how is it used in Blender Python scripting?

assistant: Integrators are a set of mathematical methods available to calculate the movement of particles.
The following guidelines will help to choose a proper integrator,
according to the behavior aimed at by the animator.

Integration
:   Euler
    :   Also known as “Forward Euler”. Simplest integrator.
        Very fast but also with less exact results.
        If no dampening is used, particles get more and more energy over time.
        For example, bouncing particles will bounce higher and higher each time.
        Should not be confused with “Backward Euler” (not implemented) which has the opposite feature,
        the energy decrease over time, even with no dampening.
        Use this integrator for short simulations or simulations with a lot of
        dampening where speedy calculations are more important than accuracy.

    Verlet
    :   Very fast and stable integrator, energy is conserved over time with very little numerical dissipation.

    Midpoint
    :   Also known as “2nd order Runge-Kutta”. Slower than Euler but much more stable.
        If the acceleration is constant (no drag for example), it is energy conservative.
        It should be noted that in example of the bouncing particles,
        the particles might bounce higher than they started once in a while, but this is not a trend.
        This integrator is a generally good integrator for use in most cases.

    RK4
    :   Short for “4th order Runge-Kutta”. Similar to Midpoint but slower and in most cases more accurate.
        It is energy conservative even if the acceleration is not constant.
        Only needed in complex simulations where Midpoint is found not to be accurate enough.

Timestep
:   The amount of simulation time (in seconds) that passes during each frame.

Subframes
:   The number of simulation steps per frame.
    Subframes to simulate for improved stability and finer granularity in simulations.
    Use higher values for faster-moving particles.

The following options are only available for Fluid type physics:

Adaptive
:   Automatically set the number of subframes.

    Threshold
    :   A tolerance value that allows the number of subframes to vary.
        It sets the relative distance a particle can move before requiring more subframes.

        The number of steps per frame will be at least Subframes + 1.
        More subframes may be simulated if the fluid becomes turbulent, according to the Threshold.
user: Describe Bevel Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Bevel Node

Cycles Only

[image reference removed]

The Bevel shader node can be used for rendering rounded corners.
Like bump mapping, this does not modify the actual geometry, only the shading is affected.
Slight rounding on edges helps to capture specular highlights that you would also see in the real world.

Note that this is a very expensive shader, and may slow down renders
by 20% even if there is a lot of other complexity in the scene.
For that reason, we suggest to mainly use this for baking or
still frame renders where render time is not as much of an issue.
The [Bevel Modifier](../../../modeling/modifiers/generate/bevel.html) is a faster option when it works,
but sometimes fails on complex or messy geometry.
user: Explain GeometryNodeSetMaterialIndex(GeometryNode) in complete detail according to the official Blender documentation.

assistant: # GeometryNodeSetMaterialIndex(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.GeometryNodeSetMaterialIndex(*GeometryNode*)
:   Set the material index for each selected geometry element

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Set as Background
:   See [Set as Background](../editing/clip.xhtml#bpy-ops-clip-set-viewport-background).

Setup Tracking Scene
:   See [Setup Tracking Scene](../editing/clip.xhtml#bpy-ops-clip-setup-tracking-scene).
user: How do I use Shrinkwrap Modifier in Blender? Include parameters, examples, warnings and best practices.

assistant: # Shrinkwrap Modifier

The *Shrinkwrap* modifier allows an object to “shrink” to the surface of another object.
It moves each vertex of the object being modified to the closest position on
the surface of the given mesh (using one of the four methods available).

It can be applied to meshes, lattices, curves, surfaces and texts.
user: How do I use Introduction in Blender? Include parameters, examples, warnings and best practices.

assistant: # Introduction

Vertex Painting is a simple way of painting color onto a Grease Pencil object,
by directly manipulating the color of points/vertices, rather than use only the materials base color.

[image reference removed]

Stroke with original base material color (left) and with vertex painting (right).

When a point is painted, the color of the points is mixing with the base material color according to
the settings of the brush.
user: How do I use Lasso Gestures in Blender? Include parameters, examples, warnings and best practices.

assistant: Dragging creates a freeform area that follows the cursor defined by where `LMB` was pressed and where `LMB`
is released.

### Controls

Move `Spacebar`
:   Hold to reposition the selection area.

### Tool Settings

Stabilize Stroke
:   Helps to reduce jitter of the strokes while drawing by delaying and correcting the location of points.

    Radius
    :   Minimum distance from the last point before the stroke continues.

    Factor
    :   A smooth factor, where higher values result in smoother strokes
        but the drawing sensation feels as if you were pulling the stroke.
user: What is NodeSocketVectorTranslation4D(NodeSocketStandard) and how is it used in Blender Python scripting?

assistant: # NodeSocketVectorTranslation4D(NodeSocketStandard)

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

*class* bpy.types.NodeSocketVectorTranslation4D(*NodeSocketStandard*)
:   3D vector socket of a node

    default_value
    :   Input value used for unconnected socket

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

    links
    :   List of node links from or to this socket.

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

        (readonly)

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Describe Sidebar from the Blender manual or Python API, including usage steps and snippets.

assistant: The *Sidebar* (on the right side of the editor area)
contains [Panels](tabs_panels.html#ui-panels)
with settings of objects within the editor and the editor itself.
`N` toggles the visibility of the Sidebar.
user: How do I use Graph View in Blender? Include parameters, examples, warnings and best practices.

assistant: # Graph View

The graph or curves view has numerous purposes based on the color of the lines.
The red and green lines on the graph show you the speed of the trackers at a given frame.
Green is vertical movement, Red is horizontal. Therefore the first frames will always be at zero.

The blue line is the line that comes out when you click on the film strip is the average per-frame error.
This curve is available only after pressing camera solve and is not editable.
This is the one line that you want to be as flat as possible and as closer to zero as you can.
The high points will show you where in your shot you are having inaccurate tracking.

Frames outside of scene frame range are darkened.

[image reference removed]

Graph View.
user: How do I use NodeSocketVectorXYZ(NodeSocketStandard) in Blender? Include parameters, examples, warnings and best practices.

assistant: # NodeSocketVectorXYZ(NodeSocketStandard)

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

*class* bpy.types.NodeSocketVectorXYZ(*NodeSocketStandard*)
:   3D vector socket of a node

    default_value
    :   Input value used for unconnected socket

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

    links
    :   List of node links from or to this socket.

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

        (readonly)

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: What is Download Blender and how is it used in Blender Python scripting?

assistant: Blender offers a variety of different binary packages to choose from depending on their level of stability. Each
package has the trade off of newest features versus stability. The package that is right for you depends on your
requirements for those two. A studio, for example, might want to have *long-term support*, while a hobbyist may want
newer features, while others may just want to test upcoming features. Each package described below has something just
right for everyone.

[Stable Release](https://www.blender.org/download/)
:   A package that contains the latest features and is considered stable without regressions. A new stable version is
    available roughly every three months.

[Long-term Support](https://www.blender.org/download/lts/)
:   A package designed for long-lasting projects requiring a very stable version of Blender. LTS releases are supported for two years and will not have any new features, API changes or
    improvements. A new long-term support version is available every year. *These LTS releases will occasionally have
    minor patches (such as 4.2.6) which improve stability or fix critical bugs.*

[Daily Builds](https://builder.blender.org/download/)
:   A package updated daily to include the newest changes in development. These versions are automatically built on a
    schedule. They are not as thoroughly tested as the release types above, and might break or crash. Builds marked as
    **Alpha** are still undergoing major changes and feature additions, while those marked **Beta** are
    feature-complete and are under development for refinement and stability.

    Stability can be expected to increase from Alpha to Beta to Release Candidate (RC) to a final release.

[Build from Source](https://developer.blender.org/docs/handbook/building_blender/)
:   Blender’s source code is available for free to either reference or to build and use. While normal users are
    **not** expected to compile Blender, it does have advantages:

    - Blender is always up to date.
    - It allows access to any version or branch where a feature is being developed.
    - It can be freely customized.
    - Curious users can look through the source code and make small changes to see the effects to better understand how
      Blender works.

The procedure for installing a binary, either the latest stable release or a daily build, is the same. Follow the
steps for your platform listed below.
user: What is Reroute Node and how is it used in Blender Python scripting?

assistant: # Reroute Node

A node used primarily for organization.
Reroute looks and behaves much like a socket on other nodes in that it supports one input
connection while allowing multiple output connections.

To quickly add a Reroute node into an existing connection, hold `Shift` and `RMB`
while sweeping across the link to add a *Reroute node*.

[image reference removed]
user: Provide the full official documentation entry for Outputs, preserving all code examples.

assistant: Normal
:   Normal vector output.

Dot
:   Dot product output. The dot product is a scalar value.

    - If two normals are pointing in the same direction the dot product is 1.
    - If they are perpendicular the dot product is zero (0).
    - If they are antiparallel (facing directly away from each other) the dot product is -1.
user: Show practical ways to work with Cycles and EEVEE Differences in a Blender add-on or script – include code.

assistant: The number of iterations in *Cycles* must evaluate to a constant value.
This means the number of iterations can’t be driven by [Input Nodes](../input/index.xhtml) or [Texture Nodes](../textures/index.xhtml).

[image reference removed]

Error shown when *Cycles* is selected as the active *Render Engine*.

*EEVEE* doesn’t have this limitation, so the number of iterations can be driven by any type of node.
user: Show practical ways to work with Add-ons in a Blender add-on or script – include code.

assistant: # Add-ons

The Add-ons section lets you manage secondary scripts, called “Add-ons” that extends Blender’s functionality.
Most of the time you can get add-ons as part of the [Extensions](../../advanced/extensions/index.xhtml#extensions-index) system.

In this section you can search, install, enable and disable Add-ons.

[image reference removed]

Blender Preferences Add-ons section.
user: Show practical ways to work with Example in a Blender add-on or script – include code.

assistant: Rim Effect samples (Mode: Add).

|  |  |  |  |
| --- | --- | --- | --- |
| ../../_images/grease-pencil_visual-effects_rim_original.png   Original image. | ../../_images/grease-pencil_visual-effects_rim_no-blur.png   No blur. | ../../_images/grease-pencil_visual-effects_rim_blur.png   Blur. | ../../_images/grease-pencil_visual-effects_rim_mask.png   Mask color: Black. |
user: Explain CompositorNodeDenoise(CompositorNode) in complete detail according to the official Blender documentation.

assistant: # CompositorNodeDenoise(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.CompositorNodeDenoise(*CompositorNode*)
:   Denoise renders from Cycles and other ray tracing renderers

    *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: Show practical ways to work with Lists in a Blender add-on or script – include code.

assistant: Lists are used to clearly present sequential or grouped items:

Bullet List

```
- First item
- Second item
- Third item
```

Numbered List:

```
#. First step
#. Second step
#. Third step
```

Definition List:

```
Term
   Definition text here.
```
user: What is Options and how is it used in Blender Python scripting?

assistant: Primitive
:   Ball
    :   Adds a meta with a point underlying structure.

    Capsule
    :   Adds a meta with a line segment underlying structure.

    Plane
    :   Adds a meta with a planar underlying structure.

    Ellipsoid
    :   Adds a meta with an ellipsoidal underlying structure.

    Cube
    :   Adds a meta with a volumetric cubic underlying structure.

Radius, Align to View, Location, Rotation
:   See [Common Object Options](../../scene_layout/object/types.xhtml#object-common-options).
user: Give a detailed overview of Options: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

The Subdivide modifier.

Subdivision Type
:   Catmull-Clark:
    :   Subdivides and smooths the surfaces.

    Simple:
    :   Only subdivides the surfaces, without any smoothing.

Subdivisions
:   Recursively adds more points.

### Influence

See [Influence Filters](../introduction.html#grease-pencil-modifier-influence-filters).
user: Provide the full official documentation entry for Distorted Noise, preserving all code examples.

assistant: # Distorted Noise

*Distortion Noise* takes the option that you pick from *Noise Basis* and filters it, to create hybrid pattern.
It is often used for grunge but is also very complex and versatile.

[image reference removed]

Distorted Noise Texture panels.