Skip to content

Node graph compositions

Last updated

A node graph is a composition whose picture is made by boxes and wires instead of a layer stack. It has a size, a frame rate and a duration like any composition, and sits in the Project panel like one.

Choose Composition ▸ New node graph, or pick it from the command palette or a Project panel row’s menu. The composition settings dialogue opens with the name filled in.

A composition is a layer stack or a node graph, never both. A node graph refuses every layer command, and a composition made with layers never becomes one.

Open a node graph as you open any composition and it draws in the Node graph panel. The Timeline draws it too, under the comp tabs and the ruler, and Effect controls show the picked box’s rows.

BoxWhat it does
ReadBrings a project item in: footage, a solid or a composition. It carries the item’s own name.
InputStands for a value or a picture handed in from outside the graph. Picture, Number, Angle or Colour.
EffectAny effect or driver from the catalogue, with the parameter rows it has on a layer.
MergeLays picture A over picture B with a blend mode and an opacity.
SwitchShows one of its pictures, chosen by an Index.
Node graphAnother node graph, nested. Its Inputs are the box’s sockets.
Time offsetShows its input at another time. One row, Offset in seconds.
OutputThe one box whose picture the composition shows. Every node graph has exactly one, and Delete leaves it alone.

A Read box places its item centred at its natural size, as a fresh layer would.

Double-click a Read of a composition, or a Node graph box, to open what it names.

The graph isA picture Input readsA value Input reads
viewed on its own, or placed as a Precomp layerits preview item, or transparentits default
applied as the Node graph effectthe first: the layer’s picture at that point in the stack. The others: the effect’s own layer rowsthe effect’s own rows
nested as a Node graph boxthe first: the box’s input socket. The others: their own socketstheir own sockets, or the row’s value where nothing is wired

A picture Input takes a preview item on its form in the Node panel: footage or a composition standing in for the picture while the graph is viewed on its own or placed as a layer. It is not read when the graph is applied or nested.

GestureWhat it does
Drag from a socketPulls out a wire; drop it on a socket that takes the same kind of value.
Pick a wire up by its far endMoves it to another socket.
Drop a wire on empty canvasOpens the console, filtered to what that wire can join.
Drop a box on a wireSplices it in at that point.
Drag a box’s bodyMoves it. A drag that starts inside the selection moves the whole selection.
DeleteRemoves the picked boxes.

Two switches sit in the panel’s toolbar. Auto-wire joins a dropped box to the wire in hand as it lands. Heal reconnects the neighbours of a deleted box.

Each box carries a tick and a twirl. The tick bypasses the box, which then hands on the picture it was given. The twirl opens the box: it draws the rows Effect controls would draw for the same effect, each with its own control on it, a value well, a slider, a checkbox, a dropdown or a colour swatch, with the parameter’s socket beside it, so a box can be set without leaving the canvas. A row whose socket is wired shows its name alone, because the wire decides the value. A new box arrives open; a box in a saved project keeps the state it was saved with. The Node panel shows the same rows for the picked box.

A wire’s colour is the type of value it carries:

  • image · matte
  • number
  • colour
  • shape · points
  • audio

An image wire is the image colour whether it feeds an input, a background or a matte.

Each input socket takes one wire; an output feeds any number. An unwired image socket reads transparent. A wire dropped on a socket of another kind is refused, and so is a wire that would make a loop.

A Matte socket takes an image wire as well as a matte wire. A row that picks a layer on a layer’s stack is an image socket here: Light wrap’s Background, Texturize’s Texture and Set matte’s source all arrive on a wire.

The points family has a socket of its own, and a wire from it feeds another box’s points input.

Ctrl+Space over the canvas opens the effects console. So do a right-click on empty canvas, and Tab or Shift+A with the canvas focused, each of which can be turned off in Settings ▸ Timeline. The new box lands at the pointer. Over a node graph it lists, in order: the project’s items as Read boxes, the four Input kinds, the effects, Merge, Switch and Time offset under Compositing, and the drivers.

Dragging footage or a composition from the Project panel onto the canvas makes a Read box where it lands. Dragging an effect from Effects & presets makes its box there.

Ctrl+C copies the picked boxes, and Ctrl+V pastes them at the pointer with their values, keyframes, names and the wires between them. The Output is never copied. A paste works in any node graph in the project.

Drag a node graph into another composition and it lands as a Precomp layer.

  • Its Inputs are a section of their own in Effect controls, headed by the graph’s name, with an Open action. The Timeline folds the same rows under the layer.
  • Retime on the layer retimes the graph, all of it together.
  • Collapse is forced off, and the switch draws dimmed.

The Node graph effect applies a graph to a layer. Add it from the layer’s console, where every node graph in the project is listed under Node graphs.

Its card is headed by the graph’s name and carries an Open action, then the graph’s Input rows, then Mix and the Matte row. The layer’s picture at that point in the stack is the graph’s first picture Input, and the graph’s Output is what the effect hands on.

A Node graph box does the same inside another graph. A Read box of a node graph brings its finished picture in instead, with nothing handed to it.

When a box reads another time, what it reads is the picture its input makes there. Echo reads its input box at earlier frames, Motion blur and Datamosh measure it against itself a frame away, Posterize time holds it at the grid time, accumulation motion blur averages it over the shutter, and a Time offset box shows it at another time. On a layer those same effects read the source frames.

A shift always applies, so a Time offset ahead of an Echo moves every echo with it. A window never nests: an Echo inside another Echo’s neighbour holds a still.

Select one box and a chip appears over the Viewer’s picture saying at its name. Turn it on and the Viewer renders the composition with the Output wired to that box. A driver, a value Input and the Output itself offer no chip.

Turn a row’s stopwatch on, in the Node panel or on the open box, to start keyframing it.

Save group writes the picked boxes, the wires among them and their layout to a .lumngrp file. The Output is never saved. Saved groups have a block of their own in the console, and inserting one drops its boxes where the pointer is, each one open or shut as it was saved. A Read whose item the project lacks arrives wearing the missing mark.

A Read of footage contributes sound like a footage layer, and a Read of a composition like a Precomp layer. Only the Reads the Output reaches are heard, and the composition’s own master volume applies. Placed as a Precomp layer, a graph’s sound carries with the layer’s Volume and Pan.

A retimed layer is silent, footage and Precomp alike.

An expression inside a graph reads a value Input with input("Name"): the value handed in from outside, or the Input’s own default where nothing hands one in.