Free forever·no account, no tracking, no third-party requests ·open data, free API
showstack / learn / engines
Stage 5 of 7 · What you build with4 of 4 in this stage11 min read

Node graphs and game engines

Two ways of building show content that do not look like code, and that a lot of people use for years without being told what kind of thing they are working in. One is a patch bay. The other is a machine that draws a picture sixty times a second from a description of a world.

The first one

Dataflow: why a patch is not a script

Open Max, Pure Data, TouchDesigner, vvvv, Notch or Unreal's Blueprints and you get boxes joined by wires. The instinct is to read it as a flowchart — do this, then this. That is the wrong model and it makes everything harder.

It is a patch bay. Each box is a device that is permanently powered on. Each wire is a cable. Nothing is "called" and there is no beginning: the whole graph is live, and data moves through it continuously. You are not writing a sequence of instructions, you are building an instrument and then playing it.

That is exactly why this style caught on in this industry rather than in general software. Anybody who has patched a rack already holds the mental model. The signal-flow intuition transfers directly, and so does the debugging habit: when it is wrong, you probe along the chain until you find where the signal stopped looking right.

rule
Read a patch as signal flow, not as a sequence of steps. Once that clicks, every one of these tools becomes the same tool with a different object set.

The families

What each dataflow tool is actually for

