I’m currently working on an app that could be used to visualize proprietary molecular structures (e.g., drugs in development). I’d like to minimize the number of calls to any remote server so as to not concern my users. I’d also like my app to work in off-line mode if possible.
By default, WebXR downloads models of the WebXR controllers from a github repo (WebXR Input and Controller support - Babylon.js Documentation). I’d like to not depend on that repo. So I use
BABYLON.WebXRMotionControllerManager.PrioritizeOnlineRepository = false;
Here’s an example: https://www.babylonjs-playground.com/#L88WNE#1
I’ve had success using this approach on an HTC Vive and Oculus Quest. But when I try to use it on an Oculus Go, the controller doesn’t load, and I get this error:
When I comment out
BABYLON.WebXRMotionControllerManager.PrioritizeOnlineRepository = false; it works fine (see, for example, https://www.babylonjs-playground.com/#L88WNE#2).
I understand that the Oculus Go controller is not included in the local controller definitions that ship with babylonjs: WebXR Input and Controller support - Babylon.js Documentation
But “Generic-Button controller” is on that list, so I’m surprised it doesn’t default to that when it can’t find the correct controller.
It would be even better if I could include the relevant files from the github repository (GitHub - immersive-web/webxr-input-profiles: WebXR Gamepad assets, source library, and schema) with my app so I could use the many controllers listed there without having to ping their server.
Does anyone have any solutions for this kind of problem? Thanks for your help!