Spatial Nodes
Distance falloffs, range and box tests, polar coordinates, and per-fixture phase from position.
This category contains 10 nodes.
Nodes
Exponential Falloff
Brightness fades fast at first and then slowly. Use it for glow and light decay.
Inputs: The distance and the decay rate.
| Name | Type | Range | Default |
|---|---|---|---|
| Distance | Number | ≥0 | 0 |
| Decay Rate | Number | any | 1 |
Outputs: The decay value, 1 at the center and approaching 0 far away.
| Name | Type | Range |
|---|---|---|
| Number | Number | any |
Is Within
Checks if a value falls between a minimum and maximum (inclusive).
Inputs: The value to test, the minimum, and the maximum.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 0 |
| Min | Number | any | 0 |
| Max | Number | any | 1 |
Outputs: True if the value is within the range.
| Name | Type | Range |
|---|---|---|
| Result | Boolean | bool |
Is Within 3D
Checks if a 3D position falls inside a rectangular box region.
Inputs: The position and the box bounds on each axis.
| Name | Type | Range | Default |
|---|---|---|---|
| Position | Vector | vec | [0, 0, 0] |
| Min X | Number | any | 0 |
| Max X | Number | any | 1 |
| Min Y | Number | any | 0 |
| Max Y | Number | any | 1 |
| Min Z | Number | any | 0 |
| Max Z | Number | any | 1 |
Outputs: True if the position is inside the box.
| Name | Type | Range |
|---|---|---|
| Result | Boolean | bool |
Linear Falloff
Brightness decreases steadily with distance, for a linear fade.
Inputs: The distance and the maximum range.
| Name | Type | Range | Default |
|---|---|---|---|
| Distance | Number | ≥0 | 0 |
| Max Distance | Number | any | 1 |
Outputs: The decay value, 1 at the center and 0 at the maximum distance.
| Name | Type | Range |
|---|---|---|
| Number | Number | any |
Phase Offset
Turns a fixture's position into a per-fixture phase, so a wave sweeps across the rig. Feed the phase into Oscillate or a wave node. Direction sets which way the wave travels, and Spread sets how many cycles fit across the rig.
Inputs: Position (usually Pixel Position), the travel Direction, Spread as cycles across one unit of distance, and a constant Offset. Spectralite normalizes Direction. A zero-length Direction gives a flat phase equal to Offset.
| Name | Type | Range | Default |
|---|---|---|---|
| Position | Vector | vec | [0, 0, 0] |
| Direction | Vector | vec | [1, 0, 0] |
| Spread | Number | any | 1 |
| Offset | Number | turns | 0 |
Outputs: The phase in turns, where 1.0 is one full cycle. Feed it directly into Oscillate.
| Name | Type | Range |
|---|---|---|
| Phase | Number | turns |
Polar Position
Splits a position into radius, angle, and height around an axis. Use it for rings, spirals, pinwheels, and anything that sweeps around a center. Polar SDF does the same math but packs the result into one vector for the SDF chain.
Inputs: Position (usually Pixel Position), the Center to measure from, and the Axis to rotate around.
| Name | Type | Range | Default |
|---|---|---|---|
| Position | Vector | vec | [0, 0, 0] |
| Center | Vector | vec | [0.5, 0.5, 0.5] |
| Axis | Vector | vec | [0, 1, 0] |
Outputs: Radius is the distance from the axis. Angle is in turns (0-1 for a full circle), matching Oscillate. Height is the signed distance along the axis, measured from Center: dot(position - center, normalize(axis)). With the default Axis of [0, 1, 0], Height is the Y offset. For a Z offset, an effect must pass [0, 0, 1] and read Height as z - center.z.
| Name | Type | Range |
|---|---|---|
| Radius | Number | ≥0 |
| Angle | Number | turns 0-1 |
| Height | Number | any |
Radial Phase
Turns distance from a center point into a per-fixture phase, so a wave ripples outward from that center. Feed the phase into Oscillate or a wave node.
Inputs: Position (usually Pixel Position), the Center to ripple from, Spread as cycles across one unit of distance, and a constant Offset.
| Name | Type | Range | Default |
|---|---|---|---|
| Position | Vector | vec | [0, 0, 0] |
| Center | Vector | vec | [0.5, 0.5, 0.5] |
| Spread | Number | any | 1 |
| Offset | Number | turns | 0 |
Outputs: The phase in turns, where 1.0 is one full cycle. Feed it directly into Oscillate.
| Name | Type | Range |
|---|---|---|
| Phase | Number | turns |
Smooth Falloff
Gives full brightness at the center and fades smoothly to nothing at Radius. Smoothstep cannot do this on its own, because swapping its edges does not invert it. This node replaces the usual one-minus-smoothstep pair.
Inputs: Distance from the center, the Radius where it reaches zero, and Softness (0 gives a hard edge at the radius, and 1 fades the whole way in).
| Name | Type | Range | Default |
|---|---|---|---|
| Distance | Number | ≥0 | 0 |
| Radius | Number | ≥0 | 1 |
| Softness | Number | 0-1 | 1 |
Outputs: 1 at distance 0, 0 at or beyond the radius, and smooth in between. At the default Softness of 1, the output is exactly 1 - smoothstep(0, radius, distance). At 0, it is a hard edge at the radius.
| Name | Type | Range |
|---|---|---|
| Number | Number | 0-1 |
Smooth Is Within
Works like Is Within, with soft edges that fade in and out at the boundaries.
Inputs: The value, the range, and the edge softness.
| Name | Type | Range | Default |
|---|---|---|---|
| Value | Number | any | 0 |
| Min | Number | any | 0 |
| Max | Number | any | 1 |
| Tolerance | Number | any | 0.01 |
Outputs: A smooth value from 0 to 1.
| Name | Type | Range |
|---|---|---|
| Result | Number | any |
Smooth Is Within 3D
Works like Is Within 3D, with soft edges that fade in and out at the box boundaries.
Inputs: The position, the box bounds, and the edge softness.
| Name | Type | Range | Default |
|---|---|---|---|
| Position | Vector | vec | [0, 0, 0] |
| Min X | Number | any | 0 |
| Max X | Number | any | 1 |
| Min Y | Number | any | 0 |
| Max Y | Number | any | 1 |
| Min Z | Number | any | 0 |
| Max Z | Number | any | 1 |
| Tolerance | Number | any | 0.01 |
Outputs: A smooth value from 0 to 1.
| Name | Type | Range |
|---|---|---|
| Result | Number | any |