PGCRYPT/OpenBlender_Train huggingface dataset:
user: Provide the full official documentation entry for Shade Flat, preserving all code examples.

assistant: Signify the object to render and display faces uniformly,
using the [Face Normal’s](../../../modeling/meshes/structure.xhtml#modeling-meshes-structure-normals) direction.
This is usually desirable for objects with flat surfaces.

This operator will also remove any [Smooth By Angle Modifiers](../../../modeling/modifiers/normals/smooth_by_angle.xhtml)

Keep Sharp Edges
:   Do not clear sharp edges (which are redundant with objects shaded as flat).
    This option is useful to not destroy data in case you want to revert changes later.
user: What is Editing Meta Objects and how is it used in Blender Python scripting?

assistant: # Editing Meta Objects

In addition to having several meta objects in a same family,
you can also have several meta primitives in a single object (just add some more while in Edit Mode).
Each will be an element, with its own shape, editing rings (in the viewport), and settings.
user: Give a detailed overview of FModifierLimits(FModifier): syntax, arguments, return values, common patterns.

assistant: # FModifierLimits(FModifier)

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

*class* bpy.types.FModifierLimits(*FModifier*)
:   Limit the time/value ranges of the modified F-Curve

    max_x
    :   Highest X value to allow

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

    max_y
    :   Highest Y value to allow

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

    min_x
    :   Lowest X value to allow

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

    min_y
    :   Lowest Y value to allow

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

    use_max_x
    :   Use the maximum X value

        Type:
        :   boolean, default False

    use_max_y
    :   Use the maximum Y value

        Type:
        :   boolean, default False

    use_min_x
    :   Use the minimum X value

        Type:
        :   boolean, default False

    use_min_y
    :   Use the minimum Y value

        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: Explain CompositorNodeConvertToDisplay(CompositorNode) in complete detail according to the official Blender documentation.

assistant: # CompositorNodeConvertToDisplay(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.CompositorNodeConvertToDisplay(*CompositorNode*)
:   Convert from scene linear to display color space, with a view transform and look for tone mapping

    display_settings
    :   Color management display device settings

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

    view_settings
    :   Color management view transform settings

        Type:
        :   [`ColorManagedViewSettings`](bpy.types.ColorManagedViewSettings.html#bpy.types.ColorManagedViewSettings "bpy.types.ColorManagedViewSettings"), (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")

    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: What is References and how is it used in Blender Python scripting?

assistant: |  |  |
| --- | --- |
| - [`NodeEvaluateClosure.input_items`](bpy.types.NodeEvaluateClosure.html#bpy.types.NodeEvaluateClosure.input_items "bpy.types.NodeEvaluateClosure.input_items") - [`NodeEvaluateClosureInputItems.new`](bpy.types.NodeEvaluateClosureInputItems.html#bpy.types.NodeEvaluateClosureInputItems.new "bpy.types.NodeEvaluateClosureInputItems.new") | - [`NodeEvaluateClosureInputItems.remove`](bpy.types.NodeEvaluateClosureInputItems.html#bpy.types.NodeEvaluateClosureInputItems.remove "bpy.types.NodeEvaluateClosureInputItems.remove") |
user: What is Combine Bundle Node and how is it used in Blender Python scripting?

assistant: # Combine Bundle Node

[image reference removed]

The *Combine Bundle* node creates a new [Bundle](index.html)
from multiple input values.
Each input becomes an element of the bundle, identified by its socket name.
Values can be accessed in other parts of the node tree using the
[Separate Bundle](separate_bundle.html)
user: Explain Grid to Mesh Node in complete detail according to the official Blender documentation.

assistant: # Grid to Mesh Node

[image reference removed]

The *Grid to Mesh* node converts a voxel grid into a polygonal mesh by
extracting an isosurface at a specified threshold value.
This process is similar to the *Marching Cubes* algorithm used in many
volumetric modeling systems.

The resulting mesh represents the boundary where the grid’s values cross the
given threshold—typically the surface of a signed distance field (SDF) or density grid.
This makes it possible to convert procedural volumetric data into geometry for
rendering, simulation, or further modeling operations.
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: Mode
:   Which marker position to use for output.

    Absolute:
    :   Outputs an absolute position of a marker.

    Relative Start:
    :   Outputs the positions of a marker relative to the first marker of a track.

    Relative Frame:
    :   Outputs the positions of a marker relative to the markers of the given *Frame*.

    Absolute Frame:
    :   Outputs the absolute positions of a marker at the given *Frame*.
user: Provide the full official documentation entry for Lattice, preserving all code examples.

assistant: # Lattice

Lattice – or commonly called deformation cage outside of Blender.
A lattice consists of a three-dimensional non-renderable grid of vertices.
Its main use is to apply a deformation to the object it controls with a [Lattice Modifier](../modeling/modifiers/deform/lattice.html).
If the object is parented with *Lattice Deform* a Lattice Modifier is automatically applied.
user: Show practical ways to work with Stereo 3D Display in a Blender add-on or script – include code.

assistant: If you have a real 3D display at some point, you can change the 3D display mode in the Window menu,
by calling the Stereo 3D operator.
Be aware that some modes require a fullscreen editor to work.

[image reference removed]

Window menu, stereo 3D operator.
user: Explain Intended Audience in complete detail according to the official Blender documentation.

assistant: This tutorial is designed to help technical artists or developers learn to extend Blender.
An understanding of the basics of Python is expected for those working through this tutorial.

### Prerequisites

Before going through the tutorial you should…

- Be familiar with the basics of working in Blender.
- Know how to run a script in Blender’s Text editor.
- Have an understanding of Python primitive types (integer, Boolean, string, list, tuple, dictionary, and set).
- Be familiar with the concept of Python modules.
- Have a basic understanding of classes (object orientation) in Python.

Suggested reading before starting this tutorial.

- [Dive Into Python](https://finderiko.com/python-book) sections (1, 2, 3, 4, and 7).
- [Blender API Quickstart](https://docs.blender.org/api/current/info_quickstart.html)
  to help become familiar with Blender/Python basics.

To best troubleshoot any error message Python prints while writing scripts, you run Blender from a terminal.
See [Use The Terminal](https://docs.blender.org/api/current/info_tips_and_tricks.html#use-the-terminal).
user: How do I use Bokeh Blur Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Bokeh Blur Node

[image reference removed]

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

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

assistant: # Marker

[image reference removed]

Marker schematic.

This panel contains numerical settings for marker position,
pattern and search area dimensions, and offset of anchor point from pattern center.

Enabled
:   Toggles the markers affect on the current frame.

Position X, Y
:   The X/Y positions of the marker at frame in screen coordinates.

Offset X, Y
:   The X/Y offset to parenting point.

Pattern Area Width, Height
:   The width/height of a marker’s pattern in screen coordinates.

Search Area X, Y
:   The X/Y position of search at frame relative to the marker’s position.

Search Area Width, Height
:   The width/height of the markers search in screen coordinates.
user: Show practical ways to work with Intended Audience in a Blender add-on or script – include code.

assistant: This tutorial is designed to help technical artists or developers learn to extend Blender.
An understanding of the basics of Python is expected for those working through this tutorial.

### Prerequisites

Before going through the tutorial you should…

- Be familiar with the basics of working in Blender.
- Know how to run a script in Blender’s Text editor.
- Have an understanding of Python primitive types (integer, Boolean, string, list, tuple, dictionary, and set).
- Be familiar with the concept of Python modules.
- Have a basic understanding of classes (object orientation) in Python.

Suggested reading before starting this tutorial.

- [Dive Into Python](https://finderiko.com/python-book) sections (1, 2, 3, 4, and 7).
- [Blender API Quickstart](https://docs.blender.org/api/current/info_quickstart.html)
  to help become familiar with Blender/Python basics.

To best troubleshoot any error message Python prints while writing scripts, you run Blender from a terminal.
See [Use The Terminal](https://docs.blender.org/api/current/info_tips_and_tricks.html#use-the-terminal).
user: Provide the full official documentation entry for Main View, preserving all code examples.

assistant: ### Adjusting the View

Use these shortcuts to adjust the view:

- Pan: `MMB`
- Horizontal scroll: use `Ctrl`-`Wheel`, or drag the horizontal scrollbar.
- Vertical scroll: use `Shift`-`Wheel`, or drag the vertical scrollbar.
- Zoom: `Wheel`
- Scale view: `Ctrl`-`MMB` and drag left/right (horizontal scale) or up/down (vertical scale).
  Alternatively, you can drag the circles on the scrollbars with `LMB`.

### Playhead

The Playhead is the blue vertical line with the current time at the top. To see how to interact with it
see the [Playhead](../../../animation/animation_editors.xhtml#playhead) documentation. In addition to that, the Video
Sequencer has a special case where if you start dragging on a strip, that strip will be highlighted
and displayed *solo* in the preview (all other strips are temporarily muted).

If scrubbing (or regular playback) performs poorly, you can speed it up by creating
[proxies](sidebar/proxy.xhtml).
user: Explain Edit Mode in complete detail according to the official Blender documentation.

assistant: - [Mesh Edit Mode](../../modeling/meshes/selecting/index.xhtml)
- [Curve Edit Mode](../../modeling/curves/selecting.xhtml)
- [Surface Edit Mode](../../modeling/surfaces/selecting.xhtml)
- [Metaball Edit Mode](../../modeling/metas/toolbar/index.xhtml#meta-toolbar-index)
- [Text Edit Mode](../../modeling/texts/selecting.xhtml)
- [Grease Pencil Edit Mode](../../grease_pencil/modes/edit/selecting.xhtml)
- [Bone Edit Mode](../../animation/armatures/bones/selecting.xhtml)
- [Lattice Edit Mode](../../animation/lattice.xhtml)
user: Describe Annotations from the Blender manual or Python API, including usage steps and snippets.

assistant: # Annotations

The annotation tool is available in multiple editors.
It can be used to add notes to e.g. 3D objects or node setups.
The arrow in the screenshot below is an annotation.

[image reference removed]

Annotations tool in a node editor.
user: Give a detailed overview of Metadata: syntax, arguments, return values, common patterns.

assistant: Lists information that has been encoded in the currently visible movie or image file
(*not* the file referenced by the selected strip). This can include the filename,
the creation date, the camera model etc. This also works for images produced by Blender;
see [Render Output](../../../render/output/properties/metadata.xhtml) for the metadata
that can be included in this case.

Other graphics programs may also store metadata,
but only the text in the header field “Comments” can be read.

Some of this metadata can also be made visible in the preview with the
[Metadata overlay](display/overlays.xhtml#bpy-types-sequencerpreviewoverlay-show-metadata).
user: What is Example and how is it used in Blender Python scripting?

assistant: Glow Effect samples.

|  |  |  |  |
| --- | --- | --- | --- |
| ../../_images/grease-pencil_visual-effects_glow_original.png   Original image. | ../../_images/grease-pencil_visual-effects_glow_luminance.png   Mode: Luminance. | ../../_images/grease-pencil_visual-effects_glow_luminance-alpha.png   Mode: Luminance (Glow Under). | ../../_images/grease-pencil_visual-effects_glow_color.png   Mode: Color (Black lines). |
user: Provide the full official documentation entry for Mesh Plane, preserving all code examples.

assistant: # Mesh Plane

The *Mesh Plane* operator automates the process of creating a plane,
sizing it to match the aspect ratio of the selected image, and applying a material with the image as a texture.
The plane, material, and texture are named based on the image filename.

This tool supports importing single images, multiple images, or image sequences/movie clips:

- **Single Image**: Creates one plane with the image applied as a texture.
- **Multiple Images**: Generates multiple planes, either stacked or spaced apart.
- **Image Sequence/Movie Clip**: Creates a single plane with the animated sequence applied.
user: Explain Inputs in complete detail according to the official Blender documentation.

assistant: Color
:   Tint rays passing through the portal.

Position
:   Ray start position at new location. Defaults to the current position,
    matching the Position output of the
    [Geometry node](../input/geometry.html).

Direction
:   Ray direction at the new location. Defaults to the current view direction,
    which is the same as the negation of the Incoming output of the
    [Geometry node](../input/geometry.html).
user: How do I use FloatAttributeValue(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # FloatAttributeValue(bpy_struct)

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

*class* bpy.types.FloatAttributeValue(*bpy_struct*)
:   Floating-point value in geometry attribute

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: What is Working with Rigid Bodies and how is it used in Blender Python scripting?

assistant: Several object operators exist for working with rigid bodies,
these operators can be found in the [Rigid Body](../../scene_layout/object/editing/rigid_body.xhtml) object menu.
These operators include functions to add/remove rigid bodies, modify their properties,
and add [Rigid Body Constraints](constraints/index.xhtml).
user: Explain Brush Settings in complete detail according to the official Blender documentation.

assistant: ### General

### Unique

Deformation
:   Deformation type that is used by the brush.

    Drag:
    :   Slides the topology of the mesh in the direction of the stroke.

    Pinch:
    :   Slides the topology of the mesh towards the center of the stroke.

    Expand:
    :   Slides the topology of the mesh away from the center of the stroke.
user: Give a detailed overview of Common Editing Keys: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| `Backspace` | Delete the selected item with a confirmation dialog |
| `Delete` | Delete the selected item without a confirmation dialog |
| `Ctrl`-`D` | Duplicate |
| `P` | Set Parent |
| `B` | [Proportional Editing](../../editors/3dview/controls/proportional_editing.html) (a.k.a. Soft Selection) |
user: Show practical ways to work with References in a Blender add-on or script – include code.

assistant: |  |  |
| --- | --- |
| - [`bpy.context.camera`](bpy.context.html#bpy.context.camera "bpy.context.camera") - [`BlendData.cameras`](bpy.types.BlendData.html#bpy.types.BlendData.cameras "bpy.types.BlendData.cameras") - [`BlendDataCameras.new`](bpy.types.BlendDataCameras.html#bpy.types.BlendDataCameras.new "bpy.types.BlendDataCameras.new") | - [`BlendDataCameras.remove`](bpy.types.BlendDataCameras.html#bpy.types.BlendDataCameras.remove "bpy.types.BlendDataCameras.remove") - [`RenderEngine.update_custom_camera`](bpy.types.RenderEngine.html#bpy.types.RenderEngine.update_custom_camera "bpy.types.RenderEngine.update_custom_camera") |
user: Give a detailed overview of Outputs: syntax, arguments, return values, common patterns.

assistant: Location
:   Location of the particle.

Radius
:   Size of the particle.

Random
:   A random per-point value in the range from 0 to 1.
    It can for example be used in combination with a color ramp, to randomize the point color.
user: Give a detailed overview of Bump Node: syntax, arguments, return values, common patterns.

assistant: # Bump Node

[image reference removed]

The *Bump* node generates a perturbed normal from a height texture, for bump mapping.
The height value will be sampled at the shading point and two nearby points
on the surface to determine the local direction of the normal.
user: Provide the full official documentation entry for OperatorFileListElement(PropertyGroup), preserving all code examples.

assistant: # OperatorFileListElement(PropertyGroup)

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

*class* bpy.types.OperatorFileListElement(*PropertyGroup*)
:   name
    :   Name of a file or directory within a file list

        Type:
        :   string, default “”, (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: Provide the full official documentation entry for StringProperty(Property), preserving all code examples.

assistant: # StringProperty(Property)

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

*class* bpy.types.StringProperty(*Property*)
:   RNA text string property definition

    default
    :   String default value

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

    length_max
    :   Maximum length of the string, 0 means unlimited

        Type:
        :   int in [0, inf], default 0, (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 Viewport Gizmos and how is it used in Blender Python scripting?

assistant: Navigate
:   Enable/disable the [navigation gizmo](../navigate/introduction.html#navigation-gizmo).

Active Tool
:   Enable/disable the gizmo of the active tool.

Active Object
:   Enable/disable the Object Gizmos for the active element (see below).
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`EnumProperty.enum_items`](bpy.types.EnumProperty.html#bpy.types.EnumProperty.enum_items "bpy.types.EnumProperty.enum_items") - [`EnumProperty.enum_items_static`](bpy.types.EnumProperty.html#bpy.types.EnumProperty.enum_items_static "bpy.types.EnumProperty.enum_items_static") - [`EnumProperty.enum_items_static_ui`](bpy.types.EnumProperty.html#bpy.types.EnumProperty.enum_items_static_ui "bpy.types.EnumProperty.enum_items_static_ui") | - [`KeyMap.modal_event_values`](bpy.types.KeyMap.html#bpy.types.KeyMap.modal_event_values "bpy.types.KeyMap.modal_event_values") - [`Struct.property_tags`](bpy.types.Struct.html#bpy.types.Struct.property_tags "bpy.types.Struct.property_tags") |
user: Give a detailed overview of Keyframes: syntax, arguments, return values, common patterns.

assistant: These settings control [Keyframes](../../animation/keyframes/index.xhtml)
which are the building blocks for animations.

Default Key Channels
:   Which channels to insert keys at when no keying set is active.

    Location:
    :   Inset keyframes for an object’s [Location](../../scene_layout/object/properties/transforms.xhtml#bpy-types-object-location).

    Rotation:
    :   Inset keyframes for an object’s [Rotation](../../scene_layout/object/properties/transforms.xhtml#bpy-types-object-rotation).

    Scale:
    :   Inset keyframes for an object’s [Scale](../../scene_layout/object/properties/transforms.xhtml#bpy-types-object-scale).

    Rotation Mode:
    :   Inset keyframes for an object’s [Rotation Mode](../../scene_layout/object/properties/transforms.xhtml#bpy-types-object-rotation-mode).

    Custom Properties:
    :   Inset keyframes for [Custom Properties](../../files/custom_properties.xhtml).

Only Insert Needed
:   This will only insert keyframes if the value of the property is different.

    Manual:
    :   When keying manually, skip inserting keys that don’t affect the animation.

    Auto:
    :   Auto-Keying will skip inserting keys that don’t affect the animation.

Keyframing – Visual Keying
:   When an object is using constraints, the object property value does not actually change.
    *Visual Keying* will add keyframes to the object property,
    with a value based on the visual transformation from the constraint.

Auto-Keyframing
:   Enable in New Scenes
    :   Enables *Auto Keyframe* by default for new scenes.

    Show Warning
    :   Displays a warning at the top right of the *3D Viewport*, when moving objects, if *Auto Keyframe* is on.

    Only Insert Available
    :   This will only add keyframes to channels of F-Curves that already exist.
user: Show practical ways to work with GeometryNodeGridInfo(GeometryNode) in a Blender add-on or script – include code.

assistant: # GeometryNodeGridInfo(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.GeometryNodeGridInfo(*GeometryNode*)
:   Retrieve information about a volume grid

    data_type
    :   Node socket data type

        Type:
        :   enum in [Node Socket Data Type Items](bpy_types_enum_items/node_socket_data_type_items.html#rna-enum-node-socket-data-type-items), default `'FLOAT'`

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

assistant: Image
:   Standard color input.

Type
:   The direction of convert alpha.
    For details on the difference between both ways to store alpha values see [Alpha Channel](../../../glossary/index.xhtml#term-Alpha-Channel).

    To Premultiplied:
    :   Converts from [Straight Alpha](../../../glossary/index.xhtml#term-Straight-Alpha) to [Premultiplied Alpha](../../../glossary/index.xhtml#term-Premultiplied-Alpha).

    To Straight:
    :   Converts from [Premultiplied Alpha](../../../glossary/index.xhtml#term-Premultiplied-Alpha) to [Straight Alpha](../../../glossary/index.xhtml#term-Straight-Alpha).
user: Describe DATA_UL_bone_collections(UIList) from the Blender manual or Python API, including usage steps and snippets.

assistant: # DATA_UL_bone_collections(UIList)

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

*class* bpy.types.DATA_UL_bone_collections(*UIList*)
:   draw_item(*_context*, *layout*, *armature*, *bcoll*, *_icon*, *_active_data*, *_active_propname*, *_index*)

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of Advect Grid Node: syntax, arguments, return values, common patterns.

assistant: # Advect Grid Node

[image reference removed]

The *Advect Grid* node moves voxel values through a velocity field over time
using numerical integration. This operation is called *advection* and is
commonly used in fluid, smoke, and motion simulation systems to evolve
quantities such as density, temperature, or color according to a flow field.

The node supports multiple integration schemes that trade off between speed,
accuracy, and numerical stability. It can be used for both scalar and vector
grids, provided the voxel size is uniform across the domain.

Advection is conceptually equivalent to tracing each voxel backward through the
velocity field by a small time step, sampling the grid value from the previous
location, and assigning that value to the current voxel.
user: Show practical ways to work with Classification in a Blender add-on or script – include code.

assistant: Bones can be classified into two types depending on their
[Deform](properties/deform.html) setting:

### Deforming Bones

Bones that have the *Deform* setting enabled will drag vertices along with them.
For example, you could have a bone in a character’s upper arm and another in
the lower arm, and then rotate and flex the arm by transforming these bones.

### Control Bones

Bones that have the *Deform* setting disabled do not drag any vertices along.
Instead, they’re typically used to control other bones.

A common use case is
[inverse kinematics](../posing/bone_constraints/inverse_kinematics/introduction.html):
rotating the above two arm bones manually is a bit of a pain, so instead,
you can add a control bone and configure the arm bones to automatically orient
themselves towards it. This way, you can simply position the control bone
where the character’s hand should be, which is much easier.
user: Explain NodeSocketVectorAcceleration2D(NodeSocketStandard) in complete detail according to the official Blender documentation.

assistant: # NodeSocketVectorAcceleration2D(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.NodeSocketVectorAcceleration2D(*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 2 items in [-inf, inf], default (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 FunctionNodeAxesToRotation(FunctionNode) and how is it used in Blender Python scripting?

assistant: # FunctionNodeAxesToRotation(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.FunctionNodeAxesToRotation(*FunctionNode*)
:   Create a rotation from a primary and (ideally orthogonal) secondary axis

    primary_axis
    :   Axis that is aligned exactly to the provided primary direction

        Type:
        :   enum in [`'X'`, `'Y'`, `'Z'`], default `'X'`

    secondary_axis
    :   Axis that is aligned as well as possible given the alignment of the primary axis

        Type:
        :   enum in [`'X'`, `'Y'`, `'Z'`], default `'X'`

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

assistant: Type
:   The type of angle input.

    X/Y/Z Axis:
    :   Rotates the vector around the defined axis and
        the amount of rotation is defined by the *Angle* input.

    Axis Angle:
    :   Rotates the vector around an arbitrary axis defined by the *Axis* input vector.
        The amount of rotation is defined by the *Angle* input.

    Euler:
    :   Rotates the vector about a center point defined by the *Center* input vector.
        The amount of rotation on each axis is defined by the *Rotation* input vector.

Invert
:   Inverts the rotation angle.
user: Give a detailed overview of NodeInputs(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # NodeInputs(bpy_struct)

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

*class* bpy.types.NodeInputs(*bpy_struct*)
:   Collection of Node Sockets

    new(*type*, *name*, *\**, *identifier=''*, *use_multi_input=False*)
    :   Add a socket to this node

        Parameters:
        :   - **type** (*string**,* *(**never None**)*) – Type, Data type
            - **name** (*string**,* *(**never None**)*) – Name
            - **identifier** (*string**,* *(**optional**,* *never None**)*) – Identifier, Unique socket identifier
            - **use_multi_input** (*boolean**,* *(**optional**)*) – Make the socket multi-input (valid for inputs only)

        Returns:
        :   New socket

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

    remove(*socket*)
    :   Remove a socket from this node

        Parameters:
        :   **socket** ([`NodeSocket`](bpy.types.NodeSocket.html#bpy.types.NodeSocket "bpy.types.NodeSocket")) – The socket to remove

    clear()
    :   Remove all sockets from this node

    move(*from_index*, *to_index*)
    :   Move a socket to another position

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

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

assistant: # Texture Nodes

These nodes generate procedural textures,
and function just like their non-node-based counterparts.

Common Options

Color 1/Color 2
:   Remaps the procedural texture with these colors. These do not function in the Magic node.
user: What is Sequencer & Preview and how is it used in Blender Python scripting?

assistant: # Sequencer & Preview

This view type shows both the preview and the sequencer inside one editor.

[image reference removed]

Figure 1: Combined Sequencer & Preview

In general, it’s better to avoid this view type and instead have two editors,
one serving as the *Preview* and the other as the *Sequencer*.
Reasons for this include:

- Most of the *Preview* tools, such as Move and Rotate, are not available
  in *Sequencer & Preview*.
- You can’t add a small editor (such as a File Browser) on the side that only
  takes up the height of the preview.
- You can’t maximize the preview on another screen.

One way of getting two separate editors is to simply open the default
*Video Editing* [workspace](../../interface/window_system/workspaces.xhtml).
(You may need to click the “+” icon to the right of the tabs to find it.)
user: How do I use Crease Angle in Blender? Include parameters, examples, warnings and best practices.

assistant: # Crease Angle

A modifier based on the Crease Angle (angle between two adjacent faces).
If a stroke segment does not lie on a crease (i.e. the edge does not have the *Crease Angle nature*),
its properties are not touched by the modifier.

Angle Min, Max
:   The range of input values to the mapping.
    Out-of-range crease angle values will be clamped by
    the Min and Max angles and their corresponding property values.

[[image reference removed]](../../../../../../_images/render_freestyle_parameter-editor_line-style_modifiers_color_crease-angle_example.png)

Crease Angle modifier example by T.K.
([blend-file](https://archive.blender.org/wiki/2015/index.php/File:Render_freestyle_modifier_crease_angle.blend)).
user: Explain WalkNavigation(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # WalkNavigation(bpy_struct)

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

*class* bpy.types.WalkNavigation(*bpy_struct*)
:   Walk navigation settings

    jump_height
    :   Maximum height of a jump

        Type:
        :   float in [0.1, 100], default 0.4

    mouse_speed
    :   Speed factor for when looking around, high values mean faster mouse movement

        Type:
        :   float in [0.01, 10], default 1.0

    teleport_time
    :   Interval of time warp when teleporting in navigation mode

        Type:
        :   float in [0, 10], default 0.2

    use_gravity
    :   Walk with gravity, or free navigate

        Type:
        :   boolean, default False

    use_mouse_reverse
    :   Reverse the vertical movement of the mouse

        Type:
        :   boolean, default False

    view_height
    :   View distance from the floor when walking

        Type:
        :   float in [0, 1000], default 1.6

    walk_speed
    :   Base speed for walking and flying

        Type:
        :   float in [0.01, 100], default 2.5

    walk_speed_factor
    :   Multiplication factor when using the fast or slow modifiers

        Type:
        :   float in [0.01, 10], default 5.0

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: How do I use Shadows in Blender? Include parameters, examples, warnings and best practices.

assistant: - *Shadow Map Raytracing* can produce light leaking because of overlapping shadow casters.
  This can be mitigated by using lower [step count](../render_settings/sampling.html#bpy-types-sceneeevee-shadow-step-count), enabling
  [jitter](../light_settings.html#bpy-types-light-use-shadow-jitter), or reducing the light shape size.
- Thin objects (e.g. walls without thickness) might have light leaking on the shadowed side.
  This can be mitigated by making the object have some thickness or lowering
  [Resolution Limit](../light_settings.html#bpy-types-light-shadow-maximum-resolution).
user: Show practical ways to work with Add Strip in a Blender add-on or script – include code.

assistant: # Add Strip

The Add effect strip adds the colors of two strips together.
Use this effect with a base image strip, and a modifier strip.
The modifier strip is either a solid color or a black-and-white mask,
or another image entirely.

You can use this effect to increase the brightness of an image, or if you use a BW mask,
selectively increase the brightness of certain areas of the image. The Mix node, in Add mode,
does exactly the same thing as the Add SFX strip here,
and is controlled the same way by feeding the Factor input.

The [example](#fig-sequencer-strips-effects-add) shows what happens when you add gray to an image.
The image gets bright because we are adding gray
RGB(0.5, 0.5, 0.5) to say, a blue color RGB(0.1, 0.1, 0.5) resulting in RGB(0.6, 0.6, 1.0)
which retains the original hue (relationship between the colors) but is much brighter
(has a higher value). When applied to the whole image like this, it seems to flash.
user: What is GeometryNodeMeshCylinder(GeometryNode) and how is it used in Blender Python scripting?

assistant: # GeometryNodeMeshCylinder(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.GeometryNodeMeshCylinder(*GeometryNode*)
:   Generate a cylinder mesh

    fill_type
    :   Type:
        :   enum in [Node Geometry Mesh Circle Fill Type Items](bpy_types_enum_items/node_geometry_mesh_circle_fill_type_items.html#rna-enum-node-geometry-mesh-circle-fill-type-items), default `'NGON'`

    *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 Controls in Blender? Include parameters, examples, warnings and best practices.

assistant: Adding Geometry `Ctrl`-`LMB`
:   Creates a new vertex at the mouse cursor, then creates a triangle using this new vertex
    and the nearest existing edge. If the existing edge already has two neighboring faces,
    instead creates a new edge using the new vertex and the nearest existing vertex.
    Holding `Ctrl` will preview the result in blue.

Deleting Geometry `Shift`-`LMB`
:   Dissolves the vertex/deletes the face under the mouse cursor.
    Holding `Shift` will highlight the target element in red.

Moving Vertices `LMB`
:   You can move a vertex by dragging it.

Extruding Edges `LMB`
:   You can [extrude](../editing/edge/extrude_edges.xhtml) an edge into a quad by dragging it.