Writing

One world, no scene graph

2 min

The claim has a mechanism

This site’s background is one WebGL2 context, created once and never torn down. “One continuous world” is a claim a lot of portfolio sites make decoratively, and I did not want to make it decoratively. Every scene here — the globe, the terminal panels, the waterfall, the funnel — is the same 5,200 points in a different arrangement. Navigating does not destroy one scene and build another. It interpolates each point from where it was to where it belongs.

That costs one extra vertex buffer: positions A, positions B, one mix uniform. A scene-graph library would give the same visual result for roughly 190 KB of JavaScript. The renderer that does this was 4.1 KB gzipped when it shipped; sixteen bespoke scenes later it is 8.1, and I check the number every build.

What the constraint buys

Because the points persist, they can carry identity. Each point has a stable cluster assignment, so the point that represents a given system on /work is the same point that dims when a filter excludes that system — and culling can recede instead of remove, leaving the shape of the whole set readable behind the filtered subset. That reading is honest: those systems still exist.

Because the arrangements are deterministic, a route revisit generates byte-identically. A reshuffled world would betray the premise; a seeded PRNG is the whole fix.

The cost is honest too

No picking, no physics, no post-processing — the bloom pass was tried and removed when measurement said it contributed nothing. The world is deliberately the cheapest thing on the page, because the budget belongs to the content. An instrument’s job is to be read, not admired.

All writing