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.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 0 |
Outputs: The value, always positive or zero.
| Name | Type | Range |
|---|---|---|
| Number | Number | ≥0 |
Average
Returns the midpoint between two numbers.
Inputs: The two numbers.
| Name | Type | Range | Default |
|---|---|---|---|
| A | Number | any | 0 |
| B | Number | any | 0 |
Outputs: The average.
| Name | Type | Range |
|---|---|---|
| Number | Number | any |
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.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | 0-1 | 0.5 |
Outputs: The same signal remapped so 0 becomes -1, 0.5 becomes 0, and 1 becomes 1.
| Name | Type | Range |
|---|---|---|
| Number | Number | ±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.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 0 |
| Min | Number | any | 0 |
| Max | Number | any | 1 |
Outputs: The value, held within the range.
| Name | Type | Range |
|---|---|---|
| Number | Number | min-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.
| Name | Type | Range | Default |
|---|---|---|---|
| Vector | Vector | vec | [0, 0, 0] |
| Min | Vector | vec | [0, 0, 0] |
| Max | Vector | vec | [1, 1, 1] |
Outputs: The vector with each component limited.
| Name | Type | Range |
|---|---|---|
| Vector | Vector | vec |
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.
| Name | Type | Range | Default |
|---|---|---|---|
| A | Number | any | 0 |
| B | Number | any | 0 |
| C | Number | any | 0 |
Outputs: A × B + C.
| Name | Type | Range |
|---|---|---|
| Number | Number | any |
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.
| Name | Type | Range | Default |
|---|---|---|---|
| A | Vector | vec | [0, 0, 0] |
| B | Vector | vec | [0, 0, 0] |
| C | Vector | vec | [0, 0, 0] |
Outputs: The vector result of A × B + C.
| Name | Type | Range |
|---|---|---|
| Vector | Vector | vec |
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.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 0 |
| Min | Number | any | 0 |
| Max | Number | any | 1 |
Outputs: 0 at min and 1 at max, running below 0 and above 1 outside that range.
| Name | Type | Range |
|---|---|---|
| Number | Number | any |
Inverse Square Root
Returns one divided by the square root. Use it in normalization math.
Inputs: A positive number.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 1 |
Outputs: The inverse square root.
| Name | Type | Range |
|---|---|---|
| Number | Number | any |
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.
| Name | Type | Range | Default |
|---|---|---|---|
| Vector | Vector | vec | [1, 1, 1] |
Outputs: The vector of inverse square roots.
| Name | Type | Range |
|---|---|---|
| Vector | Vector | vec |
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).
| Name | Type | Range | Default |
|---|---|---|---|
| A | Number | any | 0 |
| B | Number | any | 0 |
| T | Number | 0-1 | 0 |
Outputs: The blended value.
| Name | Type | Range |
|---|---|---|
| Number | Number | any |
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.
| Name | Type | Range | Default |
|---|---|---|---|
| Vector | Vector | vec | [0, 0, 0] |
Outputs: The same direction with a length of 1.
| Name | Type | Range |
|---|---|---|
| Vector | Vector | vec |
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).
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 0 |
| Input Min | Number | any | 0 |
| Input Max | Number | any | 1 |
| Output Min | Number | any | 0 |
| Output Max | Number | any | 1 |
Outputs: The value scaled to the new range.
| Name | Type | Range |
|---|---|---|
| Number | Number | any |
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.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 0 |
| Input Min | Number | any | 0 |
| Input Max | Number | any | 1 |
| Output Min | Number | any | 0 |
| Output Max | Number | any | 1 |
Outputs: The value scaled to the new range and held inside it.
| Name | Type | Range |
|---|---|---|
| Number | Number | outMin-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.
| Name | Type | Range |
|---|---|---|
| Iteration | Number | any |
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.
| Name | Type | Range | Default |
|---|---|---|---|
| Iterations | Number | 0+ | 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.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 0 |
Outputs: A value between 0 and 1.
| Name | Type | Range |
|---|---|---|
| Number | Number | 0-1 |
Saturate Vector
Limits each component to the 0-1 range to prevent overflow.
Inputs: A 3D vector.
| Name | Type | Range | Default |
|---|---|---|---|
| Vector | Vector | vec | [0, 0, 0] |
Outputs: The vector with each component limited to 0-1.
| Name | Type | Range |
|---|---|---|
| Vector | Vector | 0-1 |
Sign
Returns the sign of a number: -1 for negative, 0 for zero, and 1 for positive.
Inputs: Any number.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 0 |
Outputs: -1, 0, or 1.
| Name | Type | Range |
|---|---|---|
| Number | Number | any |
Sign Vector
Returns the sign of each component: -1 for negative, 0 for zero, and 1 for positive.
Inputs: A 3D vector.
| Name | Type | Range | Default |
|---|---|---|---|
| Vector | Vector | vec | [0, 0, 0] |
Outputs: The vector of signs.
| Name | Type | Range |
|---|---|---|
| Vector | Vector | vec |
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.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 0 |
| Min | Number | any | 0 |
| Max | Number | any | 1 |
Outputs: 0 below min, 1 above max, and a smooth curve in between.
| Name | Type | Range |
|---|---|---|
| Result | Number | 0-1 |
Square Root
Finds the number that, multiplied by itself, equals the input. Input 9 gives 3.
Inputs: A non-negative number.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 0 |
Outputs: The square root, never negative.
| Name | Type | Range |
|---|---|---|
| Number | Number | ≥0 |
Square Root Vector
Takes the square root of each component, which softens large values.
Inputs: A 3D vector with all components non-negative.
| Name | Type | Range | Default |
|---|---|---|---|
| Vector | Vector | vec | [1, 1, 1] |
Outputs: The vector of square roots.
| Name | Type | Range |
|---|---|---|
| Vector | Vector | vec |
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.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | ±1 | 0 |
Outputs: The same signal remapped so -1 becomes 0, 0 becomes 0.5, and 1 becomes 1.
| Name | Type | Range |
|---|---|---|
| Number | Number | 0-1 |