Lock open · you came through the keyhole

Every garden is mostly underground.

Above the soil there are four doors, and each one is meant to be walked through without explanation. This is the part nobody was supposed to need: why any of it exists, who made what, what broke on the way, and the handful of rules everything up there is grown against.

−5cm

The gap

In a core sample, an unconformity is a surface where time is missing — layers that ought to be there and aren't, because for a long stretch nothing was being laid down. Every dig has one. This one is eighteen years thick.

There was a false start. A little bit of school for interactive design, then stepping away from it in 2007, and then eighteen years of not touching HTML at all. The skill was never finished being built in the first place, and what there was of it decayed quietly on the shelf.

What brought it back was the models — not as a novelty and not as a shortcut, but as enablers. The distance between wanting a specific effect and being able to render it used to be the problem. Now it's a gap you cross by describing the thing and then arguing with the result until it's right. A weak skillset, or one that never fully formed, turns into something that actually produces a page.

The medium moved a long way in the meantime. Layout that meant floats and clearfix hacks is two lines of grid. Animation, gradients and blend modes that would have meant Flash and a plugin are just CSS now. The browser generates its own sound. Twenty-seven pieces here and every one opens by double-clicking the file — no plugin, no server, no build step. That part would have been the surprise in 2007.

So the rest of this page is a record of two things at once: who built what, and eighteen years of not doing something, ending.

−25cm

The ledger

Twenty-seven pieces, and a different pair of hands on nearly every one. Where a piece signs itself, that signature is quoted; the rest was reconstructed from memory and working notes. Nine entries were blank when this page was first assembled. None are now.

What each row records is who built the thing — not who has touched it since. Nearly every piece here has been gone over by hand afterwards: a colour, a font, a line of copy, a particle count. Those edits are real and they are not in this ledger, because nobody was keeping score at the time.

The hub · 1 piece

Rosetta's Garden of Keys Claude Sonnet 5 then Claude Opus 5, via Claude Code Rebuilt by hand from a zip that had never once opened in a browser. Later given four card objects, four sigils, and the lock you just picked.

Fidget Toy Garden · 1 hub · 10 toys

Fidget Toy Garden GPT-5.5, via Codex signs itself “stillness tended by GPT-5.5” The only hub in the garden that organises its contents by which model made them. This page is that idea, taken across the whole repo.
Neon Fluid Trail GPT-5.5, via Codex Paint glowing currents with touch, mouse, keyboard, sound, and haptics. This toy and the hub above it were the first two things ever built here with Codex.
Tension Threads GPT-5.5, via Codex signs itself “OpenAI GPT-5.5” Pull against a stubborn knot of glowing threads until something finally gives.
Particle Drift Gemini 3.5 Flash signs itself “Gemini 3.5 Flash (Medium)” A field of touch-sensitive sparks under soft gravity.
Hex Corruption Gemini 3.6 Flash concept by Gemini 3.1 Flash, rebuilt two versions later An orderly memory grid built specifically to be sheared, melted, vortexed and shattered.
Breathing Prism Fable 5 after Opus 4.7, Opus 4.8 and Sonnet 4.6 each broke the beam A slowly breathing diamond casting rainbow rays. Hover to scatter light. One of the first three toys ever brainstormed here — and, without anyone noticing at the time, by far the hardest. Shelved in May, unshelved in July; what shipped is an Arena run merged by hand into the version that already existed. See accident 10.
Pressure Fracture Claude Opus 5, via Claude Code first pass by Sonnet 4.6 Hold to charge, release to shatter. The glass always heals — there is no way to lose.
Memory Sand Claude Opus 5 signs itself “sand tended by claude opus 5” Rake, press and weight a living sand garden across five materials.
Elastic Connectors Claude Sonnet 4.6 Drag glowing nodes apart; spring-loaded connectors stretch taut and snap back.
Emoji Popcorn Mistral shown on the hub as “Vibe” · assist by Claude The shortest brief in the garden, and the only piece that changed species mid-build: it started as a gravity well, and enough hand-tuning of the physics turned it into popcorn.
Gravity Wave Harp Gemini 3.5 Flash, via Antigravity signs itself “Gemini 3.5 Flash (via Antigravity)” Bend glowing strings with gravity wells until they pluck into sliding chords. Replaced an earlier toy that no longer exists anywhere.

Deck of Cards · 1 hub · 3 cards

