Skip to main content

Coordinated packages

In File → Export…, choose Template set and select the output format. When the set has Transition Logic, the OGraf ZIP is one coordinated .ograf.zip containing the controller, referenced templates, shared components and their resources. The standalone page plays the coordinated set in a browser. You can also use Export package… or Download package in the Transitions tab's toolbar. Apply or discard any unapplied transition draft before exporting. Studio snapshots current edits and certifies the exact package before saving.

The exported graphic starts Off. Its public data is a slots object: each slot contains a stateId and that template's data; the empty string "" selects Off. The manifest supplies default selections and typed data schemas. Standard play takes the selected states; stop takes all slots Out. Updating data on an active slot requests its next appearance through the same transition planner.

Initial selections form a compatible baseline: lanes requiring another lane fully On start Off, and mutually conflicting states are not selected together. Independent lanes choose a compatible state in lane order. The custom Take form still suggests a valid state for its chosen lane; that suggestion does not activate the lane during startup.

Real-time Load privately prepares resources for the valid selected startup scene while lanes remain Off. A matching first Play reuses successful preparation after normal admission. This does not create an explicit Prepare state or satisfy a lane's On prerequisite. Changing selected states or data, superseding commands, reload and disposal discard stale preparation. Invalid selections still fail on Play; failed preparation is released so Play can retry through its normal readiness and error handling. Non-real-time playback keeps its existing behavior.

When the operator explicitly selects both a parent and its dependent lanes, play plans the whole selection and prepares its resources before changing output. It waits for required exits and completed parent entrances before starting the next stage. Conflicting selections or missing selected prerequisites are rejected without changing on-air selections. The same stage timing is used for real-time playback and non-real-time scheduled rendering. A newer playout command can supersede unfinished stages; canceled stages do not return later. Individual Take commands continue to require their prerequisites already On.

The coordinator has one On-air step. A plain Play after that step advances Out; use playAction({goto:0}) to reapply the current On selection explicitly. Export certification checks successful default startup as well as the API contract; a controller's green schema validation alone does not prove that a requested scene played successfully.

skipAnimation:true skips authored transition waits; resource, rendering and GPU work still take time. In OGraf Devtool, use the complete exported multilane scene: await successful Load, time and await the first Play from Off, then check the response and capture ready output. Keep cold first-Play measurements separate from warm replay and recheck after state/data changes. Latency depends on the template and host; no single timing bound applies to every graphic and GPU. The Devtool's detached-element latency check and visibly mounted playback should both be checked; a slow command response alone does not establish dropped display frames. Text that already fits its box avoids repeated layout measurements while retaining the same fitted size and minimum-size behavior. Font loading, shader rendering and final-frame readiness still complete before success.

For real-time batch Play with skipAnimation:true, prepared independent lanes in the same dependency stage share a final coherent frame and readiness pass outside nested Rules dispatch. Each lane retains its request, ready and advance events. Rules keep their order after stage readiness, and parent Rules or a superseding command can cancel later child stages. Direct Take, animated playback and non-real-time replay keep their existing behavior.

Custom actions for playout​

Playout integrations can address individual slots through these OGraf custom actions:

ActionPayloadResult
transition.take{slotId, stateId, data?}Prepare and take a state, or update the active state
transition.patch{slotId, stateId?, data}Patch an on-air graphic in place, with an optional active-state guard
transition.out{slotId}Animate a slot to Off
transition.clear{slotId?}Immediately clear one slot, or all slots if omitted
template.action{slotId, actionId, data?}Run an authored action or generated timer command on the active template
loop.pause / loop.resume / loop.next{slotId, groupId}Control one timed loop group while other graphics continue

The package includes an operator guide with the actual slot/state IDs and example payloads. External quote feeds should use transition.patch to merge changed values into the existing graphic. It keeps lane transitions, paused state and continuous animation intact; ordinary data Rules and configured text-update effects still run. It rejects Off or leaving graphics. An entering graphic can receive a patch without changing its transition deadline. A prepared replacement is not retargeted by a patch to the current graphic. A new image loads before the patch applies, so it never blanks, and a failed image leaves the old one on air and returns an error. Standard updateAction and transition.take continue to use authored update transitions, unless the lane is set to update In place. Scheduled transition.patch actions replay during non-real-time rendering and backward seeks. Shared instances remain mounted between takes. Incoming resources must be ready before they replace the current output; newer pending requests replace older pending requests. The current transition finishes first. The coordinator plays each layer's authored Start-to-first-Step IN and final-Step-to-End OUT within the selected transition timing, including masks and effect tracks. Retained shared elements morph without replaying their entrance. Independent loops, shaders and text/clock effects continue. Timed loop groups expose a hold-duration field and independent Pause/Resume/Next controls in Preview & Export. Generated clock/timer Start, Pause, Reset and Restart commands are available through template.action. The dropdown labels identify the template and timer; take that template on air before issuing its command. Start resumes, Pause holds the value, Reset restores the initial value and pauses, and Restart restores it and runs. System clocks ignore timer commands. Manual Reset/Restart rearms alarms without replacing the feed. These commands keep transition timing and dependencies; their non-real-time event times replay deterministically during seeks. Choose Authored animation as the transition style to use those layer tracks without an additional whole-graphic fade. Existing Dissolve, Slide and Wipe styles keep their chosen overlay motion.

Non-real-time packages​

Non-real-time packages accept scheduled actions and deterministic goToTime seeking, including backward seeking. Coordinated Rules support data conditions and change events, pointer input (including once-per-entry hover commands), Played in, the first Step reached, and Taken out. Take/Update/Out/Clear commands can be delayed on event rules. Pointer input requires real-time playback. Template custom actions, Custom action ran triggers, template-local set-data, custom-action chains and animated Rule properties are supported. Export requires matching output dimensions and frame rates. Audio/media cues, shader/media Rule side effects, custom-action loop activation and loops outside the first on-air step remain unsupported and are reported before saving. Use the original .ogs for editing; Import OGraf cannot reconstruct a coordinated template set from its runtime package.