Utilities / Fields

Attribute Run

nodes.geometry.AttributeRun(name='', group_id=0)

Group mask increments whenever the attribute or the Group ID changes

GUI reference: Attribute Run.

Parameters

Name Type Description Default
name InputString The Named Attribute to read from the geometry before applying the Integer Run node ''
group_id InputInteger The Group ID to use for the Integer Run node 0

Inputs

Name Type Description
i.name StringSocket The Named Attribute to read from the geometry before applying the Integer Run node
i.group_id IntegerSocket The Group ID to use for the Integer Run node

Outputs

Name Type Description
o.is_different BooleanSocket The current point’s Named Attribute value is different from the previous
o.group_id IntegerSocket The new Group ID, increasing whenever the attribute or the Group ID values change

Boolean Any

nodes.geometry.BooleanAny(boolean=False, group_id=0)

GUI reference: Boolean Any.

Parameters

Name Type Description Default
boolean InputBoolean Boolean False
group_id InputInteger Group ID 0

Inputs

Name Type Description
i.boolean BooleanSocket Boolean
i.group_id IntegerSocket Group ID

Outputs

Name Type Description
o.boolean BooleanSocket Boolean

Boolean First

nodes.geometry.BooleanFirst(boolean=False, group_id=0)

Only the first True in each Group ID remains True, all others become False

GUI reference: Boolean First.

Parameters

Name Type Description Default
boolean InputBoolean The Boolean field to test False
group_id InputInteger Each Group ID to find the first True element for 0

Inputs

Name Type Description
i.boolean BooleanSocket The Boolean field to test
i.group_id IntegerSocket Each Group ID to find the first True element for

Outputs

Name Type Description
o.is_first BooleanSocket True for the first true element in each Group ID

Boolean Last

nodes.geometry.BooleanLast(boolean=True)

Index of last time the Boolean is true for each Group ID (not including the current point).

GUI reference: Boolean Last.

Parameters

Name Type Description Default
boolean InputBoolean Value to test for True when tracking Index locations True

Inputs

Name Type Description
i.boolean BooleanSocket Value to test for True when tracking Index locations

Outputs

Name Type Description
o.index_of_last IntegerSocket Accumulating in the point domain, this is the index where the Boolean was last True. For a point where the Boolean is True, the index will be of the previous time this was true, but the next point will then reference this point

Boolean Run Fill

nodes.geometry.BooleanRunFill(boolean=True, fill_size=3)

Moving down the points, fill in False values that are equal to or less than the Fill Size

GUI reference: Boolean Run Fill.

Parameters

Name Type Description Default
boolean InputBoolean The Boolean field to potentially fill gaps of False with True
fill_size InputInteger A run of False values equal to or less than this size will become True 3

Inputs

Name Type Description
i.boolean BooleanSocket The Boolean field to potentially fill gaps of False with
i.fill_size IntegerSocket A run of False values equal to or less than this size will become True

Outputs

Name Type Description
o.boolean BooleanSocket The Boolean array with gaps potentially filled

Boolean Run Trim

nodes.geometry.BooleanRunTrim(boolean=True, start=0, end=0, size=10)

GUI reference: Boolean Run Trim.

Parameters

Name Type Description Default
boolean InputBoolean The Boolean field to check for continuous runs of True values True
start InputInteger The first n values of a run of True values are made to be False 0
end InputInteger Ther last n values of a run of True values become False 0
size InputInteger A run of True values becomes False if shorter than this minimum length 10

Inputs

Name Type Description
i.boolean BooleanSocket The Boolean field to check for continuous runs of True values
i.start IntegerSocket The first n values of a run of True values are made to be False
i.end IntegerSocket Ther last n values of a run of True values become False
i.size IntegerSocket A run of True values becomes False if shorter than this minimum length

Outputs

Name Type Description
o.boolean BooleanSocket The Boolean field that has been trimmed

Fallback Color

nodes.geometry.FallbackColor(name='Color', fallback=None)

GUI reference: Fallback Color.

Parameters

Name Type Description Default
name InputString Name of the attribute to attempt to read from the geometry 'Color'
fallback InputColor Value to use instead if the named attribute doesn’t exist on the geometry None

Inputs

Name Type Description
i.name StringSocket Name of the attribute to attempt to read from the geometry
i.fallback ColorSocket Value to use instead if the named attribute doesn’t exist on the geometry

Outputs

