Today, the immersive web polyfill suite is comprised of several, distinct modules for remixability and extensibility:
- webvr-polyfill-dpdb: A community-owned JSON dataset of mobile device parameters, used to create correct lens distortion when rendering a stereoscopic scene. While native applications have access to physical characteristics of a mobile device, the web does not, requiring this dataset.
- cardboard-vr-display: A WebVR 1.1 implementation of stereoscopic rendering of a WebGL canvas. Uses webvr-polyfill-dpdb.
- webvr-polyfill: The WebVR 1.1 polyfill, a small wrapper around cardboard-vr-display. Will become less useful as WebXR popularity grows.
- webxr-polyfill: The WebXR Device API polyfill. Maps the WebXR API to whatever the browser supports, either native WebXR, WebVR 1.1, or cardboard-vr-display.
While support for WebXR is growing, there's still a strong need today for polyfill support. The web is responsive, accessible, and interoperable: content should work on all devices. Users can experience 3D on the web in the traditional 2D sense on desktop or mobile, view the content with an immersively with a room-based Vive, an unbounded Oculus headset, or using a mobile device with a 3DOF Google Cardboard or mobile AR platforms. Immersive technology is not equally distributed, and capabilities are inconsistent even with access to the appropriate devices. The polyfills enable the creation of experiences that work everywhere, just like the web we're used to.
The polyfills are used throughout the web, providing a consistent, immersive experience for all platforms. Some services and platforms that have used either the WebVR or WebXR polyfill are: