Recommendation for starting with OpenXR


I have just started VR development (Windows OS, and VIVE Pro Eye headset). I would like to have some guidelines from experts here. Let me begin:

Is there any better way to start with OpenXR?

Microsoft has some nice documents You can also see my “Master Class” on OpenXR: link to the video and slides with speaker notes from my most recent presentation of it at

hello_xr is a good example of one way to make a very cross-platform app, though this does obscure some of the OpenXR details a bit. One of my colleagues @haagch has written a simpler “straight line code” example (that only does OpenGL, and only on Linux) that might help demonstrate the concepts more clearly:

1 Like

Thank you very much @ryanpavlik . I was exploring all available documentation, and as you can understand, I am just a beginner. If I may ask two more questions:

  1. Will the Microsoft Mixed Reality examples also work for VIVE VR (runtime steamVR)? I thought those are especially designed for HoloLens. Although the codes are developed with DX11, I need either OpenGL or DX12 at least.
  2. The Ubuntu Monado-openxr-simple-example is easier to understand. However, AFAIK, SteamVR runtime, probably not a good option for Ubuntu. I found there are a lot of bug issues ValveSoftware/SteamVR. Is there any run-time software if I run Monado samples that works for VIVE Pro Eye?

The MS mixed reality samples will probably mostly work, as long as they don’t use extensions only implemented by the MS runtime. Think SteamVR supports OpenGL, D3D11, D3D12, and Vulkan, so that’s ok.

SteamVR does work fine on Ubuntu, the github issues are just not often updated. Monado should also work - I have a Vive Pro it works on. (The “Eye” part is not supported but if the rest looks like a vive pro, it’s OK). The samples are hosted under the Monado org on freedesktop because my team leads the development of Monado, but there’s nothing Monado-specific about that sample.

1 Like

Hi @ryanpavlik !

One more thing, OpenXR contains eye tracking specifications, XR_EXT_eye_gaze_interaction. However, to have the eye tracking data, and eye callibrartion, do I need any run-time application (e.g., SRAnipal Run Time)?

After your suggestion on Monado, yesterday I ported my code to Ubuntu, and found SRanipal does not have extension for Linux. So, it is a question whether I use the XR_EXT_eye_gaze_interaction, do I need additional run-time application or not! SteamVR definitely does not work with eye-tracking option.

The extensions that a given runtime supports depends on that runtime. Extension implementations are nearly always directly in the runtime - there are a few that can be implemented in an API layer, but it is more common and generally works better if it’s implemented in the runtime.

1 Like

@ryanpavlik, sorry, I did not understand it clearly. Does it mean I do not need SRanipal at all/ SRanipal is optional for using the eye tracking functions?