← Lab bench
EXP-055Live

Flat 360° video turned into stereo 360° for VR headsets

24.0dB

match to a true stereo 360 camera, against 19.9 dB for flat 360 (60 frames, 2048×1024)

An equirectangular 360 frame of a warehouse aisle, and the distance the model estimated for every direction (AI distance, all directions)An equirectangular 360 frame of a warehouse aisle, and the distance the model estimated for every direction (Flat 360 frame)
◂▸
Flat 360 frameAI distance, all directions

360° cameras like Insta360 record one picture, so VR headsets show it flat. An AI model estimates the distance to every pixel all the way round, and we build a separate left and right eye for the whole sphere using the geometry of an omni-directional stereo camera. We scored it against a true stereo 360 render of the same scene.

What we tried

  • Rendered a 360° dolly down our warehouse aisle in Blender, plus a true stereo 360 pair and true distance for every frame.
  • DA² (Depth Anything in Any Direction, ICLR 2026) for distance on the whole equirectangular frame.
  • An omni-directional stereo warp: each pixel moves sideways by asin(half the eye spacing ÷ distance), fading to zero near the poles, with the frame wrapped so the seam stays joined.
  • Packed the eyes top and bottom for headset players, and built a browser viewer with red/cyan, wiggle and WebXR modes.

What we measured

MeasureFlat 360Our stereo 360Note
Match to true stereo (PSNR)19.9 dB24.0 dBTrue distance through the same warp reaches 32.1 dB
Structural match (SSIM)0.8680.933
AI distance per 2048×1024 frame—128 msRTX 4070
Building both eyes—7 ms
Distance error (relative)—0.29Scale set on the first frame; drifts to about 0.38 by the end

What went wrong

  • The first camera path started a few centimetres from a safety barrier, which smeared across the whole bottom of the sphere.
  • DA²'s package pulls in training libraries on import; we load only its model code.
  • Fixing the distance scale once, on the first frame, lets the error grow over the clip. Real footage needs a steadier scale.

What happens next

  • Junaid's Insta360 footage, with a temporal smoothing pass for distance.
  • A faster distance model for real-time 360 at 4K.
  • A 20-minute comfort test in a Quest.

Built with

  • DA² (Depth Anything in Any Direction) Apache-2.0
  • PyTorch BSD-3
  • three.js (viewer, WebXR) MIT
  • Blender Cycles (test scene) GPL