Skip to content
Curious Trove

Node catalog

v1.3.0

Every node you can add to an OctoShaper graph, generated straight from the node metadata. Each entry lists its inputs and defaults, what it outputs, and which ElementSet attributes it reads and writes.

224nodes
17categories
60async
2new in v1.3.0

New to nodes? Elements and attributes explains the table every node passes along, and Node graph basics covers wiring them up.

Attributes

51 nodes

Add Float Values

Async

Writes resultAttribute = left + right per element from float bindings.

InputTypeDefault
elementsElement Set–
leftFloat Or AttributeConstant or attribute–
rightFloat Or AttributeConstant or attribute–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.AddFloatValues
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.AddFloatValues
Attribute-name inputs
resultAttributeName left right

Add Int Values

Async

Writes resultAttribute = left + right per element from int bindings.

InputTypeDefault
elementsElement Set–
leftInt Or AttributeConstant or attribute–
rightInt Or AttributeConstant or attribute–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.AddIntValues
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.AddIntValues
Attribute-name inputs
resultAttributeName left right

Add Vector Attribute

Async

Computes resultAttribute = A + B per element from Vector3 bindings (constant or attribute).

InputTypeDefault
elementsElement Set–
aVector3 Or AttributeConstant or attribute–
bVector3 Or AttributeConstant or attribute–
resultAttributeNameString"result"

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.AddVectorAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.AddVectorAttribute
Attribute-name inputs
resultAttributeName a b

Apply Scalar to Attribute

Sync

Multiplies each element's attribute value by a constant scalar factor.

InputTypeDefault
elementsElement Set–
attributeFloat Or AttributeConstant or attribute–
scalarFloat–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.ApplyScalarAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.ApplyScalarAttribute
Attribute-name inputs
resultAttributeName attribute

Average Vector3

Sync

Computes the component-wise average of a Vector3 value across all elements, returning the result as a scalar Vector3.

InputTypeDefault
elementsElement Set–
valueVector3 Or AttributeConstant or attribute–

OutputAverageVector3The component-wise average across all elements

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.AverageVector3
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.AverageVector3
Attribute-name inputs
value

Clamp Float Attribute

Sync

Clamps a float value between min and max per element.

InputTypeDefault
elementsElement Set–
valueFloat Or AttributeConstant or attribute–
minFloat Or AttributeConstant or attribute–
maxFloat Or AttributeConstant or attribute–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.ClampFloatAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.ClampFloatAttribute
Attribute-name inputs
resultAttributeName value min max

Clamp Vector3 Attribute

Sync

Clamps each component of a Vector3 attribute between min and max bindings per element, updating it in place.

InputTypeDefault
elementsElement Set–
vector3AttributeNameString–
minVector3 Or AttributeConstant or attribute–
maxVector3 Or AttributeConstant or attribute–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.ClampVector3Attribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.ClampVector3Attribute
Attribute-name inputs
vector3AttributeName vector3AttributeName min max

Compare

Async

Compares a numeric attribute against a value and writes a boolean mask attribute.

InputTypeDefault
elementsElement Set–
attributeString–
opCompareOp–
valueFloat–
outputMaskString–

OutputElementsElement SetElementSet with output mask

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.Compare
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.Compare
Attribute-name inputs
attribute outputMask

Compare Attributes

Sync

Compares two numeric attributes on each row and writes a boolean mask attribute.

InputTypeDefault
elementsElement Set–
leftAttributeString–
opCompareOp–
rightAttributeString–
outputMaskString–

OutputElementsElement SetElementSet with output mask

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.CompareAttributes
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.CompareAttributes
Attribute-name inputs
leftAttribute rightAttribute outputMask

Create Vector3 Attribute

Async

Creates/overwrites a Vector3 attribute from X/Y/Z float bindings (constants or per-element attributes).

InputTypeDefault
elementsElement Set–
attributeNameString–
xFloat Or AttributeConstant or attribute–
yFloat Or AttributeConstant or attribute–
zFloat Or AttributeConstant or attribute–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeBindings.CreateVector3Attribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeBindings.CreateVector3Attribute
Attribute-name inputs
attributeName

Cross Vector Attribute

Async

Computes resultAttribute = cross(A, B) per element from Vector3 bindings (constant or attribute).

InputTypeDefault
elementsElement Set–
aVector3 Or AttributeConstant or attribute–
bVector3 Or AttributeConstant or attribute–
resultAttributeNameString"result"
normalizeResultBooleanOn

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.CrossVectorAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.CrossVectorAttribute
Attribute-name inputs
resultAttributeName a b

Divide Float Values

Async

Writes resultAttribute = left / right per element from float bindings (safe divide).

InputTypeDefault
elementsElement Set–
leftFloat Or AttributeConstant or attribute–
rightFloat Or AttributeConstant or attribute–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.DivideFloatValues
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.DivideFloatValues
Attribute-name inputs
resultAttributeName left right

Divide Int Values

Async

Writes resultAttribute = left / right per element from int bindings (safe divide).

InputTypeDefault
elementsElement Set–
leftInt Or AttributeConstant or attribute–
rightInt Or AttributeConstant or attribute–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.DivideIntValues
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.DivideIntValues
Attribute-name inputs
resultAttributeName left right

Divide Vector3 Column

Async

Divides Vector3 attribute A by Vector3 binding B per element (safe component-wise divide), updating A in place.

InputTypeDefault
elementsElement Set–
aVector3 Or AttributeConstant or attribute–
bVector3 Or AttributeConstant or attribute–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.DivideVector3Column
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.DivideVector3Column
Attribute-name inputs
a b a

Dot Vector Attribute

Async

Computes resultAttribute = dot(A, B) per element from Vector3 bindings.

InputTypeDefault
elementsElement Set–
aVector3 Or AttributeConstant or attribute–
bVector3 Or AttributeConstant or attribute–
resultAttributeNameString"result"

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.DotVectorAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.DotVectorAttribute
Attribute-name inputs
resultAttributeName a b

Element Index Attribute

Sync

Writes the 0-based element index to the result attribute for each row.

InputTypeDefault
elementsElement Set–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.ElementIndexAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.ElementIndexAttribute
Attribute-name inputs
resultAttributeName

Evaluate Curve on ElementSet

Sync

Evaluates a single AnimationCurve for each element, using a selected float attribute as the time input.

InputTypeDefault
elementsElement Set–
curveAnimation Curve–
Time AttributeFloat Or AttributeConstant or attribute–
outputAttributeString"curveValue"

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Curve.EvaluateOnSet
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.CurveNodes.EvaluateCurveOnSet
Attribute-name inputs
outputAttribute

Get Vector3 Component Attribute

Async

Extracts one component from a Vector3 binding into a float attribute.

InputTypeDefault
elementsElement Set–
valueVector3 Or AttributeConstant or attribute–
componentVector3ComponentX
resultAttributeNameString"result"

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.GetVector3ComponentAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.GetVector3ComponentAttribute
Attribute-name inputs
resultAttributeName value

Lerp Vector3 Attribute

Sync

Linearly interpolates between Vector3 bindings A and B by factor T per element: result = A + (B - A) * T.

InputTypeDefault
elementsElement Set–
aVector3 Or AttributeConstant or attribute–
bVector3 Or AttributeConstant or attribute–
tFloat Or AttributeConstant or attribute–
resultAttributeNameString"result"

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.LerpVector3Attribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.LerpVector3Attribute
Attribute-name inputs
resultAttributeName a b t

Max Float

Sync

Finds the maximum float value across all elements, returning the result as a scalar.

InputTypeDefault
elementsElement Set–
valueFloat Or AttributeConstant or attribute–

OutputMaxFloatThe maximum value across all elements

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.MaxFloatAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.MaxFloatAttribute
Attribute-name inputs
value

Min Float

Sync

Finds the minimum float value across all elements, returning the result as a scalar.

InputTypeDefault
elementsElement Set–
valueFloat Or AttributeConstant or attribute–

OutputMinFloatThe minimum value across all elements

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.MinFloatAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.MinFloatAttribute
Attribute-name inputs
value

Multiply Float Values

Async

Writes resultAttribute = left * right per element from float bindings.

InputTypeDefault
elementsElement Set–
leftFloat Or AttributeConstant or attribute–
rightFloat Or AttributeConstant or attribute–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.MultiplyFloatValues
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.MultiplyFloatValues
Attribute-name inputs
resultAttributeName left right

Multiply Int By Float

Async

Writes resultAttribute = source * multiplier per element (int × float => float).

InputTypeDefault
elementsElement Set–
sourceInt Or AttributeConstant or attribute–
multiplierFloat Or AttributeConstant or attribute–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.MultiplyIntByFloat
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.MultiplyIntByFloat
Attribute-name inputs
resultAttributeName source

Multiply Int Values

Async

Writes resultAttribute = left * right per element from int bindings.

InputTypeDefault
elementsElement Set–
leftInt Or AttributeConstant or attribute–
rightInt Or AttributeConstant or attribute–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.MultiplyIntValues
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.MultiplyIntValues
Attribute-name inputs
resultAttributeName left right

Multiply Vector3 By Float

Async

Multiplies a selected Vector3 attribute by a float binding (constant or per-element attribute), updating it in place.

InputTypeDefault
elementsElement Set–
vector3AttributeNameString–
multiplierFloat Or AttributeConstant or attribute–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.MultiplyVector3ByFloat
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.MultiplyVector3ByFloat
Attribute-name inputs
vector3AttributeName vector3AttributeName multiplier

Multiply Vector3 By Vector3

Async

Multiplies a selected Vector3 attribute by a Vector3 binding (constant or per-element attribute), updating it in place.

InputTypeDefault
elementsElement Set–
vector3AttributeNameString–
multiplierVector3 Or AttributeConstant or attribute–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.MultiplyVector3ByVector3
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.MultiplyVector3ByVector3
Attribute-name inputs
vector3AttributeName vector3AttributeName multiplier

Normalize Vector3 Attribute

Sync

Normalizes a selected Vector3 attribute per element, updating it in place. Vectors with near-zero length become zero.

InputTypeDefault
elementsElement Set–
vector3AttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.NormalizeVector3Attribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.NormalizeVector3Attribute
Attribute-name inputs
vector3AttributeName vector3AttributeName

Perlin Noise 2D

Sync

Samples 2D Perlin noise at each element's position and writes the result to a float attribute.

InputTypeDefault
elementsElement Set–
positionVector3 Or AttributeConstant or attribute–
frequencyFloat Or AttributeConstant or attribute–
outputAttributeString"noise"
seedInteger1

OutputElement Set

Requires
position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.NoiseNodes.PerlinNoise2D
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.NoiseNodes.PerlinNoise2D
Attribute-name inputs
outputAttribute position

Perlin Noise 3D

Sync

Samples 3D Perlin noise at each element's position and writes the result to a float attribute.

InputTypeDefault
elementsElement Set–
positionVector3 Or AttributeConstant or attribute–
frequencyFloat Or AttributeConstant or attribute–
outputAttributeString"noise"
seedInteger1

OutputElement Set

Requires
position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.NoiseNodes.PerlinNoise3D
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.NoiseNodes.PerlinNoise3D
Attribute-name inputs
outputAttribute position

Remap Range Attribute

Sync

Remaps a float value from [inMin, inMax] to [outMin, outMax] per element.

InputTypeDefault
elementsElement Set–
valueFloat Or AttributeConstant or attribute–
inMinFloat Or AttributeConstant or attribute–
inMaxFloat Or AttributeConstant or attribute–
outMinFloat Or AttributeConstant or attribute–
outMaxFloat Or AttributeConstant or attribute–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.RemapRangeAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.RemapRangeAttribute
Attribute-name inputs
resultAttributeName value inMin inMax outMin outMax

