Build guide — № 03
Blueprint, then skyline.
One HTML file, no images, one canvas. This page documents how the tower site was drawn: the brief it received, the technique it bet everything on, and what three hostile critique passes found and fixed.
The brief
A property tower that builds itself as you scroll — blueprint to skyline, ending at night with the building alive. Signature: a Three.js wireframe tower assembling floor-by-floor from scroll progress; camera orbits between sections; in the final section windows light stochastically.
Palette: midnight #0a0e16, blueprint cyan #58c7f0, brass #c9a227. Type: Marcellus over Figtree. Voice: understated property prestige — numbers, sightlines, silence. Wave 1 rule: every screenful must move, react, or play.
The signature technique
All 42 floors are line-segment geometry, scaled up floor-by-floor from a smoothed scroll value. The 1,468 windows are a single GPU point cloud; each point carries a random seed, and a shader decides — per frame, per window — whether it is lit, how it flickers, and the brief over-bright flash the instant it first ignites. This excerpt is the actual vertex shader from the page you just scrolled:
attribute float aSeed;
uniform float uLit,uTime,uFlick,uPix;varying float vA,vS;
void main(){
vS=aSeed;
float on=step(aSeed,uLit); // lit when the night reaches your seed
float fl=mix(1.,.72+.28*sin(uTime*(1.+fract(aSeed*7.)*2.)+aSeed*61.),uFlick);
float ig=1.+2.5*(1.-smoothstep(0.,.05,uLit-aSeed)); // ignition flash
vA=on*fl*.85*min(ig,3.5)*step(.001,uLit);
...
}
Scroll drives one number; everything else — assembly front, camera keyframes, dusk-to-night fog, the brass altitude readout, the lit-window count — derives from it. The count in the copy is not typed in: the page counts its own point cloud.
What the critique passes found
Pass 01
The altitude HUD collided with plate text on both viewports and sat on the footer type strip. Fixed: the HUD became a bordered instrument chip and now retreats when the footer arrives. Mobile hero stats wrapped with too much air — tightened.
Upgrade — compass dial: a brass bearing needle derived live from the camera azimuth.
Pass 02
Plate copy ghosted through the translucent HUD chip — raised to near-solid with a backdrop blur. At full scroll every one of the 1,468 windows was lit, which no real tower ever does: the lit fraction is now capped near 70% and drifts, so the count ticks at rest.
Upgrade — sheet marginalia: a fixed drawing-frame rule with "SHEET 0X/06" advancing as you scroll.
Pass 03
The mobile HUD fully covered a sightline row — compacted below 560px. Nav links sat on plate copy with only a text-shadow between them — the header gained a soft top scrim.
Upgrade — hover a storey and the HUD level readout snaps to it in cyan: scene and instrument talk.