3DOF
6DOF
Outside-in
Inside-out
This section describes the components of XR systems.
There is a range of XR systems, from a simple and relatively inexpensive mobile phone used with a lensed viewing device (e.g. Google Cardboard) to complex integrated software/hardware systems with tracking features meant for full-body interactivity (e.g. HTC Vive).
The simplest type of XR system uses a handheld mobile phone mount with lenses that help to focus on the screen content and create the illusion of an immersive view. The next step in features and complexity involves a head-mounted display (HMD) that is hands-free and provides a better illusion of immersion. 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 (usually 3DOF), or hardware such as handheld controllers or spatial tracking systems are used along with an HMD (usually 6DOF).
Another category among XR systems is standalone types and tethered types. Standalone HMDs offer greater freedom of motion and are less expensive overall, while tethered systems use a connected computer to offer better performance in terms of graphics and location processing. Tracking is included in both standalone and tethered systems, but the degree of motion/position information and accuracy is variable.
Some examples of the main types of XR systems are:
Handheld type
Google Cardboard
Samsung Gear
Standalone type
Oculus Quest
HTC Vive Focus
Tethered type
Oculus Rift
HTC Vive Pro
The commercial marketplace has strongly influenced 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. 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.
The table below is meant to gather information for the purpose of identifying the features of popular XR systems. 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.
An XR runtime is a software package which provides XR applications with access to XR platforms and devices. It can also implement functionality. Examples include the Oculus runtime and the SteamVR runtime. An XR runtimes can provide XR applications with a variety of interfaces with which to interact with them, which might conform to a standard such as OpenXR or OpenVR.
Runtime Name | OpenXR Support | OS Support | Download Packages |
---|---|---|---|
Oculus Runtime
Yes
Windows 10
Current version only downloadable through Oculus client. Legacy versions available on https://developer.oculus.com/downloads/package/oculus-runtime-for-windows/
SteamVR
Yes
Windows 7 (SP1)
Windows 8.1
Windows 10
Can only be downloaded through Steam (see Archiving XR Runtimes).
Monado
Yes
Linux
Source code available from GitLab, build packages available for Debian and Ubuntu.
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. Application support for OpenXR is potentially useful for preservation purposes — as it is a open standard, which will make keeping software available that
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.
— https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html
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: https://www.khronos.org/openxr/.
In order to make use of OpenXR, you need to:
Develop software which supports — see Engine Implementations below.
Make use of an XR platform which supports it — see XR Runtime Implementations below.
OpenXR is steadily being adopted by XR platforms, as they build support into their XR runtime software. The table below lists the XR runtimes which currently support OpenXR.
XR Runtime
Versions Supporting OpenXR
Platform
Oculus
v19+
SteamVR
Engine
Versions Supporting OpenXR
Supported Runtimes
Unreal Engine 4
4.27 (via plugin); 4.23-4.26 (via beta plugin)
Windows Mixed Reality; Oculus (via Oculus OpenXR plugin); SteamVR (via SteamVR Beta opt-in)
Unity
2020.2+ (via plugin)
Windows Mixed Reality; HoloLens 2
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 screen in front of each eye (binocular HMD). An extensive summary of the properties of VR HMDs is available on the XinReality wiki or on Wikipedia. HMD's are generally either "tethered" (such as Oculus Rift) to a PC that monitors tracking and undertakes the rendering, or "untethered" (such as Oculus Quest) where the unit is standalone.
HMD Name
Supported Runtimes
Oculus Rift CV1
Oculus Runtime; SteamVR
HTC Vive
SteamVR; Oculus Runtime (via Revive)