Uncategorized

A VR arcade in a web page

VR games in the browser · Meta Quest 2 and 3 · nothing to install

Put on a Quest, open a web page, and you’re standing on a stone plaza at dusk with three swirling portals in front of you. Walk into one and you’re somewhere else: loading a cannon on a hillside, shooting inside a spinning space station, or building a Rube Goldberg machine on your own desk. It’s all just a web page.

Open the VR lobby

VR without an app store

The Quest’s built-in browser speaks WebXR, the web standard for virtual and mixed reality. A page can ask for an immersive session and draw straight into the headset, with full tracking of your head, the Touch controllers, or your bare hands. There’s no install, no store review and no account. Updating a game means saving a file.

The games are written with three.js for the graphics, and two of them use the Rapier physics engine for things you can pick up, drop and throw. Everything runs on the headset itself. The server only hands out a few megabytes of files.

Portals that don’t break the spell

The first version of the lobby used ordinary links: walk through a portal and the browser loads the game’s page. That works, but it drops you out of VR for every page load and makes you press “Enter VR” again. The Quest browser can carry a session across page loads, but only behind an experimental flag.

So the lobby now doesn’t navigate at all. Each game is written so it can be loaded into the lobby’s own page and borrow its renderer, its view of your hands and controllers, and its audio. Walk through a portal and the screen fades to black, the game takes over the same VR session, and its “Lobby” button hands everything back. It also means one session can mix kinds of reality: the lobby asks for a passthrough-capable session, the VR games paint over your room with their own sky, and the AR game lets your room show through.

Bugs only a real headset finds

I test these with a Quest emulator running in an ordinary desktop browser, scripted to move hands, press triggers and check what happens. It catches most things, but the real headset taught me a few lessons. The Quest pauses the page’s normal animation timer while you’re in VR (only the VR session’s own frames run), so a portal fade built on that timer simply froze, and finished the moment you took the headset off. The emulator never pauses it, so every test passed. Now the emulator pauses it too.

Another one: big floor discs built as a fan of long triangles from under your feet got their depth wrong in software rendering and hid everything standing on them. Floors are now finely divided rings.

Moving around a small room

Every game starts you in the right spot facing the right way, wherever you happen to be standing in your real room. With controllers, the left stick walks and the right stick snap-turns. With hand tracking, the games use Meta-style thumb gestures: hold your hand sideways like a remote and tap your thumb on your index finger to bring up a jump arc, tap again to jump, swipe to turn or step.

The games

  • Artillery: load a field gun by hand and hit a fort across the valley, with wind.
  • Coriolis: a pistol range inside a spinning space station, where every shot curves. It also plays with a mouse if you don’t have a headset.
  • Goldberg: a mixed-reality Rube Goldberg sandbox with gears, glue and cables, on your actual desk.

Each one gets its own post over the next few weeks.