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.
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.