VR Tunnel

Experiments with lighting, pathing, and audio brought together to create a quick VR experience.


Neil Pullman


WebXR, WebAudio API, Three.js

An amalgamation of different experiments I’d been working on – bringing them together provided an opportunity to create something unique and an excuse to create some VR content.

First, the iridescent coloring and lighting are dynamic based on viewing angle. The lights are based on a custom shader that takes advantage of existing point lights. The camera path is dynamically generated based on tunnel shape.

Second, the audio is randomly generated using a predetermined musical scale and a variable time signature. Real-time audio effects based on visuals were added (reverb, echo, etc.) and the final audio output affects the morphing of the blob in the center.

Finally, support for VR was added using Three.js’ WebXR implementation. For now it’s used to control camera view as it travels down the tunnel.

This experiment works on desktop and mobile. To experience it in VR, navigate and launch this using your VR device.