During a similar discussion in early 1995, I sketched out the rules of a
computer program which, I believe, demonstrates one relatively simple
example of "self-organized complexity." I recently wrote and tested the
actual program. (The rules are listed at the end of this post.) I believe
that attempts to demonstrate "intelligent design" in the biological world
must confront the possibility of self-organized complexity, of which this
program is but one example. (More about biology and computer simulations
THE PROGRAM (brief description)
The program is a text-based screen-saver. Its rules are modeled
loosely on molecular dynamics. The screen is divided into rows and
columns. Each screen "cell" can either be blank or can have one "atom"
in it. There are eight types of atoms (designated 1-8). The screen is
"cycled" and updated once per second. Atoms can spontaneously move,
appear, and disappear. Neighboring atoms can join to form molecular
chains. Molecules can move, rotate, and molecular bonds can break. The
processes are stochastic. The program's behavior is governed by eight
probabilities (p1 through p8) and the 3 equations which
determine relative molecular bond strengths and motion.
If you run this program and watch it for a few minutes, you will see
"atoms" appear, move, and disappear. Simple molecules form,
move, and break apart. With careful observation and measurement, the
first few rules and probabilities could be deduced relatively quickly.
Some of the later rules which govern molecular dynamics would take
considerable effort to learn from observation.
If you start with a blank screen and leave the program running for a
few days, you find something interesting. In several places on the
screen you will see the following 8-atom molecule:
This molecule (and its rotational- and reflection-analogs) is
absolutely stable. No matter how long you watch it, --- unlike any
atom or molecule --- it is stable. Moreover, it has another unique
property. Without fail, it "rotates" one notch per screen cycle. It
functions as a clock.
COMPLEXITY AND SELF-ORGANIZATION
I believe this "clock molecule" is an example of irreducible complexity
(albeit a relatively simple one). Each type of "atom" obeys different
laws of behavior. Each atom is required, in exactly its proper
(relative) position, for the molecule to be stable and to reliably
function as a clock.
One could assemble these clock-molecules "by hand." One could interrupt
the program, re-write the memory locations specifying the locations of
various atoms and their neighboring bonds, and re-start the program with
one or more clock-molecules in place. If the probabilities are set
correctly, however, that is unnecessary. Starting from a blank screen,
using only the rules of chance and necessity outlined above, clock-
molecules will self-organize out of simpler elements (atoms) --
typically in of order 10^5 screen cycles.
FINE-TUNING THE RULES TO PRODUCE SELF-ORGANIZED COMPLEXITY
The rules which govern the motion of the atoms are fine-tuned to
encourage the eventual self-organization of the clock molecule. Rules
5b and 7b ensure the stability of the clock molecule and the eventual
lack of stability of other molecules. Rule 8 ensures that the clock
molecule reliably rotates one notch per screen cycle, while other
molecules rotate irregularly.
The probabilities p1 through p8 (and the form of the equations for "bond
energy") are also fine-tuned to encourage self-organization. There are
fairly narrow ranges of probabilities which make self-organization
probable in less than 10^6 screen cycles. If one or more of the
probabilities are set outside those ranges, self-organization is
extremely improbable in less than 10^6 screen cycles.
SELF-ORGANIZATION AND DESIGN
The clock-molecule is clearly "designed." It highlights that there are
(at least) two ways in which designed objects can be assembled. Suppose
you ran this program overnight and returned to find several such clock-
molecules on the screen. When should you conclude that this molecule
was formed out of simpler elements (atoms) through the continuous
operation of specific rules which make use of chance and
necessity? When should you conclude that, in your absence, some
intelligent agent interrupted the normal rules of behavior of the
program, assembled the clock-molecules, and then set the screen saver
program back in motion? The answer to that question depends upon the
probabilities and equation forms assigned at the beginning of the
program. In this particular case --- based upon your knowledge of the
program's rules (which could be deduced from observation and
measurement) -- you would conclude that it was unnecessary for some
intelligent agent to assemble the "irreducibly complex" structure, OTHER
THAN by specifying the program's rules of chance and necessity. If,
however, the probabilities were assigned differently --- if for example
rule #5b were changed so that the probability of an "atom" in a diatomic
molecule "spontaneously disappearing" were (.999) per screen cycle ---
then your conclusion would be different. In that case, if you found
several "clock molecules" on your screen the next morning, you would
conclude that some intelligent agent had assembled them. In either
case, you would be justified in concluding that the clock-molecules were
the products of design.
OTHER STRATEGIES FOR SELF-ORGANIZED COMPLEXITY
The clock-molecule represents one strategy for self-organized
complexity. The rules are fine-tuned to produce one particular complex
object. This is perhaps the least interesting strategy. Other
strategies have been proposed.
Another proposed strategy is as follows: start with a large number of
initially autonomous "agents" which can interact. Increasingly complex
interactions are encouraged because they allow the agents to achieve
their goals more efficiently. Under the right conditions, an
irreducibly complex system of interactions could evolve. The
development of the modern economic system resembles this algorithm, as
Glenn Morton has pointed out in other posts. A computer program to model
this strategy would be an interesting demonstration.
Another proposed strategy for self-organized complexity is to start with
entities which are already complex, allow for mutations, reproduction,
and competition, and see if a novel form of complexity arises within the
system. "Artificial life" computer programs pursue this strategy. For
one example, see the "Tierra" program homepage.
COMPUTER SIMULATIONS AND BIOLOGY
The general argument has sometimes been advanced that irreducibly
complex objects cannot self-assemble by "evolutionary" means. The
clock-molecule program is intended as a specific counter-example to that
general argument. Beyond that, however, the clock-molecule program
proves nothing about abiogenesis, biological evolution, or biochemical
complexity. Self-organized complexity is possible in computer
simulations; it may or may not be possible in biology.
At present, there are some non-empirical "hand-wavy" arguments about how
this can happen in biology, and some non-empirical "hand-wavy" arguments
about how this canNOT happen in biology (or in specific biological
examples). Hand-wavy arguments in science are useful tools, but more
empirical evidence is needed. In order to make empirical arguments, a
good deal more must be learned about cellular physiology. More
genomes need to be sequenced and analyzed. One specific example where
there is enough empirical data to propose and evolutionary pathway
toward complexity is the Crebs cycle. (Discussion in
That is only one example, however. Much more work needs to be done.
COMPLEXITY AND INFORMATION
The claim is often made that complexity requires specifying information.
This seems reasonable. The interesting question is: In the case of
self-organization, where does the information come from?
An arbitrary amount of information can be stored in a single real
number, provided you have the proper key to decode and read that
information. In this particular case, the information to assemble the
clock-molecule is contained in the mathematical equations and
probabilities which govern "atomic" motion. The information is "decoded
and read" by the process of chance and necessity operating over time.
The fundamental constants of physics (e.g. the rest mass of fundamental
particles, the ratio of strengths of fundamental forces) seems to be
"fine-tuned" to a narrow range of parameters to allow life to be
possible. They allow the transformation by self-organization of simple
hydrogen and helium into stars, heavy elements, and planets with
interesting geologies by self-organization. They allow for the
existence of stable, complex molecules based upon carbon chains.
Natural laws determine the parameters of "genomic phase space" (that is,
all possible arrangement of DNA into genomes which can produce viable
living organisms) and the possible pathways through genomic phase space
(via mutations, recombinations, etc.). The question for abiogenesis and
macroevolution is: are the natural laws finely-tuned in such a way as to
allow for self-organization of molecules into life, and the self-
organization of some biochemical processes into novel complex ones?
This is analogous to the question of the clock-molecule: are the
probabilities and rules finely tuned to produce self-organization, or
are they set in such a way that self-organization is exceedingly
improbable. For the clock-molecule program, we pretty much know what
values allow self-organization. For abiogenesis and macroevolution,
we're just starting to learn.
For the truly curious and brave, here are the rules for the clock-
molecule program. If you want a copy of the actual program, I'll e-mail
it to you.
A text-based screen-saver-type program operates in the following manner
(modeled loosely on molecular dynamics):
0. The screen is divided into rows and columns (24 by 80 on a typical
old-style screen). Each "cell" on the screen can either be blank or
can have one "atom" in it. There are eight types of atoms (designated
1. The screen is "cycled" and updated once per second. (Exact time per
2. At the beginning of each cycle, any blank cell which is surrounded by
eight blank cells has a probability (p1 = 0.1) (10 percent) of
spontaneously generating one (randomly chosen) "atom."
3.In the middle of each cycle, each existing atom has a probability (p2
= 0.9) of moving one cell (horizontally, vertically, or diagonally) to
a randomly chosen unoccupied neighboring cell.
4a. Near the end of each cycle, if two atoms are in neighboring cells
(horizontally, vertically, or diagonally), they will "bind together"
to form a "diatomic molecule."
4b. At the end of a cycle, if an atom is next to one and only one atom
in a diatomic molecule, they will bind to form a 3-atom-molecule. (In
other words, the angle formed by the 3-atom-chain must be 135-degrees
4c. Additional atoms can bond to the end of n-atom-molecules so long as
the angle formed by each new "bond" is 135 or 180 degrees. (An atom
can have at most 2 bonds.)
4d. Multi-atom molecules whose ends are neighboring each other can also
bond to each other according to similar rules: (The resulting
molecular chain can only contain 135 or 180-degree angles.)
4e. If, at the end of a cycle, an atom has several "choices" about
which neighboring atom or molecule to bind to, it will preferentially
chose to form the "lowest-energy" bond.
(BondEnergy == ABS( MOD6[ABS(x-y)] - 1); where "x" and "y" are the
numerical values of the atoms (1 through 8), "ABS(z)" is the absolute
value of z; "MOD6[z]" means take the value of z modulo 6.)
If an atom has several choices of the same bond strength, it will
preferentially bind to an atom which already has one other bond. If
there are still several choices, the atom will chose one randomly.
5a. At the end of each cycle, an unbound atom has a probability (p3 =
0.5) of "spontaneously disappearing."
5b. At the end of each cycle, an atom in a diatomic molecule or at the
end of a molecular chain (an atom with only one bond) has a probability
of spontaneously disappearing (p4 = 0.5 / ((BondEnergy+1)/5)^2 ; where
BondEnergy is the "energy" of the atom's bond as defined in rule 4e.)
6. In the middle of each cycle, n-atom molecules have a probability (p5
= 1.8/n! ; where n! is n-factorial) of moving rigidly, as a group, one
step (horizontally, vertically, or diagonally) provided all the
molecule's atoms end up in previously unoccupied cells.
7a. At the beginning of each cycle, there is a probability that the bond
of a diatomic molecule will break, allowing each atom to move
independently. (p6 = 0.5 / ((BondEnergy+1)/5). )
7b. At the beginning of each cycle, each atom on the "inside" of an
n-atomic molecule (i.e. not on the ends) has a probability of one of
its bonds breaking. For each 3-atom chain x-y-z,
p7 = 2.5 * ( 0.01 * ( (BondEnergy_xy + 1) + (BondEnergy_yz + 1) )
+ 0.1 * ABS( MOD4[ABS(x-z)] - 2)
+ 0.1 * (ANGLE/45 - 3) );
where ANGLE = the angle of the x-y-z bond (135 or 180 degrees).
If one of the two bonds does break, it will be the one with the greater
BondEnergy. If both have the same BondEnergy, it will preferentially
break the bond at the end of the molecule. If both have the same
BondEnergy and neither (or both) is at the end of the molecule, one is
8. In addition to rule 6 for purely translational motion of n-atomic-
molecules, molecules can also undergo a combined rotation+translation
motion. The final position of the molecule is constrained by three
conditions: (8a) The final position of every atom in the molecule is
at most one cell away from its initial position. (8b) The angle between
any two adjacent bonds must be preserved. (8c) The rotation-
translation motion can occur only if the final position of the molecule
does not move any of its atoms to a cell occupied by a different
molecule or free atom. The probability (p8) that an n-atomic-molecule
will undergo a particular "allowed" rotation/translation is affect by
n, k (the number of atoms in the molecule whose final positions takes
them to previously unoccupied cells), m (the number of atoms whose
final positions takes them to cells previously occupied by another atom
in the molecule (note that k+m=n)), and an additional factor which
specifies that atoms are more likely to move "towards" certain atoms
and less likely to move towards others.
p8 = (n^2) * SUM_m[6-ABS(MOD8[y-x]-1)] / [(k+2)^(k+2)] / [3 * 2^8]
where SUM_m[z] means to sum the term "z" over the "m" different atoms
whose final position will be a cell previously occupied by an atom in
the molecule, "x" is the numeric value of the final atom in the cell in
question, "y" is the numeric value of the initial atom in the cell in
Since the molecule can undergo at most one such motion per cycle, p8 is
calculated for each "allowed" rotation/translation, and a single random
number is picked to determine which (if any) of the allowed motions is