Dynamic Assets

A dynamic asset is a named container that holds versioned content, allowing you to swap media — different language tracks, updated sponsor logos, seasonal variations — without editing any timelines. Timeline cues reference the dynamic asset by name rather than a specific file, so the currently active version determines which media plays. When you update a version, every cue referencing that dynamic asset picks up the change automatically, coordinated across all Runners without requiring a running Producer.

How It Works

A dynamic asset appears in the Assets window as a special folder (marked with a recycle icon) containing its version assets. A dynamic asset can hold at most two versions: the active version (the most recently added) and the previous version. When a new asset is added to the dynamic asset, it becomes the active version, the previously active version becomes the previous version, and the old previous version is automatically removed.

This two-slot lifecycle means the system self-manages storage — you do not need to manually clean up old versions. The active version is always the one used by cues referencing the dynamic asset.

Each cue stores an AssetVersion policy — either Latest (automatically upgrade to newer versions) or Fixed (pinned to the exact asset it was assigned). Only cues set to Latest participate in automatic version upgrades.

What Happens During a Version Swap

When a new version is added to a dynamic asset, a coordinated update flows through the system:

StepComponentAction
1Asset ServerReceives the new asset, promotes it to active version, removes the old previous version, broadcasts SSE event
2DirectorDetects asset DB change, queries cues with AssetVersion::Latest, builds upgrade map
3Director → RunnersSends upgrade map to all Runners via /v0/asset-upgrades
4Runner (Downloader)Adds new version to download queue, continues using previous version as substitute
5Runner (Playback)Switches to new version once download completes; preview thumbnails update immediately

The Director coordinates upgrades independently of the Producer. Version swaps work even when the Producer is not running. The Producer is notified after the fact so it can permanently apply the upgrade to the show file.

Asset Substitution During Downloads

Runners do not interrupt playback while downloading a new version. The downloader uses a substitution mechanism:

  1. If the active version is fully downloaded — use it immediately.
  2. If the active version is still downloading — continue using the previous version as a substitute.
  3. If no newer version has been downloaded — fall back to the original asset.
  4. Preview assets (thumbnails) always use the active version regardless of download status.

This means content swaps are glitch-free on each Runner — the old version plays until the new one is ready, then the switch happens seamlessly.

Categories

When creating a dynamic asset, you choose a category that determines what type of content it holds:

  • Visual — images, video, and SVG content.
  • Audible — audio content.
  • Display Data — projection mapping data (MPCDI, etc.).

The category is shown as a suffix in the asset name (e.g. "MyContent (Visual)") and restricts which file types can be added as versions. A visual dynamic asset cannot hold audio files, and vice versa.

Creating a Dynamic Asset

There are two ways to create a dynamic asset:

From scratch:

  1. Right-click in the Assets window.
  2. Choose New → Create Dynamic Asset.
  3. Enter a name and select a category (Visual, Audible, or Display Data).
  4. Click Save.

An empty dynamic asset folder is created. You can then add versions to it.

From an existing asset:

  1. Select an existing asset (not a folder) in the Assets window.
  2. Right-click and choose New → Create Dynamic Asset.
  3. The existing asset is converted into the first version of a new dynamic asset. The asset's type determines the category automatically.

Tip: Converting an existing asset preserves all cue references. Cues that pointed to the original asset now point to the dynamic asset, which contains the original file as its first version.

Adding Versions

To add a new version to an existing dynamic asset:

  • Drag and drop — drag a file from your file manager onto the dynamic asset folder.
  • Create Version — select the dynamic asset or one of its versions, right-click, and choose New → Create Version. This opens a dialog where you can set the version name, frame rate (for video), and color space.
  • Move into folder — drag an existing asset into the dynamic asset folder. Because versions must be cloned (not moved) into a dynamic asset, WATCHOUT creates a copy automatically.

Versions within a dynamic asset are sorted by creation date, newest first. The newest version is the active version.

Version Structure

