Every image starts as a random math formula. You pick the ones worth keeping, and Galápagos breeds the next generation. Here's how that works.
Every formula is built from three kinds of pieces. Click any chip to learn what it does.
A genome grows by picking operations at random and chaining them into a tree, one node at a time.
To draw a pixel, the tree runs once with that pixel's coordinates as input. The answer becomes a color.
(px, py) → x, y ∈ [−1, 1](sin(v) + 1) / 2 → [0, 1]gray = v × 255H, S, V — see §4Three separate trees control the hue, saturation, and brightness of every pixel. A remap tree then fine-tunes each channel's range before the final color is set.
Each pixel is colored by three numbers. Drag the sliders to explore each dimension — the swatch shows the combined result.
The spatial tree outputs a number at each pixel. A separate remap tree intercepts that number and bends the range before it becomes a color. The colored bar shows what the remap produces; the curve shows how input maps to output; the dashed diagonal is identity (no change).
Five operators shape each generation. Crossover grafts a branch from one parent into another. Replace subtree swaps a branch with a freshly grown one. Expression mutate swaps operators node-by-node without touching structure. Dropout collapses a subtree to a constant — a regularizer against bloat. Duplicate copies a subtree to another position, introducing self-similarity.
Walks every node and swaps its operator for a random same-arity alternative (10% per node). Tree structure is unchanged — only the operations differ. Changed nodes shown in orange.
Picks a random non-root subtree and collapses it to a single constant. Acts as a regularizer against tree bloat. The dropped subtree is shown in orange in the Before tree.
Picks a source subtree (blue) and copies it over a destination subtree (red). Creates self-similar patterns. The pasted copy is shown in orange in the After tree.