Scale Vector3 Attribute

Sync

Scales a selected Vector3 attribute by a Vector3 binding (constant or per-element attribute) per component, updating it in place.

InputTypeDefault
elementsElement Set–
vector3AttributeNameString–
scaleVector3 Or AttributeConstant or attribute–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.ScaleVector3Attribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.ScaleVector3Attribute
Attribute-name inputs
vector3AttributeName vector3AttributeName scale

Set Bool Attribute

Sync

Writes a bool attribute from a bool binding, optionally gated by a boolean mask attribute.

InputTypeDefault
elementsElement Set–
attributeNameString–
valueBool Or AttributeConstant or attribute–
maskStringNone

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.SetBoolAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.SetBoolAttribute
Attribute-name inputs
mask attributeName value

Set Color Attribute

Sync

Writes a color constant or copies a color attribute into a named attribute.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.SetAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.SetAttribute
Attribute-name inputs
resultAttributeName color

Set Float Attribute

Async

Writes a float attribute from a float binding, optionally gated by a boolean mask attribute.

InputTypeDefault
elementsElement Set–
attributeNameString–
valueFloat Or AttributeConstant or attribute–
maskStringNone

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.SetFloatAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.SetFloatAttribute
Attribute-name inputs
mask attributeName value

Set Int Attribute

Async

Writes an int attribute from an int binding, optionally gated by a boolean mask attribute.

InputTypeDefault
elementsElement Set–
attributeNameString–
valueInt Or AttributeConstant or attribute–
maskStringNone

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.SetIntAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.SetIntAttribute
Attribute-name inputs
mask attributeName value

Set Quaternion Attribute

Async

Writes a Quaternion attribute from a Quaternion binding, optionally gated by a boolean mask attribute.

InputTypeDefault
elementsElement Set–
attributeNameString–
valueQuaternion Or AttributeConstant or attribute–
maskStringNone

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.SetQuaternionAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.SetQuaternionAttribute
Attribute-name inputs
mask attributeName value

Set Random Bool Attribute

Sync

Writes a deterministic random bool per element using id, falling back to row index.

InputTypeDefault
elementsElement Set–
attributeNameString–
probabilityFloat Or AttributeConstant or attribute–
seedInteger0
identityAttributeStringNone

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.Random.SetRandomBoolAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.Random.SetRandomBoolAttribute
Attribute-name inputs
attributeName probability

Set Random Float Attribute

Sync

Writes a deterministic random float per element using id, falling back to row index.

InputTypeDefault
elementsElement Set–
attributeNameString–
minFloat Or AttributeConstant or attribute–
maxFloat Or AttributeConstant or attribute–
seedInteger0
identityAttributeStringNone

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.Random.SetRandomFloatAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.Random.SetRandomFloatAttribute
Attribute-name inputs
attributeName min max

Set Random Int Attribute

Sync

Writes a random int per element row to the selected attribute.

InputTypeDefault
elementsElement Set–
attributeNameString–
minInteger–
maxInteger–
seedInteger–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.Random.SetRandomIntAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.Random.SetRandomIntAttribute
Attribute-name inputs
attributeName

Set Random Rotation Attribute

Sync

Writes a deterministic random rotation per element using id, falling back to row index.

InputTypeDefault
elementsElement Set–
attributeNameString–
minEulerVector3 Or AttributeConstant or attribute–
maxEulerVector3 Or AttributeConstant or attribute–
seedInteger0
identityAttributeStringNone
uniformBooleanOff

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.Random.SetRandomRotationAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.Random.SetRandomRotationAttribute
Attribute-name inputs
attributeName minEuler maxEuler

Set Random Vector3 Attribute

Sync

Writes a deterministic random Vector3 per element using id, falling back to row index.

InputTypeDefault
elementsElement Set–
attributeNameString–
minVector3 Or AttributeConstant or attribute–
maxVector3 Or AttributeConstant or attribute–
seedInteger0
identityAttributeStringNone
uniformBooleanOff

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.Random.SetRandomVector3Attribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.Random.SetRandomVector3Attribute
Attribute-name inputs
attributeName min max

Set String Attribute

Sync

Writes a string attribute from a string binding, optionally gated by a boolean mask attribute.

InputTypeDefault
elementsElement Set–
attributeNameString–
valueString Or AttributeConstant or attribute–
maskStringNone

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.SetStringAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.SetStringAttribute
Attribute-name inputs
mask attributeName value

Set Texture Attribute

Sync

Writes a texture reference constant or copies a texture attribute. Does not copy pixel data.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
textureTexture asset constant or named texture-reference attribute.Texture Or AttributeConstant or attribute–
resultAttributeNameString"texture"

OutputElement Set

Technical details
Node ID
Texture.SetAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Textures.TextureNodes.SetAttribute
Attribute-name inputs
resultAttributeName texture

Set Vector3 Attribute

Async

Writes a Vector3 attribute from a Vector3 binding, optionally gated by a boolean mask attribute.

InputTypeDefault
elementsElement Set–
attributeNameString–
valueVector3 Or AttributeConstant or attribute–
maskStringNone

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.SetVector3Attribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.SetVector3Attribute
Attribute-name inputs
mask attributeName value

Slerp Quaternion Attribute

Sync

Spherically interpolates between two quaternion bindings by factor T per element.

InputTypeDefault
elementsElement Set–
aQuaternion Or AttributeConstant or attribute–
bQuaternion Or AttributeConstant or attribute–
tFloat Or AttributeConstant or attribute–
resultAttributeNameString"result"

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.SlerpQuaternionAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.SlerpQuaternionAttribute
Attribute-name inputs
resultAttributeName a b t

Subtract Float Values

Async

Writes resultAttribute = left - right per element from float bindings.

InputTypeDefault
elementsElement Set–
leftFloat Or AttributeConstant or attribute–
rightFloat Or AttributeConstant or attribute–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.SubtractFloatValues
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.SubtractFloatValues
Attribute-name inputs
resultAttributeName left right

Subtract Int Values

Async

Writes resultAttribute = left - right per element from int bindings.

InputTypeDefault
elementsElement Set–
leftInt Or AttributeConstant or attribute–
rightInt Or AttributeConstant or attribute–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.SubtractIntValues
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.SubtractIntValues
Attribute-name inputs
resultAttributeName left right

Subtract Vector Attribute

Async

Computes resultAttribute = A - B per element from Vector3 bindings (constant or attribute).

InputTypeDefault
elementsElement Set–
aVector3 Or AttributeConstant or attribute–
bVector3 Or AttributeConstant or attribute–
resultAttributeNameString"result"

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.SubtractVectorAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.SubtractVectorAttribute
Attribute-name inputs
resultAttributeName a b

Sum Float

Sync

Computes the sum of a float value across all elements, returning the result as a scalar.

InputTypeDefault
elementsElement Set–
valueFloat Or AttributeConstant or attribute–

OutputSumFloatThe total sum across all elements

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.SumFloatAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.SumFloatAttribute
Attribute-name inputs
value

Sum Vector3

Sync

Computes the component-wise sum of a Vector3 value across all elements, returning the result as a scalar Vector3.

InputTypeDefault
elementsElement Set–
valueVector3 Or AttributeConstant or attribute–

OutputSumVector3The component-wise sum across all elements

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.SumVector3
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.SumVector3
Attribute-name inputs
value

Vector3 Attribute Magnitude

Sync

Computes the magnitude (length) of a Vector3 binding per element, writing the result to a float attribute.

InputTypeDefault
elementsElement Set–
valueVector3 Or AttributeConstant or attribute–
resultAttributeNameString"magnitude"

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.Vector3AttributeMagnitude
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.Vector3AttributeMagnitude
Attribute-name inputs
resultAttributeName value

Colors

26 nodes

Blend Colors

Sync

Mix, add, subtract, multiply, screen, overlay, minimum or maximum RGB with a clamped factor. Alpha is interpolated between the inputs.

InputTypeDefault
aColor–
bColor–
factorFloat0.5
modeColorBlendModeMix

OutputColorColor

Technical details
Node ID
Color.Blend
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.Blend

Blend Colors Attribute

Sync

Mix, add, subtract, multiply, screen, overlay, minimum or maximum RGB with a clamped factor. Alpha is interpolated between the inputs. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
aFirst color, as a constant or attribute.Color Or AttributeConstant or attribute–
bSecond color, as a constant or attribute.Color Or AttributeConstant or attribute–
factorBlend amount, clamped to 0–1.Float Or AttributeConstant or attribute–
modeColorBlendModeMix
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.BlendAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.BlendAttribute
Attribute-name inputs
resultAttributeName a b factor

Clamp Color

Sync

Clamps all RGBA components to the 0–1 range.

InputTypeDefault
colorColor–

OutputColorColor

Technical details
Node ID
Color.Clamp
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.Clamp

Clamp Color Attribute

Sync

Clamps all RGBA components to the 0–1 range. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.ClampAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.ClampAttribute
Attribute-name inputs
resultAttributeName color

Color Channel

Sync

Extracts RGBA, luminance (Rec.709 weights), or an HSV component.

InputTypeDefault
colorColor–
channelColorChannelLuminance

OutputfloatFloat

Technical details
Node ID
Color.Channel
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.Channel

Color Channel Attribute

Sync

Extracts RGBA, luminance (Rec.709 weights), or an HSV component. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–
channelColorChannelLuminance
resultAttributeNameName of the float attribute to create or overwrite.String"value"

OutputElement Set

Technical details
Node ID
Color.ChannelAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.ChannelAttribute
Attribute-name inputs
resultAttributeName color

Color Contrast

Sync

Adjusts RGB contrast around a pivot, preserving alpha. One preserves contrast.

InputTypeDefault
colorColor–
contrastFloat1
pivotFloat0.5

OutputColorColor

Technical details
Node ID
Color.Contrast
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.Contrast

Color Contrast Attribute

Sync

Adjusts RGB contrast around a pivot, preserving alpha. One preserves contrast. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–
contrastContrast multiplier; one preserves input.Float Or AttributeConstant or attribute–
pivotRGB value around which contrast is adjusted.Float Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.ContrastAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.ContrastAttribute
Attribute-name inputs
resultAttributeName color contrast pivot

Color Exposure

Sync

Multiplies RGB by two to the power of exposure (stops), preserving alpha.

InputTypeDefault
colorColor–
exposureFloat0

OutputColorColor

Technical details
Node ID
Color.Exposure
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.Exposure

Color Exposure Attribute

Sync

Multiplies RGB by two to the power of exposure (stops), preserving alpha. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–
exposureExposure adjustment in stops.Float Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.ExposureAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.ExposureAttribute
Attribute-name inputs
resultAttributeName color exposure

Color Linear To sRGB

Sync

Converts linear RGB components to sRGB, preserving alpha.

InputTypeDefault
colorColor–

OutputColorColor

Technical details
Node ID
Color.ToSRGB
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.ToSRGB

Color Linear To sRGB Attribute

Sync

Converts linear RGB components to sRGB, preserving alpha. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.ToSRGBAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.ToSRGBAttribute
Attribute-name inputs
resultAttributeName color

Color Ramp

Sync

Evaluates a multi-stop gradient at a clamped 0–1 position.

InputTypeDefault
gradientColor and alpha stops; edit the gradient to define the ramp.Gradient–
positionFloat0

OutputColor

