A Patchwork Darwinge

by Dirk Brockmann

This explorable illustrates how the combination of variation and selection in a model biological system can increase the average fitness of a population of mutants of a species over time. Fitness of each mutant quantifies how well it can reproduce compared to other mutants. Variation introduces new mutants. Sometimes a mutant's fitness is lower than its parent's, sometimes higher. When lower, the mutant typically goes extinct, if higher the mutant can outperform others and proliferate in the population. This way mutants with higher fitness are naturally selected.

Press Play to start the simulation and keep on reading for more details.

This is how it works:

In this explorable, we have a hexagonal world in which each one of the 7651 pixels represents an individual of a particular mutant type. Initially, the entire system is uniform, i.e. we only have one type of mutant (blue).

The important quantity associated with every mutant is its fitness \(f\), a single number that quantifies how well, compared to other mutants, a mutant can proliferate and survive in the population.


Variation in the system is caused by mutation. Every individual patch can mutate into a new variant, indicated by a new color, like so:

The new mutant (orange) also has a new fitness \( f^\prime = f + \delta f \) where \( \delta f \) is a random \(\pm\) increment that is distributed symmetrically around the previous fitness \( f \). So with equal probability the new mutant has a smaller or larger fitness. The rate at which mutations occur in the system is governed by the mutation rate which you can vary with the corresponding slider. In the little inset plot in the control panel the emergence of new mutants is indicated by little flashes on the fitness axis. The abundance of different mutants is indicated by vertical spikes in the corresponding color.


When two different mutants, say 1 (orange) and 2 (green), with fitnesses \(f_1\) and \(f_2\), are adjacent, then with probability \(0\leq P\leq 1\) mutant 1 will remove mutant 2 and reproduce into the new, vacant site. With probability \(1-P\) the reverse occurs, like so:

The probability \(P\) is a function of the difference of the fitnesses \(f_1-f_2\). For example we can chose a sigmoid function:

\[ P = \frac{1}{1+\exp\left( - \sigma (f_1 - f_2) \right)} \]

If \(f_1 > f_2\) then \(P>1/2\), so mutant 1 is more likely to win. The parameter \(\sigma\) is the selectivity that you can adjust with the corresponding slider. In controls how clear the decision about the winner is, e.g. if \(\sigma \gg 1\) even if \(f_1\) is only slightly larger than \(f_2\) mutant 1 will win almost certainly.

Long range interactions:

For the preset parameters, interactions only occur with neighbors. With the long range interaction parameter you can increase the likelihood that a mutant will compete with any other patch in the world. This can be interpreted as a mixing of the population of mutants.