EXP-056 · live demo

A 3D scene that streams like video.

Gaussian-splat scenes are usually one big file you wait for. Here the same scene is cut into four versions, from 1.2 MB to 14 MB. A small one appears within seconds, then sharper ones replace it as fast as your connection allows, the way video streaming picks a quality. Pick a connection speed to see it adapt.

Showing · loading… Drag to orbit · scroll to zoom
Connection
First 3D view after
–
Measured speed
–
Downloaded
–
Gaussians shown
–

How we built it

A bitrate ladder, for 3D

  1. Train the full scene

    We rendered 160 views of our factory robot cell with exact camera positions, and trained a Gaussian splat in LichtFeld Studio, capped at 1 million Gaussians: 14 MB compressed.

  2. Rank every Gaussian

    Each Gaussian gets a score for how many pixels it covers across the training views, times its opacity. The top 100,000 hold 75% of the scene's coverage; the top 300,000, 92%.

  3. Cut a ladder

    Four versions: 100k and 300k Gaussians with plain colour, and all 1 million with simple or full view-dependent colour. Each is compressed to SOG (PlayCanvas's splat format), from 1.2 MB to 14 MB. A small manifest file lists them, like a video stream's.

  4. Adapt while it plays

    The player shows the smallest version first, measures how fast it arrived, and fetches the biggest next version that should arrive within about five seconds. Each one replaces the last when it's ready. The connection buttons slow the download down so you can watch it adapt.

Limits

  • This scene is static. Nokia's IBC 2026 demo streams moving splats with MPEG's new splat coding, which isn't publicly released; ours shows the same adaptive principle on one scene.
  • Each version replaces the previous one rather than adding to it, so a full upgrade downloads some Gaussians twice. An additive stream would be leaner.
  • The connection speeds are simulated in the page by pacing the download. Real networks also vary.