Technical details
Node ID
Color.Ramp
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorRampNodes.Evaluate

Color Ramp Attribute

Sync

Maps an attribute (height, slope, noise, etc.) through a gradient. Normalize values to 0–1 first.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
gradientColor and alpha stops; edit the gradient to define the ramp.Gradient–
positionPosition along the gradient, clamped to 0–1.Float Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.RampAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorRampNodes.EvaluateAttribute
Attribute-name inputs
resultAttributeName position

Color Saturation

Sync

Adjusts saturation around luminance: zero is grayscale, one preserves the color.

InputTypeDefault
colorColor–
saturationFloat1

OutputColorColor

Technical details
Node ID
Color.Saturation
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.Saturation

Color Saturation Attribute

Sync

Adjusts saturation around luminance: zero is grayscale, one preserves the color. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–
saturationSaturation amount.Float Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.SaturationAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.SaturationAttribute
Attribute-name inputs
resultAttributeName color saturation

Color sRGB To Linear

Sync

Converts sRGB RGB components to linear light, preserving alpha.

InputTypeDefault
colorColor–

OutputColorColor

Technical details
Node ID
Color.ToLinear
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.ToLinear

Color sRGB To Linear Attribute

Sync

Converts sRGB RGB components to linear light, preserving alpha. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.ToLinearAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.ToLinearAttribute
Attribute-name inputs
resultAttributeName color

Create Color HSV

Sync

Builds a color from hue (wrapped 0–1), saturation, value and alpha.

InputTypeDefault
hueFloat0
saturationFloat1
valueFloat1
alphaFloat1

OutputColorColor

Technical details
Node ID
Color.HSV
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.HSV

Create Color HSV Attribute

Sync

Builds a color from hue (wrapped 0–1), saturation, value and alpha. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
hueHue in turns; wraps every 1.Float Or AttributeConstant or attribute–
saturationSaturation amount.Float Or AttributeConstant or attribute–
valueValue constant or named float attribute.Float Or AttributeConstant or attribute–
alphaOpacity: zero is transparent, one is opaque.Float Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.HSVAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.HSVAttribute
Attribute-name inputs
resultAttributeName hue saturation value alpha

Create Color RGBA

Sync

Builds a color from red, green, blue and alpha components.

InputTypeDefault
redFloat0
greenFloat0
blueFloat0
alphaFloat1

OutputColorColor

Technical details
Node ID
Color.RGBA
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.RGBA

Create Color RGBA Attribute

Sync

Builds a color from red, green, blue and alpha components. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
redRed component; values above one are supported for HDR.Float Or AttributeConstant or attribute–
greenGreen component; values above one are supported for HDR.Float Or AttributeConstant or attribute–
blueBlue component; values above one are supported for HDR.Float Or AttributeConstant or attribute–
alphaOpacity: zero is transparent, one is opaque.Float Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.RGBAAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.RGBAAttribute
Attribute-name inputs
resultAttributeName red green blue alpha

Invert Color

Sync

Inverts RGB around one and preserves alpha.

InputTypeDefault
colorColor–

OutputColorColor

Technical details
Node ID
Color.Invert
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.Invert

Invert Color Attribute

Sync

Inverts RGB around one and preserves alpha. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.InvertAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.InvertAttribute
Attribute-name inputs
resultAttributeName color

Set Color Alpha

Sync

Replaces alpha while preserving RGB.

InputTypeDefault
colorColor–
alphaFloat1

OutputColorColor

Technical details
Node ID
Color.Alpha
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.Alpha

Set Color Alpha Attribute

Sync

Replaces alpha while preserving RGB. Evaluates per element from constants or attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–
alphaOpacity: zero is transparent, one is opaque.Float Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"

OutputElement Set

Technical details
Node ID
Color.AlphaAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.AlphaAttribute
Attribute-name inputs
resultAttributeName color alpha

Conversion

3 nodes

Convert Float To Int Column

Async

Converts a float attribute column to an int attribute column by truncation.

InputTypeDefault
elementsElement Set–
sourceAttributeNameString–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.ConvertFloatToIntColumn
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.ConvertFloatToIntColumn
Attribute-name inputs
sourceAttributeName resultAttributeName

Convert Int To Float Column

Async

Converts an int attribute column to a float attribute column.

InputTypeDefault
elementsElement Set–
sourceAttributeNameString–
resultAttributeNameString–

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.ConvertIntToFloatColumn
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.ConvertIntToFloatColumn
Attribute-name inputs
sourceAttributeName resultAttributeName

Core Color To Color

Sync

Converts the original Core color type to a Unity color, preserving alpha.

InputTypeDefault
colorColor (Core)–

OutputColor

Technical details
Node ID
Color.FromCoreColor
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.FromCoreColor

Expanders

2 nodes

Expand Per Element

Sync

Replicates each input element repeatCount times and writes source/local index attributes.

InputTypeDefault
elementsElement Set–
repeatCountInt Or AttributeConstant or attribute–

OutputElement Set

Writes
id sourceRowIndex localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.ElementSetExpanders.ExpandPerElement
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.ElementSetExpanders.ExpandPerElement

Place Local Assembly

Sync

Places a locally authored element hierarchy at every placement transform and creates one invisible root per placement.

InputTypeDefault
PlacementsElements defining the root transformsElement Set–
Local ElementsElements authored in assembly-local spaceElement Set–

OutputAssembliesElement SetPlaced local element hierarchies

Writes
id position rotation scale parentRowIndex siblingIndex sourceRowIndex localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Assemblies.AssemblyNodes.PlaceLocalAssembly
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.AssemblyNodes.PlaceLocalAssembly

Generators

3 nodes

Create Assembly Roots

Sync

Creates one invisible hierarchy root for each placement element.

InputTypeDefault
PlacementsElements whose transforms define the assembly rootsElement Set–

OutputRootsElement SetInvisible assembly root elements

Writes
id position rotation scale parentRowIndex siblingIndex sourceRowIndex localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Assemblies.AssemblyNodes.CreateAssemblyRoots
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.AssemblyNodes.CreateAssemblyRoots

Create Elements

Sync

Creates a new ElementSet with the requested number of elements.

InputTypeDefault
countInteger–

OutputElement Set

Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.ElementSetGenerators.CreateElements
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.ElementSetGenerators.CreateElements

Create Parent Element

LegacySync

Legacy single-root helper. Use Create Assembly Roots or Place Local Assembly for new graphs.

InputTypeDefault
prefabPrefab–
primitivePrimitiveTypeNone
positionVector3(0, 0, 0)
eulerVector3(0, 0, 0)
scaleVector3(0, 0, 0)

OutputElement Set

Writes
id prefab primitiveType renderDefinition position rotation scale parentRowIndex siblingIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.GameObjectNodes.CreateParentElement
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.GameObjectNodes.CreateParentElement

Generators › Random

5 nodes

Random Bool

Sync

Generates a deterministic random bool from id and seed.

InputTypeDefault
idInteger–
seedInteger–
probabilityFloat0.5

OutputBoolean

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.Random.RandomBool
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.Random.RandomBool

Random Float

Sync

Generates a deterministic random float from id and seed.

InputTypeDefault
idInteger–
seedInteger–
minFloat0
maxFloat1

OutputFloat

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.Random.RandomFloat
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.Random.RandomFloat

Random Int

Sync

Generates a deterministic random int from id and seed.

InputTypeDefault
idInteger–
seedInteger–
minInclusiveInteger–
maxExclusiveInteger–

OutputInteger

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.Random.RandomInt
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.Random.RandomInt

Random Rotation

Sync

Generates a deterministic random rotation from id and seed.

InputTypeDefault
idInteger–
seedInteger–
minEulerVector3–
maxEulerVector3–
uniformBooleanOff

OutputQuaternion

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.Random.RandomRotation
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.Random.RandomRotation

Random Vector3

Sync

Generates a deterministic random Vector3 from id and seed.

InputTypeDefault
idInteger–
seedInteger–
minVector3–
maxVector3–
uniformBooleanOff

OutputVector3

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.Random.RandomVector3
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.Random.RandomVector3

Geometry

35 nodes

Bevel Mesh

Async

Bevels editable mesh groups before Realize Meshes. Each group must be a closed convex solid with matching edge positions. Concave, hollow and disconnected solids are unsupported; a revolved shell is not a safe input. Bevel separate convex prototypes before repetition. Large widths can remove the whole solid.

InputTypeDefault
elementsElement Set–
widthBevel width in local mesh units; start small relative to the shortest edge.Float Or AttributeConstant or attribute–
minimumAngleMinimum angle between adjacent face normals, in degrees; coplanar edges are ignored.Float Or AttributeConstant or attribute–

OutputElement Set

Technical details
Node ID
Mesh.Bevel
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Bevel
Attribute-name inputs
width minimumAngle

Boolean Meshes

Async

Pairs mesh groups by order or broadcasts a single B group. Inputs must use a common coordinate space.

InputTypeDefault
aElement Set–
bElement Set–
operationMeshBooleanOperationUnion
toleranceFloat Or AttributeConstant or attribute–

OutputElement Set

Technical details
Node ID
Mesh.Boolean
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Boolean
Attribute-name inputs
tolerance

Box Mesh

Sync

Creates a centered box definition for each input placement. Dimensions are full lengths in local units and must be positive; nonpositive dimensions emit no geometry. Null input creates one origin prototype; explicit empty input creates none. Realize then Draw Instanced to render.

InputTypeDefault
elementsElement SetNone
widthFloat Or AttributeConstant or attribute–
heightFloat Or AttributeConstant or attribute–
depthFloat Or AttributeConstant or attribute–

OutputElement Set

Writes
position rotation scale id
Technical details
Node ID
Mesh.Box
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Box
Attribute-name inputs
width height depth

Calculate Mesh Normals

Sync

Sets shading mode for editable topology, applied when realized. Flat preserves hard faces; SmoothByPointId shares normals by logical point identity. This does not weld positions or repair cracks caused by inconsistent corner displacement.

InputTypeDefault
elementsElement Set–
modeMeshNormalModeFlat

OutputElement Set

Technical details
Node ID
Mesh.Normals
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Normals

Calculate Mesh Tangents

Sync

No description yet.

InputTypeDefault
elementsElement Set–

OutputElement Set

Technical details
Node ID
Mesh.Tangents
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Tangents

Centroid

Sync

Computes the average position (centroid) of all elements. Convenience shortcut — no attribute binding needed.

InputTypeDefault
elementsElement Set–

OutputCentroidVector3The average position across all elements

Requires
position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.Centroid
C# method
CuriousTrove.OctoShaper.Library.Nodes.Attributes.AttributeNodes.Centroid

Circle Shape

Sync

Creates a circle centered on the local XZ origin.

InputTypeDefault
RadiusCircle radiusFloat0.5

OutputShapePlanar ShapeLocal circle domain

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Spatial.PlanarShapeNodes.CircleShape
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.PlanarShapeNodes.CircleShape

Closest Element

Async

Finds the nearest target position for each query position.

InputTypeDefault
queriesElement Set–
targetsElement Set–
maxDistanceFloat-1

OutputElement Set

Requires
position
Writes
closestRowIndex closestDistance closestPosition closestFound
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.GeometryNodes.ClosestElement
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.GeometryNodes.ClosestElement

Combine Mesh Definitions

Async

Combines all mesh groups into one definition. Does not allocate a Unity Mesh or perform a boolean union.

InputTypeDefault
elementsElement Set–

OutputElement Set

Technical details
Node ID
Mesh.Combine
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Combine

Convex Hull Mesh

Async

No description yet.

