WebXR: A journey into the Immersive Web

By mike geyser

Elevator Pitch

We wanted infinite worlds and virtual streets, but what we got was documents and cat gifs. We have fantasised about the Immersive Web for decades. This talk will investigate what the new unified WebXR Device API is capable of, what its limitations are, and how we can build stuff today.

Description

We wanted infinite worlds, virtual streets, tactile programming, and realtime information beamed into our eyes. What we got was documents, bulletin boards and cat gifs. The idea of the web being immersive is far from new; we’ve been fantasising about it in Science Fiction for decades. The Immersive Web is the next step in that journey to unify everything that adds a sense of depth to the web. This has resulted in the creation of the new WebXR Device API, and a combination of VR and AR into one web standard. It has given rise to the idea of progressive enhancement of immersion, where a web application can tailor its experience to suit the capabilities of the device it runs on.

This talk will investigate what WebXR is capable of, what its limitations are, and how we can build stuff today. We will look at options for VR and 360 apps, the ‘magic window’, and the fresh new AR features coming to browsers.

Notes

Talk Structure

I will start the talk with a brief (and hopefully comical) introduction, and then move into discussing some of the popular culture references for immersive user interfaces. It won’t be very long, but I will cover some of the well known Sci Fi examples for VR / AR - hopefully making some references common to the audience (and build some positive association). This section will be no more than 5 minutes.

I will then segue into talking about what we can practically achieve with technology available to us. I will discuss the kinds of things you can achieve with VR and AR in devices today, how many of them are related, but how different each implementation is. I’ll then discuss the role of the web in both standardisation as well as connecting the technology with the larger world. I’ll talk about why these are all candidates for unification, and why the WebXR Device API is trying to combine them. This section will be about 20 minutes.

The next section will show demo examples of AR and VR, using React-360, A-Frame and the WebXR Device API; what we can (currently) do with them and their limitations. The examples will all be in JavaScript, to establish a common frame of reference, but won’t be live-coded. This is predominantly because the APIs are still too wild and wooly. It will take about 20 minutes to cover it all at a high level. If I need to cut anywhere, it will be here.

I’ll finish off with an explanation of the idea that these can all be seen as complementary, and explain the concept of progressive enhancement of immersion. I will cover how (much like any other device feature) a web page can deliver multiple different facets of experience, depending on what capabilities are available to the device. This will lead into my ending and will take about 5 minutes.

Why this talk?

The number of commoditised user devices that boast AR and VR features is steadily growing, but they all have their own ecosystem for developing and distributing content created for it. Added to this, the tech needs to move out of the ‘toy’ stage and into the solving of real-world problems. I believe that the WebXR Device API is just that step. We, as programmers, want the world wide web to be ‘more’ - and we need to get people excited about the reality of what the web can be.