-
Notifications
You must be signed in to change notification settings - Fork 52
State of WebXR
WebXR support has been a long time coming, and now it's finally here, but it's still a very confusing landscape. This page attempts to document what devices are known to work, and what special setup may be needed to make them work.
Currently, the primary front-runners for WebXR support are all Chromium-based. Google Chrome and Microsoft Edge are both known to generally support WebXR, but read on to see notes about specific devices. If your underlying system is already set up for desktop VR and you've got an OpenXR-compatible headset connected to your computer, you can load the site in your regular browser and either jump directly into an immersive VR session, or start off exploring in 2d and upgrade to immersive VR at any point, by clicking the "Enter VR" button.
On the Quest, Oculus Browser (also Chromium based, but with a custom WebXR implementation) has an excellent implementation of WebXR which works pretty reliably. Note of course that since this is mobile-class hardware, rooms have to be specifically optimized in order to run well on the Quest, so many experiences built for desktops can still cause the Quest to get really unstable, and sometimes hard rebooting the device is necessary.
Firefox DOES NOT support WebXR, and as I understand it, does not currently have a team working on it. They're still shipping with the old WebVR API though, and it is possible to run WebXR content in Firefox using the WebXR polyfill. Currently (2/14/21) JanusWeb has some rendering issues which prevent the WebXR polyfill from displaying properly, but these should be resolved soon.
Safari DOES NOT support WebXR. There are rumblings that WebXR support is being actively worked on, but until Apple officially announces something there's no telling how long it's going to be, or what it's going to look like. There are also a number of other Web APIs which Safari doesn't implement which occasionally cause the engine to stop working on iOS, so constant maintenance is required to keep even the 2d version running. Currently (2/14/21) I'm being told that iOS only renders a black screen for any JanusWeb experiences, so some debug work is needed to restore iOS support.
These devices offer a seamless WebXR experience. Just load up Oculus Browser from the apps menu, and load the site you want to load on the Quest. Sites which offer WebXR support should present you with an "Enter VR" button - just click it and you're in!
Some work is planned to make it even easier to load and authenticate experiences on your desktop or mobile and send the page directly to the Quest, but for now the biggest pain point is typing URLs and credentials into the browser in VR. Oculus has recently added support for bluetooth keyboards and mice though, so for power users at least that option is now available.
For the most part it seems that Windows Mixed Reality headsets just work out of the box with Edge and Chrome. In Firefox, WebVR support relies on SteamVR, so you'll need to install Windows Mixed Reality for SteamVR. Once this is installed, your WMR headset should be available to use with WebVR experiences (and WebXR experiences, when the polyfill is in use).
Oculus Rift support is a bit touchy. In theory, Oculus is now shipping its OpenXR implementation by default, and Chrome/Edge should be able to enumerate the device and display immersive VR experiences with tracked controllers. In practice, I've been unable to get my Rift to work with WebXR for a few months now - it was all going well until I plugged in my WMR headset, and from then on I've been unable to get Chrome or Edge to recognize the Rift. More debugging is needed - or maybe nuking everything from orbit and starting over.
Vive and Index should work out of the box with Chrome and Edge, but I haven't tested them yet myself. The same caveats about Firefox as above apply - WebXR experiences will only be able to display in VR headsets in Firefox if they implement the polyfill.
AR mode is supported by JanusWeb on ARCore-enabled Android devices in Chrome.
As mentioned above, Safari does not currently support WebXR. Currently (2/14/21), the only way to access ARKit functionality from the browser is to deliver a USDZ .reality file which iOS will handle natively. In the future Safari might get WebXR support, or JanusWeb might get USDZ export support, but as of now we don't support AR in iOS.
I don't have access to a Hololens so I'm not sure how JanusWeb's AR support works on that platform. If you have access to the device and would like to try and see how it goes, please reach out and any issues you might file would be greatly appreciated!
Same as above, if you have access to one of these devices and would like to help out with testing, it would be appreciated!