Skip to main content
Documentation
Node Editor

Node Editor

Wire a graph of nodes that Spectralite compiles into one GPU program per fixture pixel.

An effect in Spectralite is a graph. You place nodes on a canvas and draw wires between their sockets, and Spectralite compiles the whole graph into a single GPU program. That program runs once for every pixel a fixture exposes, computing the color (and any movement parameters) for that one point in your rig. Nothing in the running effect is interpreted node by node at playback time; the graph collapses into one compiled kernel before it ever renders.

The word "effect" here means a node graph. That is different from the layer stack that stacks and blends effects over time. If you came here looking for how layers combine, opacity, or the show timeline, read Effects and layers and the Timeline panel instead. This section is about the graph you wire inside one effect. For the editing surface itself (canvas navigation, adding nodes, grouping), see the Node Editor panel.

How the graph becomes light

Data flows left to right. Each node reads values on its input sockets, computes something, and exposes the result on its output sockets. Wires carry a value from one node's output to another node's input.

Every graph ends at exactly one Output node, the single sink. The Output node takes a Color and writes it to the fixture. A graph with no Output node compiles to a no-op and lights nothing, so the Output node is always your destination. Any node that has no path to the Output node is dropped during compilation and does nothing, which means a node only affects the result once it is wired, directly or through others, into Output.

A typical position-driven effect reads the fixture's location, shapes a value from it, turns that value into brightness, tints it with a color, and sends the result to Output:

Pixel Position -> shape (wave / SDF / math) -> brightness (0 to 1) -> Multiply with Color -> Output

Spectralite compiles one shader that serves every color output mode. You wire the graph once; the engine renders it correctly whether a fixture is driven by raw channels or by device-independent color. You never build a separate graph per mode.

The one wiring rule

A wire connects two sockets of the same data type. Type matching is strict: a Number output only connects to a Number input, a Color output only to a Color input, and so on. There is no implicit conversion and no automatic splatting, so you cannot feed a Number into a Vector socket or a Vector into a Color socket by wishing it.

When you do need to cross types, you do it on purpose with a conversion node. To build a Vector from three Numbers, use Combine Vector. To pull one axis back out, use Split Vector. To turn a Boolean into a Number, use Boolean to Number. The Conversion and Color categories hold these bridges. The full type list and every conversion path lives in Data types.

Sockets and wires are tinted by their data type, so the editor shows you at a glance what fits where. Drag from one socket toward another and Spectralite only completes the wire when the target socket carries the same type.

How to read a node

A node shows its label at the top and its category color on its frame. Input sockets sit on the left edge, output sockets on the right. When an input socket has no wire, the node shows an editable field for that input so you can type a fixed default value directly on the node; wire something into that socket and the wire takes over from the default.

Where the categories live

Nodes are grouped into categories. The grid below is the map; each category page lists every node in it with its sockets and a description. If you are new to the editor, start with Input (where values enter the graph), the math categories (Arithmetic, Comparison), and Color (how you build and convert the color that reaches Output). From there, Wave and SDF open up position-driven and animated effects.

Math and logic

Animation and generators

Color

Space and shapes

Utility

Exact node counts per category appear at the top of each category page and stay current as nodes are added.