InputTypeDefault
pointsElement Set–
modeMeshNormalModeFlat
toleranceFloat0

OutputElement Set

Requires
position
Technical details
Node ID
Mesh.ConvexHull
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.ConvexHull

Cylinder Mesh

Async

Creates a capped Y-axis cylinder centered on each input placement, from -height/2 to +height/2. Positive radius/height; segment count is clamped to 3–4096. Output is editable topology, not rendered instances. Null input creates one prototype; explicit empty input creates none.

InputTypeDefault
elementsElement SetNone
radiusFloat Or AttributeConstant or attribute–
heightFloat Or AttributeConstant or attribute–
segmentsInt Or AttributeConstant or attribute–

OutputElement Set

Writes
position rotation scale id
Technical details
Node ID
Mesh.Cylinder
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Cylinder
Attribute-name inputs
radius height segments

Discard Mesh Topology

Sync

Keeps all point rows and attributes but discards faces and mesh grouping. Not required for ordinary point edits or spawning.

InputTypeDefault
elementsElement Set–

OutputElement Set

Technical details
Node ID
Mesh.Points
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Points

Distance Between Elements

Sync

For each element in queries, finds the nearest target element and writes the distance to the distanceAttribute. Optionally clamped by maxDistance.

InputTypeDefault
queriesElement Set–
targetsElement Set–
distanceAttributeString–
maxDistanceFloat-1

OutputElement Set

Requires
position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Nodes.Geometry.GeometryNodes.DistanceBetweenElements
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.GeometryNodes.DistanceBetweenElements
Attribute-name inputs
distanceAttribute

Distance To Point

Sync

Computes per-element distance from position to a target point and writes it to a float attribute.

InputTypeDefault
elementsElement Set–
targetPointVector3–
outputAttributeString"distance"

OutputElement Set

Requires
position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.DistanceToPoint
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.DistanceToPoint
Attribute-name inputs
outputAttribute

Distribute Points On Shape

Sync

Distributes points at equal arc-length intervals around a local shape perimeter.

InputTypeDefault
shapePlanar Shape–
countInteger–
Start OffsetNormalized offset around the closed perimeterFloat0
Align RotationAlign forward to the perimeter tangentBooleanOff

OutputPointsElement SetPoints distributed around the shape perimeter

Writes
id position rotation tangent normal
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Spatial.PlanarShapeNodes.DistributePointsOnShape
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.PlanarShapeNodes.DistributePointsOnShape

Explode Meshes

Async

Reads consolidated Unity meshes into editable logical point rows with attached topology. Meshes must have Read/Write enabled.

InputTypeDefault
elementsElement Set–
modeMeshNormalModeFlat

OutputElement Set

Requires
mesh
Writes
position id
Technical details
Node ID
Mesh.Explode
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Explode

Extrude Spline Mesh

New in v1.3.0Async

Extrudes a closed spline into a solid along +Y; negative height extrudes downwards. Each spline point keeps its own Y as the base. Bezier splines are sampled with Segments points; linear splines keep their corners. Taper shrinks (or with negative values flares) the outline at the far end of the extrusion in metres. Top and bottom caps follow world up and down. Side UVs use metres along the outline and up the wall; cap UVs use XZ. Concave outlines are supported; self-intersecting outlines are not.

InputTypeDefault
elementsElement Set–
splineClosed outline; its XZ projection is extruded.Spline–
heightExtrusion height in metres. Negative values extrude downwards.Float Or AttributeConstant or attribute–
taperMoves the outline at the far end of the extrusion inwards in metres; negative values flare it outwards.Float Or AttributeConstant or attribute–
segmentsOutline samples for Bezier splines. Linear splines use their points.Integer64
capTopBooleanOn
capBottomBooleanOn
smoothAngleOutline corners turning less than this angle are shaded smoothly.Float30

OutputElement Set

Writes
position rotation scale id
Technical details
Node ID
Mesh.ExtrudeSpline
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.ExtrudeSpline
Attribute-name inputs
height taper

Follow Spline Mesh

Async

Deforms mesh definitions along an open spline. Source X maps to arc distance; Y/Z become normal/side offsets. Generate or explode meshes first. Existing topology is retained; subdivide long faces before bending. A Y-axis primitive must be rotated onto X before bending. sourceStart/sourceLength map the source X interval onto the complete spline.

InputTypeDefault
elementsElement Set–
splineSpline–
sourceStartFloat0
sourceLengthFloat1

OutputElement Set

Technical details
Node ID
Mesh.FollowSpline
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.FollowSpline

Place Mesh On Points

Sync

Copies one mesh definition onto target points, retaining editable topology. Combine source meshes first; realize only after editing.

InputTypeDefault
pointsElement Set–
sourceElement Set–

OutputElement Set

Technical details
Node ID
Mesh.PlaceOnPoints
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.PlaceOnPoints

Plane Mesh

Async

No description yet.

InputTypeDefault
elementsElement SetNone
widthFloat Or AttributeConstant or attribute–
depthFloat Or AttributeConstant or attribute–
columnsInt Or AttributeConstant or attribute–
rowsInt Or AttributeConstant or attribute–

OutputElement Set

Writes
position rotation scale id
Technical details
Node ID
Mesh.Plane
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Plane
Attribute-name inputs
width depth columns rows

Point In Closed Spline

Sync

Tests whether each element's position falls inside a closed spline boundary (horizontal XZ plane projection). Writes a bool attribute.

InputTypeDefault
queriesElement Set–
boundarySpline–
maskAttributeString"inside"
sampleCountInteger128

OutputElement Set

Requires
position
Writes
inside
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Nodes.Geometry.GeometryNodes.PointInClosedSpline
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.GeometryNodes.PointInClosedSpline

Realize Meshes

Async

Consolidates each point-based mesh definition into one mesh-bearing placement. Ordinary rows pass through. Identical meshes share resources. Row count changes from point/corner rows to placements; source-row indexes used by Assign Mesh refer to this realized output. Realization alone does not draw anything.

InputTypeDefault
elementsElement Set–

OutputElement Set

Writes
mesh position rotation scale
Technical details
Node ID
Mesh.Realize
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Realize

Rectangle Shape

Sync

Creates a rectangle centered on the local XZ origin.

InputTypeDefault
WidthRectangle width on the local X axisFloat1
DepthRectangle depth on the local Z axisFloat1

OutputShapePlanar ShapeLocal rectangle domain

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Spatial.PlanarShapeNodes.RectangleShape
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.PlanarShapeNodes.RectangleShape

Revolve Profile Mesh

Async

Revolves a radius multiplier curve around Y. Height is measured in metres; start/end select normalized profile heights. Wall thickness stays in metres. Partial sweeps have closed sides. Output starts at local Y=0. Every sampled curve value times radius must exceed wallThickness; thin tips need thinner walls. The result is a hollow shell, generally unsuitable for convex-only Bevel Mesh.

InputTypeDefault
elementsElement Set–
profileAt least two curve keys; time is normalized height and value multiplies radius. All sampled radii must exceed wallThickness.Animation Curve–
radiusRadius multiplier in metres; multiplied by the profile value.Float Or AttributeConstant or attribute–
heightFloat Or AttributeConstant or attribute–
wallThicknessPositive radial thickness in metres, strictly smaller than every sampled radius.Float Or AttributeConstant or attribute–
sweepDegreesPositive sweep angle in degrees; capped at 360. Partial sweeps close both cut sides.Float Or AttributeConstant or attribute–
startFloat Or AttributeConstant or attribute–
endFloat Or AttributeConstant or attribute–
segmentsInt Or AttributeConstant or attribute–
profileSegmentsInteger16

OutputElement Set

Writes
position rotation scale id
Technical details
Node ID
Mesh.RevolveProfile
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.RevolveProfile
Attribute-name inputs
radius height wallThickness sweepDegrees start end segments

Sample From Surface

LegacyAsync

Legacy surface sampling from a triangle-corner ElementSet. Use Sample Mesh Surface for new graphs.

InputTypeDefault
trianglesElement Set–
samplesPerTriangleInteger1
seedInteger0

OutputElement Set

Requires
position
Writes
id position normal sourceRowIndex localIndex triangleIndex triangleVertexIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.GeometryNodes.SampleFromSurface
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.GeometryNodes.SampleFromSurface

Sample From Surface Grid

LegacyAsync

Legacy projected-grid sampling from a triangle-corner ElementSet. Use Sample Mesh Surface Grid for new graphs.

InputTypeDefault
trianglesElement Set–
gridSpacingFloat1
includeEdgesBooleanOn
projectionNormalVector3(0, 0, 0)
gridAnchorVector3(0, 0, 0)

OutputElement Set

Requires
position
Writes
id position normal sourceRowIndex localIndex triangleIndex triangleVertexIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.GeometryNodes.SampleFromSurfaceGrid
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.GeometryNodes.SampleFromSurfaceGrid

Sample Mesh Surface

Async

No description yet.

InputTypeDefault
elementsElement Set–
samplesPerTriangleInt Or AttributeConstant or attribute–
seedInteger0

OutputElement Set

Writes
id position normal sourceRowIndex
Technical details
Node ID
Mesh.SampleSurface
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.SampleSurface

Sample Mesh Surface Grid

Async

No description yet.

InputTypeDefault
elementsElement Set–
spacingFloat Or AttributeConstant or attribute–
includeEdgesBooleanOn
projectionNormalVector3(0, 0, 0)
gridAnchorVector3(0, 0, 0)

OutputElement Set

Writes
id position normal sourceRowIndex
Technical details
Node ID
Mesh.SampleGrid
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.SampleGrid

Sample Points In Shape

Sync

Generates deterministic uniformly distributed points inside a local shape.

InputTypeDefault
shapePlanar Shape–
countInteger–
seedInteger0

OutputPointsElement SetPoints sampled inside the shape

Writes
id position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Spatial.PlanarShapeNodes.SamplePointsInShape
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.PlanarShapeNodes.SamplePointsInShape

Set Vertex Color

Sync

Writes the mesh color channel from a color binding. Use on point-based meshes before Realize Meshes; the shader must use vertex colors.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–

OutputElement Set

Writes
color
Technical details
Node ID
Color.SetVertexColor
C# method
CuriousTrove.OctoShaper.Library.Nodes.Colors.ColorNodes.SetVertexColor
Attribute-name inputs
color

Snap To Closest Position

Async

Moves query positions to their nearest target positions.

InputTypeDefault
queriesElement Set–
targetsElement Set–
maxDistanceFloat-1

OutputElement Set

Requires
position
Writes
position closestRowIndex closestDistance closestPosition closestFound
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.GeometryNodes.SnapToClosestPosition
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.GeometryNodes.SnapToClosestPosition

Transform Mesh

Async

Transforms editable mesh geometry in each mesh group's local space. Translation uses metres, rotation Euler degrees, scale is uniform and non-zero. Generate or Explode meshes first; use ordinary Translate/Rotate/Scale for realized instance placements.

InputTypeDefault
elementsElement Set–
translationVector3 Or AttributeConstant or attribute–
rotationVector3 Or AttributeConstant or attribute–
scaleFloat Or AttributeConstant or attribute–

OutputElement Set

Technical details
Node ID
Mesh.Transform
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Transform
Attribute-name inputs
translation rotation scale

Triangulate Points

LegacyAsync

Legacy ordered-polygon triangulation that returns one ElementSet row per triangle corner. Use the current Triangulate Points node for new graphs.

InputTypeDefault
elementsElement Set–

OutputElement Set

