Digital Garden

Giving the Sky Back to the Sky: a Real Moon, Seasonal Constellations, and Each Other's Light

2026-09-17 · ~3 min read · frontend · design · essay

Prologue: looking up

Last round the planet grew senses — touch, pulse, voice, memory. One thing never moved: the sky above.

Fourteen thousand background stars, scattered at random. Pretty, but they knew neither each other nor the moon up there. This round did one thing: turn a randomly-scattered star field back into an actual sky.

A real moon

A small moon now orbits the planet. Its phases aren’t ours to decide — a synodic month of 29.53 days, anchored to the new moon of January 6, 2000. Look up tonight and it matches the sky.

The crescent’s edge is computed pixel by pixel: the terminator is an ellipse, waxing or full depending on the date. The site cannot decide the moon’s shape — that is exactly why it moves you.

A sky that changes seasons

The constellations follow the northern seasons: Orion and the Winter Triangle in winter, the Big Dipper and Leo in spring, the Summer Triangle and Scorpius in summer — and right now, in autumn, the Great Square of Pegasus and Cassiopeia hang above the planet.

Brush your cursor across them and they introduce themselves: “Autumn sky — the Great Square & Cassiopeia.” In four languages they know their own names.

Debugging surfaced one design mistake: the first version hung the constellations on the slowly rotating star field — a minute and a half later they drifted out of view. Nobody tracks random stars; geometric outlines give themselves away. Now they live in their own group with a ±3° sway. A sky must be steady for constellations to read as constellations.

Each other’s light

“Seeing each other” — for the first time on this planet, visitors see visitors.

Your cursor position is throttled over WebSocket; on someone else’s screen, a pale-blue streak glides along your path and fades gracefully six seconds after you stop. Disconnect, and the backend broadcasts your exit.

Before launch it was invisible once: the trail head was ten times too small — a five-pixel pale dot lost in the particle field. The feature worked perfectly; nobody could see it. Working but invisible is the same as not existing. Scaled to the wish-stars’ size, the streak finally appeared in someone else’s sky.

The cap is twelve: only the twelve most recently moving visitors are drawn, and a thirteenth preempts the stalest slot. The backend relays statelessly, so performance stays constant.

Epilogue

The sky now: a moon that follows the real phases, constellations that change with the seasons and say their own names, streaks of light crossing between visitors.

The planet is awake, alive, and sentient — now its sky is inhabited too.

Comments

← Digital Garden