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

assistant: # IDViewerPathElem(ViewerPathElem)

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

*class* bpy.types.IDViewerPathElem(*ViewerPathElem*)
:   id
    :   Type:
        :   [`ID`](bpy.types.ID.html#bpy.types.ID "bpy.types.ID"), (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: Explain Brush Settings in complete detail according to the official Blender documentation.

assistant: ### General

Hardness
:   Higher by default to ensure the profile of layers is more noticeable.
    More info at [Hardness](../../brush/brush_settings.html#bpy-types-brush-hardness)

### Unique

Height
:   The fixed height of each stroke. This is measured using the [scene scale](../../../scene_layout/scene/properties.html#bpy-types-unitsettings-system),
    so it is consistent no matter the amount of zoom or object size.

Persistent
:   This will ensure that multiple strokes use the same height, as if sculpting a single layer.

Set Persistent Base
:   This button resets a new base so that you can sculpt new layer.
user: Show practical ways to work with Accumulate Field Node in a Blender add-on or script – include code.

assistant: # Accumulate Field Node

[image reference removed]

The *Accumulate Field* node counts a running total of its input values, in the order defined
by the geometry’s [indices](../../geometry/read/input_index.xhtml). The node’s essential
operation is just addition, but instead of only outputting the final total, it outputs the current
value at every element.
user: Show practical ways to work with Crease Angle in a Blender add-on or script – include code.

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]

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

assistant: Vector Type
:   The node applies the transformation differently depending on the semantic type of the input vector.

    Point:
    :   For this vector type, the node performs a straightforward transformation.

        Transforming a texture coordinates is analogous to transforming a UV map.
        For instance, translating the texture coordinates along the **positive** X axis would result
        in the evaluated texture to move in the **negative** X axis, much like if one translated a UV map.
        Similarly, scaling the texture coordinates **up** would result in the evaluated texture to scale **down**.
        So transforming the texture coordinates would appear to have the opposite effect on the evaluated texture.

        The order of transformation is: Scale –> Rotate –> Translate, which means:

        - Translation moves the input along the local rotation axis.
        - Rotation rotates the input around the origin of the space.
        - Scaling scales the input along the global axis.

    Texture:
    :   For this vector type, the node performs an inverse transformation.

        Inverse transforming a texture coordinates would, as opposed to the *Point* type,
        transform the evaluated texture itself. For instance, translating the texture coordinates along
        the positive X axis would result in the evaluated texture to move in the positive X axis,
        as one would expected. Similarly, scaling the texture coordinates up would result in
        the evaluated texture to scale up, as one would expect.

        The order of transformation is: Translate –> Rotate –> Scale, which means:

        - Translation moves the input along the global axis.
        - Rotation rotates the input around the translation vector.
        - Scaling scales the input along the local rotation axis.

    Vector:
    :   For this vector type, a *Point* transformation is performed, but with zero translation.

    Normal:
    :   For this vector type, the node performs the inverse transpose of the transformation and normalize the result.
        Such transformation ensures correct normals after non-uniform scaling.
        So this type should be used when transforming normals.
user: Provide the full official documentation entry for Outputs, preserving all code examples.

assistant: Is Hit
:   Boolean output that is true for each ray which has hit the *Target Geometry*.

Hit Position
:   The location of the intersection point with the target mesh.

Hit Normal
:   The surface [Normal](../../../../glossary/index.html#term-Normal) vector at the hit location.

Hit Distance
:   The distance from the *Source Position* to the *Hit Position*.
    If the ray does not hit, the *Ray Length* is returned.

Attribute
:   Interpolated values of the *Attribute* input sampled at the *Hit Position*.
user: Describe Interface from the Blender manual or Python API, including usage steps and snippets.

assistant: ### Header

Node Tree
:   Chooses which node group (compositor node tree) to display and edit.
    Each [Scene](../scene_layout/scene/index.html) can have its own compositor node tree.
    You can also create and switch to custom node groups for reuse.

Pinned
:   When enabled, the editor always displays the selected node tree, regardless of the active scene.
    This is useful when working with multiple scenes but wanting to keep the compositor focused on one node tree.

#### Gizmos

Controls the display of gizmos in the Compositor.

Clicking  (Show Gizmos) toggles all gizmos in the Compositor
The drop-down button displays a popover with more detailed settings,
which are described below.

Viewport Gizmos

Active Node
:   Display a context-sensitive gizmo for the currently selected node.
    This may include transform controls or other visual aids depending on the node type.

### Asset Shelf

The *Asset Shelf* provides quick access to compositor node assets, allowing users to drag and drop
predefined node setups directly into the compositor workspace.
Any node group marked as an asset will appear here automatically.

Located at the bottom of the editor, the shelf offers a compact and easily accessible interface for
inserting and organizing compositor assets. Compared to the
[Asset Browser](asset_browser.html), it integrates more seamlessly into the
compositing workflow and can be shown or hidden as needed.

The Asset Shelf helps users:

- Quickly build node setups using reusable assets.
- Explore common compositing techniques and effects.
- Work entirely within Blender for post-processing.

The Asset Shelf can be toggled on or off from the compositor editor’s header.
user: Show practical ways to work with GeometryNodeInputVoxelIndex(GeometryNode) in a Blender add-on or script – include code.

assistant: # GeometryNodeInputVoxelIndex(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.GeometryNodeInputVoxelIndex(*GeometryNode*)
:   Retrieve the integer coordinates of the voxel that the field is evaluated on

    *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 Duplicate and how is it used in Blender Python scripting?

assistant: # Duplicate

This tool simply duplicates the selected elements,
without creating any connections with the rest of the mesh (unlike extrude, for example),
and places the duplicate at the location of the original. Once the duplication is done,
only the *new* duplicated elements are selected,
and you are automatically placed in move mode, so you can move your copy elsewhere…

In the *Toolbar* are settings for *Vector* offset, *Proportional Editing*,
*Duplication Mode*, and *Axis Constraints*.

Note that duplicated elements belong to the same
[vertex groups](../../properties/vertex_groups/index.xhtml) as the “original” ones.
The same goes for the [material indices](../../../../render/materials/assignment.xhtml#bi-multiple-materials),
the edge’s *Sharp* and *Seam* marks, and probably for the other vertex/edge/face properties…
user: Explain Render Layers Node in complete detail according to the official Blender documentation.

assistant: # Render Layers Node

[image reference removed]

Renders a [View Layer](../../../../render/layers/introduction.xhtml) and reads its
[Passes](../../../../render/layers/passes.xhtml) into the compositing node graph.
user: Provide the full official documentation entry for Inherited Properties, preserving all code examples.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") | - [`LineStyleGeometryModifier.name`](bpy.types.LineStyleGeometryModifier.html#bpy.types.LineStyleGeometryModifier.name "bpy.types.LineStyleGeometryModifier.name") |
user: Provide the full official documentation entry for Options, preserving all code examples.

assistant: [image reference removed]

Two different caches stored simultaneously.

Caches List
:   Blender allows for storing and managing multiple caches at once for the same physics object.
    You can manage the caches with this [list view](../interface/controls/templates/list_view.html#ui-list-view).
    Double-click the cache entry to give it a name.

    Each cache can have a name. Double-click the cache entry to give it a name.
    If this name is given, any disk cache will be stored in files starting with that name.
    For example, a cache named `MyCache` will be stored in `MyCache_xxxxxx_yy.bphys`.

    If the cache does not have a name (which is the default),
    the filename of the cache will depend on the object it is attached to,
    although this is not immediately obvious. For example, a cache on
    an object `Cube` will be stored in `43756265_xxxxxx_yy.bphys`,
    where `43756265` is determined by the object name.

External
:   Allows you to read the cache from a drive using a user-specified file path.

    Index
    :   The index number of cache files. (The last two digits of the files name.)

    Path
    :   Select the directory path to the cache files.

Disk Cache
:   The cache of a baked simulation will be stored inside the blend-file when you save it.
    When *Disk Cache* is checked, Blender will save the cache separately to
    the drive in a folder named `blendcache_[filename]` alongside the blend-file.
    (The blend-file must be saved first.)

Use Library Path
:   Share the disk cache when the physics object is
    [linked](../files/linked_libraries/index.html) into another blend-file.
    When this option is enabled, linked versions of the object will reference the same disk cache.
    Otherwise linked versions of the object will use independent caches.

Start
:   Frame on which to start the simulation.

End
:   Frame on which to stop the simulation.

Cache Step
:   Interval for storing simulation data.
user: What is Committing Your Changes and how is it used in Blender Python scripting?

assistant: After making your edits, proceed to the bottom of the page:

- Provide a clear, concise summary of your changes in the commit message box
  (e.g., “Fixed typo in Sculpting documentation”).
- Select “Commit Changes”.

This action will automatically guide you to create a “Pull Request” to submit your edits for review.
user: Provide the full official documentation entry for Save As, preserving all code examples.

assistant: Choose a file path to save the blend-file to.

### Options

Compress
:   Reduces the file size of the resulting blend-file but takes longer to save and load.
    This option is useful for distributing files online and saving drive space for large projects.
    But it can cause slowdowns when quitting Blender,
    or under normal operation when auto-saving backup files.
    See [Compression & Memory Use](../linked_libraries/link_append.html#files-linked-libraries-known-limitations-compression) for more information.

Remap Relative
:   This option remaps [Relative Paths](#files-blend-relative-paths)
    (such as linked libraries and images) when saving a file in a new location.

Save Copy
:   Saves a copy of the actual working state but does not make the saved file active.
user: Show practical ways to work with NODE_FH_image_node(FileHandler) in a Blender add-on or script – include code.

assistant: # NODE_FH_image_node(FileHandler)

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

*class* bpy.types.NODE_FH_image_node(*FileHandler*)
:   *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 GeometryNodeJoinGeometry(GeometryNode) in a Blender add-on or script – include code.

assistant: # GeometryNodeJoinGeometry(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.GeometryNodeJoinGeometry(*GeometryNode*)
:   Merge separately generated geometries into a single one

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Provide the full official documentation entry for Enabling Add-on, preserving all code examples.

assistant: 1. Open Blender and go to [Add-ons](../../editors/preferences/addons.xhtml) section of the [Preferences](../../editors/preferences/index.xhtml).
2. Search “VR Scene Inspection” and check the *Enable Add-on* checkbox.
user: What is Pin & Unpin and how is it used in Blender Python scripting?

assistant: You can pin UVs so they do not move between multiple unwrap operations.
When Unwrapping a model it is sometimes useful to “Lock” certain UVs,
so that parts of a UV layout stay the same shape, and/or in the same place.
Pinning is done by selecting a UV, then selecting *Pin* from the *UVs* menu,
or the shortcut `P`. You can *Unpin a UV* with the shortcut `Alt`-`P`.

Pinning is most effective when using the Unwrap method of UV mapping, for organic objects.
An example is when you are modeling a symmetrical object using
the [Mirror Modifier](../../modifiers/generate/mirror.xhtml).
Some of the UVs on the mirror axis may be shared across the mirrored counterparts.
You could pin the UVs that correspond to the midline, then align them on the X axis,
and they will stay in that location.

The sculpting tools, *Pinch* and *Relax*, will not move any pinned UVs. This allows
you to pin the borders, or around interior holes, and gives even more control to the
sculpt tools.

Pinning also works great with the *Live Unwrap* tool. If you pin two or more UVs,
with *Live Unwrap* on, moving or scaling the pinned UVs will interactively unwrap the model.
You can even use the *Grab* sculpting tool to move the pinned UVs.
This helps with fitting a UV island to a certain shape or region.
user: How do I use Types with Custom Property Support in Blender? Include parameters, examples, warnings and best practices.

assistant: # Types with Custom Property Support

The following types (and their sub-types) have custom-property access.

For examples on using custom properties see the quick-start section on
[Custom Properties](info_quickstart.html#info-quickstart-custom-properties).

- [`bpy.types.Bone`](bpy.types.Bone.html#bpy.types.Bone "bpy.types.Bone")
- [`bpy.types.BoneCollection`](bpy.types.BoneCollection.html#bpy.types.BoneCollection "bpy.types.BoneCollection")
- [`bpy.types.EditBone`](bpy.types.EditBone.html#bpy.types.EditBone "bpy.types.EditBone")
- [`bpy.types.GizmoGroupProperties`](bpy.types.GizmoGroupProperties.html#bpy.types.GizmoGroupProperties "bpy.types.GizmoGroupProperties")
- [`bpy.types.GizmoProperties`](bpy.types.GizmoProperties.html#bpy.types.GizmoProperties "bpy.types.GizmoProperties")
- [`bpy.types.ID`](bpy.types.ID.html#bpy.types.ID "bpy.types.ID")
- [`bpy.types.KeyConfigPreferences`](bpy.types.KeyConfigPreferences.html#bpy.types.KeyConfigPreferences "bpy.types.KeyConfigPreferences")
- [`bpy.types.Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node")
- [`bpy.types.NodeSocket`](bpy.types.NodeSocket.html#bpy.types.NodeSocket "bpy.types.NodeSocket")
- [`bpy.types.NodeTreeInterfaceSocket`](bpy.types.NodeTreeInterfaceSocket.html#bpy.types.NodeTreeInterfaceSocket "bpy.types.NodeTreeInterfaceSocket")
- [`bpy.types.NodesModifier`](bpy.types.NodesModifier.html#bpy.types.NodesModifier "bpy.types.NodesModifier")
- [`bpy.types.OperatorProperties`](bpy.types.OperatorProperties.html#bpy.types.OperatorProperties "bpy.types.OperatorProperties")
- [`bpy.types.PoseBone`](bpy.types.PoseBone.html#bpy.types.PoseBone "bpy.types.PoseBone")
- [`bpy.types.PropertyGroup`](bpy.types.PropertyGroup.html#bpy.types.PropertyGroup "bpy.types.PropertyGroup")
- [`bpy.types.Strip`](bpy.types.Strip.html#bpy.types.Strip "bpy.types.Strip")
- [`bpy.types.TimelineMarker`](bpy.types.TimelineMarker.html#bpy.types.TimelineMarker "bpy.types.TimelineMarker")
- [`bpy.types.View3DShading`](bpy.types.View3DShading.html#bpy.types.View3DShading "bpy.types.View3DShading")
- [`bpy.types.ViewLayer`](bpy.types.ViewLayer.html#bpy.types.ViewLayer "bpy.types.ViewLayer")
user: Show practical ways to work with Inputs in a Blender add-on or script – include code.

assistant: Surface
:   Shading for the [surface](../../materials/components/surface.xhtml) of the object.

Volume
:   Shading for the [volume](../../materials/components/volume.xhtml) inside the object.

Displacement
:   Used to create bump mapping or actual subdivided [displacement](../../materials/components/displacement.xhtml).

Thickness EEVEE
:   Used to approximate the inner geometry structure of the object without heavy computation.
    This is currently used for [Subsurface Scattering](../shader/sss.xhtml),
    [Translucent BSDF](../shader/translucent.xhtml),
    [Refraction BSDF](../shader/refraction.xhtml), and the nodes containing these effects.

    If no value is plugged into the output node,
    a default thickness based on the smallest dimension of the object is used.
    If a value is connected it will be used as object space thickness (i.e. scaled by object transform).
    A value of zero will disable the thickness approximation and treat the object as having only one interface.

    This output is only used by the EEVEE render engine.
user: How do I use Surface in Blender? Include parameters, examples, warnings and best practices.

assistant: The surface shader defines the light emission from the environment into the scene.
The world surface is rendered as if it is very distant from the scene,
and as such there is no two-way interacting between objects in the scene and the environment,
only light coming in. The only shader accepted is the Background node with a color input and
strength factor for the intensity of the light.

### Image Based Lighting

For image based lighting,
use the Environment Texture node rather than the Image Texture node for correct mapping.
This supports *Equirectangular* (also known as latitude/longitude) for environment maps,
and *Mirror Ball* mapping for converting photos of mirror balls to environment maps.
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`Object.soft_body`](bpy.types.Object.html#bpy.types.Object.soft_body "bpy.types.Object.soft_body") | - [`SoftBodyModifier.settings`](bpy.types.SoftBodyModifier.html#bpy.types.SoftBodyModifier.settings "bpy.types.SoftBodyModifier.settings") |
user: Explain Set ID Node in complete detail according to the official Blender documentation.

assistant: # Set ID Node

[image reference removed]

The *Set ID* node fills the `id` attribute on the input geometry. If the attribute does not
exist yet, it will be created with a default value of zero. The ID is also created by
the [Distribute Points on Faces](../../point/distribute_points_on_faces.html), and it is used in
the [Random Value Node](../../utilities/random_value.html) and other nodes if it exists.

The input node for this data is the [ID Node](../read/id.html).
user: Show practical ways to work with Bpy.Types.Text in a Blender add-on or script – include code.

assistant:  bpy_struct.id_properties_ensure bpy_struct.id_properties_ui bpy_struct.is_property_hidden bpy_struct.is_property_overridable_library bpy_struct.is_property_readonly bpy_struct.is_property_set bpy_struct.items bpy_struct.keyframe_delete bpy_struct.keyframe_insert bpy_struct.keys bpy_struct.path_from_id bpy_struct.path_from_module bpy_struct.path_resolve bpy_struct.pop bpy_struct.property_overridable_library_set bpy_struct.property_unset bpy_struct.rna_ancestors bpy_struct.type_recast bpy_struct.values ID.bl_system_properties_get ID.rename ID.evaluated_get ID.copy ID.asset_mark ID.asset_clear ID.asset_generate_preview ID.override_create ID.override_hierarchy_create ID.user_clear ID.user_remap ID.make_local ID.user_of_id ID.animation_data_create ID.animation_data_clear ID.update_tag ID.preview_ensure ID.bl_rna_get_subclass ID.bl_rna_get_subclass_py References ¶ bpy.context.edit_text BlendData.texts BlendDataTexts.load BlendDataTexts.new BlendDataTexts.remove Camera.custom_shader FreestyleModuleSettings.script NodeFrame.text ShaderNodeScript.script ShaderNodeTexIES.ies SpaceTextEditor.text Next TextBox(bpy_struct) Previous TexPaintSlot(bpy_struct) Copyright &#169; Blender Authors Made with Furo Report issue on this page On this page Text(ID) Text Text.current_character Text.current_line Text.current_line_index Text.filepath Text.indentation Text.is_dirty Text.is_in_memory Text.is_modified Text.lines Text.select_end_character Text.select_end_line Text.select_end_line_index Text.use_module Text.clear() Text.write() Text.from_string() Text.as_string() Text.is_syntax_highlight_supported() Text.select_set() Text.cursor_set() Text.as_module() Text.bl_rna_get_subclass() Text.bl_rna_get_subclass_py() Text.region_as_string() Text.region_from_string() Inherited Properties Inherited Functions References
user: Explain Accessing Stroke Editing Tools in complete detail according to the official Blender documentation.

assistant: These are available through the different tools in the Toolbar,
the Stroke menu in the 3D Viewport header, and context menus in the 3D Viewport,
as well as individual shortcut keys.

### Toolbar

When you select a stroke and `Tab` into Edit Mode,
the [Toolbar](tools/index.html) changes from *Object Tools* to *Stroke editing Tools*.
These are only some of the stroke editing tools.

### Menus

The [Stroke Menu](stroke_menu.html) is located in the header.

### Context Menu

`RMB` brings up the complete [Stroke Menu](stroke_menu.html).
user: Provide the full official documentation entry for Inputs, preserving all code examples.

assistant: Geometry
:   The input geometry containing the hair curves to smooth.

Amount
:   Controls the strength of the smoothing operation.
    Positive values smooth the curves by averaging point positions.
    Negative values exaggerate the differences between points, creating a crumpled or distorted effect.

Shape
:   Defines how the smoothing influence changes along the curve length.
    A value of 0.0 applies a constant effect, while 0.5 results in a linear falloff from root to tip.

Iterations
:   The number of smoothing steps applied.
    Increasing this value produces smoother results but may increase processing time.

Weight
:   A per-point weighting factor that controls how much each point contributes to the smoothing.
    Values closer to 0 reduce smoothing influence at those points.

Lock Tips
:   When enabled, the tips of the curves remain fixed, preventing them from moving during smoothing.

Preserve Length
:   When enabled, maintains the original length of each curve during deformation.
    When disabled, smoothing may slightly shorten the curves.
user: Explain Inherited Properties in complete detail according to the official Blender documentation.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") | - [`LineStyleColorModifier.name`](bpy.types.LineStyleColorModifier.html#bpy.types.LineStyleColorModifier.name "bpy.types.LineStyleColorModifier.name") |
user: How do I use TextureNodeCombineColor(TextureNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # TextureNodeCombineColor(TextureNode)

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

*class* bpy.types.TextureNodeCombineColor(*TextureNode*)
:   mode
    :   Mode of color processing

        Type:
        :   enum in [Node Combsep Color Items](bpy_types_enum_items/node_combsep_color_items.html#rna-enum-node-combsep-color-items), default `'RGB'`

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`Modifier.name`](bpy.types.Modifier.html#bpy.types.Modifier.name "bpy.types.Modifier.name") - [`Modifier.type`](bpy.types.Modifier.html#bpy.types.Modifier.type "bpy.types.Modifier.type") - [`Modifier.show_viewport`](bpy.types.Modifier.html#bpy.types.Modifier.show_viewport "bpy.types.Modifier.show_viewport") - [`Modifier.show_render`](bpy.types.Modifier.html#bpy.types.Modifier.show_render "bpy.types.Modifier.show_render") - [`Modifier.show_in_editmode`](bpy.types.Modifier.html#bpy.types.Modifier.show_in_editmode "bpy.types.Modifier.show_in_editmode") - [`Modifier.show_on_cage`](bpy.types.Modifier.html#bpy.types.Modifier.show_on_cage "bpy.types.Modifier.show_on_cage") | - [`Modifier.show_expanded`](bpy.types.Modifier.html#bpy.types.Modifier.show_expanded "bpy.types.Modifier.show_expanded") - [`Modifier.is_active`](bpy.types.Modifier.html#bpy.types.Modifier.is_active "bpy.types.Modifier.is_active") - [`Modifier.use_pin_to_last`](bpy.types.Modifier.html#bpy.types.Modifier.use_pin_to_last "bpy.types.Modifier.use_pin_to_last") - [`Modifier.is_override_data`](bpy.types.Modifier.html#bpy.types.Modifier.is_override_data "bpy.types.Modifier.is_override_data") - [`Modifier.use_apply_on_spline`](bpy.types.Modifier.html#bpy.types.Modifier.use_apply_on_spline "bpy.types.Modifier.use_apply_on_spline") - [`Modifier.execution_time`](bpy.types.Modifier.html#bpy.types.Modifier.execution_time "bpy.types.Modifier.execution_time") - [`Modifier.persistent_uid`](bpy.types.Modifier.html#bpy.types.Modifier.persistent_uid "bpy.types.Modifier.persistent_uid") |
user: Give a detailed overview of Adjustments: syntax, arguments, return values, common patterns.

assistant: [image reference removed]

Layers adjustment panel.

Tint Color
:   Color that tint any material colors used in the layer.

Factor
:   Controls the amount of tint color to apply.

Stroke Thickness
:   Thickness value that override the strokes thickness in the layer.
user: How do I use Tool in Blender? Include parameters, examples, warnings and best practices.

assistant: Settings for the active [tool](toolbar.xhtml).

Drag
:   What to do when dragging `LMB` on a place other than the tool’s gizmo.

    Active Tool
    :   Perform the same action as when dragging the gizmo.

    Tweak
    :   Move the image under the mouse cursor.

    Select Box
    :   Drag a selection rectangle and select all the images that are partially
        or completely inside it.
user: Describe Faces from the Blender manual or Python API, including usage steps and snippets.

assistant: # Faces

*Instancing Faces* is the capability to replicate an object on each face of a parent object.
One of the best ways to explain this is through an example illustration.

Scale
:   Scales each instance according to the size of its corresponding face.

    Inherit Scale
    :   Scale the instance faces objects.

*Make Instance Face* tool converts linked objects (that share mesh data) into instanced faces.
This tool creates the parent object (instancer) with faces where the objects were,
then it uses *Instancing Faces* to put instances at the location of every created face.

You can go back from *Instancing Faces* to multiple linked objects using
[Make Instances Real](../../editing/apply.html#bpy-ops-object-duplicates-make-real).
user: Give a detailed overview of FunctionNodeInputRotation(FunctionNode): syntax, arguments, return values, common patterns.

assistant: # FunctionNodeInputRotation(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.FunctionNodeInputRotation(*FunctionNode*)
:   Provide a rotation value that can be connected to other nodes in the tree

    rotation_euler
    :   Input value used for unconnected socket

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

    *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: Grease Pencil
:   The Grease Pencil object with multiple layers to combine.

Selection
:   Operate of a subset of layers by setting the field layer index value to *true*.
    By default, all layers are selected.

Group ID
:   The index numbers of the layer to be merged.
    This input is only visible when using *By Group ID* Mode.
user: Describe References from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| - [`GeometryNodeFieldToGrid.grid_items`](bpy.types.GeometryNodeFieldToGrid.html#bpy.types.GeometryNodeFieldToGrid.grid_items "bpy.types.GeometryNodeFieldToGrid.grid_items") |  |
user: Give a detailed overview of Header: syntax, arguments, return values, common patterns.

assistant: Add New Layer
:   Adds a layer.

Remove Layer
:   Removes the active layer.

Move Layer
:   Moves the active layer down/up.

Isolate Layers (screen icon)
:   Toggle whether the active layer is the only one that can be edited and is visible.

Isolate Layers (padlock icon)
:   Toggle whether the active layer is the only one that can be edited.

### Insert Keyframe

You can press `I` while hovering over the Dope Sheet Editor to insert a keyframe.
It’ll create a copy of the active frame if
[Additive Drawing](../../../grease_pencil/modes/draw/introduction.html#bpy-types-toolsettings-use-gpencil-draw-onback) is enabled,
and a blank frame otherwise.

### Copying Frames

It is possible to copy frames from one layer to another,
or from object to object, using the *Copy* and *Paste* tools in the *Key* menu.
Note that keyframes will be pasted into selected layers, so make sure you have a destination layer selected.
user: Give a detailed overview of Format: syntax, arguments, return values, common patterns.

assistant: # Format

[image reference removed]

Format panel.

Several render presets exist with common resolution and frame rates
for TVs and screens can be selected in the panel header.

Resolution X, Y
:   The number of pixels horizontally and vertically in the image.

Percentage
:   Slider to reduce or increase the size of the rendered image relative to the *Resolution* values.
    This is useful for small test renders that have the same proportions as the final image.

Aspect X, Y
:   Older televisions may have non-square pixels,
    so this can be used to control the shape of the pixels along the respective axis.
    This will *pre-distort* the images which will look stretched on a computer screen,
    but which will display correctly on a TV set.
    It is important that you use the correct pixel aspect ratio when rendering to prevent re-scaling,
    resulting in lowered image quality.

Render Region
:   Renders just a portion of the view instead of the entire frame.
    See the [Render Region](../../../editors/3dview/navigate/regions.xhtml#editors-3dview-navigate-render-region)
    documentation to see how to define the size of the render region.

Crop to Render Region
:   Crops the rendered image to the size of the render region,
    instead of rendering a transparent background around it.

Frame Rate
:   The number of frames that are displayed per second, relevant for [Animation](../animation.xhtml).
    The menu gives several common frame rates, custom frame rates can be used by selecting *Custom*
    which gives access to the following properties:

    FPS
    :   The frame rate, expressed in frames per second.

    Base
    :   Some standards require a more precise frame rate, for example NTSC.
        These can be represent as a fraction where the *Base* value
        is used as the fraction’s denominator and the FPS being the numerator:
        \(\frac{FPS}{Base}\).
user: How do I use Outputs in Blender? Include parameters, examples, warnings and best practices.

assistant: Output
:   Outputs the value from the input corresponding to the selected menu item, unchanged.

For each menu entry, an additional Boolean output is created.
The output corresponding to the selected item is *true*, and all others are *false*.
These Boolean outputs can be used to trigger different node branches, control visibility,
or drive conditional operations elsewhere in the node tree.
user: Give a detailed overview of White Noise Texture Node: syntax, arguments, return values, common patterns.

assistant: # White Noise Texture Node

The *White Noise Texture* node returns a random number based on an input [Seed](../../../glossary/index.xhtml#term-Seed).
The seed can be a number, a 2D vector, a 3D vector, or a 4D vector; depending on the *Dimensions* property.
The output number ranges between zero and one.

[image reference removed]
user: Describe 3D Cursor from the Blender manual or Python API, including usage steps and snippets.

assistant: # 3D Cursor

The 3D Cursor is a point in space that has both a location and a rotation.
It’s used for a number of purposes. For example, it defines where newly
added objects are placed, and can also be used to manually position and orient
the transform gizmo (see [Pivot Point](controls/pivot_point/index.html)
and [Transform Orientation](controls/orientation.html)).
Some tools, such as [Bend](../../modeling/meshes/editing/mesh/transform/bend.html),
also use the Cursor.
user: Provide the full official documentation entry for Magic Texture Node, preserving all code examples.

assistant: # Magic Texture Node

[image reference removed]

The Magic Texture node is used to add a psychedelic color texture.
It can be used for “Thin Film Interference” if you assign a *Reflection* Texture Coordinate
to the Vector input and use a relatively high *Turbulence*.
The RGB components are generated independently with a sine formula.
user: How do I use References in Blender? Include parameters, examples, warnings and best practices.

assistant: |  |  |
| --- | --- |
| - [`MovieTracking.plane_tracks`](bpy.types.MovieTracking.html#bpy.types.MovieTracking.plane_tracks "bpy.types.MovieTracking.plane_tracks") - [`MovieTrackingObject.plane_tracks`](bpy.types.MovieTrackingObject.html#bpy.types.MovieTrackingObject.plane_tracks "bpy.types.MovieTrackingObject.plane_tracks") | - [`MovieTrackingPlaneTracks.active`](bpy.types.MovieTrackingPlaneTracks.html#bpy.types.MovieTrackingPlaneTracks.active "bpy.types.MovieTrackingPlaneTracks.active") |
user: How do I use Separate Spherical Node in Blender? Include parameters, examples, warnings and best practices.

assistant: # Separate Spherical Node

[image reference removed]

The *Separate Spherical* node converts a vector from Cartesian coordinates (X, Y, Z)
into spherical coordinates (R, Φ, Θ) and outputs each component separately.
It is the inverse of the [Combine Spherical](combine_spherical.html) node.

Spherical coordinates describe a position in 3D space using radius, azimuth (horizontal angle),
and polar (vertical) angle. This representation is useful for procedural effects involving
rotational symmetry, spherical gradients, or direction-based transformations.
user: What is Node Editor and how is it used in Blender Python scripting?

assistant: Auto-Offset
:   Automatically offset the following or previous nodes in a chain when inserting a new node.
    See [Auto-Offset](../../interface/controls/nodes/arranging.html#editors-nodes-usage-auto-offset) for more information.

    Auto-offset Margin
    :   Margin to use for [offsetting nodes](../../interface/controls/nodes/arranging.html#editors-nodes-usage-auto-offset).
user: Describe Example from the Blender manual or Python API, including usage steps and snippets.

assistant: We will begin with a very simple example: the default cube.

- To judge the effect of the external forces you should at first turn off the *Goal*,
  so that the vertices are not retracted to their original position.
- Start playback to run the simulation.

What happens? The cube moves in negative Z direction.
Each of its eight vertices is affected by a global, constant force – the gravitation.
Gravitation without friction is independent from the weight of an object,
so each object you would use as a soft body here would fall with the same acceleration.
The object does not deform, because every vertex moves with the same speed in the same direction.
user: Explain Inputs in complete detail according to the official Blender documentation.

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

assistant: | Input Value | Round | Floor | Ceiling | Truncate |
| --- | --- | --- | --- | --- |
| -69.6574 | -70 | -70 | -69 | -69 |
| -3.14159 | -3 | -4 | -3 | -3 |
| -1.5 | -2 | -2 | -1 | -1 |
|  |  |  |  |  |
| 1.5 | 2 | 1 | 2 | 1 |
| 3.14159 | 3 | 3 | 4 | 3 |
| 69.6574 | 70 | 69 | 70 | 69 |
user: Provide the full official documentation entry for Custom Properties, preserving all code examples.

assistant: Create and manage your own properties to store data in the scene’s data block.
See the [Custom Properties](../../files/custom_properties.xhtml#files-data-blocks-custom-properties) page for more information.