Bringing Mixed Reality to the Web
Today, Mozilla is announcing a new development program for Mixed Reality that will significantly expand its work in Virtual Reality (VR) and Augmented Reality (AR) for the web. Our initial focus will be on how to get devices, headsets, frameworks and toolsets to work together, so web developers can choose from a variety of tools and publishing methods to bring new immersive experiences online – and have them work together in a fully functional way.
In 2017, we saw an explosion of ways to create and experience Virtual Reality (VR) content on the web. Notable events included:
- Mozilla shipped the WebVR API in Firefox
- Oculus browser and Samsung Internet shipped WebVR for Gear VR
- Microsoft is shipping WebVR in Edge
- VR frameworks A-Frame and ReactVR gained massive popularity
- A wide variety of tools such as PlayCanvas, Vizor, WebVR Studio, and Sketchfab launched to address the growing AR/VR development community
So the VR space is coalescing nicely, bringing VR models, games, and experiences online for anyone to enjoy and reuse. Unfortunately, the same is not yet true for AR. For instance, there is no way today to create a single web page that can be viewed by all these device types:
- VR devices
- Desktop AR devices like the Meta 2
- Mobile devices that use iOS ARKit or Android ARCore
- Standalone AR headsets like Microsoft Hololens and ODG R9 smartglasses
The Mixed Reality program aims to change that. We plan to work on the full continuum of specifications, browser implementations, and services required to create open VR and AR web experiences.
Proposing a WebXR API
We have created a draft WebXR API proposal for providing access to both augmented and virtual reality devices. The WebXR API formalizes the different ways these technologies expose views of reality around the user, and it exposes concepts common in AR platforms such as the Anchors found in Hololens, ARKit, and ARCore. You can take a look at an early implementation of this proposal, complete with examples that run on a range of AR- and VR-capable browsers.
WebXR is designed to make it easy for web developers to create web applications that adapt to the capabilities of each platform. These examples run in WebVR- and AR-enabled browsers, including desktop Firefox and experimental browsers such as one supporting ARCore on Android (although each small example is targeted at AR or VR for simplicity). We have developed an open-source WebXR Viewer iOS application that uses ARKit to implement AR support for these WebXR examples; it will be available in iTunes soon, but you can compile it yourself now if you have an iOS Developer account. We will be offering support for more browsers in the future, and welcome others to contribute to this effort and provide feedback on the proposal on GitHub.
Growing support for 3D Browsers
We are also expanding our browser support for Mixed Reality on the web. On desktop, we continue to evolve Firefox with broader 3D support, including recently announcing see-through AR support for Meta’s AR headset.
We are also developing a 3D mobile browser platform, based on our Servo project, that enables a new class of Mixed Reality headworn displays, expected to come to market in the near term. We will share more on this work soon, but some early teases include Servo DOM-to-Texture support and integrated support for Qualcomm’s Snapdragon 835 standalone VR hardware.
Ways to Contribute
We look forward to your feedback on WebXR, as well as engaging with hardware and software developers who might wish to collaborate with us in this space or Servo. Stay tuned for upcoming updates from us on more ways to produce WebVR content from popular authoring tools, experimental browser features for better access to the GPU, in-headset content discovery, and open, cross-platform social services.