The Continuum specification

Continuum is a binary file format designed to capture changes in state. It supports forward and backwards playback and random seek and is designed to be streamed over a network.

Such a specification is useful in virtual worlds as the data is capture in a format that is it can be reused, repurposed and investigated in much further detail than the fixed view provided by a video capture.

Continuum v1

The first version of Continuum was limited to captures of IMML states, custom state data such as animation, audio, video, etc were not able to be captured as the specification didn't allow for it.

Continuum v2

The second iteration of Continuum is included in v1.5 of the Worlds Platform and significantly improves upon the areas v1 was weak; capture of arbitrary states!

What's new

  • Support for an almost infinite (~2 billion) number of arbitrary state types per stream
  • API for building custom state types
  • Support for compressed and/or encrypted states
  • Concurrent playback of multiple streams on a single timeline
  • Concurrent record of states into the one stream

Design

The design for v2 is a complete overhaul of v1 and revolves around the concept of state controllers and recorders. These constructs work against capture state instances, which is what a continuum stream is composed of.

The header of a Continuum stream looks like this:

Of note is the inclusion of the State Allocation Table (or SAT) which provides the glue between the custom state types and a stream. Each state controller has a GUID that the stream stores alongside an internal stream identifier:

Capture States

The body of a Continuum stream contains sequential blocks of capture states. Each state node is self contained and stores an array of bytes.

Continuum-v2-Header.png (20.3 kB) Craig Presti, 03/19/2011 09:24 pm

Continuum-v2-SAT.png (36 kB) Craig Presti, 03/19/2011 09:24 pm

Continuum-v2-CaptureState.PNG (21.2 kB) Craig Presti, 03/19/2011 09:24 pm