WebXR not working on multiple devices

Hey everyone,
for some reasone none of the three.js based WebXR experiences (including the examples from threejs.org) seem to work with my devices. I tried self-built web-apps hosted with https and servez(https://greggman.github.io/servez/) and the three.js examples. With the three.js base apps i allways get “WebXR not available” at the bottom. All the other WebXR pages seem to work fine.
I tried a number of different devices and browsers as well:

  1. Oculus Quest with the included browser -> “WebXR not available” on three.js examples, all other WebXR pages working fine
  2. HTC-Vive with Firefox 72.0.1 64x -> “WebXR not available” on three.js examples, all other WebXR pages working fine
    1. HTC-Vive with Chrome 79.0.3945.130 with XR and VR flags enabled -> “VR not supported” on all pages

I read through the other posts on this forum regarding this issue and i think it is working for some. I need this for some proffesional work so i would be glad if someone had any advice for me. Thanks in advance!

1 Like

I’m unable to reproduce this on my Oculus Quest with Oculus Browser. All examples from the official website work just fine. Please ensure, that you update the OS and the respective browser to the latest version.

Firefox does not support WebXR, yet.

It should not be necessary to enable flags since the WebXR device API is supported by default since Chrome 79.

1 Like

Thank you for the quick reply! As you said updating the Quest OS did the trick. I read that firefox is not supporting WebXR yet but since it is working with other examples i assumed it did it anyways. Does it simply fall back to WebVR then? For Chrome i need to try again since because this should work for the desktop headsets. I’m not sure what is missing there… Thanks again for coming up with a fix quickly!

three.js has stopped WebVR support with R112. AFAIK, WebVR support will be removed in Chrome with next release 80. So I does not make sense to use this API anymore.

I’m trying to get the examples working with my HTC Vive, but I’m getting the same problem.

The examples load r114 at the time of this reply. I see that WebVR support was brought back and that’s probably why it works on chrome android? I’m not sure what I’m doing wrong, but since the immersiveweb example works, I assume three.js examples should work on firefox too. Unfortunately, I don’t have an oculus as an alternative. Any ideas?

Nope since three.js just uses WebXR API without a polyfill. And Firefox does not support WebXR, yet.

Have you tried it with Firefox Reality?

Found the solution for HTC Vive here https://github.com/immersive-web/webxr-samples/issues/43
Needed to disable “XR device sandboxing” in chrome flags

This worked fine for me with HTC Vive as well. Now with a newer chrome version (83.0.4103.116) the flags are gone and it’s not working anymore. Anyone has a solution?

Edit: In the new chrome versions the flags are hidden so you have to start chrome with certain commandline options to enable/disable certain flags as described here:

1 Like

Well, this solution works with Occulus Rift S if anyone else faces the same issue. Just start chrome with the following command line options

–disable-features=XRSandbox --enable-features=oculus --force-webxr-runtime=oculus

I wonder if anyone can comment or advise on the following:
I tried the Mozilla XRViewer running on my iPhone 7 plus under iOS 13.5 and now 13.6 / the three.js examples crash out the viewer instantly - the immersive web examples sometimes crash and sometimes half work. By half work I mean that binocular images are presented but do not adjust properly when the phone is rotated and do not present a 3D stereo image properly. Has anyone experience running the Mozilla XRViewer under 13.5 /13.6 iOS. What is the best way forward to see stereo VR three.js on an iOS at the moment. The only thing I can get to work properly is A frame. Is this the best way forward?

1 Like