DESIGN & ENGINEERING NOTES · 01

How the night
learned to answer.

← Return to the dome
01

Planetarium dome hush

The Asterism Atlas treats the browser as a darkened public instrument: half planetarium, half forgotten archive.

Constellations are framed as acts of authorship, not a finished taxonomy. The visitor receives a sky with room left in it, then makes an agreement between distant points. The voice stays hushed, exact, and gently superstitious. Catalogue numbers and magnitude labels lend institutional weight; the myths remain intimate. Asymmetry keeps the experience from feeling like a dashboard, while the near-black field allows every gold connection to feel consequential.

02

Drawing the dome

The signature field lives in main.js. resize() caps canvas density at 2× and makeStars() creates a deterministic 112–178-star field according to viewport size. A cubic magnitude curve makes dim stars plentiful and bright stars rare. Every star also receives warmth, phase, and speed values, giving the dome a restrained chromatic drift rather than a sheet of identical white dots.

Pointer events call nearest() with forgiving snap radii. Dragging reveals a dashed live tether and target halo; tapping builds the same chain for phone users. Arrow keys move through the eighteen brightest stars, while Enter binds them. draw() handles twinkle, meteors, flares, lines, hover states, and the finished inscription without causing page layout.

03

Myth machinery

topology() reads the visitor’s graph: its number of used stars, branch points, width, and height. That shape becomes “an ascending sign,” “a gathered sign,” or another structural description. composeMyth() hashes those traits with the uppercase name, then combines an opening, omen, witness, and closing into a repeatable record. drawInscription() writes the name and an excerpt directly into the dome. The export routine preserves the full sky, links, myth, catalogue number, and title as a standalone SVG; nothing leaves the browser.

04

Motion & atmosphere

Depth comes from off-axis radial dome light, flattened orbital ellipses, restrained bloom, irregular archival plate silhouettes, inset vignettes, and fixed SVG turbulence grain. The opening uses a single staggered rise rather than perpetual spectacle. Classical plate lines animate through stroke-dashoffset as IntersectionObserver reveals them. At inscription, drawCeremony() dims unchosen stars, sweeps a dashed orbit around the visitor’s figure, writes its name one character at a time, and calls a meteor across the dome before the permanent chart rises. Reduced-motion preferences skip that ceremony and reveal the record immediately. The canvas loop cancels when the document is hidden and resumes only when visible.

05

Palette & type

Dome#05070F
Star#EEF0F2
Magnitude#D9B96E
Myth#AEB5C4

Self-hosted Cormorant carries myths, titles, and all emotional emphasis. Outfit supplies small functional labels, chart data, and controls. Display type is deliberately light and tightly tracked; interface labels are tiny, uppercase, and widely spaced like engraved calibration marks.

06

Reproduce this

Prompt an AI agent to create a static celestial archive with a seeded canvas star field, realistic magnitude weighting, drag-and-tap snapping, keyboard star selection, topology-aware name grammar, and client-side SVG export that includes the generated story. Ask for dome black-blue, rare warm-gold magnitudes, myth silver, a literary serif beside a disciplined geometric UI face, asymmetrical archival compositions, irregular chart silhouettes, and one quiet load sequence. Require phone, tablet, and desktop screenshot audits; 44px controls; strong focus states; reduced-motion fallbacks; and visibility-paused animation.