PGCRYPT/OpenBlender_Train huggingface dataset:
user: Describe Select More/Less from the Blender manual or Python API, including usage steps and snippets.

assistant: Expands or contracts the selection based on the currently selected control points.

More
:   Adds the neighbors of the selected control points to the selection.

Less
:   Removes the control points with at least one unselected neighbor from the selection.
user: Describe Using Cloth for Soft Bodies from the Blender manual or Python API, including usage steps and snippets.

assistant: [[image reference removed]](../../_images/physics_cloth_examples_softbody1.jpg)

Using cloth for soft bodies.

Cloth can also be used to simulate soft bodies.
It is for sure not its main purpose but it works nonetheless.
The example image uses standard *Rubber* material, no fancy settings,
just `Alt`-`A`.

Blend-file for the example image:
[Using Cloth for soft bodies](https://archive.blender.org/wiki/2015/index.php/File:Cloth-sb1.blend).
user: Explain Main View in complete detail according to the official Blender documentation.

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

assistant: ### Clear

#### Position

Resets the strips [Position Transforms](../../../editors/video_sequencer/sequencer/sidebar/strip.xhtml#bpy-types-striptransform-rotation) to a value of zero.

#### Scale

Resets the strips [Scale Transforms](../../../editors/video_sequencer/sequencer/sidebar/strip.xhtml#bpy-types-striptransform-scale) to a value of one.

#### Rotation

Resets the strips [Rotation Transform](../../../editors/video_sequencer/sequencer/sidebar/strip.xhtml#bpy-types-striptransform-rotation) to a value of zero.

#### All Transforms

Resets the strips position, scale, and rotation [Transforms](../../../editors/video_sequencer/sequencer/sidebar/strip.xhtml#bpy-types-striptransform) to
their default values.

### Apply

#### Scale to Fit

Adjusts the strips [Scale Transforms](../../../editors/video_sequencer/sequencer/sidebar/strip.xhtml#bpy-types-striptransform-scale)
so the visual contents of the strip to fit exactly within the project’s
[Resolution](../../../render/output/properties/format.xhtml#bpy-types-rendersettings-resolution-x)
while maintaining the original aspect ratio.

This may mean that the transparent areas may be added
along the content’s border to fit the content in the rendered area.

#### Scale to Fill

Adjusts the strips [Scale Transforms](../../../editors/video_sequencer/sequencer/sidebar/strip.xhtml#bpy-types-striptransform-scale)
so the visual contents of the strip to span the project’s
[Resolution](../../../render/output/properties/format.xhtml#bpy-types-rendersettings-resolution-x)
while maintaining the original aspect ratio.

This may mean that portions of the original image no longer fit the content inside the rendered area.

#### Stretch to Fill

Adjusts the strips [Scale Transforms](../../../editors/video_sequencer/sequencer/sidebar/strip.xhtml#bpy-types-striptransform-scale)
so the visual contents of the strip to fill the project’s
[Resolution](../../../render/output/properties/format.xhtml#bpy-types-rendersettings-resolution-x).
Note, unlike the other two methods described above, *Stretch to Fill* does not maintaining the original aspect ratio.

This may mean that the original image becomes distorted to fit the content inside the rendered area.
user: What is GlowStrip(EffectStrip) and how is it used in Blender Python scripting?

assistant: # GlowStrip(EffectStrip)

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

*class* bpy.types.GlowStrip(*EffectStrip*)
:   Sequence strip creating a glow effect

    blur_radius
    :   Radius of glow effect

        Type:
        :   float in [0.5, 20], default 0.0

    boost_factor
    :   Brightness multiplier

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

    clamp
    :   Brightness limit of intensity

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

    input_1
    :   First input for the effect strip

        Type:
        :   [`Strip`](bpy.types.Strip.html#bpy.types.Strip "bpy.types.Strip"), (never None)

    input_count
    :   Type:
        :   int in [0, inf], default 0, (readonly)

    quality
    :   Accuracy of the blur effect

        Type:
        :   int in [1, 5], default 0

    threshold
    :   Minimum intensity to trigger a glow

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

    use_only_boost
    :   Show the glow buffer only

        Type:
        :   boolean, default False

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Flip Horizontally
:   Mirrors the image so the left side becomes the right side.

Flip Vertically
:   Mirrors the image so the top becomes the bottom.

Rotate 90° Clockwise
:   Rotates the image clockwise 90°.

Rotate 90° Counter-Clockwise
:   Rotates the image counter-clockwise 90°.

Rotate 180°
:   Rotates the image 180°.
user: Give a detailed overview of BoidRuleFight(BoidRule): syntax, arguments, return values, common patterns.

assistant: # BoidRuleFight(BoidRule)

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

*class* bpy.types.BoidRuleFight(*BoidRule*)
:   distance
    :   Attack boids at max this distance

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

    flee_distance
    :   Flee to this distance

        Type:
        :   float in [0, 100], 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: Describe RetimingKey(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # RetimingKey(bpy_struct)

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

*class* bpy.types.RetimingKey(*bpy_struct*)
:   Key mapped to particular frame that can be moved to change playback speed

    timeline_frame
    :   Position of retiming key in timeline

        Type:
        :   int in [-inf, inf], default 0

    remove()
    :   Remove retiming key

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: # Sampling

EEVEE uses a process called Temporal Anti-Aliasing (TAA) which reduces [Aliasing](../../../glossary/index.xhtml#term-Aliasing).
TAA is sample based so the more samples the more aliasing is reduced at the cost of performance.
user: Explain Examples in complete detail according to the official Blender documentation.

assistant: [image reference removed]

The difference between *F1* and *Smooth F1* can be used to create beveled Voronoi cells.

[image reference removed]

Creating a hammered metal shader using the *Voronoi Texture* node.
user: What is NodeSocketVectorEuler(NodeSocketStandard) and how is it used in Blender Python scripting?

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

    default_value
    :   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)

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

assistant: Grid
:   The input signed distance field to offset.

Distance
:   The offset distance applied to the surface, in world units.
    Positive values expand the surface (dilation), and negative values contract it (erosion).
    The offset is applied uniformly in all directions, preserving smoothness and the signed distance property.
user: Describe CacheFileLayer(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # CacheFileLayer(bpy_struct)

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

*class* bpy.types.CacheFileLayer(*bpy_struct*)
:   Layer of the cache, used to load or override data from the first the first layer

    filepath
    :   Path to the archive

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

    hide_layer
    :   Do not load data from this layer

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

assistant: # GeometryNodeEdgePathsToCurves(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.GeometryNodeEdgePathsToCurves(*GeometryNode*)
:   Output curves following paths across mesh edges

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Color
:   Gives the color of the smoke inside the [Fluid Domain](../../../physics/fluid/type/domain/index.xhtml).
    The color and vector outputs are the same. The Factor output is an average of the channels.

Density
:   Gives a scalar defining the density of any smoke inside
    the [Fluid Domain](../../../physics/fluid/type/domain/index.xhtml).

Flame
:   Gives a scalar defining the density of any fire inside
    the [Fluid Domain](../../../physics/fluid/type/domain/index.xhtml).
    All three outputs are the same.

Temperature
:   Gives a scalar defining the temperature of the volume. Values in the range 0 - 1 map to 0 - 1000 kelvin.
    This may be used to render physically-based fire with the Blackbody or Principled Volume shaders.
    All three outputs are the same.
user: How do I use Usage in Blender? Include parameters, examples, warnings and best practices.

assistant: 1. Select the desired keyframes to draw, edit or sculpt at the same time.
2. Activate the Multiframe tool in the 3D Viewport’s header with the toggle button (faded lines icon).
3. Once activated you can:

   - Select the points in all the selected keyframes and make your edits.
   - Start sculpting. The sculpt brushes will affects all the strokes in the selected keyframes.
   - Start weight painting. The weight paint brush will affect all the strokes in the selected keyframes.
   - Start Drawing. The new strokes will be added in all the selected keyframes.
     If you are using the Fill tool then it will be applied in all the selected keyframes.
   - When interpolating you can select the stroke from the different frames in the right order.
     Interpolate tool will use the selection order to calculate the correct stroke pairs.
user: What is Camera View and how is it used in Blender Python scripting?

assistant: # Camera View

[image reference removed]

Demonstration of camera view.

The Camera view shows the current scene from the active camera’s viewpoint.

The Camera view can be used to virtually compose shots and preview how the scene will look when rendered.
The rendered image will contain everything within the dashed frame.
user: What is Bpy.Types.Oceanmodifier and how is it used in Blender Python scripting?

assistant: a Modifier.name Modifier.type Modifier.show_viewport Modifier.show_render Modifier.show_in_editmode Modifier.show_on_cage Modifier.show_expanded Modifier.is_active Modifier.use_pin_to_last Modifier.is_override_data Modifier.use_apply_on_spline Modifier.execution_time Modifier.persistent_uid Inherited Functions ¶ bpy_struct.as_pointer bpy_struct.driver_add bpy_struct.driver_remove bpy_struct.get bpy_struct.id_properties_clear bpy_struct.id_properties_ensure bpy_struct.id_properties_ui bpy_struct.is_property_hidden bpy_struct.is_property_overridable_library bpy_struct.is_property_readonly bpy_struct.is_property_set bpy_struct.items bpy_struct.keyframe_delete bpy_struct.keyframe_insert bpy_struct.keys bpy_struct.path_from_id bpy_struct.path_from_module bpy_struct.path_resolve bpy_struct.pop bpy_struct.property_overridable_library_set bpy_struct.property_unset bpy_struct.rna_ancestors bpy_struct.type_recast bpy_struct.values Modifier.bl_rna_get_subclass Modifier.bl_rna_get_subclass_py Next Operator(bpy_struct) Previous ObjectSolverConstraint(Constraint) Copyright &#169; Blender Authors Made with Furo Report issue on this page On this page OceanModifier(Modifier) OceanModifier OceanModifier.bake_foam_fade OceanModifier.choppiness OceanModifier.damping OceanModifier.depth OceanModifier.fetch_jonswap OceanModifier.filepath OceanModifier.foam_coverage OceanModifier.foam_layer_name OceanModifier.frame_end OceanModifier.frame_start OceanModifier.geometry_mode OceanModifier.invert_spray OceanModifier.is_cached OceanModifier.random_seed OceanModifier.repeat_x OceanModifier.repeat_y OceanModifier.resolution OceanModifier.sharpen_peak_jonswap OceanModifier.size OceanModifier.spatial_size OceanModifier.spectrum OceanModifier.spray_layer_name OceanModifier.time OceanModifier.use_foam OceanModifier.use_normals OceanModifier.use_spray OceanModifier.viewport_resolution OceanModifier.wave_alignment OceanModifier.wave_direction OceanModifier.wave_scale OceanModifier.wave_scale_min OceanModifier.wind_velocity OceanModifier.bl_rna_get_subclass() OceanModifier.bl_rna_get_subclass_py() Inherited Properties Inherited Functions
user: Give a detailed overview of References: syntax, arguments, return values, common patterns.

assistant: |  |  |
| --- | --- |
| - [`ActionChannelbag.groups`](bpy.types.ActionChannelbag.html#bpy.types.ActionChannelbag.groups "bpy.types.ActionChannelbag.groups") - [`ActionChannelbagGroups.new`](bpy.types.ActionChannelbagGroups.html#bpy.types.ActionChannelbagGroups.new "bpy.types.ActionChannelbagGroups.new") | - [`ActionChannelbagGroups.remove`](bpy.types.ActionChannelbagGroups.html#bpy.types.ActionChannelbagGroups.remove "bpy.types.ActionChannelbagGroups.remove") - [`FCurve.group`](bpy.types.FCurve.html#bpy.types.FCurve.group "bpy.types.FCurve.group") |
user: Describe Options from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

Collision panel.

### Collision

Field Absorption
:   A deflector can also deflect effectors. You can specify some collision/deflector objects which deflect
    a specific portion of the effector force using the *Field Absorption* value. 100% absorption results in no force
    getting through the collision/deflector object at all. If you have three collision object behind each other with
    e.g. 10%, 43% and 3%, the absorption ends up at around 50% \(100 × (1 - 0.1) × (1 - 0.43) × (1 - 0.03)\).

### Particle

Permeability
:   Fraction of particles passing through the mesh.

Stickiness
:   How much particles stick to the object.

Kill Particles
:   Deletes Particles upon impact.

Damping
:   Damping during a collision (independent of the velocity of the particles).

    Randomize
    :   Random variation of damping.

Friction
:   Friction during movements along the surface.

    Randomize
    :   Random variation of friction.

### Soft Body and Cloth

It is also important to note that this collision panel is used to tell
all simulations that this object is to participate in colliding/deflecting other objects
on a shared layer (particles, soft bodies, and cloth).

[image reference removed]

Collision stack.

Damping
:   Damping during a collision.
    The amount of bounce that the surfaces will have.

    - 0.0 - No damping, soft bodies will have a maximum bounciness.
    - 1.0 - Maximum damping, soft bodies will not bounce at all.

Thickness
:   A padding distance is added to the inside and outside of each face, to help to prevent intersections.
    The soft body will come to rest at this distance away from the face of the colliding object.
    Outside and inside is defined by the face normal, depicted as blue arrow in Fig. [A soft body vertex colliding with a plane.](#fig-collision-soft-plane).

    Outer
    :   Size of the outer collision zone.

    Inner
    :   Size of the inner collision zone (padding distance).

[[image reference removed]](../_images/physics_collision_outer-inner.png)

A soft body vertex colliding with a plane.

Friction
:   A coefficient for how slippery the cloth is when it collides with itself.
    For example, silk has a lower coefficient of friction than cotton.

Single Sided
:   When enabled, the collider is considered to represent the boundary of a solid object
    rather than a thin surface, and ejects intersecting cloth in the direction of its normal.

Override Normals
:   When enabled, cloth collision impulses act in the direction of the collider normals.
user: Provide the full official documentation entry for Snap, preserving all code examples.

assistant: Apart from using the snapping operators in this menu, you can also turn on
[snapping](../introduction.html#bpy-types-toolsettings-use-snap-anim) in the header.

Selection to Current Frame
:   Set the selected keyframes’ time to the current frame.

Selection to Cursor Value
:   Set the selected keyframes’ value to that of the [2D Cursor](../introduction.html#graph-editor-2d-cursor).

Selection to Nearest Frame
:   Round the time of each keyframe to the nearest frame.

Selection to Nearest Second
:   Round the time of each keyframe to the nearest second.
    You can use [Use Timecode](../introduction.html#bpy-types-spacegrapheditor-show-seconds)
    to show seconds instead of frames at the top of the editor.

Selection to Nearest Marker
:   Set the time of each keyframe to that of the nearest [marker](../../../animation/markers.html).

Flatten Handles
:   Flatten the *Bézier* handles for the selected keyframes.

    Flatten Handles snapping example.

    |  |  |
    | --- | --- |
    | ../../../_images/editors_graph-editor_fcurves_editing_flatten-handles-1.png   Before Flatten Handles. | ../../../_images/editors_graph-editor_fcurves_editing_flatten-handles-2.png   After Flatten Handles. |

Equalize Handles
:   Ensure selected keyframes’ handles have equal length.

    Side
    :   Which handles to affect (left, right, or both).

    Handle Length
    :   Length to make selected keyframes’ Bézier handles.

    Flatten
    :   Make the values of the handles the same as their respective keyframes.

Cursor to Selected `Ctrl`-`G`
:   Changes the time and value of the 2D Cursor to the average time and value of the selected keyframes.

Cursor Value to Selection
:   Changes the value of the 2D Cursor to the average value of the selected keyframes.
user: Give a detailed overview of Outputs: syntax, arguments, return values, common patterns.

assistant: Geometry
:   The resulting geometry with braided deformation applied.

Flare Parameter
:   A value from 0 to 1 indicating the position along the braid flare region.
    This can be used for shading or for adding effects (such as tying, binding, or loosening
    near the braid tip).

Strand Index
:   An index identifying which strand of the braid each curve belongs to within its braid group.

### Guide Map

Guide Index
:   The guide index map actually used to generate the braid.
    If a new guide map was created by this node, it is provided here for reuse downstream.
user: Explain GeometryNodeIsViewport(GeometryNode) in complete detail according to the official Blender documentation.

assistant: # GeometryNodeIsViewport(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.GeometryNodeIsViewport(*GeometryNode*)
:   Retrieve whether the nodes are being evaluated for the viewport rather than the final render

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

assistant: In addition to the options above, which apply to all render engines,
Cycles has additional options to further control its behavior.
See [Cycles Render Options](arguments.html#command-line-args-cycles-render-options)
user: Describe Inputs from the Blender manual or Python API, including usage steps and snippets.

assistant: Position
:   A 2D vector that defines the location of the split line in normalized coordinates.
    The *X* and *Y* values range from 0 to 1, where (0.5, 0.5) places the split line
    at the center of the image.

Rotation
:   Adjusts the angle of the split line in degrees.

Image
:   The first image input, displayed on one side of the split.

Image
:   The second image input, displayed on the opposite side of the split.
user: What is Average Tracks and how is it used in Blender Python scripting?

assistant: The Average Tracks operator creates a new tracking marker by averaging the data from the selected tracks.
This can be used to improve stability of tracking on blurry or non-very-sharp feature shapes.
The operator takes into account all [Marker properties](../sidebar/track/marker.xhtml)
however, disabled markers do not affect the averaging.

Gaps in the original tracks will be linearly interpolated, to reduce result track jump.
Note that this only applies to gaps “in between”.
This means that if a track does not have markers in the beginning or end of it,
there is nothing to interpolate with and the resulting track will jump.

Keep Original
:   When enabled, the selected tracks are *not* deleted.
user: What is GeometryNodeRepeatInput(GeometryNode) and how is it used in Blender Python scripting?

assistant: # GeometryNodeRepeatInput(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.GeometryNodeRepeatInput(*GeometryNode*)
:   paired_output
    :   Zone output node that this input node is paired with

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

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

        Return type:
        :   boolean

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of Studio Lights: syntax, arguments, return values, common patterns.

assistant: Studio Lights are used to illuminate the 3D Viewport during *Solid View* and will not be rendered.
Unlike lights in the scene, the lighting direction follows the viewport orientation.

### Editor

There are up to four virtual light sources.

The Light toggles allow you to enable or disable individual lights.
At least one of the four lights must remain enabled for the 3D Viewport.
The lights are equal, except for their direction and color.
You can control the direction of the lights, as well as their diffuse and specular colors.

Use Light
:   Toggles the specific light.

Diffuse
:   This is the constant color of the light.

Specular
:   This is the highlight color of the light.

Smooth
:   Smooth the shading from this light.

    *This has the effect of lighting to be less direct.*

Direction
:   The direction of the light, (see [Direction Buttons](../../interface/controls/buttons/buttons.xhtml#ui-direction-button)).

    The direction of the light will be the same as shown at the sphere surface.

Ambient Color
:   The color of unlit areas.
user: Explain Handles & Interpolation Mode Display in complete detail according to the official Blender documentation.

assistant: Dope Sheet can display the Bézier handle type associated with the keyframe,
and mark segments with non-Bézier interpolation.
This facilitates basic editing of interpolation without the use of the Graph Editor.

The icon shape represents the type of the [Bézier Handles](../../editors/graph_editor/fcurves/properties.xhtml#editors-graph-fcurves-settings-handles)
belonging to the keyframe.

[image reference removed]

From top: summary, Bézier, linear.

|  |  |
| --- | --- |
| Circle | Auto Clamped (default) |
| Circle With Dot | Automatic |
| Square | Vector |
| Clipped Diamond | Aligned |
| Diamond | Free |

If the handles of a keyframe have different types,
or in case of summary rows representing multiple curves,
out of the available choices the icon that is furthest down the list is used.
This means that if a grouped row uses a circle icon,
it is guaranteed that none of the grouped channels have a non-auto key.

Horizontal green lines mark the use of
non-Bézier [Interpolation](../../editors/graph_editor/fcurves/properties.xhtml#editors-graph-fcurves-settings-interpolation).
The line is dimmed in summary rows if not all grouped channels have the same interpolation.

Display of this information can be disabled via the *Show Handles and Interpolation*
option of the Dope Sheet’s [View Menu](../../editors/dope_sheet/navigating.xhtml#dope-sheet-view-menu).
user: Show practical ways to work with CompositorNodeInpaint(CompositorNode) in a Blender add-on or script – include code.

assistant: # CompositorNodeInpaint(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.CompositorNodeInpaint(*CompositorNode*)
:   Extend borders of an image into transparent or masked regions

    *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: Provide the full official documentation entry for ParticleDupliWeight(bpy_struct), preserving all code examples.

assistant: # ParticleDupliWeight(bpy_struct)

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

*class* bpy.types.ParticleDupliWeight(*bpy_struct*)
:   Weight of a particle instance object in a collection

    count
    :   The number of times this object is repeated with respect to other objects

        Type:
        :   int in [0, 32767], default 0

    name
    :   Particle instance object name

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of FunctionNodeQuaternionToRotation(FunctionNode): syntax, arguments, return values, common patterns.

assistant: # FunctionNodeQuaternionToRotation(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.FunctionNodeQuaternionToRotation(*FunctionNode*)
:   Build a rotation from quaternion components

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

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

assistant: Height
:   Distance to displace the surface along the normal.
    This is where a texture node can be connected.

Midlevel
:   Neutral displacement value that causes no displacement.
    With the default 0.5, any lower values will cause the surfaces to be pushed inwards,
    and any higher values will push them outwards.

Scale
:   Increase or decrease the amount of displacement.

Normal
:   Standard normal input.
user: Give a detailed overview of ShaderNodeHairInfo(ShaderNode): syntax, arguments, return values, common patterns.

assistant: # ShaderNodeHairInfo(ShaderNode)

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

*class* bpy.types.ShaderNodeHairInfo(*ShaderNode*)
:   Retrieve hair curve information

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

        Returns:
        :   Result

        Return type:
        :   boolean

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

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

        Returns:
        :   result

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

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

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

        Returns:
        :   result

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

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

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

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

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

        Returns:
        :   The class or default when not found.

        Return type:
        :   type
user: Give a detailed overview of Attribute(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # Attribute(bpy_struct)

Attributes are used to store data that corresponds to geometry elements.
Geometry elements are items in one of the geometry domains like points, curves, or faces.

An attribute has a `name`, a `type`, and is stored on a `domain`.

`name`
:   The name of this attribute. Names have to be unique within the same geometry.
    If the name starts with a `.`, the attribute is hidden from the UI.

`type`
:   The type of data that this attribute stores, e.g. a float, integer, color, etc.
    See [Attribute Type Items](bpy_types_enum_items/attribute_type_items.html).

`domain`
:   The geometry domain that the attribute is stored on.
    See [Attribute Domain Items](bpy_types_enum_items/attribute_domain_items.html).
user: What is Additional Math Functions (bl_math) and how is it used in Blender Python scripting?

assistant: # Additional Math Functions (bl_math)

Miscellaneous math utilities module.

bl_math.clamp(*value*, *min=0*, *max=1*)
:   Clamps the float value between minimum and maximum. To avoid
    confusion, any call must use either one or all three arguments.

    Parameters:
    :   - **value** (*float*) – The value to clamp.
        - **min** (*float*) – The minimum value, defaults to 0.
        - **max** (*float*) – The maximum value, defaults to 1.

    Returns:
    :   The clamped value.

    Return type:
    :   float

bl_math.lerp(*from_value*, *to_value*, *factor*)
:   Linearly interpolate between two float values based on factor.

    Parameters:
    :   - **from_value** (*float*) – The value to return when factor is 0.
        - **to_value** (*float*) – The value to return when factor is 1.
        - **factor** (*float*) – The interpolation value, normally in [0.0, 1.0].

    Returns:
    :   The interpolated value.

    Return type:
    :   float

bl_math.smoothstep(*from_value*, *to_value*, *value*)
:   Performs smooth interpolation between 0 and 1 as value changes between from and to values.
    Outside the range the function returns the same value as the nearest edge.

    Parameters:
    :   - **from_value** (*float*) – The edge value where the result is 0.
        - **to_value** (*float*) – The edge value where the result is 1.
        - **factor** (*float*) – The interpolation value.

    Returns:
    :   The interpolated value in [0.0, 1.0].

    Return type:
    :   float
user: Explain Hovering in complete detail according to the official Blender documentation.

assistant: The following shortcuts can be pressed while hovering the mouse cursor
over an editable field.

### Properties

|  |  |
| --- | --- |
| `Ctrl`-`C` | Copy the (single) value of the field. |
| `Ctrl`-`V` | Paste the (single) value of the field. |
| `Ctrl`-`Alt`-`C` | Copy the entire vector or color of the field. |
| `Ctrl`-`Alt`-`V` | Paste the entire vector or color of the field. |
| `RMB` | Open the context menu. |
| `Backspace` | Reset the value to its default. |
| `Minus` | Invert the value’s sign (multiply by -1.0). |
| `Ctrl`-`Wheel` | Change the value in incremental steps.  For fields with a pop-up list of values, this cycles the value. |
| `Return` | Activates menus and toggles checkboxes. |
| `Alt` | Hold while editing values to apply the change to all selected items (objects, bones, sequence-strips).  This can be used for number fields and toggles. |
user: Explain Dissolve in complete detail according to the official Blender documentation.

assistant: Dissolve operations are also accessed from the delete menu.
Dissolve will remove the geometry and fill in the surrounding geometry.
Instead of removing the geometry, which may leave holes that you have to fill in again.

Removes selected geometry, but without creating holes, effectively turning the selection into a single n-gon.
Dissolve works slightly different based on if you have edges, faces or vertices selected.
You can add detail where you need it, or quickly remove it where you do not.

### Dissolve Vertices

Remove the vertex, merging all surrounding faces.
In the case of two edges, merging them into a single edge.

Face Split
:   When dissolving vertices into surrounding faces, you can often end up with very large, uneven n-gons.
    The face split option limits dissolve to only use the corners of the faces connected to the vertex.

Tear Boundaries
:   Split off face corners instead of merging faces.

#### Examples

[image reference removed]

1) Original mesh.
2) Face Split: Off, Tear Boundaries: Off.
3) Face Split: On, Tear Boundaries: Off.
4) Face Split: On/Off, Tear Boundaries: On.

### Dissolve Edges

Removes edges sharing two faces (joining those faces).

Face Split
:   When dissolving vertices into surrounding faces, you can often end up with very large, uneven n-gons.
    The face split option limits dissolve to only use the corners of the faces connected to the vertex.

Angle Threshold
:   Remaining vertices which separate edge pairs are preserved if their edge angle exceeds this threshold.

Tear Boundaries
:   Split off face corners instead of merging faces.

### Dissolve Faces

Merges regions of faces that share edges into a single face.

### Dissolve (Context-Sensitive)

This is a convenient shortcut that dissolves
based on the current selection mode (vertex, edge, face).