Max/MSP (Cycling '74) is three layers with one look. Max is the message layer — control-rate events, the things that happen when something changes. MSP is the audio layer, where objects whose names end in a tilde process a continuous signal at sample rate. Jitter is the matrix layer, for video and data grids. Being able to move between an event and a sample-rate signal in one patch is what Max is for, and it is why it stayed the standard in music technology and interactive installation. Max for Live puts the same environment inside Ableton Live.

Pure Data is the open-source ancestor of the same idea, by the same author, and it is the pragmatic choice when a piece has to keep running for years without a licence server in the way.

TouchDesigner is the same model built on the GPU, and it organises everything into operator families you connect together: TOPs are textures, CHOPs are channels of numbers over time, SOPs are geometry, DATs are text and tables, MATs are materials, COMPs are containers. Python is embedded throughout, so the awkward parts do not have to be patched. It has become a default for interactive and generative content, and for wiring a protocol into a picture.

Notch is a real-time VFX tool whose output is a block that runs live inside a media server — disguise, Hippotizer, PIXERA — with its parameters exposed to the operator. That is its whole point: effects that stay adjustable on site instead of being baked into a file at the last render.

vvvv and Blueprints complete the picture — vvvv as a long-standing patching environment for installation work, Blueprints as Unreal's visual layer over the same engine its C++ reaches.

TOP
Textures — images and video, on the GPU.
CHOP
Channels — numbers over time. Audio, DMX, sensors, timecode.
SOP
Surfaces — 3D geometry you can generate and deform.
DAT
Data — text, tables, scripts. Where Python lives.
MAT
Materials — how a surface responds to light.
COMP
Components — containers, and the UI you build for the operator.

TouchDesigner's operator families. Every other patching tool has an equivalent split; this one just names it clearly.

The second one

What a game engine actually is

Unreal, Unity and Godot are usually described as tools for making games. That is a market, not a definition. What they actually are is real-time renderers with everything attached: a scene graph that holds a world, a physics simulation, an asset pipeline, an animation system, a scripting layer, and a renderer whose job is to produce a complete new frame in the time before the display needs one.

The consequence is the whole reason they arrived in this industry. A video file is a sequence of frames someone computed in the past. It is beautiful, it is exactly as intended, and it cannot answer a question. A real-time engine holds the scene — geometry, materials, lights, cameras — and draws it now. So it can be asked something: where is the camera, where is the performer, what did the operator just change, what is the tracking system reporting this millisecond.

That is what makes an LED volume possible, what makes previsualisation useful rather than decorative, and what lets an AR graphic sit convincingly on a pitch. Not the rendering quality — the timing of the rendering.

At 60 fps the whole budget is 16.7 ms — geometry, lighting, effects, post and output. Everything you add spends part of the same bar.

Spend the budget and watch it run out

rule
The question is never "is it good enough to look at". It is can it produce the next frame in time, every time — which makes a real-time engine a determinism problem, exactly like the one on the code page.

The three

Unreal, Unity and Godot

Unreal Engine

Epic Games · source-available · royalty model

The default for virtual production and large-scale live visuals. It ships the specific things this industry needs rather than requiring them to be built: nDisplay for driving many synchronised outputs across an LED volume, Live Link for taking camera and performer tracking in live, the Sequencer for timeline-based animation, and integration with media servers through vendor bridges.

It is also the heaviest of the three — a serious machine, a serious project structure, and a real learning curve before anything looks good.

C++ · Blueprints (visual) · Python for tooling

Unity

Unity Technologies · proprietary · tiered licence

Lighter to get started with and dominant in XR. If a project involves headsets, handheld AR or an interactive exhibit, the device SDK you need almost certainly exists for Unity first. Strong for installations, museum work and anything that must run on modest hardware or on a phone.

Less turnkey than Unreal for camera-tracked broadcast and volume work, though it is done.

C# · a visual scripting layer

Godot

Godot Foundation · MIT · genuinely free

Small, fast to open, and open source under a permissive licence with no royalty and no company able to change the terms later. That last part is not an ideological point on a project that has to still run in ten years, or on a bespoke tool a venue owns.

Smaller ecosystem, fewer industry integrations, and you will build more of the show-specific plumbing yourself. The right pick for learning, for tools, and for work that must remain yours.

GDScript · C# · C++

The practical part

How a scene actually becomes something an audience sees

The workflow is the same in all three, and it is worth knowing the shape even if someone else does it.

Build the world. Geometry comes in from a modelling tool — Blender, Cinema 4D, Rhino — or from a scan. Materials describe how each surface responds to light. Lights and cameras are placed. At this point you have a place, not a picture.

Animate it. Keyframes on a timeline for anything choreographed; simulation for anything that should behave rather than be posed; and, on a show, live input for anything that has to follow reality.

Then choose when it is drawn. This is the decision that matters. Render it offline — Unreal's Movie Render Queue, or the equivalent — and you get a file: maximum quality, fully deterministic, and completely fixed. Or run it live, and you get responsiveness at the cost of a hard per-frame budget. Plenty of shows do both: pre-rendered content for the sections that are locked, a live engine for the sections that must follow a camera or a performer.

model→scene→light + animate→render offline → a fileorrun live → a frame, now

Where it joins the show

The engine is just another device on the network

A render engine on a show is not an island. It takes the same signals as everything else, which is the entire subject of this site.

In: Art-Net or sACN so an operator can drive virtual fixtures — or drive the real rig from the same cue that moves the content; FreeD for camera position and lens; PSN or RTTrPM for performer tracking; LTC or PTP so it agrees with everyone else about time; OSC for everything else.

Out: video over NDI or ST 2110, or a vendor stream into a media server, or straight to an LED processor with genlock holding the frames together.

This is also how previsualisation works. Capture, WYSIWYG, Depence, Vision and Realizzer are real-time engines with a lighting-specific asset library: the console sends real DMX, the engine renders what those fixtures would do, and a designer programs a show in a room that does not exist yet. Same machinery, aimed at a different question.

Where to start

If you want to learn one of these

For content and interaction, start with TouchDesigner. It is the shortest distance between a protocol arriving on a network port and something moving on a screen, and the free non-commercial licence is genuinely usable for learning.

For sound and event logic, start with Max, or Pure Data if you want it free and permanent. The tilde/no-tilde split is the concept to get straight on day one.

For 3D worlds, start with Godot if you want to understand engines, or Unreal if you want to work in virtual production, because that is where the industry tooling is.

And in every case the transferable part is not the software. It is knowing what signal you are taking in, what promise you are making about the next frame, and which clock you are reading — which is the rest of this section.

Using one of these on shows?

The software index lists what each tool speaks, and that is the field most often wrong or missing. If your version of one of these has an integration the entry does not mention, open an issue — that is the single most useful correction anyone sends.

You can now answer
  • How do I read a patch?
  • Pre-rendered or real-time?
  • Unreal, Unity or Godot?
Kept in this browser on this device. Nothing is sent anywhere.

Where to go next

These pages are a chain rather than a library — the next one along usually answers the question this one raised.

Everything on this page, in the index

Each of these has its own entry with sources, ports, gotchas and an open gap where a field is missing.

protocol Art-Net Artistic Licence's royalty-free protocol for carrying DMX512 over UDP/IP. It predates sACN, is i… protocol FreeD Camera tracking data protocol originally from Vinten, carrying pan, tilt, roll, position, zoom a… protocol Genlock / Black Burst An analog composite video reference signal (a 'black' picture with color burst) distributed over… protocol LTC SMPTE time and control code encoded as a biphase-mark audio signal, 80 bits per frame, so it run… protocol NDI Vizrt's video-over-IP protocol carrying compressed video, audio and metadata between application… protocol OSC A transport-independent message format carrying named, typed messages such as /cue/5/go with int… protocol PosiStageNet An open multicast UDP protocol for streaming live 3D position, orientation, speed and accelerati… protocol PTP (IEEE 1588) IEEE 1588 Precision Time Protocol distributes a common clock across an ethernet network to sub-m… protocol RTTrPM The packet format BlackTrax uses to stream tracked position and orientation to third party syste… protocol sACN Carries DMX512 data over standard IP networks as multicast UDP, one multicast group per universe… protocol SMPTE ST 2110 A suite of SMPTE standards for carrying uncompressed video, audio and ancillary data as separate… software Ableton Live Clip and timeline based playback software, widely used to run backing tracks, click and guide vo… software Blender Free and open-source 3D creation suite covering modelling, animation, rendering, compositing and… software Capture Lighting design, documentation and visualisation software that renders a rig in real time from l… software Cinema 4D 3D modelling, animation and rendering application widely used for concert and event screen conte… software Depence Windows show-design and visualisation platform covering stage lighting, laser, video, fountains … software disguise Designer The software that drives disguise media servers, combining a 3D stage model, timeline and mapped… software Hippotizer Windows media server software built from swappable components (DMX, Timeline, PixelMapper, Notch… software Notch Windows GPU-native tool for authoring real-time generative and VFX content in Notch Builder, the… software Realizzer 3D Real-time lighting visualiser and rendering tool, used to previsualise a rig, produce photoreali… software Rhino 3D NURBS modelling application used for scenic design, complex geometry and stage architecture, and… software TouchDesigner Node-based visual development environment for real-time generative content, interactive installa… software Vectorworks Vision Real-time previsualisation companion to Vectorworks Spotlight and Design Suite. It renders a lig… software WYSIWYG Lighting design, plotting and previsualisation software that renders a rig in real time from liv…