Guide · How it was made

Growing a computer on a web page.

Concept

HYPHAE is a fictional Perth startup that grows mycelial networks as computers. The audience is technical founders and researchers who would fund or join something this strange. The page has one job: make the visitor believe the network is alive — so the background is the product. A generative mycelium grows across the page in real time, and every "live" metric on the site is read from that simulation, not faked.

Palette

#0D0F0C
Substrate. Dark loam, slightly green-shifted — never pure black.
#E8E4D8
Pale mycelium. Body ink and thick hyphae share one colour.
#B7F2C4
Spore glow. Growing tips, live numbers, primary action.
#9D7BFF
Signal violet. Reserved for data-in-motion: traces, dates, focus.

The trick is that ink and organism are the same colour: fine hyphal tips lerp from pale #E8E4D8 toward spore-glow green as they thin, so the type reads as the thickest, oldest growth on the page.

Type

Sora — The computer that grows.
Display & body · geometric but soft-cornered, like something cultured rather than machined
JetBrains Mono — 21,384 spores/s · T+00:04:12
Data voice · every number, date, eyebrow and readout. Tabular numerals keep live metrics from jittering

The typographic bravery moment is the hero wordmark: HYPHAE at up to 11.5rem, each letter clip-revealed on its own delay with a vertical gradient that dips into spore green at the baseline — the letterforms appear to be colonised from below.

Techniques

Signature — the branching-growth engine (canvas 2D, no libraries). The mycelium is a population of random walkers with momentum: each carries a heading, an angular velocity that is jittered and damped every frame (so paths meander rather than shiver), and a thickness that decays by 0.4% per step. Each walker buds with probability proportional to its thickness, spawning a child at 55–72% of its width — so growth is dense near sources and filigree at the edges, like the real organism. About one bud in eighteen becomes a violet signal trace. Trails accumulate on a persistent canvas; glowing tips are sprite-stamped radial gradients on a second canvas cleared each frame. Old growth dims via a periodic destination-out fade that deliberately never reaches zero, leaving a faint ghost web.

Growth reacts to reading. An IntersectionObserver fires once per section: as each one enters the viewport, walkers burst inward from both screen edges at the section's height — the network visibly grows into what you are about to read. The trail canvas is scrolled at 0.35× page speed using a self drawImage in copy mode, so the web feels rooted in the content rather than painted on glass.

Honest telemetry. Active tips = the walker array's length. Throughput chases 9000 + tips × 61. Colonisation is derived from total segments drawn. The stats section says so in plain text — the fiction is grown, not faked.

Performance. Walker population is capped (240 desktop / 130 under 768px), off-screen walkers are culled with a 60px margin, devicePixelRatio is capped at 2, the rAF loop pauses on document.hidden, and resize reseeds cleanly. With prefers-reduced-motion, the engine runs ~700 steps synchronously and paints a single still lattice: same organism, fully grown, no animation.

Iteration log

PASS 1Craft

PASS 2Depth

PASS 3Hardening