Controller-free hand tracking now works properly in OpenXR Unity apps on Quest.
This means apps can now use both hand tracking and passthrough at the same time, since the Passthrough API requires OpenXR.
OpenXR is the open standard API for VR and AR development. It was developed by Khronos, the same non-profit industry consortium managing OpenGL. OpenXR includes all the major companies in the space such as Meta, Sony, Valve, Microsoft, HTC, NVIDIA, and AMD – but notably not Apple.
The Quest platform first got “prototype” support for OpenXR in April 2020, and in June 2020 the Oculus Store started accepting OpenXR apps. In December 2020 Facebook started recommending game engines use OpenXR, and in July of this year the company deprecated its proprietary Oculus API in favor of OpenXR.
But until now, all releases of the Oculus Integration for Unity have included a caveat:
Support for hand-tracking is currently restricted to the baseline OpenXR spec. Therefore, additional hand-tracking features such as collision capsules, hand input metadata, and runtime hand meshes are not yet supported. In addition, there is a known compatibility issue with the thumb trapezium bone (Thumb0) in the OpenXR-based OVRPlugin.
Attempting to use hand tracking with OpenXR resulted in the thumb being in the wrong position, as well as the features missing mentioned above.
With release v35, this limitation notice is now gone and the thumb appears mostly correct. I say mostly because the thumb still doesn’t fully make contact with the index finger when pinching, but the gap is very small.
You can expect Oculus Store and App Lab apps to start shipping updates with hand tracking and passthrough API in the coming weeks.