PGCRYPT/OpenBlender_Train huggingface dataset:
user: Give a detailed overview of Creating Catalogs: syntax, arguments, return values, common patterns.

assistant: New catalogs can be created in the [Asset Browser](../../editors/asset_browser.xhtml)
through Header ‣ Catalog ‣ New Asset Catalog.
Once the catalog is created you can double `LMB` on it’s name in the
*Source List* region of the editor to give the catalog a more descriptive name.
Catalogs can also be created in this region by clicking the plus icon found at the top of the tree view.
user: Describe Properties from the Blender manual or Python API, including usage steps and snippets.

assistant: Sky Type
:   Sky model to use.

    Single Scattering
    :   Improved version of the 1993
        [model](https://www.scratchapixel.com/lessons/procedural-generation-virtual-worlds/simulating-sky/simulating-colors-of-the-sky.html)
        by Nishita et al, accounts for single bounces in the atmosphere.
        This is legacy and may be removed in a future version.

    Multiple Scattering
    :   Based on [this](https://fgarlin.com/blog/spectral-sky/) work by Fernando García Liñán, it is the most accurate model as it accounts for multiple bounces of light in the atmosphere.

    Preetham
    :   Based on the 1999 [paper](https://doi.org/10.1145/311535.311545) by Preetham et al.
        This is legacy and will be removed in a future version.

    Hosek/Wilkie
    :   Based on the 2012 [paper](https://cgg.mff.cuni.cz/projects/SkylightModelling/) by Hosek and Wilkie.
        This is legacy and will be removed in a future version.

Sun Direction
:   Sun direction vector.

Turbidity
:   Atmospheric turbidity.

    - 2: Arctic like
    - 3: clear sky
    - 6: warm/moist day
    - 10: hazy day

Ground Albedo
:   Amount of light reflected from the planet surface back into the atmosphere.

Sun Disc Cycles Only
:   Enable/Disable sun disc lighting.

Sun Size
:   Angular diameter of the sun disc (in degrees).

Sun Intensity
:   Multiplier for sun disc lighting.

Sun Elevation
:   Rotation of the sun from the horizon (in degrees).

Sun Rotation
:   Rotation of the sun around the zenith (in degrees).

Altitude
:   The distance from sea level to the location of the camera.
    For example, if the camera is placed on a beach then a value of 0 should be used.
    However, if the camera is in the cockpit of a flying airplane then a value of 10 km will be more suitable.

Air
:   Density of air molecules.
    A value of 1 corresponds roughly to urban city air, while 0 is no air.

Aerosols
:   Density of aerosol particles (water droplets).
    A value of 1 corresponds roughly to urban city aerosols, while 0 is no aerosols.

Ozone
:   Density of ozone molecules; useful to make the sky appear bluer.
    A value of 1 corresponds roughly to urban city ozone, while 0 is no ozone.
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`ActionLayer.strips`](bpy.types.ActionLayer.html#bpy.types.ActionLayer.strips "bpy.types.ActionLayer.strips") - [`ActionStrips.new`](bpy.types.ActionStrips.html#bpy.types.ActionStrips.new "bpy.types.ActionStrips.new") | - [`ActionStrips.remove`](bpy.types.ActionStrips.html#bpy.types.ActionStrips.remove "bpy.types.ActionStrips.remove") |
user: Describe Inputs from the Blender manual or Python API, including usage steps and snippets.

assistant: ### Absorption

Coefficients
:   Probability density per color channel that light is absorbed per unit distance traveled in the medium.
    It is equivalent to \((1-\text{Color}) \times \text{Density}\) in
    [Volume Absorption](volume_absorption.html#bpy-types-shadernodevolumeabsorption).

### Scatter

Coefficients
:   Probability density per color channel of an out-scattering event occurring per unit distance traveled in the
    medium. It is equivalent to \(\text{Color} \times \text{Density}\) in
    [Volume Scatter](volume_scatter.html#bpy-types-shadernodevolumescatter).

Anisotropy Henyey-Greenstein Draine
:   Controls the relative amount of backward and forward scattering.

IOR Fournier-Forand
:   Refractive index of the scattering particles relative to water. Common ocean waters range between
    1.0 and 1.2, while turbid waters with higher density of particles have higher IORs.

Backscatter Fournier-Forand
:   Fraction of light that is scattered backwards. Most oceanic particles have backscatter
    values between 0.001 (e.g., very large phytoplankton) and 0.1 (e.g., very small mineral particles),
    pure water has a backscatter of 0.5. Values taken from
    [Ocean Optics Web Book](https://www.oceanopticsbook.info/view/scattering/the-fournier-forand-phase-function).

Alpha Draine
:   Blending factor between Henyey-Greenstein (\(\alpha = 0\))
    and Cornette & Shanks (\(\alpha = 1\)) phase functions.

Diameter Mie
:   Diameter of the scattering particles in µm.

### Emission

Coefficients
:   Emitted radiance per color channel that is added to a ray per unit distance.
    It is equivalent to \(\text{Color} \times \text{Strength}\) in [Emission](emission.html#bpy-types-shadernodeemission).
user: Give a detailed overview of Inputs: syntax, arguments, return values, common patterns.

assistant: Image
:   Standard color input. If no image is selected, an image filled with the selected color is used.
    You can use and crop this image in combination with another background image.

X
:   The X position of the lower left corner of the crop region.

Y
:   The Y position of the lower left corner of the crop region.

Width
:   The width of the crop region.

Height
:   The height of the crop region.

Alpha Crop
:   Sets the areas outside of the crop region to be transparent instead of actually cropping the size of the image.
user: Show practical ways to work with Properties in a Blender add-on or script – include code.

assistant: Spline Type
:   The type to convert the splines in the selection to.
    Read the [Spline Types](../../../curves/structure.html#curve-spline-types) page for more details
    on the different spline types.

    Bézier:
    :   Convert to a Bézier spline. A spline converted from a poly spline gets vector handles,
        while one converted from NURBS or Catmull Rom spline gets auto handles.

    NURBS:
    :   Convert to a NURBS spline.

    Poly:
    :   Convert to a poly spline.

    Catmull Rom:
    :   Convert to a Catmull Rom spline.
user: Explain Viewport Display in complete detail according to the official Blender documentation.

assistant: # Viewport Display

Rendered
:   Display hair as curves.

Path
:   Display just the end points of the hairs.

Steps
:   The number of segments (control points minus 1) of the hair strand.
    In between the control points the segments are interpolated. The number of control points is important:

    - For the soft body animation, because the control points are animated like vertices,
      so more control points mean longer calculation times.
    - For the interactive editing, because you can only move the control points
      (but you may recalculate the number of control points in *Particle Edit Mode*).
user: Show practical ways to work with Introduction in a Blender add-on or script – include code.

assistant: # Introduction

Blender’s physics system allows you to simulate a number of different real-world physical phenomena.
You can use these systems to create a variety of static and dynamic effects such as:

- Hair, grass, and flocks
- Rain
- Smoke and dust
- Water
- Cloth
- Jello
- etc.
user: Explain EQCurveMappingData(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # EQCurveMappingData(bpy_struct)

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

*class* bpy.types.EQCurveMappingData(*bpy_struct*)
:   EQCurveMappingData

    curve_mapping
    :   Type:
        :   [`CurveMapping`](bpy.types.CurveMapping.html#bpy.types.CurveMapping "bpy.types.CurveMapping"), (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: Provide the full official documentation entry for Python Console, preserving all code examples.

assistant: # Python Console

The Python Console offers a quick way to test code snippets and explore Blender’s API.
It executes whatever you type on its `>>>` prompt and has command history and auto-complete.

[image reference removed]

Python Console.
user: Show practical ways to work with face.skin_jaw in a Blender add-on or script – include code.

assistant: Implements a skin system [parent controller](skin.html#rigify-rigs-skin-skin-parents) that manages
one or more loops of mouth skin chains in response to the movement of jaw and mouth controls.

The rig must have one or more child chain loops, each formed by four skin chains tagged
with `.T`/`.B` and `.L`/`.R` symmetrical names.

The lip loops are sorted into layers based on the distance from corners to the common
center and rigged with blended influence of the jaw and the master mouth control.
Other child rigs become children of the jaw.

Bottom Lip Influence
:   Specifies the influence of the jaw on the inner bottom lip with mouth lock disabled.

Locked Influence
:   Specifies the influence of the jaw on both lips of locked mouth.

Secondary Influence Falloff
:   Specifies the factor by which influence fades away with each successive lip loop
    (for bottom lip loops the blend moves away from inner bottom lip to full jaw influence).
user: What is Camera Operators and how is it used in Blender Python scripting?

assistant: # Camera Operators

bpy.ops.camera.preset_add(*\**, *name=''*, *remove_name=False*, *remove_active=False*, *use_focal_length=False*)
:   Add or remove a Camera Preset

    Parameters:
    :   - **name** (*string**,* *(**optional**,* *never None**)*) – Name, Name of the preset, used to make the path name
        - **remove_name** (*boolean**,* *(**optional**)*) – remove_name
        - **remove_active** (*boolean**,* *(**optional**)*) – remove_active
        - **use_focal_length** (*boolean**,* *(**optional**)*) – Include Focal Length, Include focal length into the preset

    File:
    :   [startup/bl_operators/presets.py:119](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/presets.py#L119)

bpy.ops.camera.safe_areas_preset_add(*\**, *name=''*, *remove_name=False*, *remove_active=False*)
:   Add or remove a Safe Areas Preset

    Parameters:
    :   - **name** (*string**,* *(**optional**,* *never None**)*) – Name, Name of the preset, used to make the path name
        - **remove_name** (*boolean**,* *(**optional**)*) – remove_name
        - **remove_active** (*boolean**,* *(**optional**)*) – remove_active

    File:
    :   [startup/bl_operators/presets.py:119](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/presets.py#L119)
user: Show practical ways to work with Bpy.Types.Spacefilebrowser in a Blender add-on or script – include code.

assistant: port issue on this page On this page SpaceFileBrowser(Space) SpaceFileBrowser SpaceFileBrowser.active_operator SpaceFileBrowser.bookmarks SpaceFileBrowser.bookmarks_active SpaceFileBrowser.browse_mode SpaceFileBrowser.operator SpaceFileBrowser.params SpaceFileBrowser.recent_folders SpaceFileBrowser.recent_folders_active SpaceFileBrowser.show_region_tool_props SpaceFileBrowser.show_region_toolbar SpaceFileBrowser.show_region_ui SpaceFileBrowser.system_bookmarks SpaceFileBrowser.system_bookmarks_active SpaceFileBrowser.system_folders SpaceFileBrowser.system_folders_active SpaceFileBrowser.activate_asset_by_id() SpaceFileBrowser.activate_file_by_relative_path() SpaceFileBrowser.deselect_all() SpaceFileBrowser.bl_rna_get_subclass() SpaceFileBrowser.bl_rna_get_subclass_py() SpaceFileBrowser.draw_handler_add() SpaceFileBrowser.draw_handler_remove() Inherited Properties Inherited Functions
user: Provide the full official documentation entry for Adaptive Resolution, preserving all code examples.

assistant: # Adaptive Resolution

In order for sculpting to give accurate and predictable results, Blender needs enough geometry.
Instead of starting out with a highly subdivided mesh, add geometry dynamically
by using either of the following adaptive sculpting methods.
user: How do I use Options in Blender? Include parameters, examples, warnings and best practices.

assistant: [image reference removed]

The Boolean modifier.

Operation
:   Intersect:
    :   Only keep the volume that’s inside the modified mesh and all of the source meshes.

    Union:
    :   Add the source meshes to the modified mesh while removing any interior faces.

    Difference:
    :   Cut the source meshes out of the modified mesh.

Operand Type
:   Object:
    :   The source is a single mesh object.

    Collection:
    :   The source is a collection of any number of mesh objects.
        If the *Solver* is *Float*, the *Intersect* operation is not allowed.

Object
:   The source mesh object.

Collection
:   The source collection. May be empty if *Solver* is *Exact*,
    in which case the modifier simply removes the modified mesh’s
    interior (self-intersecting) geometry.

Solver
:   Algorithm used to perform the Boolean operation.

    Float:
    :   Uses a simple solver which offers the good performance;
        however, this solver lacks support for overlapping geometry.

    Exact:
    :   Uses a complex solver which offers the best results and has full
        support for overlapping geometry; however, this solver is much slower.

    Manifold:
    :   Uses a solver that is usually fastest but only works on [Manifold](../../../glossary/index.xhtml#term-Manifold) meshes,
        (plus the special case of Difference with a plane).

### Solver Options

Materials Exact Solver
:   Method for setting materials on the new faces.

    Index Based:
    :   Map the [first material](../../../render/materials/assignment.xhtml#bpy-types-materialslot) of the source mesh to the first material
        of the modified mesh, the second to the second, and so on. If a source face has a higher
        material index than the number of material slots on the modified mesh, the modified mesh’s
        first material is used.

    Transfer:
    :   Use the same materials as on the source mesh, adding new material slots to the modified mesh
        as necessary. For empty slots, fall back to using the same material index as the source mesh.

Self Intersection Exact Solver
:   Correctly handle self-intersection in the participating meshes, at the cost of performance.

Hole Tolerant Exact Solver
:   Optimizes the Boolean output for [Non-manifold](../../../glossary/index.xhtml#term-Non-manifold) geometry
    at the cost of increased computational time.
    Because of the performance impact, this option should only be enabled
    when the *Exact* solver demonstrates errors with non-manifold geometry.

Overlap Threshold Float Solver
:   Maximum distance between two faces to consider them as overlapping.
    This helps solve the limitation of this solver.
    If the result is still not as expected, try using the *Exact* solver.
user: Show practical ways to work with Using Image Output vs Using Original Image in a Blender add-on or script – include code.

assistant: Using Image output scales, moves, and skews the input image according to the track
while using the original image and mixing it with the movie clip using Plane output as factor
will display the part of the image that lies inside that mask. This image shows the difference:

[image reference removed]

Comparison between image output and original image (see Viewer nodes carefully).
user: What is GeometryNodeSetGreasePencilColor(GeometryNode) and how is it used in Blender Python scripting?

assistant: # GeometryNodeSetGreasePencilColor(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.GeometryNodeSetGreasePencilColor(*GeometryNode*)
:   Set color and opacity attributes on Grease Pencil geometry

    mode
    :   - `STROKE`
          Stroke – Set the color and opacity for the points of the stroke.
        - `FILL`
          Fill – Set the color and opacity for the stroke fills.

        Type:
        :   enum in [`'STROKE'`, `'FILL'`], default `'STROKE'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Explain Texture Type Items in complete detail according to the official Blender documentation.

assistant: # Texture Type Items

NONE:
:   None.

BLEND:
:   Blend.

    Procedural - create a ramp texture.

CLOUDS:
:   Clouds.

    Procedural - create a cloud-like fractal noise texture.

DISTORTED_NOISE:
:   Distorted Noise.

    Procedural - noise texture distorted by two noise algorithms.

IMAGE:
:   Image or Movie.

    Allow for images or movies to be used as textures.

MAGIC:
:   Magic.

    Procedural - color texture based on trigonometric functions.

MARBLE:
:   Marble.

    Procedural - marble-like noise texture with wave generated bands.

MUSGRAVE:
:   Musgrave.

    Procedural - highly flexible fractal noise texture.

NOISE:
:   Noise.

    Procedural - random noise, gives a different result every time, for every frame, for every pixel.

STUCCI:
:   Stucci.

    Procedural - create a fractal noise texture.

VORONOI:
:   Voronoi.

    Procedural - create cell-like patterns based on Worley noise.

WOOD:
:   Wood.

    Procedural - wave generated bands or rings, with optional noise.
user: Provide the full official documentation entry for Animating Audio Track Properties, preserving all code examples.

assistant: To animate Sound strips simply hit `I` over any of its values.
Examples of animating an audio strip are to fade in/out background music or to adjust volume levels.
Layered/crossed Sound strips are added together;
the lower channel does not override and cut out higher channels (unlike image and video strips).
This makes Blender an audio mixer.
By adding audio tracks and using the curves to adjust each tracks sound level,
you have an automated dynamic multi-track audio mixer!
user: How do I use Using the Test Grid in Blender? Include parameters, examples, warnings and best practices.

assistant: If your image is a base uniform pattern and
you want the application of that image to your model to look like cloth,
you do **not** want any stretching (unless you want the cloth to look like spandex).
You may also need to test your UV mapping with a test image:

|  |  |
| --- | --- |
| <../../../_images/modeling_meshes_uv_applying-image_test-grid-uvs.png>   The test grid applied to the UVs. | <../../../_images/modeling_meshes_uv_applying-image_test-grid-geometry.png>   A preview of the texture on the geometry. |

When you render, the mesh will have the test grid as its colors,
and the UV texture will be the size image you specified.
Note that Blender has a built-in test image. To use it, press the New button of the data-block menu
in the Image editor header and change the *Generated Type* to UV Grid.

### Modifying Your Image Texture

The advantage to saving as a separate file is that you can easily switch textures just by
copying other image files over it, and you can use external editing programs to work on it.
The advantage of packing is that your whole project is kept in the blend-file,
and that you only have to manage one file.
user: Describe Subdivide from the Blender manual or Python API, including usage steps and snippets.

assistant: The *Subdivide* operator adds new control points to selected curve segments by dividing them into smaller sections.
This is useful for creating smoother transitions, preparing curves for finer adjustments,
or adding more detail for animation or modeling.

Number of Cuts
:   Specifies the number of divisions for each selected segment; each cut adds one new control point per segment.
user: Show practical ways to work with Outputs in a Blender add-on or script – include code.

assistant: Position
:   Closest location on the surface of the target mesh, or the closest point in the target point cloud
    in *Points* mode.

Distance
:   Distance (as floating-point value) from the source position to the closest location in the target.

Is Valid
:   Whether the sampling was successful. It can fail when the sampled group is empty.
user: Show practical ways to work with Curve in a Blender add-on or script – include code.

assistant: Converts the selected mesh or text object into a curve object.

- **For mesh objects**: Only loose edges (edges not part of any faces) will be included in the conversion.
- **For text objects**: The text is converted into curve outlines, preserving its shape.

The resulting curve will be [Poly Curve](../../../modeling/curves/structure.xhtml#curve-poly) by default.
To create smooth segments, convert the curve to a [Bézier Curve](../../../modeling/curves/structure.xhtml#curve-bezier)
using [Set Spline Type](../../../modeling/curves/editing/curve.xhtml#bpy-ops-curve-spline-type-set).
user: Give a detailed overview of GeometryNodeImportText(GeometryNode): syntax, arguments, return values, common patterns.

assistant: # GeometryNodeImportText(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.GeometryNodeImportText(*GeometryNode*)
:   Import a string from a text file

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

assistant: |  |  |
| --- | --- |
| - [`bpy.context.curve`](bpy.context.html#bpy.context.curve "bpy.context.curve") - [`BlendData.curves`](bpy.types.BlendData.html#bpy.types.BlendData.curves "bpy.types.BlendData.curves") - [`BlendDataCurves.new`](bpy.types.BlendDataCurves.html#bpy.types.BlendDataCurves.new "bpy.types.BlendDataCurves.new") | - [`BlendDataCurves.remove`](bpy.types.BlendDataCurves.html#bpy.types.BlendDataCurves.remove "bpy.types.BlendDataCurves.remove") - [`Object.to_curve`](bpy.types.Object.html#bpy.types.Object.to_curve "bpy.types.Object.to_curve") |
user: Explain Python in Blender in complete detail according to the official Blender documentation.

assistant: Blender has an embedded Python interpreter which is loaded when Blender is started
and stays active while Blender is running. This interpreter runs scripts to draw the user interface
and is used for some of Blender’s internal tools as well.

Blender’s embedded interpreter provides a typical Python environment, so code from tutorials
on how to write Python scripts can also be run with Blender’s interpreter. Blender provides its
Python modules, such as `bpy` and [`mathutils`](mathutils.html#module-mathutils "mathutils"), to the embedded interpreter so they can
be imported into a script and give access to Blender’s data, classes, and functions.
Scripts that deal with Blender data will need to import the modules to work.

Here is a simple example which moves a vertex attached to an object named “Cube”:

```
import bpy
bpy.data.objects["Cube"].data.vertices[0].co.x += 1.0
```

This modifies Blender’s internal data directly.
When you run this in the interactive console you will see the 3D Viewport update.
user: How do I use Keying Nodes in Blender? Include parameters, examples, warnings and best practices.

assistant: # Keying Nodes

These nodes give you the essential tools for creating a [Matte](../../../glossary/index.xhtml#term-Matte) for images
that do not already have their own [Alpha Channel](../../../glossary/index.xhtml#term-Alpha-Channel).
One usage scenario is blue-screen or green-screen footage,
where live action is shot in front of a blue or green backdrop for replacement by
a matte painting or virtual background.

In general, hook up these nodes to a viewer, set your Image Editor to show the Viewer node,
and play with the sliders in real-time using a sample image from the footage,
to get the settings right. In some cases,
small adjustments can eliminate artifacts or foreground image degradation.
Taking out too much green can result in foreground actors looking flat or bluish/purplish.

You can and should chain these nodes together,
improving your masking and color correction in successive refinements,
using each node’s strengths to operate on the previous node’s output.
[Keying Node](keying.xhtml) is the closest to a “does-it-all” node
for green screens, but the best results stem from a combination of techniques.
user: Describe Piston Constraint from the Blender manual or Python API, including usage steps and snippets.

assistant: # Piston Constraint

A piston permits translation along the X axis of the constraint object.
It also allows rotation around the X axis of the constraint object.
It is like a combination of the freedoms of a slider with the freedoms of a hinge
(neither of which is very free alone).
user: How do I use Field Weights in Blender? Include parameters, examples, warnings and best practices.

assistant: # Field Weights

These settings determine how much gravity and
[Force Fields](../../../forces/force_fields/index.html) affect the fluid.

Effector Collection
:   When set, fluid can only be influenced by force fields in the specified collection.

Gravity
:   How much the fluid is affected by Gravity.

All
:   Overall influence of all force fields.

The other settings determine how much influence individual force field types have.
user: Describe Spline Resolution Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Spline Resolution Node

[image reference removed]

The *Spline Resolution* outputs the number of evaluated curve points that will be generated for
every control point on the spline. This node works for NURBS, Bézier, and Catmull Rom splines.

For poly splines, there is a one-to-one correspondence between original points and evaluated points,
so the resolution does not have an effect.

On Bézier splines, the resolution does not have an effect on segments between vector handles,
since there are no extra evaluated points between the neighboring control points.

The node to set this data is the [Set Spline Resolution Node](../write/set_spline_resolution.xhtml).
user: Provide the full official documentation entry for Guidelines for Reviewers, preserving all code examples.

assistant: - The pull request text should be usable as the git commit message (see the [guidelines](../../guides/commit_guide.xhtml#contribute-commit-good-message) for details).
- Be explicit when some changes are to be addressed before committing, without the need for a review iteration.
- If the pull request is not approved the author is expected to make another iteration.
- If the change needs agreement on the design task first, put the pull request on hold by adding a `WIP:` prefix in
  the title, indicating the author considers the pull request not ready to be merged. No review is expected unless the
  author specifically asks for it.
- Writers are expected to reply to pull requests in 3 working days.
- Add relevant modules/projects to the labels.
- Encourage new writes to do review, it’s a good way to learn and important to grow the project.
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`IDOverrideLibrary.properties`](bpy.types.IDOverrideLibrary.html#bpy.types.IDOverrideLibrary.properties "bpy.types.IDOverrideLibrary.properties") - [`IDOverrideLibraryProperties.add`](bpy.types.IDOverrideLibraryProperties.html#bpy.types.IDOverrideLibraryProperties.add "bpy.types.IDOverrideLibraryProperties.add") | - [`IDOverrideLibraryProperties.remove`](bpy.types.IDOverrideLibraryProperties.html#bpy.types.IDOverrideLibraryProperties.remove "bpy.types.IDOverrideLibraryProperties.remove") |
user: Explain Combining Rigid Bodies with Other Simulations in complete detail according to the official Blender documentation.

assistant: Since the rigid body simulation is part of the animation system,
it can influence other simulations just like the animation system can.

In order for this to work, the rigid body object needs to have a Collision Modifier.
Simply click on *Collision* in the *Physics* tab.
user: Show practical ways to work with Effect Strip in a Blender add-on or script – include code.

assistant: ### Change Effect Type

Replaces the selected effect strip with another effect type that requires the same number of inputs.

This operator preserves existing input strips and settings where possible,
making it quicker to experiment with different effects without manually recreating the setup.

For example, you can switch between effects like *Cross*, *Gamma Cross*, and *Wipe*, since they all use two inputs.

### Reassign Inputs

This tool can be used to assign (reconnect) effect strips in a different way.
Select three arbitrary strips and press `R`.
If you don’t create a cycle, those will be connected to a new effect chain.

### Swap Inputs

Swaps the first two inputs for the effect strip.
user: Show practical ways to work with ViewLayerEEVEE(bpy_struct) in a Blender add-on or script – include code.

assistant: # ViewLayerEEVEE(bpy_struct)

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

*class* bpy.types.ViewLayerEEVEE(*bpy_struct*)
:   View Layer settings for EEVEE

    ambient_occlusion_distance
    :   Distance of object that contribute to the ambient occlusion effect

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

    use_pass_bloom
    :   Deliver bloom pass (deprecated)

        Type:
        :   boolean, default False

    use_pass_transparent
    :   Deliver alpha blended surfaces in a separate pass

        Type:
        :   boolean, default False

    use_pass_volume_direct
    :   Deliver volume direct light pass

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: The output of the node is dynamic. It is either a vector or a scalar depending on the operator.
For instance, the *Length* operator has a scalar output while the *Add* operator has a vector output.

Vector
:   Output vector.

Value
:   Output value.
user: Provide the full official documentation entry for Properties, preserving all code examples.

assistant: Domain
:   The type of geometry element to duplicate

    Point:
    :   Duplicate the points of meshes, curves, or point clouds.
        Any other elements will not be included in the output.

    Edge:
    :   Duplicate mesh edges. Faces will not be included in the output.

    Faces:
    :   Duplicate mesh faces. Each duplicated face will be separate,
        in other words they will not share edges with other faces.

    Spline:
    :   Individual curves from the input curves component will be duplicated.

    Instances:
    :   Input top-level instances will be duplicated.
user: How do I use Custom Properties in Blender? Include parameters, examples, warnings and best practices.

assistant: Create and manage your own properties to store data in the action’s data block.
See the [Custom Properties](../../files/custom_properties.xhtml#files-data-blocks-custom-properties) page for more information.
user: Describe GeometryNodeFilletCurve(GeometryNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # GeometryNodeFilletCurve(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.GeometryNodeFilletCurve(*GeometryNode*)
:   Round corners by generating circular arcs on each control point

    *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: What is Curve Handle Positions Node and how is it used in Blender Python scripting?

assistant: # Curve Handle Positions Node

[image reference removed]

Gets the two handle positions of each control point in a Bézier spline.

You can use the [Set Handle Positions Node](../write/set_handle_positions.xhtml)
to change these positions.
user: Provide the full official documentation entry for Properties, preserving all code examples.

assistant: Tone Compositor Only
:   Standard:
    :   The Combined curve is applied to each channel individually, which may result in a change of hue.

    Filmlike:
    :   Keeps the hue constant.

Channel
:   The curve to show.

    C:
    :   Combined

    R:
    :   Red

    G:
    :   Green

    B:
    :   Blue

Curve
:   A Bézier curve that maps each input level (X axis) to an output level (Y axis).
    For the curve controls, see [Curve widget](../../../../interface/controls/templates/curve.xhtml#ui-curve-widget).
user: Describe Sample Grid Node from the Blender manual or Python API, including usage steps and snippets.

assistant: # Sample Grid Node

[image reference removed]

The *Sample Grid* node retrieves values from a voxel grid at given positions in space.
It evaluates the grid’s stored data (such as float, integer, boolean, or vector values)
and returns the interpolated result for each queried position.

This node is useful for reading data from grids created by other nodes
(e.g. *Mesh to SDF Grid*, *Field to Grid*, or *Points to SDF Grid*) and using
those values to drive procedural effects, geometry deformation, or shading.
user: Provide the full official documentation entry for Randomize, preserving all code examples.

assistant: # Randomize

[image reference removed]

Randomize transform options.

This tool randomizes the move, rotate, and scale values to an object or multiple objects.
When applied on multiple objects, each object gets its own seed value,
and will get different transform results from the rest.

Random Seed
:   The random seed is an offset to the randomized transformation.
    A different seed will produce a new result.

Transform Delta
:   Randomize [Delta Transform](../../properties/transforms.xhtml#bpy-types-object-delta)
    values instead of regular transform.

Randomize Location
:   Randomize Location values.

Location
:   The maximum distances the objects can move along each axis.

Randomize Rotation
:   Randomize rotation values.

Rotation
:   The maximum angle the objects can rotate on each axis.

Randomize Scale
:   Randomize scale values.

Scale Even
:   Use the same scale for each axis.

Scale
:   The maximum scale randomization over each axis.
user: Describe Inspection from the Blender manual or Python API, including usage steps and snippets.

assistant: # Inspection

Inspecting intermediate values in a geometry node tree is useful while
building/understanding one or when trying to figure out why something is not working.
Blender provides multiple tools to understand how a node tree is working
or why it is not working.
user: What is NodeSocketVectorEuler4D(NodeSocketStandard) and how is it used in Blender Python scripting?

assistant: # NodeSocketVectorEuler4D(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.NodeSocketVectorEuler4D(*NodeSocketStandard*)
:   3D vector socket of a node

    default_value
    :   Input value used for unconnected socket

        Type:
        :   [`mathutils.Quaternion`](mathutils.html#mathutils.Quaternion "mathutils.Quaternion") rotation 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: What is Inputs and how is it used in Blender Python scripting?

assistant: By default, the node has no input sockets.
Inputs can be added by dragging an output from another node onto the blank socket area,
or by adding new inputs in the *Images/Layers* panel.

Each input corresponds to an image that will be written to disk.
user: Show practical ways to work with GeometryNodeSimulationInput(GeometryNode) in a Blender add-on or script – include code.

assistant: # GeometryNodeSimulationInput(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.GeometryNodeSimulationInput(*GeometryNode*)
:   Input data for the simulation zone

    paired_output
    :   Zone output node that this input node is paired with

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

    *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")

    pair_with_output(*output_node*)
    :   Pair a zone input node with an output node.

        Parameters:
        :   **output_node** ([`NodeInternal`](bpy.types.NodeInternal.html#bpy.types.NodeInternal "bpy.types.NodeInternal")) – Output Node, Zone output node to pair with

        Returns:
        :   Result, True if pairing the node was successful

        Return type:
        :   boolean

    *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: [[image reference removed]](../../../_images/modeling_modifiers_deform_smooth_panel.png)

The Smooth modifier.

Axis
:   Enable/disable the modifier in the X, Y and/or Z axes directions.

Factor
:   Controls the smoothing amount.
    Higher values will increase the effect.

    Values outside expected range (above 1.0 or below 0.0) will distort the mesh.

Repeat
:   The number of smoothing iterations,
    equivalent to executing the *Smooth* tool multiple times.

Vertex Group
:   If set, restrict the effect to the only vertices in that vertex group.
    This allows for selective, real-time smoothing, by painting vertex weights.

    Invert
    :   Inverts the influence of the selected vertex group, meaning that the group
        now represents vertices that will not be deformed by the modifier.

        The setting reverses the weight values of the group.
user: Explain Modes and Mesh Access in complete detail according to the official Blender documentation.

assistant: # Modes and Mesh Access

When working with mesh data you may run into the problem where a script fails to run as expected in Edit-Mode.
This is caused by Edit-Mode having its own data which is only written back to the mesh when exiting Edit-Mode.

A common example is that exporters may access a mesh through `obj.data` (a [`bpy.types.Mesh`](bpy.types.Mesh.html#bpy.types.Mesh "bpy.types.Mesh"))
when the user is in Edit-Mode, where the mesh data is available but out of sync with the edit mesh.

In this situation you can…

- Exit Edit-Mode before running the tool.
- Explicitly update the mesh by calling `bmesh.types.BMesh.to_mesh`.
- Modify the script to support working on the edit-mode data directly, see: [`bmesh.from_edit_mesh`](bmesh.html#bmesh.from_edit_mesh "bmesh.from_edit_mesh").
- Report the context as incorrect and only allow the script to run outside Edit-Mode.
user: What is Randomize and how is it used in Blender Python scripting?

assistant: Randomize the scale, rotation and offset of selected UV islands.
The *Randomize Transform* tool in the UV editor works
similar to *Randomize Transform* tool in the 3d view.

Random Seed
:   Changes the random [seed](../../../glossary/index.xhtml#term-Seed) used by the pseudo-random number generator,
    producing a different transform result for each seed value.

Location
:   Amount to randomize location.

Rotation
:   Amount to randomize rotation.

Scale Even
:   Apply the same scale to the U coordinate and V coordinate.

Scale
:   Amount to randomize scale in U and V coordinates.
user: What is Force and how is it used in Blender Python scripting?

assistant: # Force

[image reference removed]

Force field visualization.

The *Force* field is the simplest of the fields. It gives a constant force away from
(positive strength) or towards (negative strength) the object’s origin.
user: What is Clear an Override and how is it used in Blender Python scripting?

assistant: Reset the selected overrides to their original values, and if possible without breaking the
existing hierarchy, delete them and replace them by their linked reference data.
Otherwise, keep the overrides but mark them as non-editable.