Skip to main content
Documentation
Node Editor

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.

NameTypeRangeDefault
DistanceNumber≥00
Decay RateNumberany1

Outputs: The decay value, 1 at the center and approaching 0 far away.

NameTypeRange
NumberNumberany

Is Within

Checks if a value falls between a minimum and maximum (inclusive).

Inputs: The value to test, the minimum, and the maximum.

NameTypeRangeDefault
ValueNumberany0
MinNumberany0
MaxNumberany1

Outputs: True if the value is within the range.

NameTypeRange
ResultBooleanbool

Is Within 3D

Checks if a 3D position falls inside a rectangular box region.

Inputs: The position and the box bounds on each axis.

NameTypeRangeDefault
PositionVectorvec[0, 0, 0]
Min XNumberany0
Max XNumberany1
Min YNumberany0
Max YNumberany1
Min ZNumberany0
Max ZNumberany1

Outputs: True if the position is inside the box.

NameTypeRange
ResultBooleanbool

Linear Falloff

Brightness decreases steadily with distance, for a linear fade.

Inputs: The distance and the maximum range.

NameTypeRangeDefault
DistanceNumber≥00
Max DistanceNumberany1

Outputs: The decay value, 1 at the center and 0 at the maximum distance.

NameTypeRange
NumberNumberany

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.

NameTypeRangeDefault
PositionVectorvec[0, 0, 0]
DirectionVectorvec[1, 0, 0]
SpreadNumberany1
OffsetNumberturns0

Outputs: The phase in turns, where 1.0 is one full cycle. Feed it directly into Oscillate.

NameTypeRange
PhaseNumberturns

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.

NameTypeRangeDefault
PositionVectorvec[0, 0, 0]
CenterVectorvec[0.5, 0.5, 0.5]
AxisVectorvec[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.

NameTypeRange
RadiusNumber≥0
AngleNumberturns 0-1
HeightNumberany

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.

NameTypeRangeDefault
PositionVectorvec[0, 0, 0]
CenterVectorvec[0.5, 0.5, 0.5]
SpreadNumberany1
OffsetNumberturns0

Outputs: The phase in turns, where 1.0 is one full cycle. Feed it directly into Oscillate.

NameTypeRange
PhaseNumberturns

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).

NameTypeRangeDefault
DistanceNumber≥00
RadiusNumber≥01
SoftnessNumber0-11

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.

NameTypeRange
NumberNumber0-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.

NameTypeRangeDefault
ValueNumberany0
MinNumberany0
MaxNumberany1
ToleranceNumberany0.01

Outputs: A smooth value from 0 to 1.

NameTypeRange
ResultNumberany

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.

NameTypeRangeDefault
PositionVectorvec[0, 0, 0]
Min XNumberany0
Max XNumberany1
Min YNumberany0
Max YNumberany1
Min ZNumberany0
Max ZNumberany1
ToleranceNumberany0.01

Outputs: A smooth value from 0 to 1.

NameTypeRange
ResultNumberany