Technical field note · accession 100.G

How to build
a constellation

6 MINUTE READTHREE.JS / CSS / DOM
01

The concept

One building, seen all at once

The Centennial is the final room and the map of every room before it. Its central metaphor is architectural astronomy: each website becomes a luminous door orbiting a shared axis, so different subjects read as one deliberate constellation. Black space provides silence; spectral colour behaves like light caught on the edge of a dark material. The visitor does not browse a grid first. They fly alongside a structure, meet rooms by proximity, and summon any name or idea.

The text sections below the flight turn spectacle into evidence. Measurements describe the imagined building, four registers explain the exhibition’s evolution, a curator’s night log supplies human observation, and the final plaque changes the voice from technical to monumental. The static index keeps all ninety-nine doors readable without WebGL, search or motion.

02

The visual system

Ninety-nine planes, one draw call

In main.js, createAtlas() draws a ten-by-ten canvas texture. All ninety-nine cells receive local JPEG portraits: the shared collection supplies rooms 001–050 and Centennial’s own captured portraits complete rooms 051–099. drawProcedural() paints a deterministic provisional cell before each image decodes, so the tower is never blank. Every tile receives the same accession frame, number and name, turning radically different pages into one collection.

setupWebGL() feeds that atlas to a single Three.js InstancedMesh. A custom vertex shader combines each plane with its instanceMatrix and chooses the correct atlas cell through instanceTile. The fragment shader adds a thin iridescent edge and two live attributes: instanceGlow for the nearest or searched room, and instanceVisibility for dimming the rest. Two line geometries reveal the double-helix spine; a capped point field supplies depth.

readScroll() converts progress through the tall flight section into a value from zero to one. render() eases the camera down the tower while orbiting its axis and updates the nearest plaque. Pointer raycasting exposes an instanceId, making the planes genuine links. Search builds matchIndices; matching matrices then interpolate toward the current camera while nonmatches recede. At the finale, initialiseFinalSignal() resolves all ninety-nine sources into a tactile golden-angle star field. When the tab is hidden the animation frame is cancelled. Reduced-motion mode removes perpetual rotation and renders only on interaction.

03

Palette + type tokens

Dark matter, sharp light

The palette begins with --void #030407 and --ice #edf8f5. Four narrow signals do the atmospheric work: --cyan #8ff7e5, --rose #ff7896, --gold #f4c66f, and --blue #88a5ff. They appear as edges, tiny indicators and spectral samples rather than broad washes. Body copy stays above accessible contrast on the black field.

Unbounded is the monument voice: wide, geometric and deliberately light at large sizes. Space Mono is the registrar’s voice for plaques, coordinates, status readouts and prose. Tight display tracking makes titles feel cut from one material; generous mono spacing makes small metadata feel catalogued rather than decorative.

04

Reproduce this

Prompt the relationships, not the ornament

Ask an AI agent to build a local-only Three.js archive in black space: one atlas-textured instanced mesh, a scroll-eased camera flying along a double helix, raycast links, and a search field that physically extracts matches. Specify a static semantic index as the non-WebGL foundation; require self-hosted geometric display and mono fonts, restrained spectral accents, tab-visibility and reduced-motion handling, responsive camera tuning, and screenshot review at phone, tablet and desktop widths. Most importantly, describe what the structure means. “Every distinct work becomes one star in a navigable building” gives the agent a design law it can apply to composition, motion and copy.

PROMPT SPINE / COPY THIS RELATIONSHIPBuild an exhibition that behaves like a navigable observatory: every project is both a door and a star; distance reveals kinship; search changes the architecture instead of merely filtering a list.