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 |