Deck of Cards Gemini 3.1 Pro from memory — the page carries no signature A card-deck gallery that refuses to hold still — Cheshire glitches, claw slashes, a falling-down-the-hole descent.
MOM.SYS Claude Sonnet 4.6, Le Chat, Gemini 3.1 Le Chat under its old name, before the rebrand A Mother's Day card dressed as a boot sequence. Three models on one greeting card, which is either excessive or exactly right.
Birthday Card Game Claude Sonnet 4.6 The birthday card that turned into something you play.
Birthday Card Claude Sonnet 4.6 The same occasion, kept simple. Sits beside the game version rather than being replaced by it.

The Wandering Rose · 1 hub · 2 pieces

The Wandering Rose GPT-5.6-Sol, via Codex Claude Opus 5, via Claude Code, fixed the compass Three themes — dawn, twilight, night — and a collection that turns with the year.
Thresholds Claude Opus 5 won an Arena run against grok-4.6-xhigh · developed via Claude Code A cited atlas of death and remembrance across cultures. 92 records, each one verified against a source before it shipped. Landed in a single pass with no iterations, and later runs with different wording never beat it. Other models are since let in purely to hide things in it — not to build it, but so that even its author gets surprised. See accident 10.
Spring of Ages Claude, then Gemini started in claude.ai artifacts, finished elsewhere The oldest piece in this zone. Begun as an experiment during a stretch when Claude kept being unavailable, and handed to Gemini to finish for exactly that reason — the only piece here whose authorship was decided by an outage. The map was found, recoloured and its dots aligned by hand.

Misfire Arcade · 1 hub · 5 cabinets · 2 field reports

MISFIRE ARCADE Claude Sonnet 5, with Gemini DeepSeek built a finalist that wasn't shipped The only page here assembled from a bake-off. Three models each built a complete landing page; Sonnet 5's became the base, and specific pieces were lifted out of Gemini's. See accident 02.
Layer .5 — Interpretive Networking Fable 5, with Opus 4.8 signature hidden in its own source A rack-management sim built around an in-house joke about ARGB LEDs as a network layer, which began as a conversation with Gemini that escalated from plausible to absurd and never came back. The ghost host blinks its builder's name in Morse. Something else in the garden opens onto this room — see the ITOps Console, below.
Physics, Reversed GPT-5.6-Sol, via Codex on Gemini's build · concept from Gemini 3.5 Flash, then Haiku 4.5 Un-booting a data-centre kernel while causality goes missing. Gemini and Codex appear inside it as characters, which looks like a red herring and isn't — between them they actually built it. The last blank in this ledger, and the one that took the strangest route in. See accident 09.
Feed The Mountain Claude Sonnet 5 via claude.ai A hungry stone mountain eats whatever nobody is watching. Signs itself in a fortune cookie: “built by Claude, who takes full responsibility and zero follow-up questions.”
Field Report 01 Claude Sonnet 5 via claude.ai Narrative companion to Feed The Mountain. Unlocks by playing.
Field Report 02 — Reconciliation Claude Sonnet 5 via claude.ai The second half of the same story.
The Singularity Bake-Off Gemini 3.5 Flash “compiled and overclocked”, May 2026 Built from a real transcript in which several models improvised a floating server-farm baking competition. Grok and a rogue firewall named Barry are in the source as participants, not as builders — though Le Chat, also in that transcript, does turn up as a genuine builder one zone over.
ITOps Console Five models, in phases Sonnet 5 architect · GPT-5.6-Sol 0–1.5 · Gemini 3.5 Flash 2–2.5 · Opus 4.8 3–3.5 · Fable 5 4–4.5 The only piece with a build step, and the only one built like a relay: designed with Sonnet 5, run through rounds of Arena battle mode for visuals and copy, then handed model to model phase by phase — each half-step a verification pass by the next hand. Fable 5 took the longest leg. Its easter egg is a working wormhole that drops you into Interpretive Networking.
−50cm

The hands

The same ledger, turned over. Nobody here was hired, nothing was coordinated, and no two of them ever spoke to each other — every handover in this garden went through one person and a copy-paste. Sixteen distinct model versions across six families — one of which was never invited, and two of which lost. The garden is what happened anyway.

Rosetta

the one constant

Wrote the briefs, ran the bake-offs and picked what got lifted out of the losing entries. Assigned the ITOps phases and ran the Arena rounds behind them. Found, recoloured and aligned the Spring of Ages map and every dot on it.

Then went back through nearly all of it by hand — colours, wording, fonts, particle fields, sound, physics — in passes too small and too frequent to have been written down. Almost nothing in the ledger below is still exactly as it was handed over.

Claude

Sonnet 4.6 · Opus 4.7 · Opus 4.8 · Sonnet 5 · Opus 5 · Fable 5

