nodes.geometry.manual

nodes.geometry.manual

Classes

Name Description
AccumulateField Add the values of an evaluated field together and output the running total for each element
AttributeStatistic Calculate statistics about a data set from a field evaluated on a geometry
Bake Cache the incoming data so that it can be used without recomputation
CaptureAttribute Store the result of a field on a geometry and output the data as a node socket.
Compare Perform a comparison operation on the two given inputs
EvaluateAtIndex Retrieve data of other elements in the context’s geometry
EvaluateOnDomain Retrieve values from a field on a different domain besides the domain from the context
FieldAverage Calculate the mean and median of a given field
FieldMinAndMax Calculate the minimum and maximum of a given field
FieldToGrid Create new grids by evaluating new values on an existing volume grid topology
FieldVariance Calculate the standard deviation and variance of a given field
FormatString Insert values into a string using a Python and path template compatible formatting syntax
GeometryToInstance Convert each input geometry into an instance, which can be much faster
HandleTypeSelection Provide a selection based on the handle types of Bézier control points
IndexSwitch Node builder for the Index Switch node
JoinGeometry Merge separately generated geometries into a single one
JoinStrings Combine any number of input strings
MenuSwitch Node builder for the Menu Switch node
SDFGridBoolean Cut, subtract, or join multiple SDF volume grid inputs
SetHandleType Set the handle type for the control points of a Bézier curve
Value Input numerical values to other nodes in the tree

AccumulateField

nodes.geometry.manual.AccumulateField(
    value=1.0,
    group_index=0,
    *,
    data_type='FLOAT',
    domain='POINT',
    **kwargs,
)

Add the values of an evaluated field together and output the running total for each element

Attributes

Name Description
corner
data_type
domain
edge
face
i_group_id Input socket: Group ID
i_value Input socket: Value
instance
layer
name
node
o_leading Output socket: Leading
o_total Output socket: Total
o_trailing Output socket: Trailing
point
spline
tree
type

AttributeStatistic

nodes.geometry.manual.AttributeStatistic(
    geometry=None,
    selection=True,
    attribute=None,
    *,
    data_type='FLOAT',
    domain='POINT',
    **kwargs,
)

Calculate statistics about a data set from a field evaluated on a geometry

Attributes

Name Description
data_type
domain
i_attribute Input socket: Attribute
i_geometry Input socket: Geometry
i_selection Input socket: Selection
name
node
o_max Output socket: Max
o_mean Output socket: Mean
o_median Output socket: Median
o_min Output socket: Min
o_range Output socket: Range
o_standard_deviation Output socket: Standard Deviation
o_sum Output socket: Sum
o_variance Output socket: Variance
tree
type

Bake

nodes.geometry.manual.Bake(*args, **kwargs)

Cache the incoming data so that it can be used without recomputation

TODO: properly handle Animation / Still bake opations and ability to bake to a file

Attributes

Name Description
i_input_socket Input socket:
inputs
name
node
o_input_socket Output socket:
outputs
tree
type

CaptureAttribute

nodes.geometry.manual.CaptureAttribute(
    *args,
    geometry=None,
    domain='POINT',
    **kwargs,
)

Store the result of a field on a geometry and output the data as a node socket. Allows remembering or interpolating data as the geometry changes, such as positions before deformation

Attributes

Name Description
corner
curve
domain
edge
face
i_geometry Input socket: Geometry
inputs
instance
layer
name
node
o_geometry Output socket: Geometry
outputs
point
tree
type

Methods

Name Description
capture Capture the value to store in the attribute
capture
nodes.geometry.manual.CaptureAttribute.capture(value)

Capture the value to store in the attribute

Return the SocketLinker for the output socket

Compare

nodes.geometry.manual.Compare(
    operation='GREATER_THAN',
    data_type='FLOAT',
    **kwargs,
)

Perform a comparison operation on the two given inputs

Attributes

Name Description
brighter
darker
data_type
equal
greater_equal
greater_than
i_a Input socket: A
i_b Input socket: B
less_equal
less_than
mode
name
node
not_equal
o_result Output socket: Result
operation
tree
type

Methods

