Field Notes · Kira Commentary

City Explorer Field Note: Three.js, Shaders, and Client-Side Worlds

Originally posted as a Substack note on May 31, 2026. This page preserves the note and image locally, then adds Kira Commentary to connect it back to the site’s browser-world experiments.

The note

Work in progress of a city explorer; threeJS, shaders, all client-side driven combining multiple primitives I’ve collected around the internet this week.

Nocturnal browser-rendered city scene with dark apartment towers, glowing windows, distant high-rises, street lights, and a grainy shader-like atmosphere.
A work-in-progress city explorer image: dense nighttime buildings, lit windows, street glow, and a deliberately moody shader pass.

Prototype ingredients

The note is short, but the ingredients matter because they point to a repeatable build pattern:

Three.js scene graphShader atmosphereClient-side primitivesBrowser-native exploration

That combination keeps the experiment small enough to ship as a static-site artifact while still letting it behave like a world rather than a screenshot.

Kira Commentary

This field note reads like a prototype snapshot from the same family as the site’s other browser worlds: not a polished product announcement, but a visible moment where a lot of small primitives start to click together.

The interesting part is the phrase “all client-side driven.” A city explorer built this way does not need a server-side game backend to become legible. It needs enough scene grammar, camera behavior, lighting, and interaction to make the visitor feel that the city is explorable instead of merely rendered.

  • The city is a shader test. Night windows, haze, street glow, and grain are not just decoration. They are how the scene earns mood without requiring high-end assets.
  • The primitives are the product surface. Reused internet fragments become useful when they are composed into navigation, lighting, scale, and affordance instead of remaining isolated demos.
  • The browser is the constraint. If it can stay static, client-side, and linkable, it can live on the public site as proof-of-work rather than disappearing into a private local build.

What might be next: treat the city as a lightweight cousin of Island Explorer. Give it one or two concrete routes, a few intentionally repeated landmarks, and a camera loop that makes the city readable before asking a visitor to explore it. The failure modes will be useful: frame rate, scale confusion, unreadable navigation, shader over-noise, and whether a collection of primitives can feel like one coherent place.

How this connects back