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:
| Step | Component | Action |
|---|---|---|
| 1 | Asset Server | Receives the new asset, promotes it to active version, removes the old previous version, broadcasts SSE event |
| 2 | Director | Detects asset DB change, queries cues with AssetVersion::Latest, builds upgrade map |
| 3 | Director → Runners | Sends upgrade map to all Runners via /v0/asset-upgrades |
| 4 | Runner (Downloader) | Adds new version to download queue, continues using previous version as substitute |
| 5 | Runner (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:
- If the active version is fully downloaded — use it immediately.
- If the active version is still downloading — continue using the previous version as a substitute.
- If no newer version has been downloaded — fall back to the original asset.
- 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:
- Right-click in the Assets window.
- Choose New → Create Dynamic Asset.
- Enter a name and select a category (Visual, Audible, or Display Data).
- Click Save.
An empty dynamic asset folder is created. You can then add versions to it.
From an existing asset:
- Select an existing asset (not a folder) in the Assets window.
- Right-click and choose New → Create Dynamic Asset.
- 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
| Scenario | How It Works |
|---|---|
| Multi-language shows | Create a visual dynamic asset for each content piece, with one version per language. Swap the active version to change language across all cues. |
| Sponsor updates | Replace sponsor logos without re-editing timelines. Drop a new logo file into the dynamic asset; it becomes the active version. |
| Content rotation | Automatically cycle content on a schedule by updating versions through the Asset Watcher or Web UI. |
| A/B testing | Keep two content variations as versions and switch between them during rehearsals. |
| Live event updates | Update 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
Latestversion mode for cues that should auto-update, andFixedfor 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
| Problem | Cause | Fix |
|---|---|---|
| Previous version disappeared after adding a new one | Dynamic 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 Runners | Cue is set to Fixed version mode | Change the cue's asset version setting to Latest in the cue properties |
| Playback glitch during version swap | Should not happen — substitution mechanism prevents this | Check Runner logs for download failures; ensure sufficient disk space |
| Auto-update not detecting file changes | Auto Update Assets is disabled, or Producer is not running | Enable auto-update in show settings and ensure the Producer is active |
| Version swap takes too long | Large file downloading to multiple Runners | Pre-stage the file by uploading it via the Web UI before the swap is needed |
| Old version still playing after swap | Download of new version not yet complete on that Runner | Check Asset Transfer status; the Runner will switch automatically when download finishes |
See Also
- Asset Manager — asset pipeline overview and optimization stages
- Asset Transfer — how versions are distributed to Runners and substitution works
- Asset Watcher — automated file detection that can trigger dynamic asset updates
- Web User Interface — browser-based upload for adding versions remotely
- Import, Export, and Mapping — packaging dynamic assets for transfer between shows