Name Description
color Create Compare with operation ‘Color’.
float
integer
string Create Compare with operation ‘String’.
vector
color
nodes.geometry.manual.Compare.color(
    a=None,
    b=None,
    operation='EQUAL',
    *,
    epsilon=None,
)

Create Compare with operation ‘Color’.

float
nodes.geometry.manual.Compare.float(
    a=0.0,
    b=0.0,
    operation='LESS_THAN',
    *,
    epsilon=0.0001,
)
integer
nodes.geometry.manual.Compare.integer(a=0, b=0, operation='LESS_THAN')
string
nodes.geometry.manual.Compare.string(a='', b='')

Create Compare with operation ‘String’.

vector
nodes.geometry.manual.Compare.vector(
    a=(0.0, 0.0, 0.0),
    b=(0.0, 0.0, 0.0),
    operation='LESS_THAN',
    *,
    mode='ELEMENT',
    c=None,
    angle=None,
    epsilon=None,
)

EvaluateAtIndex

nodes.geometry.manual.EvaluateAtIndex(
    value=None,
    index=0,
    *,
    domain='POINT',
    data_type='FLOAT',
    **kwargs,
)

Retrieve data of other elements in the context’s geometry

Attributes

Name Description
corner
data_type
domain
edge
face
i_index Input socket: Index
i_value Input socket: Value
instance
layer
name
node
o_value Output socket: Value
point
spline
tree
type

EvaluateOnDomain

nodes.geometry.manual.EvaluateOnDomain(
    value=None,
    *,
    domain='POINT',
    data_type='FLOAT',
)

Retrieve values from a field on a different domain besides the domain from the context

Attributes

Name Description
corner
data_type
domain
edge
face
i_value Input socket: Value
instance
layer
name
node
o_value Output socket: Value
point
spline
tree
type

FieldAverage

nodes.geometry.manual.FieldAverage(
    value=None,
    group_index=0,
    *,
    data_type='FLOAT',
    domain='POINT',
)

Calculate the mean and median of a given field

Attributes

Name Description
corner
data_type
domain
edge
face
i_group_id Input socket: Group ID
i_value Input socket: Value
instance
layer
name
node
o_mean Output socket: Mean
o_median Output socket: Median
point
spline
tree
type

FieldMinAndMax

nodes.geometry.manual.FieldMinAndMax(
    value=1.0,
    group_index=0,
    *,
    data_type='FLOAT',
    domain='POINT',
)

Calculate the minimum and maximum of a given field

Attributes

Name Description
corner
data_type
domain
edge
face
i_group_id Input socket: Group ID
i_value Input socket: Value
instance
layer
name
node
o_max Output socket: Max
o_min Output socket: Min
point
spline
tree
type

FieldToGrid

nodes.geometry.manual.FieldToGrid(
    *args,
    topology=None,
    data_type='FLOAT',
    **kwargs,
)

Create new grids by evaluating new values on an existing volume grid topology

New socket items for field evaluation are first created from *args then **kwargs to give specific names to the items.

Data types are inferred automatically from the closest compatible data type.

Inputs:

topology: LINKABLE The grid which contains the topology to evaluate the different fields on. data_type: _GridDataTypes = “FLOAT” The data type of the grid to evaluate on. Possible values are “FLOAT”, “INT”, “VECTOR”, “BOOLEAN”. *args: TYPE_INPUT_VALUE | TYPE_INPUT_VECTOR | TYPE_INPUT_INT | TYPE_INPUT_BOOLEAN The fields to evaluate on the grid. **kwargs: dict[str, TYPE_INPUT_VALUE | TYPE_INPUT_VECTOR | TYPE_INPUT_INT | TYPE_INPUT_GEOMETRY] The key-value pairs of the fields to evaluate on the grid. Keys will be used as the name of the socket.

Attributes

Name Description
data_type
i_topology Input socket: Topology
inputs
name
node
outputs
tree
type

Methods

Name Description
boolean
capture
float
integer
vector
boolean
nodes.geometry.manual.FieldToGrid.boolean(*args, topology=None, **kwargs)
capture
nodes.geometry.manual.FieldToGrid.capture(*args, **kwargs)
float
nodes.geometry.manual.FieldToGrid.float(*args, topology=None, **kwargs)
integer
nodes.geometry.manual.FieldToGrid.integer(*args, topology=None, **kwargs)
vector
nodes.geometry.manual.FieldToGrid.vector(*args, topology=None, **kwargs)

