nodes.geometry.manual

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
MeshBoolean Cut, subtract, or join multiple mesh inputs
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

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
inputs
instance
layer
name
node
o
outputs
point
spline
tree
type

AttributeStatistic

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
inputs
name
node
o
outputs
tree
type

Bake

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 accessor. Subclasses narrow the return type via TYPE_CHECKING.
inputs
name
node
o Output socket accessor. Subclasses narrow the return type via TYPE_CHECKING.
outputs
tree
type

CaptureAttribute

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
inputs
instance
layer
name
node
o
outputs
point
tree
type

Methods

Name Description
capture Capture the value to store in the attribute
capture
capture(value)

Capture the value to store in the attribute

Return the SocketLinker for the output socket

Compare

Compare(operation='GREATER_THAN', data_type='FLOAT', **kwargs)

Perform a comparison operation on the two given inputs

Attributes

Name Description
color
data_type
float
i
inputs
integer
mode
name
node
o
operation
outputs
string
tree
type
vector

Methods

Name Description
switch
switch
switch(false, true)

EvaluateAtIndex

EvaluateAtIndex(value=None, index=0, *, domain='POINT', data_type='FLOAT')

Retrieve data of other elements in the context’s geometry

Attributes

Name Description
corner
data_type
domain
edge
face
i
inputs
instance
layer
name
node
o
outputs
point
spline
tree
type

EvaluateOnDomain

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
inputs
instance
layer
name
node
o
outputs
point
spline
tree
type

FieldAverage

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
inputs
instance
layer
name
node
o
outputs
point
spline
tree
type

FieldMinAndMax

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
inputs
instance
layer
name
node
o
outputs
point
spline
tree
type

FieldToGrid

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: InputLinkable 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: InputFloat | InputVector | InputInteger | InputBoolean The fields to evaluate on the grid. **kwargs: dict[str, InputFloat | InputVector | InputInteger | InputGeometry] 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
inputs
name
node
o Output socket accessor. Subclasses narrow the return type via TYPE_CHECKING.
outputs
tree
type

Methods

Name Description
boolean
capture
float
integer
vector
boolean
boolean(*args, topology=None, **kwargs)
capture
capture(*args, **kwargs)
float
float(*args, topology=None, **kwargs)
integer
integer(*args, topology=None, **kwargs)
vector
vector(*args, topology=None, **kwargs)

FieldVariance

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
inputs
instance
layer
name
node
o
outputs
point
spline
tree
type

FormatString

FormatString(*args, format='', **kwargs)

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

Attributes

Name Description
i
inputs
items Input sockets:
name
node
o
outputs
tree
type

GeometryToInstance

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
inputs
name
node
o
outputs
tree
type

Inputs

Attribute Type Description
geometry GeometrySocket Multi-input socket; geometry that will be converted into an instance

Outputs

Attribute Type Description
instances GeometrySocket Single geometry output with each input linked geometry as a separate instance

HandleTypeSelection

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
i Input socket accessor. Subclasses narrow the return type via TYPE_CHECKING.
inputs
left
mode
name
node
o
outputs
right
tree
type

IndexSwitch

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
image
inputs
integer
material
matrix
menu
name
node
o
object
outputs
rotation
string
tree
type
vector

JoinGeometry

JoinGeometry(*args)

Merge separately generated geometries into a single one

Attributes

Name Description
i
inputs
name
node
o
outputs
tree
type

JoinStrings

JoinStrings(*args, delimiter='')

Combine any number of input strings

Attributes

Name Description
i
inputs
name
node
o
outputs
tree
type

MenuSwitch

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
image
inputs
integer
material
matrix
menu
name
node
o
object
outputs
rotation
string
tree
type
vector

MeshBoolean

MeshBoolean(*args, operation='DIFFERENCE', solver='FLOAT', **kwargs)

Cut, subtract, or join multiple mesh inputs

Attributes

Name Description
i Input socket accessor. Subclasses narrow the return type via TYPE_CHECKING.
inputs
name
node
o Output socket accessor. Subclasses narrow the return type via TYPE_CHECKING.
operation
outputs
solver
tree
type

Methods

Name Description
difference
intersect
union
difference
difference(
    *args,
    mesh_1=None,
    hole_tolerant=False,
    self_intersection=False,
    solver='FLOAT',
)
intersect
intersect(*args, self_intersection=False, hole_tolerant=False, solver='FLOAT')
union
union(*args, hole_tolerant=False, self_intersection=False, solver='FLOAT')

SDFGridBoolean

SDFGridBoolean(operation='DIFFERENCE')

Cut, subtract, or join multiple SDF volume grid inputs

Attributes

Name Description
i
inputs
name
node
o
operation
outputs
tree
type

Methods

Name Description
difference Create SDF Grid Boolean with operation ‘Difference’.
intersect
union
difference
difference(*args, grid_1=None)

Create SDF Grid Boolean with operation ‘Difference’.

intersect
intersect(*args)
union
union(*args)

SetHandleType

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
inputs
left
name
node
o
outputs
right
tree
type

Value

Value(value=0.0)

Input numerical values to other nodes in the tree

Attributes

Name Description
i Input socket accessor. Subclasses narrow the return type via TYPE_CHECKING.
inputs
name
node
o
outputs
tree
type
value Input socket: Value