OpenXR, VRAPI, and LibOVR
VrApi Deprecation
As of August 31 2022, we no longer support the VrApi library. All new apps are required to use OpenXR, unless a waiver is provided. You often need to choose between OpenXR, LibOVR, and VrApi as the API for communicating with your headset when starting out in VR/XR development. When developing in native engines, you may need to decide on an API immediately, without fully understanding the tradeoffs, unlike Unity and Unreal developers who see this choice as options in a dropdown.
All applications meant for VR/XR headsets, including the Meta Quest line of products and products made by other companies, require communication with the headset for similar information and behaviors. For example, app developers typically find the following uninteresting:
- Polling for updates to head and hand tracking positions
- Handling requests to un-focus or quit the application
- (For XR applications) transforming between view-space and stage-space coordinates
These problems are important, and headset developers create APIs to solve them. In 2016, there were three APIs to control these behaviors:
- LibOVR (also known as CAPI), created by Oculus, for PCs using Rift headsets
- VrApi, created by Samsung, for mobile devices using headsets
- OpenVR, created by Valve and HTC, for PCs using Vive headsets
This ecosystem was difficult, requiring rewrites and per-platform bug fixes for developers releasing on multiple platforms. For example, see
OpenXR Core Concepts: Input API for the choices required at that time.
In 2017, the Khronos Group, a non-profit consortium devoted to maintaining open interoperable standards for 3D graphics and VR/XR, announced OpenXR, aiming to have all major VR headset vendors use this standard for application-headset communication.
This flowchart shows how OpenXR interfaces with applications and headsets.
Note: LibOVR, VrApi, and OpenXR are not graphics APIs. Rather, they are APIs for communication between application and headset. Meta Quest headsets support two graphics APIs: OpenGL and Vulkan.
LibOVR (also known as CAPI) is the legacy API for PC VR applications, such as those on the Oculus Rift and Rift S. The LibOVR API is meant for applications that receive headset input, and render output on a connected PC. For information about LibOVR, see
PC SDK Developer Guide.
VrApi is the legacy API for mobile VR applications, such as those on the Oculus Go and the Meta Quest series of headsets. As of August 31, 2022, VrApi library support has ended. New applications for mobile Meta Quest devices are required to use OpenXR, unless a waiver is provided.