Visualizations
212 / 500

212 · Generative art

Haeckel Plates

An endless folio of generative radiolarians, diatoms and medusae in lithograph ink.

Each figure grows from a small genome. Radiolarian shells are Goldberg polyhedra: a jittered geodesic icosphere whose dual is the spherical Voronoi lattice of pentagons and hexagons Haeckel drew, made glassy with inner shells and radial beams or solid with pores, and armed with thorned spines. Helmet-shaped nassellarians are surfaces of revolution with pores laid out on the surface, acantharians follow Muller's law of twenty spines, diatoms are silica valves with areolae, sectors and striae that tilt to show their girdle bands, and medusae pulse with radial canals, frilled oral arms and drifting tentacles. Everything rotates in pseudo-3D, and the shading is engraved: hatching clipped to the silhouette minus a copy shifted toward the light, with cross-hatching deeper in the shadow.

Try it. Click a specimen to breed it: it moves to the center of a new plate surrounded by its mutated offspring, each straying a little further from the parent. Drag a specimen to turn it. Click empty paper or press R for a fresh plate.

  • Goldberg polyhedra as spherical Voronoi lattices
  • Engraved hatching with clipped crescents
  • Genome mutation and breeding

View the source · one module, plus a small shared runtime for sizing, the animation loop and input

Build your own

Paste this into Claude Code, Codex or any coding agent to get a simple version running, then take it wherever you like.

Build a generative radiolarian, the glassy lattice plankton from Ernst Haeckel's plates, drawn like a lithograph with JavaScript and the HTML canvas element. Put everything in a single index.html file with no libraries or build step, so I can open it directly in a browser.

Start simple:
- Make a canvas that fills the window, stays sharp on high-DPI screens (scale by devicePixelRatio), and has a cream paper background with a little random grain.
- Build a geodesic sphere: start from the 12 vertices and 20 faces of an icosahedron, split every face into smaller triangles (frequency 4 or 5), and push every new vertex out to the unit sphere.
- Turn it into a lattice of hexagons and pentagons by taking the dual: each vertex becomes a cell whose corners are the centers of the triangles around it, sorted by angle.
- Rotate the points in 3D every frame with a rotation matrix and project them orthographically. Draw the cells facing the viewer as dark ink polygons and the back ones faint, so the shell looks like glass.
- Add spines: from the 12 pentagon cells, draw tapered lines outward, drawing the back ones before the sphere and the front ones after.

Once that works, make it beautiful:
- Shade the sphere with engraved hatching: clip to the circle, then clip to the circle minus a copy shifted toward the light, and draw thin parallel lines in that crescent. Add a second, smaller crescent with lines at another angle for cross-hatching.
- Jitter the sphere vertices a little before building the dual, so the lattice looks grown rather than machined.
- Add an inner shell joined to the outer one by radial beams, and a small serif caption underneath like a figure on a museum plate.

Explain the key ideas in short code comments. When you're done, tell me how to open it and suggest three directions I could take it next, such as a whole plate of specimens with mutated genomes, diatoms with rings of pores, or jellyfish with drifting tentacles.
PreviousSlime MoldSimple agents leave trails that self-organize into living networks. NextFaraday WavesA shaken dish of liquid locks into stripes, squares, hexagons and a 12-fold quasicrystal.

Related visualizations

  • Seashell PatternsNature Meinhardt's lip chemistry paints tents, bands and dots onto a growing 3D shell.
  • Differential GrowthGenerative art One closed line grows, buckles and folds into brain coral without ever crossing.
  • BiomorphsAlgorithms Dawkins' Blind Watchmaker: breed recursive ink creatures by choosing a child.
  • Roman MosaicGenerative art Thousands of tesserae laid in rows that follow every outline, as a Roman mosaicist would.
  • Engraving Renderer3D A moving 3D still life printed as a copperplate engraving, line by swelling line.
  • Girih Star PatternsGenerative art Interlaced Islamic star patterns built live from one angle over a hidden tiling.
  • Self-Replicating LoopsEmergence Langton's 1984 loops copy their own genome and tile the plane with a glass colony.
  • Basalt ColumnsNature Cooling lava cracks into columns that drift toward hexagons, on an isometric causeway.
  • Plankton BloomFluids Eddies stir green diatom and turquoise coccolith blooms, like ocean-color imagery.

Use ← and → to move between demos. While the canvas has focus, keys go to the demo instead.

← More from Emergent Mind Labs