Glossary · 5 · Hardware SDKs and devices
OpenXR
Also known as: OpenXR API, Khronos OpenXR
In extended reality (XR) development, OpenXR is a royalty-free open standard of the Khronos Group that defines a common application programming interface between XR applications and the runtimes of virtual reality (VR) and augmented reality (AR) devices, so that one application can run on devices of several vendors.
- Hardware SDKs
- Standards
In one sentence
OpenXR is the Khronos open standard API between XR applications and VR/AR device runtimes, released as version 1.0 in July 2019.
Example
A training application for machine maintenance is written against OpenXR once and runs on headsets of two vendors, each of which ships its own conformant OpenXR runtime.
How it applies
- Hardware SDKs: OpenXR replaces vendor-specific runtime APIs at the boundary between application and device. A device vendor ships a runtime that implements the standard; its own SDK then adds tools, samples and vendor extensions. The pattern is that of a hardware abstraction layer, an abstraction at the device boundary: the application addresses an abstract interface, the runtime maps it to the device.
- Extensions: Features that are not yet in the core specification are exposed as extensions, either vendor-specific or multi-vendor. OpenXR 1.1 (April 15, 2024) moved several widely used extensions into the core. Applications have to check at runtime which extensions a runtime supports.
- Platform SDKs: Game and real-time engines integrate OpenXR as their XR back end, so engine plug-ins and projects target the standard instead of one headset.
- Conformance: Khronos runs a conformance process with a conformance test suite and a list of conformant runtimes. Conformance shows that a runtime passed those tests; it says nothing about the safety or suitability of an application built on it.
- Documentation: XR documentation should name the OpenXR version, the extensions an application requires and the runtimes it was tested with.
OpenXR vs. a vendor XR SDK
OpenXR is a specification of an API; a vendor XR SDK is a product that may implement OpenXR, add proprietary extensions and bundle tools such as simulators and profilers. Code that uses only core OpenXR and multi-vendor extensions is portable across conformant runtimes; code that uses vendor extensions is tied to those vendors.
Keep in mind: Runtime products, SDK names and the set of supported extensions change; check the vendor's current documentation and the Khronos list of conformant products.