Filament Docs
Player

External Sources

Capture live video from other apps — NDI, Syphon, and Spout — straight into the Player grid and treat each feed like any other clip.

When you want another application to drive your LEDs — Resolume, a media server, a generative tool, a camera feed — Filament captures its live output and plays it in the grid as a clip. Each feed lives in a cell, mixes through the same layers, blend modes, and effects as everything else, and is cued by clicking that cell.

Three protocols cover the field:

ProtocolWhat it isPlatforms
NDIVideo over the local networkmacOS and Windows
SyphonLocal GPU frame sharingmacOS only
SpoutLocal GPU frame sharingWindows only

NDI travels between machines on the same network; Syphon and Spout share frames between apps on the same computer. You only see senders your platform can read, so the External sources tab lists whatever's available where you're running.

The External sources tab listing discovered NDI and Syphon feeds.

Connecting a source

  1. Start the other app and enable the output you want Filament to read (its NDI, Syphon, or Spout sender).
  2. In the Player, open the External sources tab in the library drawer — its TV icon in the rail, or F4.
  3. The tab scans once on open. Hit the refresh button at the bottom to rescan after a sender appears or disappears.
  4. Drag a source tile onto a cell, just like an animation or video clip.

Each tile shows the source name with a provider tag — NDI, SPOUT, or SYPHON — and adds · offline if the source has gone quiet. A refresh that fails throws an External sources refresh failed toast but leaves the existing list in place, so an in-flight drag is never broken.

The cell shows a TV icon rather than a thumbnail, since its content is live — the frames appear in the preview (see Master & Preview). Every cell referencing the same source gets its frames from a single capture, so you can place one feed across several layers or columns without decoding it more than once.

Behavior during a show

External cells behave like other clips, with three differences that matter on stage.

Connection-loss blackout

If a source stops sending mid-show — its sender closes, the NDI machine drops off the network, a Syphon or Spout server quits — the cell goes black on the next render tick. Filament doesn't hold the last frame or fall through to anything else; the layer's contribution clears cleanly to black so the rest of your composite keeps running. (This is separate from a tile going Unavailable in the library, which is just a discovery signal — the blackout is the show-critical part that protects your output the instant frames stop.)

Automatic reconnect

A blacked-out cell keeps retrying on its own, roughly every 900 ms, as long as that source is still placed in a cell. When the sender returns, the cell resumes rendering — no re-dragging, no re-cueing.

Autopilot skips external cells

The key gotcha for live use: autopilot never advances into an external cell. As a layer's autopilot cycles its filled columns (in order, reverse, or shuffle), it steps only through animation and video cells. If a layer's only filled cells are external, autopilot has nothing to advance and the layer effectively pauses.

External cells are still fully manually cueable — click one to launch it. But cueing one doesn't restart autopilot for that layer; cue an animation or video cell to put autopilot back in motion.

Cell contentAutopilot advances into it?Manually cueable?
AnimationYesYes
VideoYesYes
External (NDI / Syphon / Spout)NoYes
EmptyNon/a

Library tile states

The External sources tab reflects what discovery currently sees.

Tile stateWhat it means
AvailableThe sender is live and discoverable; drag it onto a cell.
· offline tagKnown but not currently sending. The tile stays so you can still place it; the cell reconnects when it returns.
UnavailableDropped out of the latest scan. Kept for one discovery cycle so an in-flight drag isn't broken, then it disappears on the next scan.

External source tiles in their live, offline, and Unavailable states.

Crossfading to and from a feed

Cross-source crossfades work. Cue from one cell to another with either side external and the layer mixes the incoming and outgoing content — feed against animation, or whatever exists on each side — over the master crossfade window, exactly as it would for two animations. See tempo and the master crossfade for how the timing is set.

Fitting and styling the incoming frame

External sources share the same effects and modulation as everything else. To reorient or reframe a feed, drop a transform effect on the cell or layer to scale, rotate, or reposition it before it composites; reach for color and stylize effects to recolor or treat it.

On this page