Labor Day — a working skyline clocking off

Featurekamo-marketing
Shipped
September 7, 2026 at 6:22 PM UTC
Author
Kamo
Commit
5925af7

The nineteenth scene, and the first Monday in September with the Saturday and Sunday before it. It is the one window on this calendar that cannot collide with anything: the day walks September 1-7, so the window runs August 30 to September 7 at the extremes, four clear days short of Patriot Day in the worst year and eight weeks clear of Independence Day behind it. Ordinary priority, default boost, nothing in PERMITTED_ECLIPSES. The scene is about the end of a shift rather than about a parade. A skyline along the bottom edge in the last light of summer, a tower crane, and a few hundred lit windows that GO OUT WHILE YOU READ — one at a time, on an irregular clock, with the occasional one coming back on because somebody always forgets something. Four things carry it: · holiday.progress sets both the floor the lights settle at (42% still working on the Saturday, 13% by Monday night) and how fast they get there. A reader who comes back on the Monday sees a different city, which is the argument for a scene that reads the calendar rather than merely knowing the date. · The pointer turns the lights out, with a ragged edge rather than a circle. It is the only interaction in the scene, and the relight trickle runs regardless, so sweeping the whole band finds the city refilling behind you instead of leaving a dead grid. · The crane's jib foreshortens as L·cos(theta) and flips through zero with the counter-jib coming the other way, because a tower crane's jib is level and swings in plan. Rotating the bar in the picture plane is the usual mistake and reads as a windmill. The hook chases the trolley on a dt-based damped follow, so the load lags into a swing. · The haze over the city is one blit whose alpha tracks the lit fraction, so the emptying reads as dusk falling and not as dots switching off. Cost, per frame: one half-scale sheet blit (sky, sun, far skyline), one glow blit, one path for the masses, one stroke for the rim, at most sixteen batched fills for the windows through a pre-built alpha table, about thirty path ops for the crane, one small blit per mote. No gradient built in onFrame, no shadowBlur, every soft edge a pre-rasterised sprite. The mote and glow sprites depend only on dpr and sit behind a guard, so the resize storm an iOS URL bar produces cannot rebuild them; the sky sheet must be rebuilt for a genuine height change, and the skyline carries its lit state across so the city does not relight mid-scroll. Two numbers were chosen by looking at it over the homepage rather than by argument. The masses are at 0.3 alpha, not the 0.5 they started at: on a dark page a dark silhouette is invisible everywhere except where it lies across content, so every point of alpha it carries is spent entirely on dimming the words behind it. And the band is capped against the WIDTH as well as the height, because a fraction of the height alone gives a 390px phone the same 220px of city a desktop gets — a quarter of that screen, sitting across the primary call to action. Reduced motion gets the same city with the clock stopped: lights where the seeded layout put them, the crane parked with its load hanging straight, the beacon caught lit, and no dust, no shift and no swing. Scene counts in the surrounding prose go from eighteen to nineteen, and the guard's dressed-days figure from a stale 88 to the 87 it now prints.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing