diff --git a/index.md b/index.md index 79052f2a8e1523a65f241d9690470e0a73a8ba21..fd786133f3322472185f0a7bdfb05230d5238a54 100644 --- a/index.md +++ b/index.md @@ -14,14 +14,19 @@ layout: main Monado is an open source XR runtime delivering immersive experiences such as VR and AR on mobile, PC/desktop, and other devices. Monado aims to be a complete and conformant implementation of the OpenXR API made by Khronos. The project -is currently being developed for GNU/Linux and aims to support other operating -systems such as Windows in the near future. +is currently being developed for GNU/Linux, Android and Windows. + +Most of the included VR hardware drivers are limited to Linux at this time. + +On Android Monado comes with support for the built in IMU of most smartphones to +enable 3DoF experiences, similar to Google Cardboard. + +On Windows, mostly simulated HMD and controller drivers are usable. Direct Mode +access for existing HMDs when not using NDA APIs remains a major blocker. ## Important links * Source code: <https://gitlab.freedesktop.org/monado/monado> -* GSoC 2023: [Proposal guide](https://monado.freedesktop.org/gsoc-proposal-guide.html) - and [project ideas](https://monado.freedesktop.org/gsoc-2023.html). * Matrix space: <https://matrix.to/#/#monado:matrix.org> * Discord server: <https://discord.gg/8RkJgRJ> * IRC channel: [#monado](https://webchat.oftc.net/?channels=monado) on @@ -30,8 +35,8 @@ systems such as Windows in the near future. ## Highlights * [Officially an OpenXR conformant implementation](https://www.collabora.com/news-and-blog/news-and-events/monado-2100-officially-conformant-openxr-implementation.html) of the [OpenXR API](https://www.khronos.org/openxr) - * Supports Vulkan, OpenGL and Headless applications - * Full support for Local, Stage and Action space relations + * Supports Vulkan, OpenGL & ES, D3D11 (Windows only), D3D12 (Windows only), and Headless applications + * Full support for Local, Stage, Local Floor, and Action space relations * Action based input * OpenXR Extensions: * XR_KHR_convert_timespec_time @@ -43,15 +48,17 @@ systems such as Windows in the near future. * XR_KHR_swapchain_usage_input_attachment_bit / XR_MND_swapchain_usage_input_attachment_bit * XR_MNDX_egl_enable - Alternative to XR_KHR_opengl_enable and XR_KHR_opengl_es_enable on Desktop * XR_KHR_android_create_instance, XR_KHR_loader_init and XR_KHR_loader_init_android - android specific -* 6DoF tracking, initial implementation for PSVR and PS Move controllers - * Outside-in tracking framework with stereo cameras such as PS4 camera - * Work in progress on outside-in tracking with mono cameras such as consumer webcams + * And many more. See the EXTENSIONS list in [this script](https://gitlab.freedesktop.org/monado/monado/-/blob/main/scripts/generate_oxr_ext_support.py) for the full list of extensions Monado can currently support +* 6DoF tracking + * PSVR and PS Move controllers: Outside-in tracking framework with stereo cameras such as PS4 camera + * Work in progress on outside-in tracking with mono cameras such as consumer webcams + * Inside-out (VIO/SLAM) tracking using [an improved basalt fork](https://gitlab.freedesktop.org/mateosss/basalt/) with all supported stereo or more cameras such as Windows Mixed Reality, Oculus Rift S, Valve Index * Video stream and filter framework for tracking components * [Initial Android support](https://www.collabora.com/news-and-blog/news-and-events/monado-update-passing-conformance-android-support-and-more.html) * Cardboard viewer * XR Compositor * [Direct mode on AMD, NVidia and Intel GPUs]({% link direct-mode.md %}) - * Mesh based distortion with generators for Panotools and Vive/Index parameters + * Mesh based distortion with generators for various supported HMDs such as Vive/Index parameters, Windows Mixed Reality, OpenHMD's Panotools * Supports multiple simultaneous projection layers and quad layers * Driver framework allowing easy integration of existing drivers * Out of the box support for multiple XR devices with open source drivers @@ -60,48 +67,50 @@ systems such as Windows in the near future. These are the XR devices that are natively supported with open source drivers in Monado -| Device | Rotation | Position | Distortion Correction | Additional Notes | -|:------:|:--------:|:--------:|:---------------------:|:----------------:| -| OSVR HDK 1.x, 2.x | Yes | No | No | Requires workaround on AMD GPUs[^yuv_edid]. Firmware fix available[^hdk_edid_fix] | -| HTC Vive | Yes | LH 1.0: No | Yes | Supported by OpenHMD, Monado "vive", or Monado "survive" | -| HTC Vive Pro | Yes | LH 1.0: No, LH 2.0: Early WIP| Yes | Supported by OpenHMD, Monado "vive", or Monado "survive" | -| Valve Index | Yes | LH 1.0: No, LH 2.0: Early WIP | Yes | Supported by Monado "vive", or Monado "survive" | -| North Star | Yes, with Intel Realsense T265* | Yes, with Intel Realsense T265* | Yes, 3D and 2D/Polynomial | | -| Oculus Rift S | Yes | Experimental*, for headset | Imperfect | Controllers are rotationally tracked only | -| PSVR | Yes | [Yes, with PS4 camera or generic stereo camera]({% link positional-tracking-psmove.md %}) | Yes | distortion correction is WIP. Requires workaround on AMD GPUs[^yuv_edid]. | -| Playstation Move | Yes | [Yes, with PS4 or generic stereo camera]({% link positional-tracking-psmove.md %}) | - | rotational drift correction is WIP | -| Hydra Controller | Yes | Yes | - | | -| Daydream Controller | Yes | - | - | | -| DIY arduino controller | Yes | - | - | | -| Windows MR | Yes | Experimental* | Yes | HMD only, no controllers. Tested: HP Reverb, HP Reverb G2, Samsung Odyssey, Lenovo Explorer, others: *maybe*. | -| Xreal Air | Yes | - | - | | -| Xreal Air 2 | Yes | - | - | | -| Xreal Air 2 Pro | Yes | - | - | | - -\* _Experimental 6DoF tracking support with external SLAM/VIO systems is upstreamed but still being worked on. Tested with RealSense D455 and Samsung Odyssey+, Reverb G2, Oculus Rift S._ +| Device | Tracking | OS | Notes | +|:------:|:--------:|:---:|:-----:| +| OSVR HDK 1.x, 2.x | 3DoF | Linux | Requires workaround on AMD GPUs[^yuv_edid]. Firmware fix available[^hdk_edid_fix]. No distortion correction, [distortion correction WIP available](https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2198]) | +| HTC Vive, HTC Vive Pro, Valve Index ("vive driver)| 3DoF, or 6DoF with Monado Basalt (Valve Index only) | Linux | | +| North Star | 6DoF with Intel Realsense T265 on-device tracking, 6DoF with Monado Basalt | Linux | Both 3D and 2D/Polynomial distortion correction supported. | +| Oculus Rift S | 6Dof with Monado Basalt | Linux | Controllers are 3DoF only [WIP 6DoF controller tracking branch available](https://gitlab.freedesktop.org/thaytan/monado/-/commits/dev-constellation-controller-tracking/). Imperfect distortion correction. | +| PSVR | 3DoF, or [6DoF with PS4 camera or generic stereo camera]({% link positional-tracking-psmove.md %}) | Linux | distortion correction is WIP. Requires workaround on AMD GPUs[^yuv_edid]. | +| Playstation Move | 3DoF, or [6DoF with PS4 or generic stereo camera]({% link positional-tracking-psmove.md %}) | Linux | rotational drift correction is WIP | +| Hydra Controller | 6DoF | Linux | 6DoF tracking on device in firmware | +| Daydream Controller | 3DoF | Linux | | +| DIY arduino controller | 3DoF | Linux | | +| Windows MR | 3DoF, or 6DoF with Monado Basalt | Linux, [Windows WIP, no direct mode](https://gitlab.freedesktop.org/monado/monado/-/issues/466#note_2733388) | Tested: HP Reverb, HP Reverb G2, Samsung Odyssey, Lenovo Explorer, others: *maybe*. Controllers are 3DoF only [WIP 6DoF controller tracking branch available](https://gitlab.freedesktop.org/thaytan/monado/-/commits/dev-constellation-controller-tracking/) | +| Xreal Air | 3DoF | Linux | | +| Xreal Air 2 | 3DoF | Linux | | +| Xreal Air 2 Pro | 3DoF | Linux | | + + +\* [Monado Basalt](https://gitlab.freedesktop.org/mateosss/basalt/): _Experimental 6DoF tracking support with external SLAM/VIO systems._ Monado also leverages the open source drivers developed by the OpenHMD community for further HMD support. + See the [OpenHMD support matrix](http://www.openhmd.net/index.php/devices/) -for a list of devices supported through OpenHMD. +for a list of devices supported through OpenHMD. Most notably, OpenHMD supports +the Oculus Rift CV1 and Nolo CV1. The Direct-Tek WVR2 / VR-Tek Windows VR Glasses with the 2560x1440 resolution supported through OpenHMD requires a workaround on AMD GPUs[^yuv_edid]. -Other 3rd party open source drivers Monado currently wraps are +XR devices that are supported by wrapping 3rd party open source drivers -| 3rd party driver | Device | Rotation | Position | Distortion Correction | Additional Notes | -|:----------------:|:------:|:--------:|:--------:|:---------------------:|:----------------:| -| [libsurvive](https://github.com/cntools/libsurvive) | HTC Vive | Yes | Yes | Yes | [survive]({% link libsurvive.md %}) driver must be enabled at build time | -| [libsurvive](https://github.com/cntools/libsurvive) | HTC Vive Pro | Yes | Yes | Yes | [survive]({% link libsurvive.md %}) driver must be enabled at build time | -| [libsurvive](https://github.com/cntools/libsurvive) | Valve Index | Yes | Yes | Yes | [survive]({% link libsurvive.md %}) driver must be enabled at build time | -| [librealsense](https://github.com/IntelRealSense/librealsense) | T265 realsense | Yes | Yes | - | proprietary on-device SLAM tracking | +| Device | 3rd party driver | Tracking | Additional Notes | +|:------:|:----------------:|:--------:|:--------:|:-----:| +| HTC Vive, HTC Vive Pro, Valve Index | [libsurvive](https://github.com/collabora/libsurvive) | 6DoF with Lighthouse 1.0 and 2.0 | [survive]({% link libsurvive.md %}) driver must be enabled at build time | +| T265 realsense | [librealsense](https://github.com/IntelRealSense/librealsense) | 6Dof with proprietary on-device SLAM tracking | Proprietary 3rd party drivers can also be integrated. Monado currently wraps these -| proprietary 3rd party driver | Device | Rotation | Position | Distortion Correction | Additional Notes | -|:----------------------------:|:------:|:--------:|:--------:|:---------------------:|:----------------:| -| Ultraleap v2 | Leap Motion Controller | Yes | Yes | - | | +| Device | proprietary 3rd party driver | Tracking | Additional Notes | +|:------:|:----------------------------:|:--------:|:----------------:| +| Leap Motion Controller | Ultraleap v2 | 6DoF Hand Tracking | | +| HTC Vive, HTC Vive Pro, Valve Index | steamvr_lh | 6DoF with Lighthouse 1.0 and 2.0 | Wraps SteamVR's proprietary lighthouse tracking | + +See also the XR Devices table in the [LVRA Wiki](https://lvra.gitlab.io/docs/hardware/#xr-devices) that also includes WIP and out of tree drivers. ### So what does that mean?