Published on 22 Aug 25 by Lynx
Lynx is a high-tech company focusing on delivering Mixed Reality headsets for AR & VR. We develop hardware for a living, but our software team is bigger than the hardware team as we have to take care of our AOSP-based OS running on Lynx-R1, firmware, drivers etc to enable an OpenXR compatible runtime.
One of our core principles is to be as open as possible and give back to the AR/VR community. Today, we are proud to release our work around 6DoF, a multiple-years effort. 6DoF, or SLAM, is one the core perception features needed for immersive AR/VR. It enables the headset to understand the user’s movements and give the ability for 3D virtual objects to appear fixed in space.
This is experimental and is used by very specific Lynx customers. The default perception algorithm used in Lynx-R1 is the 6DoF algorithm provided by Qualcomm.
Open-source SLAM algorithms are very good, and have been good for the last 8 years or so. You can see from this benchmark that there is a large choice to pick an algorithm with a good range of sensor configurations. The real problem with 6DoF has been the productization of it: including it in the runtime, managing edge-cases, recovery, etc.
At Lynx, we started from the famous ORB-SLAM3 algorithm. Our work started as early as ORB-SLAM2. We took ORB-SLAM3 code and made it compatible for Android, and more precisely Android running with a Qualcomm chipset.
The code is released with GPLv3 license, to enable the community to use it but forcing other companies to keep it open-source so we can all benefit from this starting point and the potential follow-ups.
You can build a .so library that will take in input images and output a 6DoF pose. There is a part of our program that uses proprietary Qualcomm-specific instructions to accelerate some computer vision functions. The benefit is that the system is real time, but the inconvenience for now is that these functions are obfuscated behind a wrapper. It is very feasible to build the library for Android still but without this Qualcomm specific functions and replace them with OpenCV-like equivalents.
This version has been optimized to run at 90 fps without IMU input and no concurrence with hand-tracking and default 6DoF, only relying on XR2 Gen 1 hardware. The camera resolution is 640x400 and is hardcoded in the Qualcomm-specific part so if you want a different image resolution, you need to use the library without the specific Qualcomm functions or we can recompile for you.
The code is separated in two projects:
- The ORB-SLAM3 library for Android (github)
- The Lynx specific code around the lib, with a demo app that can run on Lynx-R1. (github)
You can find the documentation for the projects on our Portal.
This is a first release, and we welcome community feedback on this work. To that end, feel free to communicate with the relevant people from Lynx about your specific demands or recommendations/contributions using the address system-team+6dof@lynx-r.com.
This work was made possible thanks to the extraordinary contribution of one of our engineers Gaston Rouquette you might also know as VoHeLi from our unofficial Lynx Discord, with the help and coordination of the Lynx System team.