Name Type Description
o.color ColorSocket The named attribute read from the geometry if it exists, or the fallback value if it doesn’t

Field Remap

nodes.geometry.FieldRemap(field=0.0, value_min=0.0, value_max=1.0, group_id=0)

Maps the range of values of the attribute on from the target atoms, to the range from min to max

GUI reference: Field Remap.

Parameters

Name Type Description Default
field InputFloat The field to summarise and remap 0.0
value_min InputFloat The new minimum value of the field 0.0
value_max InputFloat The new maximum value of the field 1.0
group_id InputInteger An index used to group values together for multiple separate operations 0

Inputs

Name Type Description
i.field FloatSocket The field to summarise and remap
i.value_min FloatSocket The new minimum value of the field
i.value_max FloatSocket The new maximum value of the field
i.group_id IntegerSocket An index used to group values together for multiple separate operations

Outputs

Name Type Description
o.value FloatSocket The remapped values between the new min and max

Geometry Field Remap

nodes.geometry.GeometryFieldRemap(
    geometry=None,
    field=0.0,
    value_min=0.0,
    value_max=1.0,
)

Maps the range of values of the attribute on from the target atoms, to the range from min to max

GUI reference: Geometry Field Remap.

Parameters

Name Type Description Default
geometry InputGeometry Geometry to get the statistics from None
field InputFloat The field to summarise and remap 0.0
value_min InputFloat The new minimum value of the field 0.0
value_max InputFloat The new maximum value of the field 1.0

Inputs

Name Type Description
i.geometry GeometrySocket Geometry to get the statistics from
i.field FloatSocket The field to summarise and remap
i.value_min FloatSocket The new minimum value of the field
i.value_max FloatSocket The new maximum value of the field

Outputs

Name Type Description
o.value FloatSocket The remapped values between the new min and max

Group Info

nodes.geometry.GroupInfo(group_id=0)

GUI reference: Group Info.

Parameters

Name Type Description Default
group_id InputInteger Group ID 0

Inputs

Name Type Description
i.group_id IntegerSocket Group ID

Outputs

Name Type Description
o.size IntegerSocket Size
o.index_in_group IntegerSocket Index in Group
o.index_of_first IntegerSocket Index of First
o.index_of_last IntegerSocket Index of Last

Group Parameter

nodes.geometry.GroupParameter(group_id=0)

GUI reference: Group Parameter.

Parameters

Name Type Description Default
group_id InputInteger The identifier specifying groupings of the points 0

Inputs

Name Type Description
i.group_id IntegerSocket The identifier specifying groupings of the points

Outputs

Name Type Description
o.is_first BooleanSocket If the point is the first point in the Group ID
o.is_last BooleanSocket If the point is the last item in the Group ID
o.group_size IntegerSocket Group Size
o.relative_index IntegerSocket The relative index of the point within the Group ID. Starts at 0 for the first point counting up to Group Size - 1

Group Pick

nodes.geometry.GroupPick(pick=False, group_id=0)

Get the item of the True in each Group ID, but only if there is a single True in each group

GUI reference: Group Pick.

Parameters

Name Type Description Default
pick InputBoolean Selection for the point to pick for the Group ID. Will only be valid for a single Pick for each Group ID False
group_id InputInteger Field definining the Group ID to pick from for the points 0

Inputs

Name Type Description
i.pick BooleanSocket Selection for the point to pick for the Group ID. Will only be valid for a single Pick for each Group ID
i.group_id IntegerSocket Field definining the Group ID to pick from for the points

Outputs

Name Type Description
o.is_valid BooleanSocket Valid for the point only if there is 1 single True for the Pick field in the point’s group in the Group ID
o.index IntegerSocket Index of picked item. Returns -1 if not a valid pick

Group Pick First

nodes.geometry.GroupPickFirst(pick=False, group_id=0)

Get the Index of the first True item for each Group ID

GUI reference: Group Pick First.

Parameters

Name Type Description Default
pick InputBoolean Index of the first True item in this field will be returned False
group_id InputInteger The first True item for each Group ID will be returned 0

Inputs

Name Type Description
i.pick BooleanSocket Index of the first True item in this field will be returned
i.group_id IntegerSocket The first True item for each Group ID will be returned

Outputs

Name Type Description
o.is_valid BooleanSocket Valid if as least 1 True for the Group ID
o.index IntegerSocket Index of first picked item, returns -1 if nothing picked

Group Pick Index

nodes.geometry.GroupPickIndex(relative_index=0, group_id=0)