Requires
position
Writes
id sourceRowIndex localIndex primitiveId cornerIndex pointId triangleIndex triangleVertexIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.GeometryNodes.TriangulatePoints
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.GeometryNodes.TriangulatePoints

Triangulate Points

Async

No description yet.

InputTypeDefault
pointsElement Set–

OutputElement Set

Requires
position
Technical details
Node ID
Mesh.Triangulate
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Triangulate

UV Sphere Mesh

Async

No description yet.

InputTypeDefault
elementsElement SetNone
radiusFloat Or AttributeConstant or attribute–
segmentsInt Or AttributeConstant or attribute–
ringsInt Or AttributeConstant or attribute–

OutputElement Set

Writes
position rotation scale id
Technical details
Node ID
Mesh.Sphere
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Sphere
Attribute-name inputs
radius segments rings

Math

11 nodes

Add Floats

Sync

Adds two floats.

InputTypeDefault
AFloat–
BFloat–

OutputSumFloat

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.Add
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.ScalarMathNodes.Add

Add Vector3

Sync

Adds two Vector3 values.

InputTypeDefault
AVector3–
BVector3–

OutputResultVector3

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.AddVector3
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.ScalarMathNodes.AddVector3

Clamp Float

Sync

Clamps a float between min and max.

InputTypeDefault
ValueFloat–
MinFloat–
MaxFloat–

OutputClampedFloat

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.Clamp
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.ScalarMathNodes.Clamp

Create Vector

Sync

Create a vector from floats.

InputTypeDefault
xFloat–
yFloat–
zFloat–

OutputVector3

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.CreateVector
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.ScalarMathNodes.CreateVector

Divide Floats

Sync

Divides A by B. A zero divisor reports an error.

InputTypeDefault
aFloat–
bFloat–

OutputFloat

Technical details
Node ID
Math.Divide
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.ScalarMathNodes.Divide

Evaluate Curve

Sync

Samples an AnimationCurve at time t and returns the curve value.

InputTypeDefault
CurveAnimation Curve–
TimeFloat–

OutputValueFloat

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Curve.Evaluate
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.CurveNodes.EvaluateCurve

Lerp Float

Sync

Linearly interpolates between two floats.

InputTypeDefault
AFloat–
BFloat–
TFloat–

OutputResultFloat

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.Lerp
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.ScalarMathNodes.Lerp

Multiply Floats

Sync

Multiplies two floats.

InputTypeDefault
AFloat–
BFloat–

OutputProductFloat

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.Multiply
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.ScalarMathNodes.Multiply

Scale Vector

Sync

Scales a vector by a float.

InputTypeDefault
VectorVector3–
ScaleFloat–

OutputResultVector3

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.Scale
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.ScalarMathNodes.Scale

Scale Vector3

Sync

Scales a Vector3 by a float.

InputTypeDefault
VectorVector3–
ScaleFloat–

OutputResultVector3

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.ScaleVector3
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.ScalarMathNodes.ScaleVector3

Translate Vector

Sync

Adds two vectors.

InputTypeDefault
PositionBase positionVector3–
OffsetOffset to addVector3–

OutputResultVector3Translated position

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.Translate
C# method
CuriousTrove.OctoShaper.Library.Nodes.Math.ScalarMathNodes.Translate

Physics

11 nodes

Add Box Collider

Sync

Appends a local-space box collider to each selected placement, independently of its visuals. Raw mesh points must be realized or have topology discarded first.

InputTypeDefault
elementsElement Set–
widthFloat Or AttributeConstant or attribute–
heightFloat Or AttributeConstant or attribute–
depthFloat Or AttributeConstant or attribute–
centerVector3 Or AttributeConstant or attribute–
rotationVector3 Or AttributeConstant or attribute–
selectionBool Or AttributeConstant or attribute–
isTriggerBool Or AttributeConstant or attribute–
materialPhysics MaterialNone
layerInt Or AttributeConstant or attribute–

OutputElement Set

Writes
colliders
Technical details
Node ID
Collider.AddBox
C# method
CuriousTrove.OctoShaper.Library.Nodes.Physics.ColliderNodes.AddBox
Attribute-name inputs
width height depth center rotation selection isTrigger layer

Add Capsule Collider

Sync

Appends a local-space capsule collider to each selected placement, independently of its visuals. Raw mesh points must be realized or have topology discarded first.

InputTypeDefault
elementsElement Set–
radiusFloat Or AttributeConstant or attribute–
heightFloat Or AttributeConstant or attribute–
centerVector3 Or AttributeConstant or attribute–
rotationVector3 Or AttributeConstant or attribute–
selectionBool Or AttributeConstant or attribute–
isTriggerBool Or AttributeConstant or attribute–
materialPhysics MaterialNone
layerInt Or AttributeConstant or attribute–

OutputElement Set

Writes
colliders
Technical details
Node ID
Collider.AddCapsule
C# method
CuriousTrove.OctoShaper.Library.Nodes.Physics.ColliderNodes.AddCapsule
Attribute-name inputs
radius height center rotation selection isTrigger layer

Add Mesh Collider

Sync

Appends a collider using an independent Mesh constant/attribute or a realized Source row. Source transforms and visual payloads are not copied. Choose Attribute(mesh) explicitly to use the target's mesh. Convex previews show source geometry; Unity cooks the final hull.

InputTypeDefault
elementsElement Set–
meshMesh Or AttributeConstant or attribute–
sourceElement SetNone
sourceRowInt Or AttributeConstant or attribute–
convexBooleanOff
centerVector3 Or AttributeConstant or attribute–
rotationVector3 Or AttributeConstant or attribute–
selectionBool Or AttributeConstant or attribute–
isTriggerBool Or AttributeConstant or attribute–
materialPhysics MaterialNone
layerInt Or AttributeConstant or attribute–

OutputElement Set

Writes
colliders
Technical details
Node ID
Collider.AddMesh
C# method
CuriousTrove.OctoShaper.Library.Nodes.Physics.ColliderNodes.AddMesh
Attribute-name inputs
mesh sourceRow center rotation selection isTrigger layer

Add Sphere Collider

Sync

Appends a local-space sphere collider to each selected placement, independently of its visuals. Raw mesh points must be realized or have topology discarded first.

InputTypeDefault
elementsElement Set–
radiusFloat Or AttributeConstant or attribute–
centerVector3 Or AttributeConstant or attribute–
rotationVector3 Or AttributeConstant or attribute–
selectionBool Or AttributeConstant or attribute–
isTriggerBool Or AttributeConstant or attribute–
materialPhysics MaterialNone
layerInt Or AttributeConstant or attribute–

OutputElement Set

Writes
colliders
Technical details
Node ID
Collider.AddSphere
C# method
CuriousTrove.OctoShaper.Library.Nodes.Physics.ColliderNodes.AddSphere
Attribute-name inputs
radius center rotation selection isTrigger layer

Clear Colliders

Sync

Clears graph-authored collider definitions on selected rows. Existing prefab colliders are untouched.

InputTypeDefault
elementsElement Set–
selectionBool Or AttributeConstant or attribute–

OutputElement Set

Technical details
Node ID
Collider.Clear
C# method
CuriousTrove.OctoShaper.Library.Nodes.Physics.ColliderNodes.Clear
Attribute-name inputs
selection

Closest Point On Collider World

Sync

Finds the closest point on the live collider world for each row and writes surface metadata.

InputTypeDefault
elementsElement Set–
queryPositionVector3 Or AttributeConstant or attribute–
maxDistanceFloat Or AttributeConstant or attribute–
hitMaskStringNone

OutputElement Set

Writes
surfaceFound surfacePoint surfaceNormal surfaceDistance surfaceOffset
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.Physics.ClosestPointOnColliderWorld
C# method
CuriousTrove.OctoShaper.Library.Nodes.Physics.Physics.ClosestPointOnColliderWorld
Attribute-name inputs
hitMask queryPosition maxDistance

Compute Slope Mask

Sync

Evaluates a per-row surface normal, writes a boolean slope mask, and optionally writes slope cosine, slope angle, and soft-falloff probability.

InputTypeDefault
elementsElement Set–
normalVector3 Or AttributeConstant or attribute–
maxSlopeDegreesFloat–
outputMaskString–
fullDensitySlopeDegreesFloat0
probabilityAttributeStringNone
slopeDegreesAttributeStringNone
slopeCosAttributeStringNone
inputMaskStringNone

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.Physics.ComputeSlopeMask
C# method
CuriousTrove.OctoShaper.Library.Nodes.Physics.Physics.ComputeSlopeMask
Attribute-name inputs
inputMask outputMask probabilityAttribute slopeDegreesAttribute slopeCosAttribute normal

Fit Box Collider To Mesh

Sync

Appends a box fitted to the local bounds of a selected mesh, independently of rendering. Does not combine rows.

InputTypeDefault
elementsElement Set–
meshMesh Or AttributeConstant or attribute–
selectionBool Or AttributeConstant or attribute–
isTriggerBool Or AttributeConstant or attribute–
materialPhysics MaterialNone
layerInt Or AttributeConstant or attribute–

OutputElement Set

Writes
colliders
Technical details
Node ID
Collider.FitBox
C# method
CuriousTrove.OctoShaper.Library.Nodes.Physics.ColliderNodes.FitBox
Attribute-name inputs
mesh selection isTrigger layer

Project Positions

Sync

Casts a ray from each element's position attribute in the given direction and writes the hit point back into the position attribute. Useful for snapping elements to terrain or geometry. When no hit is found, the element position is either kept as-is or zeroed depending on 'keepOnMiss'. An optional start offset moves the ray origin along the *opposite* of the cast direction so that elements sitting on a surface are not immediately clipped by it.

InputTypeDefault
ElementsInput ElementSet — must have a 'position' attributeElement Set–
DirectionProjection direction — normalised automatically (e.g. (0,-1,0) to project downward)Vector3–
Start OffsetDistance to pull the ray origin back along the opposite of Direction before casting. Use a positive value to ensure elements resting on a surface still get a hit.Float0.1
Max DistanceMaximum ray travel distance.Float∞
Keep On MissWhen true, elements that produce no hit keep their original position. When false, their position is set to zero.BooleanOn

OutputElementsElement SetElementSet with projected positions

Requires
position
Writes
position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.Physics.ProjectPositions
C# method
CuriousTrove.OctoShaper.Library.Nodes.Physics.Physics.ProjectPositions

Raycast

Sync

Casts a ray into the physics world and returns the hit point.

InputTypeDefault
originVector3–
directionVector3–
maxDistanceFloat∞

OutputVector3

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.Physics.Raycast
C# method
CuriousTrove.OctoShaper.Library.Nodes.Physics.Physics.Raycast

Raycast Scene Details

Sync

Evaluates one ray per row and writes hit state, hit point, hit normal, and hit distance attributes.

InputTypeDefault
elementsElement Set–
originVector3 Or AttributeConstant or attribute–
directionVector3 Or AttributeConstant or attribute–
maxDistanceFloat Or AttributeConstant or attribute–

OutputElement Set

Writes
rayHit rayHitPoint rayHitNormal rayHitDistance rayHitDirection
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.Physics.RaycastSceneDetails
C# method
CuriousTrove.OctoShaper.Library.Nodes.Physics.Physics.RaycastSceneDetails
Attribute-name inputs
origin direction maxDistance

Rendering

11 nodes

Assign Mesh

Sync

Assigns an asset mesh or a selected mesh from a realized source ElementSet to target points. Mesh references are shared; target transforms and attributes are preserved.

