Collabora has added Google Cardboard support to Monado, the open source OpenXR runtime. The new driver lets Android users scan a QR code from their Cardboard viewer to automatically load lens distortion and field-of-view calibration parameters, enabling stereoscopic rendering and IMU-based rotational head tracking. The implementation avoids the closed-source Google ML Kit and Google Cardboard SDK as full dependencies, instead using BarcodeScannerView for QR scanning and borrowing only select header files from the Cardboard SDK. A prebuilt Android APK is available for immediate use. The work was partly funded by Collabora's 1% for the Planet program and already powers the SOMAR educational XR project, allowing classrooms to experience immersive content on affordable phone-based viewers.

5m read timeFrom collabora.com
Post cover image
Table of contents
A lightweight path to OpenXR on mobile VR viewersUsing the new QR Code feature to calibrate your deviceBuilt for accessibility — and empowering education through SOMARKeeping OpenXR open for everyone

Questions this post answers

How does Monado's Google Cardboard driver handle lens calibration on Android?

Monado's Cardboard driver lets users scan the QR code printed on their viewer using the camera. The QR code encodes the device's optical parameters, which are decoded via a protobuf schema derived from the Cardboard SDK. The `load_cardboard_distortion` function in android_sensors.c then extracts lens distortion and field-of-view parameters to configure the device automatically, without requiring manual setup. Developers building mobile XR experiences on Monado track driver updates like this on daily.dev.

Why did Monado not use the Google Cardboard SDK or Google ML Kit as a dependency?

The full Google Cardboard SDK was deemed incompatible with Monado due to difficult integration, excessive code weight, and unwanted Android-specific dependencies. Google ML Kit was rejected because it is closed-source, which conflicts with Monado's open source requirements. Instead, Monado borrows only select header files from the Cardboard SDK and uses BarcodeScannerView, a lightweight open source library, for QR scanning. Open source XR developers weighing dependency trade-offs find relevant decisions like this on daily.dev.

3 Impressions