GUI reference: Group Pick Index.

Parameters

Name Type Description Default
relative_index InputInteger Relative Index 0
group_id InputInteger Group ID 0

Inputs

Name Type Description
i.relative_index IntegerSocket Relative Index
i.group_id IntegerSocket Group ID

Outputs

Name Type Description
o.is_valid BooleanSocket If the requested Index in Group is valid for this Group ID
o.index IntegerSocket The Index of the requested point, within the overall geometry

Group Pick Vector

nodes.geometry.GroupPickVector(pick=False, group_id=0, position=None)

GUI reference: Group Pick Vector.

Parameters

Name Type Description Default
pick InputBoolean Selection for the point to pick for the Group ID. Will only be valid for a single Pick for each Group ID False
group_id InputInteger Field definining the Group ID to pick from for the points 0
position InputVector Vector field to pick vlaue for, defaults to Position None

Inputs

Name Type Description
i.pick BooleanSocket Selection for the point to pick for the Group ID. Will only be valid for a single Pick for each Group ID
i.group_id IntegerSocket Field definining the Group ID to pick from for the points
i.position VectorSocket Vector field to pick vlaue for, defaults to Position

Outputs

Name Type Description
o.is_valid BooleanSocket Whether the pick for the point’s Group ID is valid
o.index IntegerSocket Picked Index for the Group, -1 if not valid
o.vector VectorSocket Picked vector for the group, (0, 0, 0) if not valid

Index Mix Color

nodes.geometry.IndexMixColor(color=None, index=0.0)

GUI reference: Index Mix Color.

Parameters

Name Type Description Default
color InputColor The field to interpolate based on the input Index None
index InputFloat The floor and ceiling of this Index value is taken and used for sampling, the fraction of this value is then used to mix between the sampled values 0.0

Inputs

Name Type Description
i.color ColorSocket The field to interpolate based on the input Index
i.index FloatSocket The floor and ceiling of this Index value is taken and used for sampling, the fraction of this value is then used to mix between the sampled values

Outputs

Name Type Description
o.color ColorSocket The mixed value of the field, first evaluating the field at the From and To Indices then mixing between them based on the fraction of the input Index
o.from_ IntegerSocket The mixed value of the field, first evaluating the field at the From and To Indices then mixing between them based on the fraction of the input Index
o.to IntegerSocket The mixed value of the field, first evaluating the field at the From and To Indices then mixing between them based on the fraction of the input Index

Integer Run

nodes.geometry.IntegerRun(value=0, group_id=0)

A unique value for each grouping of a value. Accumulating along the field, the output Group Mask increments by 1 whenever the value or Group ID changes

GUI reference: Integer Run.

Parameters

Name Type Description Default
value InputInteger The field to check for changes in value 0
group_id InputInteger Does not restart counting for each Group ID, but does increment by 1 when the Group ID changes 0

Inputs

Name Type Description
i.value IntegerSocket The field to check for changes in value
i.group_id IntegerSocket Does not restart counting for each Group ID, but does increment by 1 when the Group ID changes

Outputs

Name Type Description
o.is_different BooleanSocket The current value is different from the previous
o.group_id IntegerSocket The new Group ID, which increases by 1 whenever the Value or Group ID values change

Normalize Field

nodes.geometry.NormalizeField(field=0.0, group_id=0)

GUI reference: Normalize Field.

Parameters

Name Type Description Default
field InputFloat Field 0.0
group_id InputInteger An index used to group values together for multiple separate operations 0

Inputs

Name Type Description
i.field FloatSocket Field
i.group_id IntegerSocket An index used to group values together for multiple separate operations

Outputs

Name Type Description
o.result FloatSocket Result

Offset Boolean

nodes.geometry.OffsetBoolean(boolean=False, index=0, offset=0)

GUI reference: Offset Boolean.

Parameters

Name Type Description Default
boolean InputBoolean The field to evaluate at the given Index + Offset on the point domain False
index InputInteger The Index at which to evaluate this offset from 0
offset InputInteger The offset to apply to the Index before evaluating the input field 0

Inputs

Name Type Description
i.boolean BooleanSocket The field to evaluate at the given Index + Offset on the point domain
i.index IntegerSocket The Index at which to evaluate this offset from
i.offset IntegerSocket The offset to apply to the Index before evaluating the input field

Outputs

Name Type Description
o.boolean BooleanSocket The field evaluated at the offset Index value

Offset Color