InputTypeDefault
elementsElement Set–
meshMeshNone
sourceRealized mesh bank. Must contain mesh; sourceRow attributes are read on target elements, not on this source.Element SetNone
sourceRowZero-based row in source. Attribute bindings are evaluated per target row on elements. Source must be realized first.Int Or AttributeConstant or attribute–

OutputElement Set

Writes
mesh
Technical details
Node ID
Mesh.Assign
C# method
CuriousTrove.OctoShaper.Library.Nodes.Geometry.MeshNodes.Assign
Attribute-name inputs
sourceRow

Create Primitive

Sync

Writes primitive type and default transform attributes into each element.

InputTypeDefault
elementsElement Set–
primitivePrimitiveType–

OutputElement Set

Writes
primitiveType renderDefinition position rotation scale
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.GameObjectNodes.CreatePrimitive
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.GameObjectNodes.CreatePrimitive

Create Primitive (Generator)

Sync

Creates a new element set and assigns one primitive per generated element.

InputTypeDefault
primitivePrimitiveType–
countInteger–

OutputElement Set

Writes
id primitiveType renderDefinition position rotation scale
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.GameObjectGenerators.CreatePrimitiveGenerator
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.GameObjectGenerators.CreatePrimitiveGenerator

Draw Instanced

Sync

Draws one constant mesh at every point, or each row's named Mesh attribute. Attribute mode requires realized meshes.

InputTypeDefault
elementsElement Set–
meshMesh Or AttributeConstant or attribute–
materialMaterial–
shadowCastingModeShadowCastingModeOn
receiveShadowsBooleanOn

OutputElement Set

Writes
renderDefinition position rotation scale
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Instancers.DrawInstancedNodes.DrawInstanced
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.DrawInstancedNodes.DrawInstanced
Attribute-name inputs
mesh

Draw Instanced Indirect

Sync

Draws one constant mesh at every point, or each row's named Mesh attribute. Attribute mode requires realized meshes.

InputTypeDefault
elementsElement Set–
meshMesh Or AttributeConstant or attribute–
materialMaterial–
shadowCastingModeShadowCastingModeOn
receiveShadowsBooleanOn

OutputElement Set

Writes
renderDefinition position rotation scale
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Instancers.DrawInstancedIndirectNodes.DrawInstancedIndirect
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.DrawInstancedIndirectNodes.DrawInstancedIndirect
Attribute-name inputs
mesh

Pick Weighted

Sync

Writes one weighted prefab per element.

InputTypeDefault
elementsElement Set–
listWeighted List–
seedInteger0

OutputElement Set

Writes
prefab primitiveType renderDefinition
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.GameObjectNodes.PickWeighted
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.GameObjectNodes.PickWeighted

Pick Weighted (Generator)

Sync

Creates a new element set with one weighted prefab per generated element.

InputTypeDefault
listWeighted List–
countInteger–
seedInteger0

OutputElement Set

Writes
id prefab primitiveType renderDefinition position rotation scale
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.GameObjectGenerators.PickWeightedGenerator
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.GameObjectGenerators.PickWeightedGenerator

Sample Weighted

Sync

Writes one weighted prefab per element from a sampled batch.

InputTypeDefault
elementsElement Set–
listWeighted List–
seedInteger0

OutputElement Set

Writes
prefab primitiveType renderDefinition
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.GameObjectNodes.SampleWeighted
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.GameObjectNodes.SampleWeighted

Sample Weighted (Generator)

Sync

Creates a new element set from a weighted prefab sample.

InputTypeDefault
listWeighted List–
countInteger–
seedInteger0

OutputElement Set

Writes
id prefab primitiveType renderDefinition position rotation scale
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.GameObjectGenerators.SampleWeightedGenerator
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.GameObjectGenerators.SampleWeightedGenerator

Spawn Prefab

Sync

Writes a prefab reference into each element.

InputTypeDefault
elementsElement Set–
prefabPrefab–

OutputElement Set

Writes
prefab renderDefinition position rotation scale primitiveType
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Instancers.PrefabUtilities.CreateGameObject
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.PrefabUtilities.CreateGameObject

Spawn Prefab (Generator)

Sync

Creates a new element set and assigns the same prefab to each element.

InputTypeDefault
prefabPrefab–
countInteger–

OutputElement Set

Writes
id prefab renderDefinition position rotation scale primitiveType
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Generators.PrefabGenerators.SpawnPrefabGenerator
C# method
CuriousTrove.OctoShaper.Library.Nodes.Generation.PrefabGenerators.SpawnPrefabGenerator

Rendering › Materials

4 nodes

Set Material Color

Sync

Overrides a drawn element's material color after Draw Instanced or Draw Instanced Indirect. Empty property selects the shader's main color. Source assets remain unchanged.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
colorA color constant or a named Unity color attribute.Color Or AttributeConstant or attribute–
propertyNameShader property reference name, such as _BaseColor or _Color. Empty selects main color.String""

OutputElement Set

Requires
renderDefinition
Technical details
Node ID
Material.SetColor
C# method
CuriousTrove.OctoShaper.Library.Nodes.Materials.MaterialNodes.SetColor
Attribute-name inputs
color

Set Material Float

Sync

Overrides a shader float property (such as smoothness or metallic) per drawn element. Does not change shader keywords or render state.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
valueValue constant or named float attribute.Float Or AttributeConstant or attribute–
propertyNameString"_Smoothness"

OutputElement Set

Requires
renderDefinition
Technical details
Node ID
Material.SetFloat
C# method
CuriousTrove.OctoShaper.Library.Nodes.Materials.MaterialNodes.SetFloat
Attribute-name inputs
value

Set Material Texture

Sync

Overrides a drawn element's texture after a draw node. Empty property selects the shader's main texture. Read/Write is not required. Shader keywords must already be enabled on the material.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
textureTexture asset constant or named texture-reference attribute.Texture Or AttributeConstant or attribute–
propertyNameShader property reference name, such as _BaseMap or _MainTex. Empty selects main texture.String""

OutputElement Set

Requires
renderDefinition
Technical details
Node ID
Material.SetTexture
C# method
CuriousTrove.OctoShaper.Library.Nodes.Materials.MaterialNodes.SetTexture
Attribute-name inputs
texture

Set Material Texture Transform

Sync

Overrides a texture's tiling and offset per drawn element. Empty property selects the main texture; the shader must use its _ST transform.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
tilingUFloat Or AttributeConstant or attribute–
tilingVFloat Or AttributeConstant or attribute–
offsetUV offset constant or Vector2 attribute.Vector2 Or AttributeConstant or attribute–
propertyNameString""

OutputElement Set

Requires
renderDefinition
Technical details
Node ID
Material.SetTextureTransform
C# method
CuriousTrove.OctoShaper.Library.Nodes.Materials.MaterialNodes.SetTextureTransform
Attribute-name inputs
tilingU tilingV offset

Spatial

21 nodes

Attract Points To Position

Sync

Moves each point toward a target position using distance falloff. Target, strength, radius, and falloff can be constants or per-point attributes.

InputTypeDefault
elementsElement Set–
targetPositionTarget position, resolved separately for each point in Attribute mode.Vector3 Or AttributeConstant or attribute–
strengthMovement strength before distance falloff. Negative values repel points.Float Or AttributeConstant or attribute–
radiusInfluence radius for each point. Non-positive radii leave the point unchanged.Float Or AttributeConstant or attribute–
falloffPowerDistance-falloff exponent, clamped to at least 0.0001.Float Or AttributeConstant or attribute–

OutputElement Set

Requires
position
Writes
position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.AttractPointsByDistance
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.AttractPointsByDistance
Attribute-name inputs
targetPosition strength radius falloffPower

Distribute Points In Grid

Async

Expands each input element into points distributed in a 2D grid.

InputTypeDefault
elementsElement Set–
originVector3 Or AttributeConstant or attribute–
xAxisVector3 Or AttributeConstant or attribute–
yAxisVector3 Or AttributeConstant or attribute–
xCountInt Or AttributeConstant or attribute–
yCountInt Or AttributeConstant or attribute–
xSpacingFloat Or AttributeConstant or attribute–
ySpacingFloat Or AttributeConstant or attribute–

OutputElement Set

Writes
id position sourceRowIndex localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.DistributePointsInGrid
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.DistributePointsInGrid

Distribute Points On Line

Async

Writes per-element positions distributed along a line segment.

InputTypeDefault
elementsElement Set–
startVector3 Or AttributeConstant or attribute–
endVector3 Or AttributeConstant or attribute–
countInt Or AttributeConstant or attribute–
includeEndpointsBooleanOn

OutputElement Set

Writes
id position sourceRowIndex localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.DistributePointsOnLine
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.DistributePointsOnLine

Jitter Positions

Async

Offsets per-element positions by a deterministic random Vector3 range.

InputTypeDefault
elementsElement Set–
minOffsetVector3 Or AttributeConstant or attribute–
maxOffsetVector3 Or AttributeConstant or attribute–
seedInteger0
identityAttributeStringNone
uniformBooleanOff

OutputElement Set

Writes
position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.GameObjectNodes.JitterPositions
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.GameObjectNodes.JitterPositions
Attribute-name inputs
minOffset maxOffset

Jitter Rotation

Async

Applies a deterministic random Euler rotation range to each element.

InputTypeDefault
elementsElement Set–
minEulerVector3 Or AttributeConstant or attribute–
maxEulerVector3 Or AttributeConstant or attribute–
seedInteger0
identityAttributeStringNone
uniformBooleanOff

OutputElement Set

Writes
rotation
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.GameObjectNodes.JitterRotation
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.GameObjectNodes.JitterRotation
Attribute-name inputs
minEuler maxEuler

Jitter Scale

Async

Multiplies per-element scale by a deterministic random Vector3 range.

InputTypeDefault
elementsElement Set–
minFactorVector3 Or AttributeConstant or attribute–
maxFactorVector3 Or AttributeConstant or attribute–
seedInteger0
identityAttributeStringNone
uniformBooleanOff

OutputElement Set

Writes
scale
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.GameObjectNodes.JitterScale
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.GameObjectNodes.JitterScale
Attribute-name inputs
minFactor maxFactor

Look At Direction

Sync

Orients each element to face the specified direction. Uses the world up vector as the default up reference.

InputTypeDefault
elementsElement Set–
directionVector3 Or AttributeConstant or attribute–
upVector3 Or AttributeConstant or attribute–

OutputElement Set

Writes
rotation
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.LookAtDirection
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.LookAtDirection
Attribute-name inputs
direction

Look At Point

Sync

Orients each element to face a target point by computing the direction from its position to the target.

InputTypeDefault
elementsElement Set–
targetVector3 Or AttributeConstant or attribute–
upVector3 Or AttributeConstant or attribute–

OutputElement Set

Requires
position
Writes
rotation
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.LookAtPoint
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.LookAtPoint

Poisson Disc

Async

Generates a new ElementSet with positions sampled on the XZ plane using Poisson disc spacing.

InputTypeDefault
WidthRectangle width (X)Float–
HeightRectangle depth (Z)Float–
RadiusMinimum distance between pointsFloat–
AttemptsCandidates per active pointInteger–
SeedRandom seedInteger–

OutputElement Set

Writes
id position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Attributes.AttributeNodes.PoissonDisc
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.PoissonDisc

Poisson Disc Per Element

Async

Expands each input element into a Poisson disc cluster on the XZ plane and writes source/local index attributes.

InputTypeDefault
elementsElement Set–
WidthRectangle width (X)Float Or AttributeConstant or attribute–
HeightRectangle depth (Z)Float Or AttributeConstant or attribute–
RadiusMinimum distance between pointsFloat Or AttributeConstant or attribute–
AttemptsCandidates per active pointInt Or AttributeConstant or attribute–
SeedRandom seedInteger–

