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. Before it renders, Spectralite compiles the whole graph into a single GPU program. The program runs once for every pixel a fixture exposes. For that one point in your rig, it computes the color, plus any pan, tilt or other channel values.

In the node docs, "effect" means the node graph you wire inside one effect, not the layer stack that blends effects over time. For how layers combine, opacity, and the show timeline, read Effects and layers and the Timeline panel. For the editing tools themselves (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, which takes a Color and writes it to the fixture. Its Pan and Tilt inputs turn the moving heads. A graph with no Output node lights nothing. When Spectralite compiles the graph, it drops any node with no path to Output. A node thus affects the result only after you wire it into Output, directly or through other nodes.

A typical position-driven effect reads the fixture's location and shapes a value from it. 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

One graph serves every color mode. The same wiring renders a color whether it is a Channels recipe or a portable xyY or Temp color.

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. Spectralite never converts a type implicitly or spreads a Number across components. So a Number cannot feed a Vector socket, and a Vector cannot feed a Color socket.

To cross types, place 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. Combine Vector and Split Vector are in the Vector category. Boolean to Number is in the Conversion category. For colors, Combine Color and Split Color are in the Color category. Data types lists every type and every conversion path.

The editor tints sockets and wires by data type. When you drag from one socket to another, Spectralite completes the wire only if 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. You can type a fixed default value in that field. If you wire something into that socket, the wire replaces the default.

Where the categories live

Nodes sit in categories, and each category page lists every node in it with its sockets and a description. If you are new to the editor, start with these categories:

  • Input, where values enter the graph
  • the math categories, Arithmetic and Comparison
  • Color, where you build and convert the color that reaches Output

After those, Wave and SDF build position-driven and animated effects.

Math and logic

Animation and generators

Color

Space and shapes

Utility

Each category page shows its exact node count at the top, and the count stays current as nodes are added.