If you don't already know about cellular automata (CA's), you should read the introductory page, which has general information about CA's. This page describes Version 1 of an applet called EdgeOfChaosCA, which you can use to search for interesting CA's and pretty pictures. The applet is based on the idea of the Edge of Chaos and on Christopher Langtons's lambda parameter. You can read about these ideas on the previous page.

In EdgeOfChaosCA, you control the number of states of the automaton and the number of neighbors that are considered when determining the new state of a cell. You also control the lambda parameter of the CA. To review: One state, represented in EdgeOfChaosCA, is defined as "dead". The remaining states are "alive". The lambda parameter of the CA is defined to be the percentage of rules that lead to live states. Low values of lambda tend to give boring, "ordered" CA's while high values tend to give highly "chaotic" CA's.

If Langton's theory about the Edge of Chaos is correct, you expect "interesting" CA's to be found near the border between the ordered and chaotic realms. EdgeOfChaosCA is a tool for searching for such interesting CA's and the pretty pictures that they make.

Now, EdgeOfChaosCA doesn't just choose one random cellular automaton. It actually
chooses, right at the beginning, a whole random **list** of automata with different lambda values.
This list can be thought of as a path through the space of possible automata. At each step
along the path, one rule that previously led to death is selected and modified so that it now
leads to life. Backing up along the path will reset the rule so that it once again leads
to death. A scroll bar allows you to move back and forth along this pre-selected path.
At one end of the scroll bar, the CA's are far into the ordered realm; at the other end,
they are completely chaotic. Somewhere in between is the edge of chaos.

When you look at the EdgeOfChaosCA, you'll see the CA itself on the left. Above the CA is a line of text containing information about the current CA, including its lambda parameter. Just to the right of the CA is the scroll bar that you use to control the lamda value. When you adjust the scroll bar, the CA will clear itself and restart, using the same initial world that it used most recently. (This allows you to compare the effect of different lambda values using the same initial world.)

Along the right edge of the applet, there are 10 buttons and pop-up menus that give you further control over the CA. Here are descriptions of what they do:

New button. Chooses an entirely new path through the space of CA's. It also creates a new random initial world, and it sets the scroll bar to a lambda value of about 1/3. The first three pop-up menus, discussed below, give information about the type of CA's to be created. Use this button with care. Once you've press it, you've lost the set of CA's that you've just been playing with, and you'll probably never get to see exactly the same pictures again!

States pop-up menu. Determines how many states the CA's will have. There can be anywhere from 2 to 10 states. Changing the value of this pop-up menu does not have an immediate effect. The value is not used until the next time you press the "New" button.

Neighbors pop-up menu. Determines how many neighbors of a cell are used when determining that cell's state in the next generation. This number can be 3, 5, 7, or 9, and this includes the cell itself. Thus, if the number of neighbors is set to five, the cell itself and two cells on each side of that cell are considered to be neighbors. The number of rules in a CA is given by K raised to the power N, where K is the number of states and N is the number of neighbors. Because of the large number of rules that would be required, certain combinations of number of states and number of neighbors are not allowed. If you try to set the Neighbors pop-up to an unacceptable value, it will be rejected. Changing the value of this pop-up menu does not have an immediate effect. The value is not used until the next time you press the "New" button.

Isotropy pop-up menu. This menu has two options, Isotropic and Anisotropic. Isotropy is a kind of symmetry. In an isotropic CA, a symmetric pattern of cells will remain symetric. More explicitly, the new state computed for a cell will be the same whether you read the states of its neighbors from right to left or from left to right. For example, a pattern of neighbors given by

red white black black whitewould produce the same new cell state as the reversed patternwhite black black white red. Because of this symmetry, an isotropic CA has fewer independent rules than an anisotropic CA. For isotropic CA's, the number of rules listed in the information text is the number of independent rules. Note that Isotropic is the default; it tends to give prettier pictures. Changing the value of this pop-up menu does not have an immediate effect. The value is not used until the next time you press the "New" button.Speed pop-up menu. This menu controls the speed at which new generations of cells are computed and displayed. Changing the value will have an immediate effect. Warning: Using the "Fastest" speed setting might cause problems on some platforms.

Restart button. When you press this button, the CA will be cleared and will restart using the same initial world that it used most recently.

Clear button. When you press this button, the CA will be cleared, and it will continue at the top of the screen with the next generation of the current world.

Random Start button. This will clear the CA and start it with a newly generated world in which the initial state of each cell is chosen at random.

Random Clump button. This will clear the CA and start it with a newly generated world in which an initial random state is assigned to each cell in a clump in the center of the world. The remaining cells are initially dead (represented by the color white in this applet).

One Dot Start button. Pressing this button will clear the CA and restart it with a new world in which all the cells are dead except for one lonely cell in the center of the CA. That cell is initially black. Unless the value of lambda is large enough, it is likely that this single cell will simply die in the next generation. However, if you use a large value of lambda, it might give rise to an interesting pattern. This is especially true if the CA is isotropic, since then the pattern will be symmetric. (Note, by the way, that every CA in EdgeOfChaosCA has the property that if a cell and all its neighbors are dead, then that cell remains dead in the next generation.)

The next page contains the EdgeOfChaosCA applet itself.

[Index] [Previous] [Next] [HandCraftCA Applet] [EdgeOfChaos Applet, Version 2] [Eck's Java Page]

David J. Eck

Department of Mathematics and Computer Science

Hobart and William Smith Colleges

Geneva, NY 14456

E-mail: eck@hws.edu