OutputElement Set

Writes
id position sourceRowIndex localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.PoissonDiscPerElement
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.PoissonDiscPerElement

Randomize Rotation

Sync

Writes random per-element rotations.

InputTypeDefault
elementsElement Set–
randomizeXBoolean–
randomizeYBoolean–
randomizeZBoolean–
seedInteger–

OutputElement Set

Writes
rotation
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.RandomRotations
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.RandomRotations

Rotate

Async

Rotates per-element rotations by Euler angles from a constant vector or a bound attribute.

InputTypeDefault
elementsElement Set–
eulerVector3 Or AttributeConstant or attribute–

OutputElement Set

Requires
rotation
Writes
rotation
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.GameObjectNodes.Rotate
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.GameObjectNodes.Rotate

Sample Points In Annulus

Sync

Generates points uniformly over an annulus on the XZ plane.

InputTypeDefault
centerVector3–
innerRadiusFloat–
outerRadiusFloat–
countInteger–
seedInteger0

OutputElement Set

Writes
id position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.SamplePointsInAnnulus
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.SamplePointsInAnnulus

Sample Points In Annulus Per Element

Sync

Expands each input element into a uniform annulus cluster on the XZ plane.

InputTypeDefault
elementsElement Set–
innerRadiusFloat Or AttributeConstant or attribute–
outerRadiusFloat Or AttributeConstant or attribute–
countInt Or AttributeConstant or attribute–
seedInteger0

OutputElement Set

Writes
id position sourceRowIndex localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.SamplePointsInAnnulusPerElement
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.SamplePointsInAnnulusPerElement

Sample Points In Box

Sync

Generates points uniformly inside an axis-aligned box.

InputTypeDefault
centerVector3–
sizeVector3–
countInteger–
seedInteger0

OutputElement Set

Writes
id position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.SamplePointsInBox
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.SamplePointsInBox

Sample Points In Disc

Sync

Generates points uniformly over a disc on the XZ plane.

InputTypeDefault
centerVector3–
radiusFloat–
countInteger–
seedInteger0

OutputElement Set

Writes
id position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.SamplePointsInDisc
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.SamplePointsInDisc

Sample Points In Disc Per Element

Sync

Expands each input element into a uniform disc cluster on the XZ plane.

InputTypeDefault
elementsElement Set–
radiusFloat Or AttributeConstant or attribute–
countInt Or AttributeConstant or attribute–
seedInteger0

OutputElement Set

Writes
id position sourceRowIndex localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.SamplePointsInDiscPerElement
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.SamplePointsInDiscPerElement

Sample Points In Sphere

Sync

Generates points uniformly inside a sphere volume.

InputTypeDefault
centerVector3–
radiusFloat–
countInteger–
seedInteger0

OutputElement Set

Writes
id position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.SamplePointsInSphere
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.SamplePointsInSphere

Sample Points In Sphere Per Element

Sync

Expands each input element into a uniform sphere volume cluster.

InputTypeDefault
elementsElement Set–
radiusFloat Or AttributeConstant or attribute–
countInt Or AttributeConstant or attribute–
seedInteger0

OutputElement Set

Writes
id position sourceRowIndex localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.SamplePointsInSpherePerElement
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.SamplePointsInSpherePerElement

Sample Points On Sphere

Sync

Generates points uniformly on the surface of a sphere.

InputTypeDefault
centerVector3–
radiusFloat–
countInteger–
seedInteger0

OutputElement Set

Writes
id position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.SamplePointsOnSphere
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.SamplePointsOnSphere

Translate

Async

Translates per-element positions by a vector.

InputTypeDefault
elementsElement Set–
offsetVector3 Or AttributeConstant or attribute–

OutputElement Set

Requires
position
Writes
position
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.GameObjectNodes.Translate
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.GameObjectNodes.Translate

Spline

3 nodes

Distribute Points On Spline

Async

Expands each input element into points sampled on a spline.

InputTypeDefault
elementsElement Set–
splineSpline–
countInt Or AttributeConstant or attribute–
includeEndpointsBooleanOn
alignRotationToSplineBooleanOff
normalOrientationSplineNormalOrientationUp

OutputElement Set

Writes
id position rotation tangent normal sourceRowIndex localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.SplineNodes.DistributePointsOnSpline
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.SplineNodes.DistributePointsOnSpline

Distribute Points On Spline By Distance

Async

Expands each input element into points sampled every fixed world-space distance along a spline.

InputTypeDefault
elementsElement Set–
splineSpline–
distanceBetweenPointsFloat Or AttributeConstant or attribute–
includeEndPointBooleanOn
alignRotationToSplineBooleanOff
normalOrientationSplineNormalOrientationUp

OutputElement Set

Writes
id position rotation tangent normal sourceRowIndex localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.SplineNodes.DistributePointsOnSplineByDistance
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.SplineNodes.DistributePointsOnSplineByDistance

Offset Spline

New in v1.3.0Sync

Moves every spline point sideways in the XZ plane by Distance metres, keeping Y. Positive distances grow a closed spline outwards and negative distances shrink it; open splines move to the right of their direction. Corners are mitred. Large inward offsets on tight curves can fold the outline.

InputTypeDefault
splineSpline–
distanceOffset in metres. Positive grows closed splines outwards.Float0.1

OutputSpline

Technical details
Node ID
Spline.Offset
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.SplineNodes.OffsetSpline

Spline › Growth

2 nodes

Grow Strands

Async

Expands each seed row into an ordered strand influenced by gravity and nearby colliders.

InputTypeDefault
seedsElement Set–
stepCountInt Or AttributeConstant or attribute–
stepLengthFloat Or AttributeConstant or attribute–
initialDirectionVector3 Or AttributeConstant or attribute–
gravityDirectionVector3–
gravityWeightFloat Or AttributeConstant or attribute–
clingWeightFloat Or AttributeConstant or attribute–
obstacleAvoidanceWeightFloat Or AttributeConstant or attribute–
randomnessFloat Or AttributeConstant or attribute–
collisionRadiusFloat Or AttributeConstant or attribute–
surfaceSearchDistanceFloat Or AttributeConstant or attribute–
obstacleSearchDistanceFloat Or AttributeConstant or attribute–
stopWhenBlockedBooleanOff
seedInteger0

OutputElement Set

Writes
id position tangent normal rotation sourceRowIndex localIndex parentRowIndex growthDirection surfaceFound surfacePoint surfaceNormal surfaceDistance blocked alive
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.SplineNodes.GrowStrands
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.SplineNodes.GrowStrands
Attribute-name inputs
stepCount stepLength initialDirection gravityWeight clingWeight obstacleAvoidanceWeight randomness collisionRadius surfaceSearchDistance obstacleSearchDistance

Slide Direction On Surface

Sync

Projects a preferred direction onto a contacted surface and writes the slid direction.

InputTypeDefault
elementsElement Set–
directionVector3 Or AttributeConstant or attribute–
surfaceNormalVector3 Or AttributeConstant or attribute–
clingStrengthFloat Or AttributeConstant or attribute–
outputAttributeString"growthDirection"

OutputElement Set

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.SplineNodes.SlideDirectionOnSurface
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.SplineNodes.SlideDirectionOnSurface
Attribute-name inputs
outputAttribute direction surfaceNormal clingStrength

Spline › Sampling

6 nodes

Build Spline From Strands

Sync

Builds a spline from rows that share the same strand id and are ordered by step index.

InputTypeDefault
elementsElement Set–
strandIdInteger–
strandIdAttributeString"sourceRowIndex"
stepIndexAttributeString"localIndex"
closedBooleanOff

OutputSpline

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.SplineNodes.BuildSplineFromStrands
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.SplineNodes.BuildSplineFromStrands

Distance To Spline

Async

For each element, computes the distance to the nearest point on a spline and writes result attributes.

InputTypeDefault
queriesElement Set–
splineSpline–
sampleCountInteger64
maxDistanceFloat-1

OutputElement Set

Requires
position
Writes
splineDistance splineClosestPosition splineClosestT splineFound
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.SplineNodes.DistanceToSpline
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.SplineNodes.DistanceToSpline

Sample Spline

Sync

Samples a position on a spline at normalized t in [0..1].

InputTypeDefault
splineSpline–
tFloat–

OutputVector3

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.SplineNodes.SampleSpline
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.SplineNodes.SampleSpline

Sample Spline Corners

Async

Samples points where the spline changes direction sharply. Threshold is an angle in degrees.

InputTypeDefault
splineSpline–
thresholdDegreesFloat20
sampleCountInteger128

OutputElement Set

Writes
id position localIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.SplineNodes.SampleSplineCorners
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.SplineNodes.SampleSplineCorners

Sample Spline Frame

Sync

Samples position, tangent, and normal on a spline at normalized t in [0..1].

InputTypeDefault
splineSpline–
tFloat–
alignRotationToSplineBooleanOff
normalOrientationSplineNormalOrientationUp

OutputElement Set

Writes
id position tangent normal rotation
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.SplineNodes.SampleSplineFrame
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.SplineNodes.SampleSplineFrame

Spline Division Points

Sync

Creates division boundary points (N+1) or center points (N) at equal arc distances on an open spline. Local +Z follows the tangent and +Y the normal.

InputTypeDefault
splineSpline–
divisionsInteger6
boundariesBooleanOn

OutputElement Set

Writes
position rotation scale id tangent normal
Technical details
Node ID
Spline.DivisionPoints
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.SplinePlacementNodes.DivisionPoints

Textures

9 nodes

Create UV

Sync

Builds a normalized UV coordinate from U and V.

InputTypeDefault
uFloat0
vFloat0

OutputVector2

Technical details
Node ID
Texture.UV
C# method
CuriousTrove.OctoShaper.Library.Nodes.Textures.UVNodes.Create

Create UV Attribute

Sync

Builds a Vector2 attribute from U and V constants or float attributes.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
uFloat Or AttributeConstant or attribute–
vFloat Or AttributeConstant or attribute–
resultAttributeNameName of the Vector2 UV attribute to create or overwrite.String"uv0"

OutputElement Set

Technical details
Node ID
Texture.UVAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Textures.UVNodes.CreateAttribute
Attribute-name inputs
resultAttributeName u v

Displace By Texture

Sync

Offsets positions by a sampled channel minus midlevel, times strength, along a normalized direction. Zero direction means local up. Operates on points before realization, or on instance positions after realization.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
textureTexture asset constant or named texture-reference attribute.Texture Or AttributeConstant or attribute–
uvNormalized UV constant or Vector2 attribute, such as uv0.Vector2 Or AttributeConstant or attribute–
directionDisplacement direction constant or Vector3 attribute; zero uses local up.Vector3 Or AttributeConstant or attribute–
strengthMultiplier applied to the sampled height.Float Or AttributeConstant or attribute–
midlevelSample value that produces zero height or displacement.Float Or AttributeConstant or attribute–
channelColorChannelRed
filterTextureSamplingFilterBilinear
wrapTextureSamplingWrapTextureSettings
mipLevelInteger0

OutputElement Set

Requires
position
Writes
position
Technical details
Node ID
Texture.Displace
C# method
CuriousTrove.OctoShaper.Library.Nodes.Textures.TextureNodes.Displace
Attribute-name inputs
texture uv direction strength midlevel

Project UV From Position

Sync

