OpenXR
| OpenXR | |
|---|---|
| File:OpenXR logo.svg | |
| Developer | Khronos Group |
| Stable release | 1.1.38
/ April 15, 2024[1] |
| Repository | registry |
| Engine | |
| Operating system | Cross-platform |
| Platform | Cross-platform |
| Type | Virtual reality and augmented reality API |
| License | Apache License 2.0[2] |
| Website | www |
OpenXR is an open-source, royalty-free standard for interfacing with virtual reality and augmented reality devices.[3] It is developed by a working group managed by the Khronos Group consortium. OpenXR was announced by the Khronos Group on February 27, 2017, during GDC 2017.[4][5][6] A provisional version of the standard was released on March 18, 2019, to enable developers and implementers to provide feedback on it.[3] On July 29, 2019, OpenXR 1.0 was released to the public by Khronos Group at SIGGRAPH 2019[7] and on April 15, 2024, OpenXR 1.1 was released by Khronos.[8]
Reviewers of the 0.90 provisional release considered that the aim of OpenXR was to "Solve AR/VR Fragmentation".[9]
Architecture
[edit | edit source]The standard provides an API aimed for application developers targeting virtual reality and augmented reality devices. This enables developers to build applications that will work across a wide variety of devices.[10]
The fundamental elements of this API are:
XrSpace: a representation of the 3D spaceXrInstance: a representation of the OpenXR runtime- System and
XrSystemId: a representation of the devices, including the virtual reality or augmented reality devices and controllers XrActions: used to handle user inputsXrSession: represents the interaction session between the application and the user
The full specification can be found via the OpenXR Registry on GitHub.
Implementations
[edit | edit source]The Khronos Group maintains the list of OpenXR-conformant platforms and products.[11]
Currently conformant OpenXR platforms are:
- Acer's Spatial Display Series[12]
- Bytedance's Neo3 and PICO4 [13]
- Canon's MREAL platform display and headsets[14]
- Collabora Monado Runtime for GNU/Linux, with the release of version 21.0.0 in February 2021[15]
- HTC VIVE Cosmos and VIVE Focus 3, part of HTC's VIVERSE ecosystem[16]
- Magic Leap 2[17]
- Meta's PC platform and its Quest line of devices, with full support OpenXR 1.0 added in July 2021[18][19]
- Microsoft HoloLens 2 and the Windows Mixed Reality headsets [20]
- Qualcomm Snapdragon Spaces XR Developer Platform[21]
- Sony's Spatial Reality Displays (ELF-SR1 & ELF-SR2)[22]
- Valve SteamVR, since version 1.16 in February 2021 [23]
- Varjo headsets
Game and rendering engine support
[edit | edit source]Support for OpenXR application development can be found in the following engines:
- Unreal Engine, with initial support in the 4.24 [24]
- Blender, with initial support in the 2.83 LTS release from June 2020[25]
- Unity, with initial support in the 2020.2 release from December 2020[26]
- Godot, with initial support in the 4.0[27]
- Autodesk VRED[28]
- StereoKit, developed around OpenXR[29]
- Nvidia Omniverse[30]
- Unigine since version 2.19 from August 2024.[31]
- S&box[32]
Browser support
[edit | edit source]- Google Chrome and Microsoft Edge web browsers both enable WebXR support using OpenXR by default using the Chromium code base[33]
Roadmap
[edit | edit source]After the release of OpenXR 1.0, progress will likely be driven through the development of extensions to the core API.[34] This can be seen in the subsequent release of extensions for support of hand tracking and eye gaze tracking.[35] As implementers and developers get more experience with the extensions, they could get integrated into the core OpenXR API in future releases.
Contributors
[edit | edit source]The following companies are listed by Khronos as public supporters of OpenXR:[36]
- Acer
- AMD
- Antilatency
- AREA
- ARM Holdings
- Collabora
- DisplayLink
- Epic Games
- HP
- Holochip
- HTC
- Huawei Technologies
- Imagination Technologies
- Intel Corporation
- LG Electronics
- Logitech
- LunarG
- Magic Leap
- MediaTek
- Meta
- Microsoft
- Mozilla
- Nokia
- Nvidia
- PicoVR
- Pluto VR
- Qualcomm
- Razer Inc.
- Samsung Electronics
- Sony Interactive Entertainment
- Tobii Technology
- Ultraleap
- Unity Technologies
- Valve
- Varjo
- VeriSilicon
- VIA Alliance Semiconductor Co., Ltd.[37]
- zSpace
See also
[edit | edit source]- OpenVR – Software development kit and application programming interface by Valve
- WebXR – Experimental JavaScript API for augmented/virtual reality devices
Proprietary counterparts
[edit | edit source]- ARCore – Software development kit for building augmented reality applications
- ARKit – Augmented reality API for Apple platforms
References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).