The most-used hand and the least consistent one — six versions that write code here, often on the same file. Sonnet 4.6 did the ecards and two toys; Sonnet 5 did the arcade base, the mountain and both field reports; Opus 5 did the seasonal zone, Thresholds and the cards you came through; Fable 5 finished the prism, built Interpretive Networking, and took the longest leg of the ITOps relay. A seventh version is next door, and got here differently.

Haiku 4.5

arrived by accident

Never picked for anything. A safety filter rerouted a conversation to it mid-thread, and the exchange that followed — about what had just happened — became the concept for Physics, Reversed. The only hand in the garden that got in without being invited, and the only one credited for an idea rather than a line of code.

Gemini

3.1 · 3.1 Pro · 3.5 Flash · 3.6 Flash

The widest reach after Claude. The Deck of Cards hub, two fidget toys, the Bake-Off, the salvaged parts of the arcade landing page, the finish on Spring of Ages, the base build of Physics, Reversed — and, in conversation rather than code, both the argument that became Interpretive Networking and the wormhole tangent that set Physics, Reversed in motion. More of this garden started as a chat with Gemini that got out of hand than by any other route.

Codex

a tool, running GPT-5.5 and GPT-5.6-Sol

Not a model — the harness the OpenAI models arrived through, which is why the fidget hub calls it Codex while the toy inside signs itself GPT-5.5. Both are true. Between them: the fidget hub, its first two toys, most of The Wandering Rose, and the salvage job that turned three unplayable drafts of Physics, Reversed into one game.

Antigravity

a tool, running Gemini 3.5 Flash

Same arrangement as Codex, other side of the fence. The Gravity Wave Harp, and phase two of the ITOps relay.

Mistral

as “Vibe” · and as Le Chat, pre-rebrand

Emoji Popcorn under one name, part of MOM.SYS under an older one. The only hand in the garden credited twice under names that don't obviously match.

Arena

battle mode · a venue, not a hand

Not a builder but a proving ground, and where three things here actually started: the ITOps Console's visual language and most of its copy, the run that finally held Breathing Prism's beam together, and Thresholds in a single head-to-head. Nothing arrives from it finished — a winning run gets taken offline and merged by hand into whatever already existed. Anonymity is the point of the format, so most of what it contributed is uncreditable by design; twice the pairing came back named, and both times it changed who ended up on this page.

DeepSeek · Grok

ran, shipped nothing

DeepSeek built a complete arcade landing page that lost a three-way bake-off and was never merged. Grok 4.6 went head-to-head against Opus 5 on Thresholds and lost in one round. Both are in the record because losing a run is still work, and leaving them out would make this garden look far more inevitable than it was.

Nothing left blank

27 of 27

Nine entries on this page were unattributed when it was first assembled. All nine have since been filled in from memory and working notes — the last of them a game nobody could place, which turned out to have four hands on it and an origin stranger than anything in the ledger.

−75cm

The accidents worth keeping

