Authoring looks

The Look editor — sources, palettes, effects, foreground layers, and the live-editing workflow that drives everything Lightpath puts on screen.

A look is the unit of "what does this output show right now." It's the core creative artifact in Lightpath — every scene, every playlist, every schedule slot eventually resolves to looks running on outputs. The Look editor is where you build them.

What a look is

Every look has the same shape:

Look
  ├── Output            ←  which output this look targets (one)
  ├── Background        ←  required: source + palette + effects + params
  └── Foreground        ←  optional: same structure + blend mode + opacity

A look ties to one output. The look you build for the Facade output stays bound to Facade — it doesn't reuse on Lobby. If you want the same visual on two outputs, create two looks (you can copy parameters across, but they're independent records).

The background is the main visual. The foreground is an optional overlay (a logo, a watermark, a layered element) with its own source/palette/effects and a blend mode + opacity for compositing.


The Look editor

Go to Create → Looks and click + New Look (or open an existing one). The editor splits into two panels:

  • Left panel — name, live editing toggle, and the live preview of the look as it currently stands.
  • Right panel — scrollable list of editor sections: source, palette, effects, foreground. Each section expands on demand.

At the top of the editor is the output selector — every look has one output, and you can change it from the picker modal. Above the preview is the layer tab bar that toggles between editing the background layer and the foreground layer.

Live editing

The Live editing toggle on the left panel controls what happens when you change a parameter, swap a source, or tweak an effect:

  • On — every change pushes immediately to the live fixture. Useful for tuning a look on a real wall, real LEDs, or real projector.
  • Off — changes stay in the preview. The live output keeps showing whatever it was before you opened the editor. Useful when you don't want to disturb live content while you're prototyping.

Default is on (configurable in settings). The toggle is disabled for Receive outputs — those don't generate content locally, so there's nothing to push live.

If you toggle Live editing on while the output is calendar-driven and an event is currently active, the editor warns you — your edits will interrupt the scheduled content. Either turn Live editing off or accept that the schedule will resume at the next event.


Sources

A source is whatever generates the visual signal. The source modal filters into three categories:

Patterns

Generative content from TouchDesigner. Lightpath ships with a library of built-in patterns — plasma, particle systems, kaleidoscopes, noise fields, geometric grids, audio-reactive variants. Each pattern is a .tox plug-in installed in the project's outputs/ directory and auto-discovered.

You can also build your own — see Making plugins for the TD-side authoring story. Custom patterns appear in the picker alongside the built-ins.

Feeds

External texture sources brought in live. Two protocols supported:

  • Spout — Windows-only inter-process texture sharing. Receive from any Spout sender on the same machine (Resolume, OBS, Notch, custom TD projects, etc.).
  • NDI — network video. Receive from any NDI source on the LAN.

Pick a feed in the source picker and Lightpath subscribes to it. The feed's resolution should roughly match the output's; mismatches scale to fit.

Media

Pre-recorded video and image files. Two ways to add media:

  • Upload Media button in the source picker — opens a file dialog for one or more files.
  • Drag and drop files directly onto the source picker.

Accepted formats: .mp4, .mov, .jpg, .png. Files are stored in your project's media/ directory and synced with the project. There's no enforced size limit — be mindful of disk and sync bandwidth.

You can also click Manage media from the Looks page to see the full media library, delete unused files, and re-upload replacements.


Palettes

A palette is a list of color points that effects and shaders sample to colorize the source.

You create palettes inline in the look editor or on the dedicated Manage Palettes page.

Editing palettes

Click the palette section in the look editor and you get the Palette picker with all available palettes. Open one for editing and you get a horizontal gradient preview with draggable color points — each point has a position (0 to 1 along the gradient) and a hex color.

  • Drag a point to reposition.
  • Click a point to open its color picker.
  • Drag from an empty stretch to add a new point.
  • Right-click a point to remove it.

Cascading edits