nodes.geometry.OffsetColor(color=None, index=0, offset=0)

GUI reference: Offset Color.

Parameters

Name Type Description Default
color InputColor Color None
index InputInteger The Index at which to evaluate this offset from 0
offset InputInteger The offset to apply to the Index before evaluating the input field 0

Inputs

Name Type Description
i.color ColorSocket Color
i.index IntegerSocket The Index at which to evaluate this offset from
i.offset IntegerSocket The offset to apply to the Index before evaluating the input field

Outputs

Name Type Description
o.color ColorSocket The field evaluated at the offset Index value

Offset Color Attribute

nodes.geometry.OffsetColorAttribute(index=0, offset=0)

GUI reference: Offset Color Attribute.

Parameters

Name Type Description Default
index InputInteger The Index at which to evaluate this offset from 0
offset InputInteger The offset to apply to the Index before evaluating the input field 0

Inputs

Name Type Description
i.index IntegerSocket The Index at which to evaluate this offset from
i.offset IntegerSocket The offset to apply to the Index before evaluating the input field

Outputs

Name Type Description
o.color ColorSocket The field evaluated at the offset Index value

Offset Float

nodes.geometry.OffsetFloat(value=0.0, index=0, offset=0)

GUI reference: Offset Float.

Parameters

Name Type Description Default
value InputFloat The field to evaluate at the given Index + Offset on the point domain 0.0
index InputInteger The Index at which to evaluate this offset from 0
offset InputInteger The offset to apply to the Index before evaluating the input field 0

Inputs

Name Type Description
i.value FloatSocket The field to evaluate at the given Index + Offset on the point domain
i.index IntegerSocket The Index at which to evaluate this offset from
i.offset IntegerSocket The offset to apply to the Index before evaluating the input field

Outputs

Name Type Description
o.value FloatSocket The field evaluated at the offset Index value

Offset Index

nodes.geometry.OffsetIndex(index=0, offset=0)

GUI reference: Offset Index.

Parameters

Name Type Description Default
index InputInteger The Index at which to evaluate this offset from 0
offset InputInteger The Offset to apply to the Index of the point 0

Inputs

Name Type Description
i.index IntegerSocket The Index at which to evaluate this offset from
i.offset IntegerSocket The Offset to apply to the Index of the point

Outputs

Name Type Description
o.index IntegerSocket The Index + Offset

Offset Integer

nodes.geometry.OffsetInteger(integer=0, index=0, offset=0)

GUI reference: Offset Integer.

Parameters

Name Type Description Default
integer InputInteger The field to evaluate at the given Index + Offset on the point domain 0
index InputInteger The Index at which to evaluate this offset from 0
offset InputInteger The offset to apply to the Index before evaluating the input field 0

Inputs

Name Type Description
i.integer IntegerSocket The field to evaluate at the given Index + Offset on the point domain
i.index IntegerSocket The Index at which to evaluate this offset from
i.offset IntegerSocket The offset to apply to the Index before evaluating the input field

Outputs

Name Type Description
o.integer IntegerSocket The field evaluated at the offset Index value

Offset Matrix

nodes.geometry.OffsetMatrix(matrix=None, index=0, offset=0)

GUI reference: Offset Matrix.

Parameters

Name Type Description Default
matrix InputMatrix The field to evaluate at the given Index + Offset on the point domain None
index InputInteger The Index at which to evaluate this offset from 0
offset InputInteger The offset to apply to the Index before evaluating the input field 0

Inputs

Name Type Description
i.matrix MatrixSocket The field to evaluate at the given Index + Offset on the point domain
i.index IntegerSocket The Index at which to evaluate this offset from
i.offset IntegerSocket The offset to apply to the Index before evaluating the input field

Outputs

Name Type Description
o.matrix MatrixSocket The field evaluated at the offset Index value

Offset Rotation

nodes.geometry.OffsetRotation(rotation=None, index=0, offset=0)

GUI reference: Offset Rotation.

Parameters

Name Type Description Default
rotation InputRotation The field to evaluate at the given Index + Offset on the point domain None
index InputInteger The Index at which to evaluate this offset from 0
offset InputInteger The offset to apply to the Index before evaluating the input field 0

Inputs

Name Type Description
i.rotation RotationSocket The field to evaluate at the given Index + Offset on the point domain
i.index IntegerSocket The Index at which to evaluate this offset from
i.offset IntegerSocket The offset to apply to the Index before evaluating the input field

