Runtime

Playback

Open, control, and monitor synchronized OpenVolumetric presentations.

Source types

The runtime supports:

  • Local conventional or fragmented OpenVolumetric MP4 files.
  • HTTP(S) MP4 resources supporting bounded byte-range requests.
  • Local or HTTP adaptive manifest.json packages.

When both a local path and URL are set, the URL takes precedence in the engine integrations.

Core controls

The common player supports open, play, pause, seek, close, looping, and restart after end of stream. Unity and Unreal expose these operations through their normal scripting systems.

Seeking is performed on the complete MP4 presentation timeline. Video, geometry, and audio queues are flushed together and assigned a new playback generation so stale asynchronous work cannot re-enter the new timeline.

Synchronization

Texture and geometry are paired using MP4 presentation timestamps. Audio is queued against the shared playback clock rather than being started as an unrelated engine clip.

The player presents complete texture/geometry pairs and preserves one timing authority through:

  • Startup.
  • Pause and resume.
  • Forward and backward seeking.
  • Looping and end-of-stream restart.
  • Network rebuffering and recovery.
  • Adaptive representation switches.

Spatial audio

Unity and Unreal can move the audio source to the centroid of each presented mesh. This affects spatial position without changing PCM queueing or the playback clock. Smoothing reduces small frame-to-frame position changes.

Unity uses the OpenVolumetric native DSP path. Unreal supplies decoded audio through a procedural sound wave and delegates spatial rendering to the configured Unreal spatializer.

Texture correction

Both integrations provide normalized luminance, blue-projection, and red-projection correction values from -0.2 to 0.2. Corrections are applied to Y, U, and V before colour conversion.

Diagnostics

Runtime diagnostics include:

  • Playback state, current time, duration, and last error.
  • Active and pending adaptive representations.
  • Cache occupancy and downloaded bytes.
  • HTTP request and recovery counters.
  • Active fragment and cached fragments.
  • Buffering, underrun, and adaptive switch state.

Development overlays are intended for testing and can be disabled for release-facing players.