Skip to main content
Documentation
Node Editor

Utility Nodes

Clamp, remap, lerp, and smoothstep values, plus absolute, sign, square root, and the Repeat loop nodes.

This category contains 24 nodes.

Nodes

Absolute

Makes negative values positive. Use it to mirror effects or to keep values positive.

Inputs: Any number.

NameTypeRangeDefault
ValueNumberany0

Outputs: The value, always positive or zero.

NameTypeRange
NumberNumber≥0

Average

Returns the midpoint between two numbers.

Inputs: The two numbers.

NameTypeRangeDefault
ANumberany0
BNumberany0

Outputs: The average.

NameTypeRange
NumberNumberany

Bipolar

Maps a 0 to 1 signal onto -1 to 1. It is the inverse of Unipolar. Use it to feed a 0-1 control into something that expects a signed swing.

Inputs: A value between 0 and 1.

NameTypeRangeDefault
ValueNumber0-10.5

Outputs: The same signal remapped so 0 becomes -1, 0.5 becomes 0, and 1 becomes 1.

NameTypeRange
NumberNumber±1

Clamp

Limits a value to a range. Values below min become min, and values above max become max. For the common 0-1 case, use Saturate.

Inputs: The value to limit and the Min and Max bounds.

NameTypeRangeDefault
ValueNumberany0
MinNumberany0
MaxNumberany1

Outputs: The value, held within the range.

NameTypeRange
NumberNumbermin-max

Clamp Vector

Limits each component to a range. Values below min become min, and values above max become max.

Inputs: The vector and the Min and Max bounds for each axis, with the same port names as Clamp.

NameTypeRangeDefault
VectorVectorvec[0, 0, 0]
MinVectorvec[0, 0, 0]
MaxVectorvec[1, 1, 1]

Outputs: The vector with each component limited.

NameTypeRange
VectorVectorvec

Fused Multiply Add

Multiplies A by B and adds C in a single step, which is more precise than two separate operations.

Inputs: The multiplier, the multiplicand, and the addend.

NameTypeRangeDefault
ANumberany0
BNumberany0
CNumberany0

Outputs: A × B + C.

NameTypeRange
NumberNumberany

Fused Multiply Add Vector

Computes A × B + C on each axis in a single step, which is more precise than two separate operations.

Inputs: Three vectors, the two to multiply and the offset to add.

NameTypeRangeDefault
AVectorvec[0, 0, 0]
BVectorvec[0, 0, 0]
CVectorvec[0, 0, 0]

Outputs: The vector result of A × B + C.

NameTypeRange
VectorVectorvec

Inverse Lerp

Returns where a value sits between min and max, where min gives 0 and max gives 1. It reverses Lerp. Because the result runs past both ends, use Remap Clamped or Saturate if it drives brightness.

Inputs: The value and the range to measure it against.

NameTypeRangeDefault
ValueNumberany0
MinNumberany0
MaxNumberany1

Outputs: 0 at min and 1 at max, running below 0 and above 1 outside that range.

NameTypeRange
NumberNumberany

Inverse Square Root

Returns one divided by the square root. Use it in normalization math.

Inputs: A positive number.

NameTypeRangeDefault
ValueNumberany1

Outputs: The inverse square root.

NameTypeRange
NumberNumberany

Inverse Square Root Vector

Returns one divided by the square root of each component. Use it to normalize vectors.

Inputs: A 3D vector with positive values.

NameTypeRangeDefault
VectorVectorvec[1, 1, 1]

Outputs: The vector of inverse square roots.

NameTypeRange
VectorVectorvec

Lerp

Blends between two values. T=0 outputs A, T=1 outputs B, and values in between mix the two.

Inputs: A and B are the values to blend. T sets the blend (0 to 1).

NameTypeRangeDefault
ANumberany0
BNumberany0
TNumber0-10

Outputs: The blended value.

NameTypeRange
NumberNumberany

Normalize Vector

Keeps a vector's direction and sets its length to 1. Use it when only the direction matters.

Inputs: Any position or direction.

NameTypeRangeDefault
VectorVectorvec[0, 0, 0]

Outputs: The same direction with a length of 1.

