Bringing Virtual Reality to the Web platform
The world of Virtual Reality in 2016 feels a lot like the world of Mobile in 2007: a lot of expectations around a new way to interact with users, a lot of innovations in hardware and software to make it a reality, and a lot of unknowns as to how these interactions would develop.
Having played a tiny role in making the Web a better platform for mobile devices, and with the feeling that Progressive Web Apps are finally bringing us where we need to be in that space, I have been looking in the past few months at where the Web needs to be to provide at least one of the major platform for Virtual Reality experiences.
Beyond the expected application of VR to gaming and video consumption, many innovative use cases have emerged to make Virtual Reality a compelling platform for e-commerce, news (see for instance NYTVR), learning and discovery, communication and social inclusiveness, engineering, and many other use cases.
As such, VR feels to me like a big new set of opportunities for creativity and expression, with its more immersive and more direct interactions. The Web ought to be able to cater for this space of innovation.
The Web comes with well-known strengths in that space:
- As the number of headsets and other associated VR devices grows by the day, the plasticity of the Open Web Platform to adapt content and services to a great many of device types, varying in processing power, resolution, interactions and operating systems is no longer to demonstrate, and is certain to bring content and service providers a uniform platform on which to build.
- As wearing a headset tends to isolate users from their external environments, there is a risk that VR experiences remain limited to intense but somewhat exclusive type of content or applications (e.g. games or videos); but the Web has proved excellent at providing an on-ramp to engaging users (as Progressive Web Apps demonstrate). While it's hard to imagine oneself immersing into a real-estate VR experience while looking for a house, the idea of starting a VR experience while browsing a particularly appealing house on a real-estate Web site seems much more compelling.
- The Web was created first and foremost to facilitate sharing, and the continued demonstration of the power of URLs to enable this some 25 years after its inception is a testament to the robustness and strength of that approach. VR would hardly be the first ecosystem to benefit from the reach and social effect enabled by the Web.
- Finally, as a fundamentally open platform, that anyone can use, build on and contribute to building, the Web can ensure that the new space of creativity enabled by VR is not stifled by the rules and constraints of closed and proprietary platforms.
But to make these strengths applicable to VR, the Web obviously needs to provide the basic technical bricks that are necessary to build VR experiences.
Fortunately, many such technologies are already in place or are making good progress toward widespread development.
WebGL has provided the basic layer for 3D graphics for a number of years and has now reached widespread deployment.
The Gamepad API brings the necessary interface to the various type of devices used to navigate in virtual experiences.
The Web Audio API features, among its many amazing capabilities, spatialized audio, providing a critical component to truly immersive experiences.
But critically, the possibility of projecting graphics to VR headsets, taking into account their optical and geometrical specificities, has been recently enabled experimentally via the WebVR API that Mozilla started (recently releasing it in its nightly builds), soon after joined by Google and Samsung with their respective browsers, and recently joined by Microsoft.
While this collection of APIs can easily be perceived as a steep learning curve for many Web developers, another project pushed by Mozilla, A-Frame, demonstrates the expressivity of encapsulating a lot of such APIs in Web Components. With A-Frame, a few lines of HTML-like markup suffice to create a first VR-enabled scene, including all the plumbing needed to make the experience of switching from regular browsing to the more immersive view.
WebVR is being developed in a W3C Community Group, but is not on the W3C standardization track yet. It will be one of the core topics of the upcoming W3C Workshop on Web & Virtual Reality I am organizing next month (October 19-20) in California. The goal of that event (open to all practitioners of the field) will be to establish the overall roadmap to standardization to make the Web a robust platform for Virtual Reality.
Let's all work together to make sure Web & VR grow together harmoniously!