EXP-055 · live demo

A flat 360° video, turned into 3D for VR.

This clip was filmed by a single 360° camera, so both eyes would normally see the same picture. An AI model estimated the distance to everything around the camera, and we built a separate left and right eye for the whole sphere. Drag to look around; red/cyan glasses show the depth.

View · red/cyan 3D Drag to look around
Show

24.0dB
Match to a true stereo 360 camera. Flat 360 scores 19.9 dB
0.933
Structural match (SSIM), up from 0.868 for flat 360
128ms
AI depth per 2048×1024 frame on one RTX 4070
7ms
Building both eyes for the whole sphere

How we built it

From one 360° camera to two eyes

  1. A test scene with a true answer

    We rendered our warehouse aisle with a 360° camera moving down it, and also with a true stereo 360 camera (two eyes 65 mm apart). That lets us score the AI's second eye instead of eyeballing it.

  2. Distance all the way round

    DA², Depth Anything in Any Direction (ICLR 2026, Apache-2.0), estimates the distance to every pixel of the equirectangular frame, including straight up and down, where ordinary depth models fail.

  3. Two eyes for a sphere

    A stereo 360 camera sees each point along rays tangent to a small circle as wide as your eyes are apart. So every pixel moves sideways by an angle that depends only on its distance. Near things move more, and the effect fades towards the top and bottom so the poles stay comfortable. The frame wraps around, so the seam behind you stays joined.

  4. Pack for headsets

    Left eye above, right eye below: the standard layout that headset video players read as stereo 360.

Limits

  • Rendered test scene, not real Insta360 footage yet. That's the next test.
  • The AI's distance has no absolute scale. We set it once from the first frame, and its error grows over the clip (from 0.29 to about 0.38 relative error), so real footage needs a steadier scale.
  • At 128 ms per frame this runs near-live (about 8 frames per second at 2K), not yet in real time.
  • The browser version here plays our converted clip. The conversion itself ran on our GPU.