← appaday

Vast nature, and one grand structure

Awe is a mechanic. Not a story beat, not a cutscene — a thing you can build on purpose, out of proportions and sightlines, and then walk into wearing a headset. The brief was one sentence:

make me a … impressive WebVR World… think grand architecture, ancient, great landscapes etc…. compatible with WebXR on oculus quest

That turned into forty-odd of them. Each world is a single self-contained HTML file with three.js pulled from a CDN, nearly all the geometry built in code rather than modelled, and free assets only where a human figure or a sky is needed. They are best in a headset and most of them also run flat in a desktop browser, which is where these pictures come from.

A low-polygon red sandstone palace across still water: towers with domed pavilions, a curtain wall running into trees on both sides, green mountains and a blue sky with clouds behind it, grass and reeds in the foreground, and the whole palace reflected in the dark lake
Hansa Mahal — somebody's water palace, three hundred monsoons after the last of them left. The lake has not been disturbed in a long time, so the thing stands there twice.

The recipe, written down

After a few worlds I asked for another awe inducing experience and described what had been working: vast nature with a grand structure emerging in it. and then one more game mechanic. That recipe is now literally a numbered list in the project's handover notes, and the second item is the one I think about:

The approach rule. Open with a narrow walk or climb, and physically block the sightline until the last possible moment. The Siq before the Treasury. A bamboo lane before the temple. A gate before the stepwell. Its corollary is the sentence that explains half the collection: you cannot see a hole in a flat plane from eye height. The stepwell world works because the thing is a hole in the ground — you are on an empty plain, and then you are standing at the lip of thirteen storeys going down. The aqueduct world only worked once the path dropped below the rim of the gorge first.

A dark plain at dusk under a deep blue sky full of stars fading to orange at the horizon, with low silhouetted walls, flat-topped thorn trees, and far away a small lit pavilion and a line of lamps marking something at ground level
Baori, a minute before. Nothing out here but thorn trees and a low wall — the well is the dark patch ahead, invisible until you are at its edge.
A timber walkway with low stone walls running along a cliff face at dawn, stepping down toward a long multi-arched stone aqueduct that crosses a gorge filled with white cloud, pine trees clinging to the rock on the right, pale blue and pink sky above
Span. The gorge is full of cloud and the aqueduct goes across it in three tiers; the trail gets you below the rim before it lets you look.

The rest of the recipe is unglamorous and works: build from a real plan where one exists — a published cross-section of a temple, a stepwell, an aqueduct — because proportions matter far more than detail. Build in textured block courses rather than smooth shapes. Make the walkable floor come from the same numbers as the geometry, so the ground you see is the ground you stand on. Then make it alive: a road in, people walking loops, animals, birds, and positional audio where bells, gongs, roosters, frogs and drips are each a few oscillators rather than a sound file.

A snowy clearing at night seen between dark spruce trees, a low fence running across the slope, deep blue snow lit by a faint moon glow through the branches, snow falling, and a caption across the top reading FOLLOW THE PATH DOWN THROUGH THE WOOD
Stille, the longest night of the year. The objective line is the whole UI.

And one more game mechanic

Every few worlds, the second half of the brief takes over and the place gets something to do: a podracer through four courses, a trench run, light cycles, a maze, a longbow, a boomerang range, a bridge where you rewind time, a throwing mechanic with twelve braziers to light. The verdicts in the notes are blunt and I love them for it — the podracer is recorded as madness!, the brazier game as ok, too hard in VR, and one world carries the instruction execution is poor, do not polish. The seaside town that came out best is marked loved — frozen, never touch.

Two cards from a dark gallery page. Stille: a village in the north on the longest night of the year, snowing since dusk, with a lamplighter on his round, an inn, a timber church whose bell strikes the hour, fox tracks onto the frozen lake, tagged VR, Desktop, Audio and Story. Hansa Mahal: somebody's water palace three hundred monsoons after the last of them left, red sandstone going soft at the edges, domes with trees growing out of them. Both list controls: left stick walks, right stick snap turn, grip runs; desktop WASD, mouse look, shift to run
The shelf. Each card says whether it has audio, a story, and whether it is worth a headset.

Testing a world you cannot walk around yourself

The part that makes this sustainable: the VR and desktop paths are the same code, so everything is tested flat, in a headless browser, on a desktop with a real graphics card. A small harness swaps the renderer for a subclass that exposes the scene, so every world can be inspected without touching the pages themselves.

Then an audit walks the world on a half-metre grid and compares where the code says the ground is with where the geometry actually is. It reports orphans — places where the world lets you stand inside something solid — and ghosts, where you are blocked by nothing at all. It also finds every pair of overlapping surfaces lying in the same plane, which is what causes that z-fighting shimmer. One audit round on the temple world took it from 78,000 overlapping face pairs to 5,000, and from 942 clusters where you could stand inside the building to none.

The causes repeat, so they are written down: a wall band thicker than the jog it turns overlaps itself at every corner; extending both sides of a corner covers the same square twice; a roof slab laid exactly on the mass beneath it. Two centimetres of offset, or one fewer box.

A real place, from the survey office

The strangest one is not invented at all. My state publishes its entire geodata stack as open data, so the town I actually live in is in there: thirteen thousand real buildings, the valley at one-metre resolution, the real streets. You start in the pedestrian zone, walk down the main street, and ride a lift up a test tower at the far end. The view from 210 metres is the whole dataset at once. It is a strange feeling that has nothing to do with the awe worlds — the opposite feeling, really.

Still rough

It is a lab, not a product: some worlds are frozen, some are explicitly not worth polishing, and the ones with mechanics are prototypes of a mechanic rather than games. Without a headset you are getting the postcard instead of the place — the scale is the entire point, and a monitor cannot give you that.