MICROTOPIA. ← Back to the city

The making-of guide

How this tiny city was built

The concept. Microtopia is a miniature diorama that constructs itself as you scroll: four districts rise block by block, a tram starts its loop, night falls, 428 windows light up, and morning returns. The whole city is HTML. There are no images, no WebGL, no 3D engine.

The actual techniques

Three passes, honestly

The site was built with a screenshot-verify loop: render, capture desktop and mobile, read the pixels, fix, repeat.

Pass 1: the empty diorama plate with roads and water, before fixes
Pass 1 · first render
Pass 2: the full city built at mid-scroll with story card
Pass 2 · fixes applied
Pass 3: nightfall over the finished city
Pass 3 · polish & night

Pass 1 exposed two real bugs: on mobile, CSS grid refused to truly center the overflowing 760px scene (fixed with absolute positioning and negative margins), and a GSAP fromTo at the dawn beat immediate-rendered the sun invisible at the top of the page (fixed with immediateRender: false). Pass 2 added the survey-plan district lettering, chimney smoke, gulls and benches. Pass 3 tuned camera drift, type rhythm and contrast, then verified the live deploy.

Prompting an agent to build this

"Build a pure CSS-3D isometric city on a diorama plate that constructs itself on scroll. Write a div-folding helper (top face + two visible walls), pin the scene, and drive construction from one scrubbed GSAP timeline: four districts, each with a story card. Tie a --night variable to scroll for a day/night cycle. Add an infinite tram loop and tiny details: a cat, laundry lines, blinking windows. Screenshot desktop and mobile after every pass, read the screenshots, and fix what you see at least three times."

The craft is in the loop, not the first render. Insist on real screenshots, insist on reading them, and insist the direction of travel is always richer.