OpenXR is an open, royalty-free standard for APIs that provide XR applications with access to XR platforms and devices. This is implemented in the XR runtime software supplied by the manufacturer of XR hardware and in the XR software application when it is developed (e.g. via a game engine plugin). Support for OpenXR is potentially useful for preservation purposes — it improves compatability between XR software and XR hardware, allowing modifications to be made, .
OpenXR is developed by a working group managed by the Khronos Group consortium, who describe it as follows:
OpenXR is an API (Application Programming Interface) for XR applications. XR refers to a continuum of real-and-virtual combined environments generated by computers through human-machine interaction and is inclusive of the technologies associated with virtual reality (VR), augmented reality (AR) and mixed reality (MR). OpenXR is the interface between an application and an in-process or out-of-process "XR runtime system", or just "runtime" hereafter. The runtime may handle such functionality as frame composition, peripheral management, and raw tracking information.
Optionally, a runtime may support device layer plugins which allow access to a variety of hardware across a commonly defined interface.
—
Up until the arrival of OpenXR, support for each manufacturers API would have to be built into the XR applications if they were to be used. OpenXR attempts to solve the problem of compatibility between XR applications and XR hardware. Image source: .
In order to make use of OpenXR, you need to:
Make use of an XR hardware platform which supports it — see below.
Develop XR software which supports it (or add this to the software) — see below.
The that the following XR runtimes/platforms are compliant with OpenXR:
Acer:
ByteDance:
Canon:
The following game engines have native support for OpenXR:
Godot: 4.0+ (built-in); 3.2-3.6 (via plugin)
Unity: 2020.2+ (via )
Unreal Engine 4: 4.27 (via plugin); 4.24-4.26 (via beta plugin)
As of Chromium 81, any Chromium-based web browser (e.g. Chrome, Edge) will use OpenXR as its default backend for WebXR content.
HTC:
Magic Leap:
Meta:
Microsoft:
Qualcomm:
Sony:
SteamVR:
Varjo:

