TAPETUMEnter survey ↗
FIELD NOTESSITE 173 / 175

BUILDING THE
LIVING MIRROR.

Implementation guide · code-only nocturnal optics

01 / Concept

Tapetum turns a wildlife field guide inside out. Instead of presenting labelled animals, it begins with near-total darkness and asks the visitor to identify life from a reflected signal. A beam, a height, a colour and an interval become the taxonomy. The atmosphere is tender rather than threatening: the visitor discovers that an apparently empty wetland is intensely inhabited.

The page behaves like a continuous survey instrument. Fine rules, measured captions, elevation marks and live counts borrow the language of ecological fieldwork. Expansive Unbounded headlines bring wonder; compressed JetBrains Mono annotations supply trust. Every visual is made from canvas, SVG or CSS. There are no generated assets in this wing, and that code-only constraint is treated as part of the exhibit.

02 / Eyeshine field

The hero’s #nightField canvas is drawn by landscape() in main.js. A normalized array places deer high, foxes low, crocodiles at the waterline and spiders across the ground. render() measures each return’s distance from the pointer beam, eases its aperture and glow, and calls discover() when the return enters the active radius. That function resolves the anonymous colour-and-height row into a species name and updates the live tally.

Pointer, touch and keyboard input all move the same beam model. Cutting the beam invokes drawAfterimages(): the landscape drops away and only logged returns persist, turning a utility switch into a retinal-memory test. A single guarded requestAnimationFrame loop caps device pixel ratio at two, pauses while the document is hidden, and becomes event-driven under reduced motion. Deer lenses are broad, fox eyes cant inward, crocodile returns flare along the waterline, and spiders resolve as point clusters.

03 / Optical drawing

The cutaway eye in #opticSvg is a hand-authored SVG. Its pale incoming path crosses the retinal arc, meets the green tapetal crescent, then returns along a second green path. updateOptic() rewrites both path geometries as the angle range moves. This makes the “mirror behind the film” metaphor spatial: the retina gets a second exposure, but the return is slightly displaced.

The comparison plate below uses layered CSS forest silhouettes and a draggable mask. setCompare() moves the division between the darker, sharper human view and a brighter, softer tapetal simulation. It communicates the biological trade-off without claiming to reproduce literal animal vision.

04 / Palette & type

The dominant field is night-forest black, interrupted only by biologically coded returns and beam white. Cat-green is the interface signal; deer ice, fox amber, crocodile ember and moth-orange act as specimens rather than decoration.

#050A08#B9FF62#DCEEFF#FFAD4A#FF5037

Tokens live at the top of styles.css. Unbounded 300–700 carries display text with tight negative tracking. JetBrains Mono handles every note, measurement, control and paragraph, keeping the fictional survey precise and consistent.

05 / Motion & access

The opening uses one staggered arrive sequence, while beam and retinal glows are eased in the single canvas loop. The interface avoids scroll-jacking and keeps focus outlines visible. Navigation collapses on narrow screens, all persistent controls meet a 44-pixel target, canvas instructions are exposed through an accessible label, and the live tally announces discoveries politely. Reduced motion disables the entrance and continuous frame loop; page visibility cancels animation frames.

06 / Reproduce this

Prompt from the interaction outward.

Ask an AI coding agent to build a code-only nocturnal field instrument, not a generic nature landing page. Specify a normalized species dataset with true height bands and distinct retroreflective colours; require a pointer, touch and keyboard beam that reveals and counts returns. Then request a live SVG double-pass optics diagram, a draggable acuity-versus-sensitivity comparison, self-hosted display and survey fonts, and an ecological design coda. Name the dark-field palette, require reduced-motion and hidden-tab loop handling, and make screenshot inspection at phone, tablet and desktop widths part of the task.

Open the survey ↗