EN
Back to the archive

The encyclopedia · Software & IT · Strategic decision · 2017–2019

OpenXR's one royalty-free API united VR/AR platforms and ended SDK fragmentation

Khronos announced OpenXR in 2017 to end VR/AR SDK fragmentation; Meta, Valve, Microsoft and HTC all ship the royalty-free runtime.

Khronos Group

the move

By 2017 VR and AR apps had to be rewritten for each vendor's SDK — Oculus, SteamVR, Windows Mixed Reality and others — so developers faced a small, fragmented market. At GDC on February 27, 2017, the Khronos Group announced OpenXR, a standard aimed at solving AR/VR fragmentation.

The design choice was a single cross-vendor API with neutral governance. Applications talk to one set of primitives — XrInstance, XrSession, XrSpace and XrActions — while each platform implements an OpenXR runtime underneath; the standard is open-source and royalty-free. A provisional 0.90 release in March 2019 let implementers test it, and OpenXR 1.0 shipped at SIGGRAPH in July 2019.

Adoption followed because the standard enlarged the market for everyone. Meta's Quest, Valve's SteamVR, Microsoft's HoloLens 2, HTC Vive, Magic Leap, PICO and Varjo all became conformant platforms, and Unity, Unreal, Godot and Blender build on OpenXR — so an app written once runs across headsets and engines.

why it works

  • One API removes per-SDK rewrites, enlarging the developer market
  • Royalty-free and consortium-governed, so no single vendor controls it
  • Meta, Valve, Microsoft, HTC and others ship conformant runtimes
  • Unity, Unreal and Godot build on it, so apps inherit the support
the payoffOne royalty-free API spans every VR/AR headsetclever

what transfers

Fragmented platforms lose developers; a neutral, royalty-free common API wins by making the whole market bigger for every vendor.

what came after

OpenXR 1.1 shipped in April 2024, consolidating extensions into core; Chromium-based browsers use it for WebXR, and it is the standard access layer for today's VR/AR headsets and engines.

references

spotted an error? The archive wants to know.

same kind of clever