FieldVariance

nodes.geometry.manual.FieldVariance(
    value=None,
    group_index=None,
    *,
    data_type='FLOAT',
    domain='POINT',
)

Calculate the standard deviation and variance of a given field

Attributes

Name Description
corner
data_type
domain
edge
face
i_group_id Input socket: Group ID
i_value Input socket: Value
instance
layer
name
node
o_standard_deviation Output socket: Standard Deviation
o_variance Output socket: Variance
point
spline
tree
type

FormatString

nodes.geometry.manual.FormatString(*args, format='', **kwargs)

Insert values into a string using a Python and path template compatible formatting syntax

Attributes

Name Description
i_format Input socket: Format
i_input_socket Input socket:
items Input sockets:
name
node
o_string Output socket: String
tree
type

GeometryToInstance

nodes.geometry.manual.GeometryToInstance(*args)

Convert each input geometry into an instance, which can be much faster than the Join Geometry node when the inputs are large

Attributes

Name Description
i_geometry Input socket: Geometry
name
node
o_instances Output socket: Instances
tree
type

HandleTypeSelection

nodes.geometry.manual.HandleTypeSelection(
    handle_type='AUTO',
    left=True,
    right=True,
)

Provide a selection based on the handle types of Bézier control points

Attributes

Name Description
handle_type
left
mode
name
node
o_selection Output socket: Selection
right
tree
type

IndexSwitch

nodes.geometry.manual.IndexSwitch(*args, index=0, data_type='FLOAT')

Node builder for the Index Switch node

Attributes

Name Description
boolean
bundle
closure
collection
color
data_type Input socket: Data Type
float
geometry
i_index Input socket: Index
image
inputs Input sockets
integer
material
matrix
menu
name
node
o_output Output socket: Output
object
rotation
string
tree
type
vector

JoinGeometry

nodes.geometry.manual.JoinGeometry(*args)

Merge separately generated geometries into a single one

Attributes

Name Description
i_geometry Input socket: Geometry
name
node
o_geometry Output socket: Geometry
tree
type

JoinStrings

nodes.geometry.manual.JoinStrings(*args, delimiter='')

Combine any number of input strings

Attributes

Name Description
i_delimiter Input socket: Delimiter
i_strings Input socket: Strings
name
node
o_string Output socket: String
tree
type

MenuSwitch

nodes.geometry.manual.MenuSwitch(*args, menu=None, data_type='FLOAT', **kwargs)

Node builder for the Menu Switch node

Attributes

Name Description
boolean
bundle
closure
collection
color
data_type Input socket: Data Type
float
geometry
i_menu Input socket: Menu
image
inputs Input sockets
integer
material
matrix
menu
name
node
o_output Output socket: Output
object
outputs Input sockets
rotation
string
tree
type
vector

SDFGridBoolean

nodes.geometry.manual.SDFGridBoolean(operation='DIFFERENCE')

Cut, subtract, or join multiple SDF volume grid inputs

Attributes

Name Description
i_grid_1 Input socket: Grid 1
i_grid_2 Input socket: Grid 2
name
node
o_grid Output socket: Grid
operation
tree
type

Methods

Name Description
difference Create SDF Grid Boolean with operation ‘Difference’.
intersect
union
difference
nodes.geometry.manual.SDFGridBoolean.difference(*args, grid_1)

Create SDF Grid Boolean with operation ‘Difference’.

intersect
nodes.geometry.manual.SDFGridBoolean.intersect(*args)
union
nodes.geometry.manual.SDFGridBoolean.union(*args)

SetHandleType

nodes.geometry.manual.SetHandleType(
    curve=None,
    selection=True,
    *,
    left=False,
    right=False,
    handle_type='AUTO',
)

Set the handle type for the control points of a Bézier curve

Attributes

Name Description
handle_type
i_curve Input socket: Curve
i_selection Input socket: Selection
left
name
node
o_curve Output socket: Curve
right
tree
type

Value

nodes.geometry.manual.Value(value=0.0)

Input numerical values to other nodes in the tree

Attributes

Name Description
name
node
o_value Output socket: Value
tree
type
value Input socket: Value