NameTypeRange
VectorVectorvec

Remap

Converts a value from one range to another. For example, convert between 0-1 and the 0-255 scale a color component uses, where 255 is an emitter at full. For inputs outside the input range, the result runs past the output range. Use Remap Clamped when it drives brightness.

Inputs: The value, its current range (Input Min and Input Max), and the range you want (Output Min and Output Max).

NameTypeRangeDefault
ValueNumberany0
Input MinNumberany0
Input MaxNumberany1
Output MinNumberany0
Output MaxNumberany1

Outputs: The value scaled to the new range.

NameTypeRange
NumberNumberany

Remap Clamped

Converts a value from one range to another and holds it inside the output range. Remap and Inverse Lerp both run past their ends, which pushes intensities out of range without warning. Use this node when the result drives brightness.

Inputs: The value, its current range (Input Min and Input Max), and the range you want (Output Min and Output Max). A zero-width input range gives Output Min.

NameTypeRangeDefault
ValueNumberany0
Input MinNumberany0
Input MaxNumberany1
Output MinNumberany0
Output MaxNumberany1

Outputs: The value scaled to the new range and held inside it.

NameTypeRange
NumberNumberoutMin-outMax

Repeat Input

Starts a loop. Pair it with Repeat Output to run calculations several times, for example to layer or accumulate effects.

Outputs: The current iteration number, starting at 0. More outputs appear when you connect it to Repeat Output.

NameTypeRange
IterationNumberany

Repeat Output

Ends a loop and sets the number of iterations. Values you wire into it reach Repeat Input on the next iteration.

Inputs: The number of times to repeat.

NameTypeRangeDefault
IterationsNumber0+10

Saturate

Limits a value to the 0-1 range. Values below 0 become 0, and values above 1 become 1. Clamp does the same for an arbitrary range.

Inputs: Any number.

NameTypeRangeDefault
ValueNumberany0

Outputs: A value between 0 and 1.

NameTypeRange
NumberNumber0-1

Saturate Vector

Limits each component to the 0-1 range to prevent overflow.

Inputs: A 3D vector.

NameTypeRangeDefault
VectorVectorvec[0, 0, 0]

Outputs: The vector with each component limited to 0-1.

NameTypeRange
VectorVector0-1

Sign

Returns the sign of a number: -1 for negative, 0 for zero, and 1 for positive.

Inputs: Any number.

NameTypeRangeDefault
ValueNumberany0

Outputs: -1, 0, or 1.

NameTypeRange
NumberNumberany

Sign Vector

Returns the sign of each component: -1 for negative, 0 for zero, and 1 for positive.

Inputs: A 3D vector.

NameTypeRangeDefault
VectorVectorvec[0, 0, 0]

Outputs: The vector of signs.

NameTypeRange
VectorVectorvec

Smoothstep

Fades smoothly from 0 to 1 across a range, for soft edges. Use it to blend effects.

Inputs: Min and Max set the transition range. Value is the input to evaluate.

NameTypeRangeDefault
ValueNumberany0
MinNumberany0
MaxNumberany1

Outputs: 0 below min, 1 above max, and a smooth curve in between.

NameTypeRange
ResultNumber0-1

Square Root

Finds the number that, multiplied by itself, equals the input. Input 9 gives 3.

Inputs: A non-negative number.

NameTypeRangeDefault
ValueNumberany0

Outputs: The square root, never negative.

NameTypeRange
NumberNumber≥0

Square Root Vector

Takes the square root of each component, which softens large values.

Inputs: A 3D vector with all components non-negative.

NameTypeRangeDefault
VectorVectorvec[1, 1, 1]

Outputs: The vector of square roots.

NameTypeRange
VectorVectorvec

Unipolar

Maps a -1 to 1 signal onto 0 to 1. If a signal swings both ways (Simplex Noise, Sine, Oscillate), use this node before it drives brightness. Otherwise the negative half of the swing clips to black.

Inputs: A value between -1 and 1.

NameTypeRangeDefault
ValueNumber±10

Outputs: The same signal remapped so -1 becomes 0, 0 becomes 0.5, and 1 becomes 1.

NameTypeRange
NumberNumber0-1