Showing results for 
Search instead for 
Did you mean: 

Capsule - CUDA-based omni-stereo image viewer

This is a small viewer for omni stereo images. Your feedback is appreciated 😄

The application does basically one thing: display omnidirectional stereoscopic images to the Rift.

Supported formats

  • Equirectangular projections in Left/Right and Over/Under configurations.

  • Stereo-cubemaps in the "long strip" format used by GearVR "Oculus 360 Photos" and OTOY's ORBX app.

  • *.vr.jpeg files produced by Google Cardboard Camera app.


  • Open files by using the menu or by dragging and dropping from Windows Explorer.

  • Navigate through files in the current directory with the Left and Right arrow keys.

  • Use the UI options to control the quality/performance tradeoff.

System requirements

  • Nvidia GPU with CUDA compute capability 3.0+. (GTX 600 series or greater).

  • Windows 7, 8 or 10 in x64 and with .NET 4.5.

  • Oculus runtime

  • Face with 2 or more eyes.

Design goals

  • Being able to quickly view OTOY's Render the Metaverse stereo cubemaps on the DK2.

  • Being able to compare and study omni-stereo images from different sources and formats.

  • Improving my CUDA programming and exploring the CUDA/Oculus interop.


  • I maintain the 75fps on my GTX 660 at 2.0 pixel density for a 18K stereocubemap and 8K equirect.

  • Note that the equirectangular kernel is slightly slower than the cubemap one. Adjust pixel density accordingly if you get judder.

  • If you get flickering on one eye, make sure there is no other GPU heavy application running.

Please keep in mind that this is baked-in stereo, you have 2 DOF. Avoid translating your head too much and tilting. A slight distortion wobble is to be expected when rotating your head. If there is a lot of wobble it might be coming from a higher than normal latency, verify this with the performance hud (F11).

Thanks for reading. Your feedback is appreciated :idea:

Grand Champion
Very cool.
AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV

Awesome. Very goog job. :shock:

Updated to 0.3.0 (edited links in OP).

  • Added support for Google Cardboard "VR photos".

These stereo images are starting to crop up, and we couldn't experience them on the high-end headsets? Totally unacceptable 😄

Some random thoughts about these files,
- The stereo effect is indeed good.
- Some of the files posted are more than 9000 pixels wide per eye, enough to give a quality result on the DK2.
- Unfortunately the nadir and zenith holes are massive, leaving about only 70° vertical fov. You always see the holes in front of you so that's quite an immersion breaker.
- We'll get a lot of casually taken images with moving objects, breaking stereo.
- Overall I think it's a pretty damn fine engineering achievement to go from someone spinning around holding a phone to a panoramic stereoscopic image. Kudos to the team at Google for this app.

Honored Guest
What to do, when it says "failed head initialization" ?

Works with other apps/games.

"stupendousman" wrote:
What to do, when it says "failed head initialization" ?

Can you confirm that you are using runtime
I will push a new version with proper logging to diagnose such issues.

Honored Guest
hi joan

I wanted to try your viewer, but for me i get the same error
"Failed headset initialization"

i can not run SDK, my system don´t work (Win 8.1), so i had to go back to the last working SDK
do you have a solution?

"fs_at12" wrote:

i can not run SDK, my system don´t work (Win 8.1), so i had to go back to the last working SDK
do you have a solution?

The application was built with SDK 0.8 and thus should only support runtimes 0.7 and 0.8 (I only ever tested on 0.8 though).
Windows 8.1 works well with rutime 0.8 (it's what I run), you do need to have the latest Nvidia drivers. Maybe try the runtime switcher if you have applications requiring older runtimes.

Honored Guest
Thanks Joan! Worked fine with both spherical and cubemaps, using DK2

Any image i tested (resolution doesn't matter), it seem locked to 60 FPS (Confirmed by Render Timing, Compositor Frame Rate: 60 hz). Any other player works perfectly (Virtual Desktop, MaxVR).
GeForce GTX 980 Ti - Intel Core i7-6700 CPU @3.40Ghz (8 CPU)
Any idea? Thanks.

p.s. if you need some kind of stress test, i successfully render ODS stereo images with POV-Ray, so i can render in any kind of resolution.