Virtual Reality For The Web
Three years ago, on the crowdfunding website Kickstarter, a project launched that captured the imagination of gamers: the Oculus Rift virtual reality display.
While previous attempts to make a consumer-friendly headset to display virtual worlds had failed, Palmer Lucky’s Oculus seemed to address the problems well and was quickly funded. The event reignited interest in making virtual reality games, applications, and tools.
Two years and two versions of the Rift hardware later, Oculus was bought by Facebook for $2bn. Until now Adobe’s QuicktimeVR technology and Google’s StreetView were really the only virtual reality technologies that had had any significant impact on the internet. Facebook believes that will change. It’s not alone.
Google has gone to great lengths to make virtual reality on the web a reality. It’s created projects like high quality, big budget VR movies displayed in their Google Spotlight Stories Android app; VR Chrome Experiments to showcase using web technology to build virtual worlds; and its Google Cardboard VR headset (which costs about $5 and is made from cardboard).
Google’s subsidiary YouTube has implemented VR films in its site too, made with Google’s Jump camera comprised of 16 consumer cameras mounted in a circle. Mozilla, developers of the Firefox web browser, have made a push in to VR too, with support for the WebVR protocol and their own MozVR content that use a special version of Firefox to surf the web with an Oculus Rift headset.
Other big companies are also investing in VR and VR-like technologies. Microsoft Hololens is a project that uses a headset to display virtual objects in the real word, and Magic Leap raised $500mn from Google and others to build something similar.
All of these new VR tools mean that web developers have started to experiment with VR displays for interacting with web content. Modern mobile browsers already have the majority of the necessary interfaces that a VR headset affords the developer – position tracking by accelerometers, a camera for “augmented reality” and WebGL to display hardware accelerated 3D.
The popular three.js library, used for making interactive 3D animations, now includes a StereoEffect.js plugin for taking a 3D scene and rendering it as two subtly different images for each eye in a VR headset.
The next few years will be a test of whether or not people want to use virtual reality in their homes. If it becomes popular, driven by VR movies or gaming, web developers will already be able use it to build immersive online experiences.