Edits to a palette propagate to every look that uses it. If you rename or recolor "Sunset" and 12 looks reference it, all 12 update immediately and their thumbnails regenerate. This is usually what you want — change a brand color in one place and the whole install follows. If you need a one-off variant, duplicate the palette first and edit the copy.

You can't delete a palette that's in use. The delete attempt fails with a list of looks referencing it; switch those looks to a different palette first, then delete.


Effects

Effects are TouchDesigner plug-ins that transform the source's output texture — color shifts, blurs, mirrors, masks, geometric distortions. A look's effects are an ordered list that TD applies left-to-right: the source goes in, each effect runs in sequence, the output of the last effect goes to the fixture.

Adding effects

Open the effects section in the look editor and click + Add effect. The picker shows every effect available in the project with:

  • Search by name
  • Tag filtercolor, distort, mask, transform, plus any custom tags declared by a custom effect

Click an effect to add it to the stack. You can add the same effect type multiple times (a second Blur, a third Color Shift); instances auto-suffix as Blur_2, Blur_3.

Per-effect parameters

Each effect in the stack has its own parameter section in the look editor. The parameters come from the TD plug-in's exposed custom parameters and render as sliders, toggles, color pickers, or dropdowns as appropriate.

Reordering

Effects are drag-reorderable in the stack. Order matters: a Blur then a Color Shift looks different from a Color Shift then a Blur.

Custom effects

If you've built a custom effect in TouchDesigner, it shows up in the effects picker as long as it's installed in the project's effects directory and tagged in the TD component definition. See Making plugins → Effects for the authoring side.


Foreground layer

The foreground layer is identical in structure to the background — source, palette, effects, parameters — but it composites over the background using a blend mode and an opacity value.

Switch to the foreground tab and the editor behaves the same way as the background, with two extra controls on the foreground itself:

  • Enable foreground — off by default. The layer is invisible until you flip this on.
  • Blend mode — Add, Screen, Multiply, Overlay, Soft Light, and others, sourced from TD's Blend component.
  • Opacity — 0 to 1, applied after the blend.

Common patterns:

  • Logo overlay — a still image source with Add blend, opacity ~0.7
  • Information overlay — a video source that fades in/out via opacity
  • Dual-content composition — two generative sources blended for texture-on-texture effects

The foreground layer respects effects too — you can run a Blur on the foreground without touching the background.


Receive outputs

Some outputs don't generate content locally — they receive a texture from external software (Spout or NDI) and the look just configures how to handle it. For these outputs:

  • The look editor shows a simplified UI — fewer parameters, source/effects sections trimmed down.
  • The Live editing toggle is disabled — there's nothing to push live since nothing's being generated.
  • The "source" is effectively the incoming feed, configured at the output level rather than the look level.

You'll still configure palette and effects on the look, but the source itself is fixed by the output's configuration.


Saving and thumbnails

Hit Save in the look editor and a few things happen:

  1. The look gets a unique name (auto-deduped if the name collides with an existing look).
  2. It's added to project.json.
  3. The project syncs (per your sync configuration).
  4. TouchDesigner generates a thumbnail asynchronously and caches it at thumbnails/looks/<output>/<lookName>.png.

Thumbnails regenerate automatically when you change source, palette color points, or effect parameters. The Looks page shows queue progress via the thumbnail queue indicator if a regeneration is in flight.


Gotchas

  • Looks are output-specific. A look built for Facade doesn't show up in the Lobby look list. If you want the same visual on two outputs, duplicate the look and rebind to the other output.
  • Palette edits cascade. Editing a palette updates every look that uses it. Usually what you want — duplicate before editing if you only mean to change one look's palette.
  • Palette deletion is blocked when in use. Lightpath refuses to delete a palette that's referenced anywhere — you'll see the list of looks blocking the delete. Migrate them first.
  • No media size limit. You can upload a 5 GB video and Lightpath won't stop you, but every sync will move that file across the network and every machine will need disk space for it. Compress before uploading when you can.
  • No edit-conflict detection. If two people open the same look with Live editing on, both sets of changes hit the fixture — last write wins. Coordinate when collaborating on the same look.

On this page