Dynamic assets enforce a two-slot rule: only the active version and the previous version are retained. When a new version is added, it becomes the active version, the former active version becomes the previous version, and the former previous version is automatically removed by the Asset Manager.

In practice, this means automated workflows (such as the Asset Watcher or Web UI) that repeatedly update a dynamic asset always keep exactly two versions — the current and the one before it.

Compositions and folders cannot be used as dynamic asset versions. Only regular media assets (video, audio, image, display data) support the versioning mechanism. Attempting to add a composition as a version will fail.

Automatic File-Based Updates

When Auto Update Assets is enabled in the show settings, the Producer monitors the original source files of all assets every 6 seconds. If a file's last-modified timestamp has changed since the asset was imported, the Producer automatically creates a new version — triggering the full upgrade pipeline described above. The previous version is replaced as usual under the two-slot rule.

This works in combination with the Asset Watcher: the watcher detects new files in watched folders, and the auto-update mechanism detects changes to existing source files.

Managing Versions

  • Deleting a version — select the version inside the dynamic asset folder and delete it. If the dynamic asset is used on the timeline, at least one version must remain — WATCHOUT prevents you from deleting the last version of a used dynamic asset.
  • The active version — is always the newest version (by creation time). You can remove newer versions to effectively revert to an older one.

Use Cases

ScenarioHow It Works
Multi-language showsCreate a visual dynamic asset for each content piece, with one version per language. Swap the active version to change language across all cues.
Sponsor updatesReplace sponsor logos without re-editing timelines. Drop a new logo file into the dynamic asset; it becomes the active version.
Content rotationAutomatically cycle content on a schedule by updating versions through the Asset Watcher or Web UI.
A/B testingKeep two content variations as versions and switch between them during rehearsals.
Live event updatesUpdate scores, standings, or info graphics during a live show by replacing the source file — auto-update picks up the change within 6 seconds.

Best Practices

  • Use Latest version mode for cues that should auto-update, and Fixed for cues that must never change (e.g., safety instructions, calibration patterns).
  • Match resolution and duration between versions to avoid unexpected cropping or timing mismatches on the timeline.
  • Test version swaps during rehearsal before relying on them in a live show — verify that all Runners receive and switch to the new version correctly.
  • Keep source files accessible if using auto-update — the Producer needs to read the original file path to detect changes.
  • Monitor the Asset Transfer status after swapping versions to confirm all Runners have downloaded the new content before showtime.
  • Use the same codec and color space across versions when possible to avoid re-optimization delays.

Limitations

  • Version assets cannot be placed on the timeline directly. Always use the parent dynamic asset when creating cues. Individual version files are internal to the dynamic asset.
  • Category is fixed at creation. You cannot change a visual dynamic asset to an audible one after creation.
  • Folders and compositions cannot be converted to dynamic assets. Only regular media assets support conversion.
  • Two versions maximum — a dynamic asset retains only the active version and the previous version. Adding a third version removes the oldest automatically.
  • Auto-update requires the Producer — while version distribution works without the Producer, detecting source file changes requires the Producer to be running.

Troubleshooting

ProblemCauseFix
Previous version disappeared after adding a new oneDynamic assets retain only two versions (active + previous)Expected behavior — the old previous version is automatically removed when a new version is added
New version not appearing on RunnersCue is set to Fixed version modeChange the cue's asset version setting to Latest in the cue properties
Playback glitch during version swapShould not happen — substitution mechanism prevents thisCheck Runner logs for download failures; ensure sufficient disk space
Auto-update not detecting file changesAuto Update Assets is disabled, or Producer is not runningEnable auto-update in show settings and ensure the Producer is active
Version swap takes too longLarge file downloading to multiple RunnersPre-stage the file by uploading it via the Web UI before the swap is needed
Old version still playing after swapDownload of new version not yet complete on that RunnerCheck Asset Transfer status; the Runner will switch automatically when download finishes

See Also