Outputs

Name Type Description
o.rotation RotationSocket The field evaluated at the offset Index value

Offset Vector

nodes.geometry.OffsetVector(vector=None, index=0, offset=0)

GUI reference: Offset Vector.

Parameters

Name Type Description Default
vector InputVector The field to evaluate at the given Index + Offset on the point domain None
index InputInteger The Index at which to evaluate this offset from 0
offset InputInteger The offset to apply to the Index before evaluating the input field 0

Inputs

Name Type Description
i.vector VectorSocket The field to evaluate at the given Index + Offset on the point domain
i.index IntegerSocket The Index at which to evaluate this offset from
i.offset IntegerSocket The offset to apply to the Index before evaluating the input field

Outputs

Name Type Description
o.value VectorSocket The field evaluated at the offset Index value

Relative Index

nodes.geometry.RelativeIndex(group_id=0)

Get information about the points in a Group ID such as size and the start and end Indices

GUI reference: Relative Index.

Parameters

Name Type Description Default
group_id InputInteger Define the groups to get information about 0

Inputs

Name Type Description
i.group_id IntegerSocket Define the groups to get information about

Outputs

Name Type Description
o.group_size IntegerSocket The number of points in each Group ID
o.relative_index IntegerSocket The relative index of each point within each Group ID, starting from 0
o.first_index IntegerSocket The Index of the first point in each Group ID
o.last_index IntegerSocket The Index of the last point in each Group ID

Sample Mixed Color

nodes.geometry.SampleMixedColor(geometry=None, color=None, index=0.0)

GUI reference: Sample Mixed Color.

Parameters

Name Type Description Default
geometry InputGeometry The geometry to sample the values from None
color InputColor The field to mix and evaluate on the sample geometry None
index InputFloat The index to sample the value from. The fractional component of the index is used to mix between values using Index Mix ... nodes 0.0

Inputs

Name Type Description
i.geometry GeometrySocket The geometry to sample the values from
i.color ColorSocket The field to mix and evaluate on the sample geometry
i.index FloatSocket The index to sample the value from. The fractional component of the index is used to mix between values using Index Mix ... nodes

Outputs

Name Type Description
o.color ColorSocket The evaluated and mixed field, sampled from the sample geometry at the given Index

Starfile Instances

nodes.geometry.StarfileInstances(
    points=None,
    point_selection='Image',
    selection=True,
    image=0,
    menu='Instance',
    instance=None,
    material=None,
)

GUI reference: Starfile Instances.

Parameters

Name Type Description Default
points InputGeometry Points None
point_selection InputMenu | Literal['Image', 'Selection'] Select points to be instanced base don their image_id or a boolean selection field. 'Image'
selection InputBoolean Becomes the output value if it is chosen by the menu input True
image InputInteger The ID of the image that should be shown 0
menu InputMenu | Literal['Instance', 'Simple'] Menu 'Instance'
instance InputObject The object that should be placed at each instance None
material InputMaterial Material to apply to the resulting geometry None

Inputs

Name Type Description
i.points GeometrySocket Points
i.point_selection MenuSocket Select points to be instanced base don their image_id or a boolean selection field.
i.selection BooleanSocket Becomes the output value if it is chosen by the menu input
i.image IntegerSocket The ID of the image that should be shown
i.menu MenuSocket Menu
i.instance ObjectSocket The object that should be placed at each instance
i.material MaterialSocket Material to apply to the resulting geometry

Outputs

Name Type Description
o.instances GeometrySocket Instances

Sub Group Info

nodes.geometry.SubGroupInfo(sub_group_id=0, group_id=0)

GUI reference: Sub Group Info.

Parameters

Name Type Description Default
sub_group_id InputInteger Sub Group ID 0
group_id InputInteger Group ID 0

Inputs

Name Type Description
i.sub_group_id IntegerSocket Sub Group ID
i.group_id IntegerSocket Group ID

Outputs

Name Type Description
o.size IntegerSocket Size of each comptued Group ID
o.group_id IntegerSocket A unique Group ID that increases whenever Sub Group ID or Group ID change
o.index_of_first IntegerSocket The absolute Index of the first point in each computed Group ID
o.index_of_last IntegerSocket The absolute Index of the last point in each computed Group ID
o.index_in_group_id IntegerSocket Index within each computed Group ID, starting at 0
o.sub_group_id IntegerSocket Sub Group ID
o.sub_group_total IntegerSocket Sub Group Total