WebXR loader spinning forever in Quest w/ Oculus Browser

When you click Enter XR, the loader in Quest just spins and nothing happens.

The same site works fine on Rift+Firefox.

I enabled remote debugging and there are no errors in the console.

Has anyone encountered this? There are zero errors or warning from Oculus Browser so it’s very difficult to debug.

Using r110

I’ve tested some official examples with the latest three.js version r117 just yesterday on an Oculus Quests. Everything runs as expected with latest Oculus Browser.

Have you tried to update three.js?

I figured it out. The hard way. This was very difficult to debug because no error was thrown.

I was using requestAnimationFrame instead of setAnimationLoop in the render loop.

I updated to the new threejs and noticed now it says [WEB XR NOT AVAILABLE]. So newer threejs supports Quest+OculusBrowser but not Rift+FirefoxBrowser?

Side question, this “module” structure for threejs is extremely annoying. Is there a way to use newer threejs without modules.

What do you mean with module structure? ES6 modules?

That’s correct. Firefox doesn’t support WebXR yet, unfortunately.

What do you find annoying about it?

Hmm, true… We may be able to help with that actually.

1 Like

Re, Modules.

For example, if I don’t set up a threejs project using the exact folder structure as you, do I need to edit the directories in every file?

For example, how would you include OrbitControls (or any threejs import) if you have a totally different file structure without editing it?

Maybe I am missing something here? I am kinda new to ES6 modules.

Your import modules via the npm package and then bundle everything (library + app code) into a single build file. This file can then be included into an index.html. An exemplary project setup with rollup looks like so: https://github.com/Mugen87/three-jsm

The other option is to strictly import all three.js dependencies over a single CDN e.g.:

https://cdn.jsdelivr.net/npm/three@0.117.1/build/three.module.js
https://cdn.jsdelivr.net/npm/three@0.117.1/examples/jsm/loaders/GLTFLoader.js
https://cdn.jsdelivr.net/npm/three@0.117.1/examples/jsm/controls/OrbitControls.js

2 Likes

Interesting. So would you say it would be more accessible for a wider audience to use r110 for webXR now? Still, lots of people using Rift+Firefox since they didn’t release Oculus Browser for Rift (for reasons I don’t understand).

Since I am not using node I will try the second option. Thanks.

I was hoping Firefox Desktop would have added WebXR support by now…