Posted on 18/03/2019 by Jakob Bornecrantz
At the center of Monado is a fully open source OpenXR runtime for Linux. It is the component in the XR software stack that implements the hardware support, it knows how to process non standard input from HMD devices and controllers, it knows how to render to those devices and it provides this functionality via the standard OpenXR API.
But Monado is not just a runtime - beyond an open standard and an open source codebase, we want to build an ecosystem encompassing the various XR actors from the open source community and the XR industry. If you are an XR enthusiast, an open source hacker, a hardware vendor or already a major player in the XR industry, check out Monado and join our effort to make Linux a fully XR enabled platform.
For existing XR industry leaders, Monado can greatly reduce maintenance and development costs by providing a base XR platform allowing them to focus on value-add and differentiation.
For hardware vendors, Monado aims to enable them to base their products on Linux. By being an open source platform, Monado can reduce the barrier to entry and time to market for building XR devices or customer-centric XR products.
For enthusiasts and startups, Monado hopes to provide a community to work with and a framework to experiment with, test and optimize their XR technologies and components across a variety of devices and software implementations.
Collabora have long been major contributors to desktop, mobile and graphics infrastructure across the spectrum of open source and Linux communities. Members of the Collabora XR team have been contributing alongside the other industry group members at Khronos to the OpenXR working group since its formation two years ago, as well as dedicating resources to develop the Monado codebase.
One of the core strengths at Collabora is working with Linux based mobile devices, which is a core requirement for AR. As such, a primary focus around Monado will be to integrate it into one or several easily accessible SoC based mobile platforms. We plan on doing this with a fully open driver stack, from the HMD to the GPU. We will also be supporting desktop, primarily targeting VR use cases and camera based see-through.
Another focus is to support as many VR and AR devices as possible - starting with the cheaper, easily accessible ones to enable contributor and user growth. For example, project North Star already has a good hardware hacker community around it and could be a great initial AR device to support. We will also be looking to support the Vive Pro cameras as a quick and dirty AR solution via video see-through (even though the Vive Pro is expensive, it is relatively popular).
Now looking a bit at the current implementation, Monado is built around a Vulkan API powered compositor, supporting OpenGL and Vulkan XR applications in both extended mode (X11 desktop is extended to the HMD display and the VR compositor is implemented a fullscreen window) and direct mode (raw initialisation of HMD display device). Monado integrates hardware support from existing community development efforts such as OpenHMD and libsurvive, as well as native drivers written for Monado.
In addition, the open source nature of Monado will decrease the barrier to developing novel OpenXR extensions, device drivers and applications. We are confident that the availability of the source code for the entire stack from GPU drivers, to HMD hardware drivers, to XR middleware, provides the best possible environment for innovation and development.
Monado source code is available to download and build at https://gitlab.freedesktop.org/monado.
Below is a simple example in C demonstrating the usage of the API , a "seethrough" example using the cameras of the Vive and an OpenXR plugin for the Godot Engine.
The following diagram is a high level overview of our planned feature roadmap (click on the image for a larger view). Hopefully, by the time we release Monado 0.1, we will have all the short term features implemented and ready to go.
That's it for now, please join our mailing list, IRC/discord channels to stay tuned or help us out!
Collabora contributes elements implementing the RIST Simple Profile to GStreamer. This specification adds retransmissions to RTP streams…
Next week, Collaborans will be in Bangkok, Thailand, to participate in the 25th edition of Linaro Connect, a gathering of the world's leading…
Following the release of the OpenXR 0.90 Provisional Specification by The Khronos Group, Collabora is proud to announce Monado, an open…