Click any of the eight offspring to select it. Generation 0.
One genotype, two rules
Selection
Genotype
| Gene | Field rule | Tree rule |
|---|
Gallery
Nothing saved yet. Specimens saved here also open in the breeder.
A biomorph is nine numbers and a rule for turning them into a form. Dawkins' rule reads genes 1–8 as eight directions and gene 9 as how many times to branch. This page keeps the same nine genes and swaps the rule.
Here the genes are the coefficients of a trigonometric generator: four of them shape a cross-section, two lay out a backbone, one sets how big the cross-section is, one sets how far the copies wrap around the body, and gene 9 — depth in the tree rule — sets how many copies there are. Selection works the way it always does. The centre creature is the parent, the eight around it each carry one mutation, and clicking one makes it the parent of the next generation.
Nothing here is a creature model, and there is no randomness anywhere. Each frame plots thousands of points, and every one of them is fixed exactly by three numbers: which sample it is, which copy of the body it belongs to, and what time it is. A point's position is three things added together.
Three separate clocks run at once: the cross-section deforms quickly, a pulse travels along the body at half that rate, and the whole form drifts around the backbone about fifty times slower still. Each copy of the body gets its own offset into those clocks, so the pulse arrives at one end before the other rather than the whole thing throbbing at once.
The image is a density map, not a line drawing. Points are plotted, not strokes, and where many of them land on the same spot it reads as bright and solid; where few land it stays wispy. The shading is just the count.
a=(m,d=mag(k=9*cos(i*5)*sin(i),e=cos(i*3)*cos(i*2)*9)**3/1999+1.5-sin(t/2+m)**3/3)=>point(99*sin(c=d/16-t/48+m)+k*(p=d**sin(d*d-t+m))+200,99*sin(c*4)+e*p+200)
t=0,draw=$=>{t||createCanvas(w=400,w);background(9).stroke(w,96);for(t+=PI/20,i=1e4;i--;)a(i%16*13)}
The starting point: a p5.js sketch by @yuruyurau. Every constant in it that could be a gene now is one.
Click any of the eight offspring to select it. Generation 0.
| Gene | Field rule | Tree rule |
|---|
Nothing saved yet. Specimens saved here also open in the breeder.