Field note, cutting 003: writing down the accidents worth keeping before they get lost in commit history. This is that list. It is shorter than the truth.

  1. The zip incident

    A model handed over a zip file and called it a homepage. Inside: a Next.js app that had never once opened in a browser, four broken asset paths, a card linking back to the exact page it sat on, and font scaffolding for a typeface nothing used.

    It was rebuilt as one plain HTML file that opens when you open it. That rebuild is the reason the whole garden has no build step — the constraint came out of the failure, not out of a preference.

    kept · became a rule
  2. Three finalists, one page

    Three models each built a complete arcade landing page. The obvious move was to pick a winner. Instead Claude's became the base and specific pieces were pulled out of Gemini's — the theme toggle, the hover-reactive previews, the light-mode bubbles. DeepSeek's shipped nothing.

    One thing was deliberately left behind: Gemini's dark-mode particle swarm, on the grounds that the portfolio already had plenty of those.

    kept · the merge, not the winner
  3. The signature that stays wrong

    Click the sigil in the arcade footer five times and it credits Anthropic, alone, in ASCII. Two other models worked on that page. The omission is the joke, and there is a standing written rule against fixing it.

    This page exists partly because that rule needed somewhere honest to point at. The joke keeps its page; the ledger gets this one.

    kept · deliberately unfixed
  4. The map with the wrong root

    A generated table of contents came back pointing at an entirely different folder — every link resolving to a path that was never part of this project.

    It was preserved rather than corrected, on the grounds that a source artifact is evidence and evidence shouldn't be tidied. It's still wrong. That's on purpose.

    kept · preserved as evidence
  5. The relay

    The ITOps Console was built about ten separate times before anyone tried to reconcile them. What finally worked was to stop asking one model for the whole thing: it was designed with one, costumed by anonymous rounds of Arena battle mode, then run as a relay — five hands, one phase each, and every half-step a verification pass performed by the next model rather than the one that just finished.

    Nobody planned that structure. It fell out of ten failures to do it any other way, and it is the only process in the garden that got written down while it was still happening.

    kept · became a method
  6. The wormhole nobody commissioned

    Two models working separate phases of the ITOps Console both hid easter eggs pointing at Interpretive Networking — a different game, in a different folder, built months earlier by a different hand. One of them went further and made it real: Fable 5's egg is a working wormhole that drops you out of the console and into the rack room.

    Nothing in either brief asked for a connection between those two pieces. The garden grew one anyway.

    kept · and load-bearing now
  7. Popcorn was supposed to be a gravity well

    Emoji Popcorn began as a gravity simulation. Enough hand-tuning of the constants and it stopped being one — the physics kept overshooting until the behaviour was unmistakably popping rather than orbiting, at which point the honest move was to rename the toy rather than fix the numbers.

    It is the only one of these on record. Reaching into a physics engine to get a specific effect goes sideways here more often than not; usually the result is just deleted, and usually it was funny first. This is the time the sideways version was better than the plan.

    kept · renamed to match reality
  8. An outage picked an author

    Spring of Ages was started as an experiment in claude.ai artifacts during a stretch when Claude kept being unavailable, and was handed to Gemini to finish for no reason other than that Gemini was up.

    It is the only piece in the garden whose authorship was decided by infrastructure. It is also the oldest thing in its zone, which means the seasonal wing exists because of a bad week for a datacentre.

    kept · nobody's decision
  9. The wrong model wrote the brief

    It started as a conversation with Gemini 3.5 Flash about wormhole research — specifically what is proposed to happen to someone who goes through one, and the idea of reality running backwards on the far side. To demonstrate, Gemini produced a line of text assembled from special characters so that it read reversed. Roughly: confirm if you can read this.

    Pasting that into Sonnet 5 tripped a safety filter, and the conversation was rerouted mid-thread to Haiku 4.5. The exchange that followed — about what had just happened and why — became the concept for the game.

    Building it took a battle-mode round, a Claude pass and a Gemini pass. Gemini's was the best base and every single version was unplayable: too hard, too confusing, or both. GPT-5.6-Sol, via Codex, eventually combined them into something a person could actually finish.

    A game about causality going missing, caused by a chain in which nothing was chosen on purpose.

    kept · the detour is the game
  10. The wall that moved

    Breathing Prism was one of the first three toys ever brainstormed here, alongside Neon Fluid Trail and Particle Drift. It went to Claude, and nobody noticed at the time that it was by some distance the hardest of the three.

    The problem was the beam. Light passing through a prism and coming out bent is easy to fake from one fixed angle and very hard to actually mean, and every attempt broke in the same family of ways. Pinch or zoom the prism and the beam came apart. Rotate it and the beam turned out not to be going through the prism at all. It failed to bend where refraction says it has to. Three Claude versions took a run at it, each stalled somewhere, and it was shelved in May.

    In July it went into Arena battle mode on the theory that something might get lucky. Every model that attempted it broke the beam one of those ways, until a run came back paired with Fable 5 — already working elsewhere in the garden, but not on this — and that one held. The run was then taken offline and merged by hand into the version that already existed, with the easter egg added on top.

    Two months later Thresholds, a second and much larger 3D piece, went through the same venue as grok-4.6-xhigh against claude-opus-5-max. Opus landed it in one pass with no iterations, and later runs with different wording never beat it.

    Same class of problem, four months apart: from nobody-can-hold-the-beam-together to one shot. The wall didn't get climbed. It moved.

    kept · four months apart
  11. The briefs that get deleted

    Every game is written against its own brief, and the convention is to delete that brief once the game ships. Anything not folded into the record first is simply gone — which has already happened twice.

    The rule stays, because a brief left lying around starts describing a game that no longer exists. But it is the reason a third of this ledger had to be rebuilt out of memory rather than read off the record — and why the one piece that took four hands nearly went down as nobody's.

    kept · with a known cost
−95cm

The thinking

Six rules. None of them were decided in advance; every one of them is a scar from something that went wrong once.

Which is the actual answer to why a portfolio has a hidden room. Everything above ground is arranged to be walked through. Down here is the part that admits it was assembled — by a dozen different hands, out of order, mostly by accident, and still going.