Start here

Getting started

The shortest path from numbered source frames to synchronized playback.

Pre-built packages are not currently available. Build OpenVolumetric from source before following the authoring and playback workflow below.

The workflow

numbered images + numbered OBJ meshes + optional audio
                         ↓
             OpenVolumetric Encoder
                         ↓
       verified MP4 or adaptive package
                         ↓
              Unity or Unreal player

OpenVolumetric authoring is available inside both Unity and Unreal. The two interfaces call the same native authoring library and create the same media format.

Prepare the input

Create one directory for texture images and one for OBJ geometry. Filenames must use contiguous matching frame numbers, consistent zero padding, and one extension per sequence.

capture/
├── images/
│   ├── 000110.jpg
│   ├── 000111.jpg
│   └── 000112.jpg
├── geometry/
│   ├── 000110.obj
│   ├── 000111.obj
│   └── 000112.obj
└── audio.wav

The first frame number does not need to be zero. Image and geometry counts and frame numbers must match exactly.

Choose an output

Use a single MP4 for local playback or fixed-quality HTTP delivery. Use an adaptive package when the player should choose or switch between low and high representations.

single output: performance.mp4

adaptive output:
performance/
├── manifest.json
├── low.mp4
└── high.mp4

Encode

  • In Unity, open Tools > OpenVolumetric > Encoder.
  • In Unreal, open Tools > OpenVolumetric Encoder.
  • Select the source directories, optional audio, frame rate, platform preset, and output.
  • Enable geometry compression when matching topology should be reused.
  • For streaming, enable fragmented MP4 or adaptive output and choose a one-, two-, or four-second fragment duration.

Authoring needs an FFmpeg executable with libx264, libx265, and AAC encoding support. Draco encoding and MP4 packaging are built into OpenVolumetric.

The encoder publishes an output only after reopening it and validating its tracks, timestamps, geometry packets, and seek points.

Play

For a single asset, select the MP4 as a local source or enter its HTTP(S) URL. For an adaptive package, select manifest.json, enable adaptive-manifest input, and choose Auto, Low, or High.

Start with local playback and confirm:

  1. Geometry and texture appear together.
  2. Audio starts and stays synchronized.
  3. Forward and backward seeking works.
  4. Pause and resume preserve synchronization.
  5. Looping crosses the end of the presentation cleanly.

Then repeat the same checks over HTTP before deploying to a constrained network or headset.

Next steps