This page provides a brief introduction to the typical hardware and software components of an XR system. Modern XR systems are unified sets of hardware, with supporting software, which are used to provide end users with the capability of accessing immersive media content like XR-enabled 3D software and 360 video. Here we focus primarily on contemporary, off-the-shelf XR systems, which are frequently used by creators.
Common components of XR systems include:
Head-mounted display (HMD) which is placed over the users head, providing the screens which create the visual illusion of being in a virtual environment.
Human Input Device (HID) which allows the user to interact with elements of the virtual experience (e.g. by pressing buttons or moving a joystick).
Tracking system which translates user movement in the physical environment into movement in the virtual environment using camera and/or sensor data. In practice this is often integrated, at least partially, into HMD and/or HID devices
Computer system to run the XR software, which can be integrated into the headset (e.g. in the Oculus Quest series) or run standalone (for tethered headsets like the Oculus Rift S or Valve Index).
which provides interfaces between these hardware components and XR software.
These components can be integrated to varying degrees (e.g. an HMD can contain a tracking system), as described in the subsections below.
The commercial marketplace has strongly influenced the development of XR systems since the early 2010's when a "second wave" of immersive technologies started. Most companies produce tiered feature sets at varying price points (e.g. the Meta Quest 3 and Meta Quest 3S). Releases of product models might follow incremental improvements in technology, resulting in very similar systems with only one or two differences between them — or releases could represent a big jump in technology or hardware design from year to year. It can be challenging to identify defining features and technical specifications for a given XR system because of advertising styles (many hard-to-prove claims are made) and the proprietary, competitive nature of development.
A Head-Mounted Display (HMD) is a display device, worn on the head or as part of a helmet, that mounts either a single screen in front of both of the users eyes (monocular HMD) or a separate screens in front of each eye (binocular HMD).
The simplest and cheapest type of XR system uses a handheld mobile phone mount, with embedded lenses that help the user focus on the close range screen. This creates means that the full (or most) of the visual range of the user is taken up by the screen content, which supports the feeling of immersion in the virtual environment. The internal gyroscope is used to support . Google Cardboard (pictured below) is an example of a handheld device of this type. This was a low cost solution made of cardboard and containing plastic lenses, released in 2014 and now discontinued.
Exceeding these low cost system in features, complexity and comfort are more sophisticated Head-Mounted Display (HMD) devices, that are hands-free and provide increased immersion. HMDs can be tethered systems (e.g. the Oculus Rift series, pictured below), which are connected to a computer using cabling running from the HMD. This allows them to offer better performance in terms of graphics and location processing, as the computer is able to handle this work.
Standalone HMDs (e.g. Meta Quest series, pictured below, VIVE Focus series) contain built in computers which run the XR content, eliminating the need for cabling running to an external computer. This offers the user greater freedom of motion, and they tend to be less expensive overall, but at the cost of reduced processing power. Some can also, optionally, be tethered to a PC (e.g. Meta Quest 2 or later).
Detailed and regularly updated information about the properties of XR HMDs are available on and . The spreadsheet linked below, created by sasha arden, gathers information about popular XR systems from various sources, for the purpose of conveniently identifying their key features. It could be useful for considering compatibility in the case of a potential hardware replacement or migration. For example if the XR content uses 6DoF interactivity, an XR system that is only capable of supporting 3DoF would not be suitable.
Further interactivity and immersion is achieved with tracking systems, which provide input for the XR content and/or information about the user's position in space. Tracking systems can be built into the HMD (e.g. Meta Quest series) using cameras or additional hardware incorporating sensors is used alongside an HMD (e.g. Oculus Rift 'Constellation' or Valve Index 'Base Stations').
Communication between XR hardware and an XR application (be it 3D software or a 360 degree video player) is contingent on supporting software. This is typically a software package provided by the manufacturer of an XR hardware system. Though this may include a user-facing application (e.g. with a storefront for purchasing content) it is the back-end software components which serve a crucial technical role.
The most important component of this package from a preservation perspective is an XR runtime, which provides an API and driver to support an interface between XR applications and XR devices. It can also provide features that modify the behaviour of XR applications (e.g. improving performance or image quality). Examples include the Meta Quest Runtime and the SteamVR runtime.
Until 2019 there was no standardisation of XR runtimes, which resulted in poor compatibility between software and hardware, making changes to hardware difficult. Support for a specific runtime had to be built into the software during development. The situation has dramatically improved with the arrival of an open standard, called , which helps ensure that devices and software speak the same language. For more information about OpenXR, and guidance on compatibility across hardware and software platforms, see the .
Windows 7 (SP1)
Windows 8.1
Windows 10/11
Can only be downloaded through Steam (see ).
Monado
Yes
Android
Linux Windows 10/11
Source code available from , build packages available for Debian and Ubuntu only.
Oculus Runtime
Yes
Android
Windows 10/11
Current version only downloadable through Oculus client. Legacy version available from Meta.
Meta Horizon
Yes
Windows 10+
Android 5.0+
iOS 15.1+
On Windows downloaded through Meta Horizon Link app.
SteamVR


Yes
This page has been deprecated is it no longer represents our recommend approach. We would instead recommend migrating XR projects to OpenXR, which provides a degree of backwards compatibility.
This page describes the process for extracting an XR runtime as a contained unit of software, so that it can be archived independently of a computer system. XR runtime are often distributed using front-end tools that carry out downloading and installation in the background (e.g. SteamVR is downloaded through Steam). This makes it harder to extract and archive them for reuse in the future. This page describes the process of extracting different XR runtimes for independent archiving.
Legacy Oculus Runtime 0.8.0 (dating from 2017) is currently available to download from the Oculus website: .
For later versions you are dependent on the to install and manage the runtime. After installation, the runtime can be found in C:\Program Files\Oculus. Testing is needed to ascertain whether this directory can be copied to a new machine.
These instructions are adapted from Valve's of SteamVR. While this method allows you to extract a standalone copy of the SteamVR runtime, the version available through Steam cannot be controlled.
1. Either a) Install and open the on a PC with full internet access or b) Access a computer which already has the appropriate version of Steam installed.
2. In the Steam Client, open the Library section and find the part of it labeled "Tools".
3. Find the entry "SteamVR" and install it.
4. Right-click on the entry "SteamVR" and in the resulting popup menu click on the entry "Properties".
5. A new window with multiple tabs will open. Select the tab "LOCAL FILES" and click on the button labeled "BROWSE LOCAL FILES".
6. The directory containing the SteamVR Runtime will open. Copying this entire directory will capture the files required to run SteamVR on another computer. From this directory, SteamVR can be launched by running the "vrstartup.exe" executable file in "\SteamVR\bin\win64".


