Data types
The seven value types that flow between node sockets, and the strict rule that governs which sockets connect.
Every wire in a node graph carries a value of one type, and Spectralite tracks seven of them. The type decides what a socket accepts: a wire connects two sockets only when both carry the same type. Knowing the types, and which nodes convert between them, is most of what you need to wire an effect that compiles.
The editor tints each socket and each wire by its data type, so you can see which sockets belong together before you drag. Colors are consistent within a session, though the exact hue follows the active theme, so read the types below by name rather than by memorizing a swatch.
The seven types
Number
A single value, stored as a 32-bit float. This is the workhorse type: brightness, animation progress, an oscillator's output, a distance, an angle. Many effects keep Numbers in the 0 to 1 range so they blend predictably, but the type itself holds any real number.
Color
The color a fixture emits. When you build or split a color with the Color category nodes, you work with six named channels: red, green, blue, white, amber, and UV. Combine Color takes those six as its inputs, and Split Color hands them back. A Color value carries two further slots that the engine fills per fixture, routing them to any emitter a fixture has beyond those six (lime, cyan, magenta, and similar); you never wire those two directly. A fixture that exposes only red, green, and blue ignores the channels it lacks, and a fixture with amber or UV receives those directly. You author a color once, and the engine renders it onto each fixture's real emitters. See Color for how that resolution works.
Only the Output node accepts a Color as its final input.
Boolean
A true or false value, stored as 0 or 1. Use it for conditions, toggles, and gates. Comparison nodes produce Booleans; a Boolean does not connect to a Number socket on its own, so convert it with Boolean to Number when you need it as a numeric 0 or 1.
Vector
A 3D vector, always three components: x, y, z. There is no 2D or 4D vector type. Fixture positions arrive as Vectors from the Pixel Position node, and direction and offset math runs on Vectors. Build one from three Numbers with Combine Vector, and read a single axis back out with Split Vector.
DynamicColor
A color that resolves at render time from a gradient, a preset, or a rainbow rather than a fixed set of emitter values. It carries a lookup table and a type tag. Convert it to a plain Color with Dynamic Color to Color when you need to feed it into color math or into Output.
ColorMap
A lookup table that maps an input value to a color across a range, the structure behind palettes and gradient-driven effects.
Enum
A fixed choice from a small set of options, resolved when the graph compiles rather than while it runs. Enum sockets are the exception to normal wiring: you cannot connect a wire to one. You set an Enum from a dropdown on the node, for example an NDI sampler's filter (nearest or linear) or a hand-tracking node's handedness (left or right). Changing an Enum changes which code path compiles, so it recompiles the effect.
The connection rule
A wire connects two sockets of the same type. The match is exact: a Number output goes only to a Number input, a Color output only to a Color input. Spectralite performs no implicit conversion and no automatic component splatting, so you cannot drop a Number onto a Vector socket, or a Vector onto a Color socket, and expect it to fill in the rest. If the types differ, the wire will not complete.
This strictness is deliberate. It keeps a graph's behavior unambiguous, and it means every type change in your effect is a node you placed on purpose.
Converting between types
When two nodes speak different types, put a conversion node between them. Conversion is always explicit; nothing happens automatically.
| From | To | Node |
|---|---|---|
| Number | Vector | Combine Vector (three Numbers into x, y, z) |
| Vector | Number | Split Vector (one axis out) |
| Boolean | Number | Boolean to Number |
| Color | Number | Color to Number |
| DynamicColor | Color | Dynamic Color to Color |
| Number and color components | Color | Combine Color |
| Color | components | Split Color |
The Conversion category holds the general type bridges, and the Color category holds the color assembly and disassembly nodes. Radian and degree conversion also lives in Conversion.
Keeping intermediate Numbers in the 0 to 1 range makes effects blend cleanly across layers. Remap rescales any range into 0 to 1, Clamp limits a value to a range, and Fract keeps only the fractional part.