Abstract
AJ’s Black Smoker is a Java applet that schematically1 models natural selection. The Smoker grew out of an earlier Java application I called Clockmaker, which, in turn, was originally inspired by Richard Dawkins’ The Blind Watchmaker—a popular work on evolutionary biology which (among other things) described schematic modelling of artificial selection in software
Design
My design goal in producing the Smoker was to come up with as simple as possible a model in which (1) a reproducing entity making sometimes imperfect copies of itself would have its ability to thrive and reproduce itself affected by those copying errors, and in which (2) features of a simulated environment and simplified biochemical system would determine directly and mechanistically how this ability would be affected in response to these changes, and in which (3) the environmental conditions are not entirely static, but do vary over time2.
Mechanism in brief
To achieve all of this, the Smoker takes a single ‘organism’, containing four schematic ‘genes’, sets up a simplified environmental and biochemical model in which changes in those genes affect the organism’s ability to survive and reproduce itself, and sets it all loose. Given a little luck, and the right conditions, you can watch this single seed organism reproduce, and diversify into multiple lineages, each exploiting very different energy sources available in the simulated environment as it does so.
Further reading
Simulation/natural selection—Richard Dawkins’ original Blind Watchmaker (Norton 1986, rpt. 1997) has started a small cottage industry in simulations like this one, both by providing computer simulations of artificial (breeding) selection and suggesting that simulations pursuing natural selection might be valuable. Still a good read after ten years, deserving of its classic status.
—Last update 16/11/2006
Notes
1 Schematically, in that the code is intentionally boiled down to the critical requirements of the theory—it provides objects that replicate, and periodically make errors in doing so, a stick-figure environment with which and in which they interact, and a set of simplified biochemical rules that govern how changes in the genes and the environment affect the viability of the organisms, and little more.
2 Strictly speaking, this is one element of the simulation which is not entirely required by the basal requirements of the schema—the varying environment does however make things a little more interesting, giving the rather simple metabolic model used—see the metabolic model page for details.
