One hundred and four buttons, each possessed by a different element. Every one is a static loop (alive before you touch it) plus a thank-you (a reaction when you press it) — the two species from chapter 12, taken on a grand tour of fire, lightning, water, mercury, ice, stone, wind, light, and stranger matter. Press ▶ Run all to wake the whole bestiary, or click any single button to wake just that one. Clicking a running button triggers its reaction. Under each button, open code loads its full source into the editor at the bottom of the page — every effect is ~20–35 lines, self-contained, and editable.
Every button also hides a rhyme. A rhyme is the same effect with two or three dials turned — a palette, a speed, a direction, a count — and nothing else. Click ⇄ its rhyme on any card to swap them in place (that's 104 more demos, folded into the same cards), then open code to read the pair side by side: the rhyme's opening comment names exactly which dials moved. This is the point of the whole page said twice: once you understand a recipe, its neighbours are nearly free — Candleflame becomes Ghost candles by changing a hue and halving a flicker speed; the fountain becomes Ember fall by flipping one velocity sign. The rhymes travel with the Godot port too: in the downloadable project, right-click any card to swap original ⇄ rhyme — each family file scenes/elements/<family>.gd has a sibling <family>_r.gd that overrides only the branches whose dials moved, so diffing the pair is the same lesson in GDScript.
Every effect is one function, make(u). It receives a kit u and returns { frame(dt, t), press(x, y) }. The kit: ctx (2D context), W, H (canvas size), B (the button rectangle: x, y, w, h, cx, cy, r), rand(a, b), rr(x, y, w, h, r) (begins a rounded-rect path), face(fill, stroke) (draws the standard button face), label(text, colour) (centred caption), and TAU (a full turn). Change a number, press Run, watch it change.
The preview is bigger than the grid cards, and every effect is written relative to W, H, and B — so the same code scales up without edits. Click the preview to trigger the press reaction.
On the real web (DOM): each of these is a <canvas> layered behind or over a real <button> — or, for the simpler ones, a pseudo-element with an animated gradient and filter: blur(). Wrap all idle motion in @media (prefers-reduced-motion: no-preference); the press reactions can stay, because the user asked for those. In Godot: all 104 buttons are ported — fourteen family files in scenes/elements/, paged by family in elemental_buttons.gd (grab the Godot project and press its menu's A). Same anatomy per button — init / tick / draw / press — with the canvas-to-Godot translations (gradients → layered circles, lighter → additive layering, trails → explicit history) noted in place; the node-based spelling is a Button with a shader or GPUParticles2D child and a press Tween. In Unity: UI Image + animated material + a particle system, impulse via coroutine. In Unreal: UMG widget, animated material, Widget Animation for the press. The mechanisms are the book's usual suspects — particles, additive light, gradients, cracks-as-lines, trails-by-not-clearing — recombined 104 ways. Chapter 12 names the species; chapter 6 teaches the ingredients.