Speed & reliability
Users across teams often need to quickly review a short log or simulation and might only have access to a 5 MB/s connection. Users also often need to review many short videos in rapid succession, and quickly find and jump to the right moment in each snippet. This means we had to optimize for very fast loading using low bandwidth, and allow for live scrubbing (dragging the video slider and immediately seeing the 3D view update in real-time), starting playback at any timestamp without delay, and viewing at faster than real-time.
To do this, we had to figure out how to load the same data 10x faster. In many use cases, users only care about certain kinds of data—the rest is unnecessary. So Lightbox is designed around a specialized data loading scheme and configurations that control bandwidth and application size.
Rather than loading all log data at once, Lightbox will initially only load lower-fidelity, lightweight data to give the user a general sense of the scene. In place of the API, Lightbox relies on a metadata file to load this important data first, at low resolution, and instantly display it based on timestamp. Our system reads the configuration from the metadata file to dynamically load the higher-fidelity, heavyweight data with further details (such as hi-res camera data or more detailed LIDAR points) when the user pauses to inspect a specific scene or seeks for a desired timestamp. In this way, Lightbox enables fast scrubbing and much finer grain, on-demand data loading while effectively eliminating long load times and buffering. By opting for a custom data flow, we are able to avoid unnecessary dependencies and overhead, add compression, and only include the information that is relevant to our users.