Projects position (or another Vector3 binding) onto XZ, XY or YZ. UV = projected position * scale + offset; one unit maps to one repeat by default.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
positionPosition constant or Vector3 attribute; select position for spatial projection.Vector3 Or AttributeConstant or attribute–
scaleFloat Or AttributeConstant or attribute–
offsetUV offset constant or Vector2 attribute.Vector2 Or AttributeConstant or attribute–
planeUVProjectionPlaneXZ
resultAttributeNameName of the Vector2 UV attribute to create or overwrite.String"uv0"

OutputElement Set

Technical details
Node ID
Texture.ProjectUV
C# method
CuriousTrove.OctoShaper.Library.Nodes.Textures.UVNodes.Project
Attribute-name inputs
resultAttributeName position scale offset

Sample Texture

Sync

Samples a readable Texture2D at normalized UV coordinates. Raw channel values by default; enable decodeSRGB for color maps stored as sRGB.

InputTypeDefault
textureTexture–
uvVector2–
filterTextureSamplingFilterBilinear
wrapTextureSamplingWrapTextureSettings
mipLevelInteger0
decodeSRGBBooleanOff

OutputColorColorSampled RGBA, including alpha.

Technical details
Node ID
Texture.Sample
C# method
CuriousTrove.OctoShaper.Library.Nodes.Textures.TextureNodes.Sample

Sample Texture Attribute

Sync

Samples a readable Texture2D per element using UV and texture constants or attributes. Writes a color attribute. decodeSRGB explicitly converts RGB before filtering.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
textureTexture asset constant or named texture-reference attribute.Texture Or AttributeConstant or attribute–
uvNormalized UV constant or Vector2 attribute, such as uv0.Vector2 Or AttributeConstant or attribute–
resultAttributeNameName of the Unity color attribute to create or overwrite; tint is recommended.String"tint"
filterTextureSamplingFilterBilinear
wrapTextureSamplingWrapTextureSettings
mipLevelInteger0
decodeSRGBBooleanOff

OutputElement Set

Technical details
Node ID
Texture.SampleAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Textures.TextureNodes.SampleAttribute
Attribute-name inputs
resultAttributeName texture uv

Sample Texture Height

Sync

Samples a channel per element and writes (sample - midlevel) * strength as a float attribute. Height/data maps should use raw values with sRGB disabled on import.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
textureTexture asset constant or named texture-reference attribute.Texture Or AttributeConstant or attribute–
uvNormalized UV constant or Vector2 attribute, such as uv0.Vector2 Or AttributeConstant or attribute–
strengthMultiplier applied to the sampled height.Float Or AttributeConstant or attribute–
midlevelSample value that produces zero height or displacement.Float Or AttributeConstant or attribute–
resultAttributeNameName of the float attribute to create or overwrite.String"height"
channelColorChannelRed
filterTextureSamplingFilterBilinear
wrapTextureSamplingWrapTextureSettings
mipLevelInteger0

OutputElement Set

Technical details
Node ID
Texture.SampleHeight
C# method
CuriousTrove.OctoShaper.Library.Nodes.Textures.TextureNodes.SampleHeight
Attribute-name inputs
resultAttributeName texture uv strength midlevel

Texture Size

Sync

Returns width and height in pixels.

InputTypeDefault
textureTexture–

OutputVector2

Technical details
Node ID
Texture.Size
C# method
CuriousTrove.OctoShaper.Library.Nodes.Textures.TextureNodes.Size

Transform UV

Sync

Scales UV, rotates around the origin in degrees, then adds offset. Inputs can vary per element.

InputTypeDefault
elementsElements to process; results are written to attributes on these elements.Element Set–
uvNormalized UV constant or Vector2 attribute, such as uv0.Vector2 Or AttributeConstant or attribute–
scaleUFloat Or AttributeConstant or attribute–
scaleVFloat Or AttributeConstant or attribute–
rotationFloat Or AttributeConstant or attribute–
offsetUV offset constant or Vector2 attribute.Vector2 Or AttributeConstant or attribute–
resultAttributeNameName of the Vector2 UV attribute to create or overwrite.String"uv0"

OutputElement Set

Technical details
Node ID
Texture.TransformUV
C# method
CuriousTrove.OctoShaper.Library.Nodes.Textures.UVNodes.Transform
Attribute-name inputs
resultAttributeName uv scaleU scaleV rotation offset

Utilities

21 nodes

Apply Rotations

Sync

Ensures the per-element rotation attribute column exists.

InputTypeDefault
elementsElement Set–

OutputElement Set

Requires
rotation
Writes
rotation
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Expanders.Spatial.ApplyRotations
C# method
CuriousTrove.OctoShaper.Library.Nodes.Spatial.Spatial.ApplyRotations

Assign Parent Element

LegacySync

Legacy single-parent helper. Use Assign Parents or Place Local Assembly for new graphs.

InputTypeDefault
parentElementElement Set–
elementsElement Set–

OutputElement Set

Writes
id parentRowIndex siblingIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Modifiers.GameObjectNodes.AssignParentElement
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.GameObjectNodes.AssignParentElement

Assign Parents

Sync

Appends parent elements and attaches top-level children by sourceRowIndex, one-to-one row mapping, or a single-parent fallback.

InputTypeDefault
ParentsParent elements to appendElement Set–
ChildrenElements to attachElement Set–

OutputHierarchyElement SetChildren followed by their parent elements

Writes
id parentRowIndex siblingIndex
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Assemblies.AssemblyNodes.AssignParents
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.AssemblyNodes.AssignParents

Compute bounds

Sync

Computes the bounds of the prefabs into the ElementSet.

InputTypeDefault
elementsElement Set–

OutputElement Set

Requires
prefab
Writes
prefab bounds
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Instancers.PrefabUtilities.ComputeBounds
C# method
CuriousTrove.OctoShaper.Library.Nodes.Prefabs.PrefabUtilities.ComputeBounds

Count Collection

Sync

Returns the number of elements in an array.

InputTypeDefault
ValuesArray to countICollection–

OutputCountIntegerNumber of elements

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.CollectionUtilities.Count
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.CollectionUtilities.Count

Deduplicate Elements

Sync

Removes duplicate elements based on an identity attribute, preserving the first occurrence of each unique value.

InputTypeDefault
ElementsInput ElementSetElement Set–
Identity AttributeAttribute name used to detect duplicatesString–

OutputResultElement SetElementSet with duplicates removed

Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.DeduplicateElements
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.DeduplicateElements
Attribute-name inputs
Identity Attribute

Filter

Sync

Filters elements where a numeric attribute satisfies a comparison against a value.

InputTypeDefault
ElementsInput ElementSetElement Set–
AttributeNumeric attribute to compareString–
OperatorComparison operatorCompareOp–
ValueComparison thresholdFloat–

OutputFilteredElement SetFiltered ElementSet

Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.Filter
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.Filter
Attribute-name inputs
Attribute

Interleave ElementSets

Sync

Alternates rows from two ElementSets (A0, B0, A1, B1, ...), producing a new combined one.

InputTypeDefault
AFirst ElementSetElement Set–
BSecond ElementSetElement Set–

OutputResultElement SetInterleaved ElementSet

Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.InterleaveElementSets
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.InterleaveElementSets

Merge ElementSets

LegacySync

Legacy two-input merge. Use Merge for new graphs; it supports any number of inputs. Creates a new ElementSet containing all rows from A followed by all rows from B.

InputTypeDefault
AFirst ElementSetElement Set–
BSecond ElementSetElement Set–

OutputMergedElement SetMerged ElementSet

Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.MergeElementSets
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.MergeElementSets

Pick Weighted Boolean

Sync

Picks a single boolean from a weighted list.

InputTypeDefault
listWeighted Boolean List–
seedInteger0
indexInteger0

OutputBoolean

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Utilities.CollectionUtilities.PickWeightedBoolean
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.CollectionUtilities.PickWeightedBoolean

Pick Weighted Float

Sync

Picks a single float from a weighted list.

InputTypeDefault
listWeighted Float List–
seedInteger0
indexInteger0

OutputFloat

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Utilities.CollectionUtilities.PickWeightedFloat
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.CollectionUtilities.PickWeightedFloat

Pick Weighted Integer

Sync

Picks a single integer from a weighted list.

InputTypeDefault
listWeighted Integer List–
seedInteger0
indexInteger0

OutputInteger

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Utilities.CollectionUtilities.PickWeightedInteger
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.CollectionUtilities.PickWeightedInteger

Pick Weighted String

Sync

Picks a single string from a weighted list.

InputTypeDefault
listWeighted String List–
seedInteger0
indexInteger0

OutputString

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Utilities.CollectionUtilities.PickWeightedString
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.CollectionUtilities.PickWeightedString

Pick Weighted Vector3

Sync

Picks a single Vector3 from a weighted list.

InputTypeDefault
listWeighted Vector3 List–
seedInteger0
indexInteger0

OutputVector3

Technical details
Node ID
CuriousTrove.OctoShaper.Library.Utilities.CollectionUtilities.PickWeightedVector3
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.CollectionUtilities.PickWeightedVector3

Probabilistic Cull

Sync

Keeps each row with a deterministic per-element probability.

InputTypeDefault
elementsElement Set–
probabilityFloat Or AttributeConstant or attribute–
seedInteger0
identityAttributeStringNone

OutputFilteredElement SetElementSet after deterministic random culling

Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.ProbabilisticCull
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.ProbabilisticCull
Attribute-name inputs
probability

Rarefy Distance Cull

Sync

Removes elements that are too close to each other, keeping only those that are at least minDistance apart.

InputTypeDefault
ElementsInput ElementSetElement Set–
minDistanceFloat–
modeCullModeKeepFirst

OutputResultElement SetElementSet with elements spaced at least minDistance apart

Requires
position
Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.RarefyDistanceCull
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.RarefyDistanceCull

Shuffle Elements

Sync

Returns all rows in a deterministic random order using id, falling back to row index.

InputTypeDefault
elementsElement Set–
seedInteger0
identityAttributeStringNone

OutputShuffledElement SetElementSet with rows reordered deterministically

Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.ShuffleElements
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.ShuffleElements

Skip N

Sync

Skips the first N elements from the ElementSet, producing a new one with the remaining elements.

InputTypeDefault
ElementsInput ElementSetElement Set–
countInteger–

OutputResultElement SetElementSet with elements after skipping N

Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.SkipN
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.SkipN

Split By Bool Attribute

Sync

Returns elements where a boolean attribute matches Keep Value. Use two nodes (true/false) to split both branches.

InputTypeDefault
ElementsInput ElementSetElement Set–
AttributeBoolean attribute name used as split maskString–
Keep ValueRows whose attribute equals this value are keptBoolean–

OutputFilteredElement SetFiltered ElementSet branch

Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.SplitByBoolAttribute
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.SplitByBoolAttribute
Attribute-name inputs
Attribute attribute

Take First N

Sync

Takes the first N elements from the ElementSet, producing a new one.

InputTypeDefault
ElementsInput ElementSetElement Set–
countInteger–

OutputResultElement SetElementSet with the first N elements

Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.TakeFirstN
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.TakeFirstN

Take Random Subset

Sync

Returns up to count rows chosen without replacement using deterministic random order.

InputTypeDefault
elementsElement Set–
countInteger–
seedInteger0
identityAttributeStringNone

OutputSubsetElement SetDeterministically selected subset of rows

Writes
id
Technical details
Node ID
CuriousTrove.OctoShaper.Library.Reducers.ElementSetUtilities.TakeRandomSubset
C# method
CuriousTrove.OctoShaper.Library.Nodes.Utilities.ElementSetUtilities.TakeRandomSubset