Cellular Automata Laboratory

by Rudy Rucker and John Walker

Introduction (from the User Guide)

Cellular automata are self-generating computer graphics movies. The most important near-term application of cellular automata will be to commercial computer graphics; in five years you won't be able to watch television for an hour without seeing some kind of CA. Three other key applications of cellular automata will be to simulation of biological systems (artificial life), to simulation of physical phenomena (heat-flow and turbulence), and to the design of massively parallel computers.

Most of the programs in the Rudy Rucker Cellular Automata Lab (CelLab) are two-dimensional cellular automata. In these programs the computer screen is divided up into "cells" which are colored rectangles or dots. Each cell is repeatedly "updated" by changing its old color to a new color. The net effect of the individual updates is that you see an ever-evolving sequence of screens. A graphics program of this nature is specifically called a cellular automaton when it is 1) parallel, 2) local, and 3) homogeneous.

(1) Parallelism means that the individual cell updates are performed independently of each other. That is, we think of all of the updates being done at once.

(2) Locality means that when a cell is updated, its new color value is based solely on the old color values of the cell and of its nearest neighbors.

(3) Homogeneity means that each cell is updated according to the same rules. Typically the color values of the cell and of its nearest eight neighbors are combined according to some logico-algebraic formula, or are used to locate an entry in a preset lookup table.

Cellular automata can act as good models for physical, biological and sociological phenomena. The reason for this is that each person, or cell, or small region of space "updates" itself independently (parallelism), basing its new state on the appearance of its immediate surroundings (locality) and on some generally shared laws of change (homogeneity).

As a simple example of a physical cellular automaton, imagine sitting at the edge of a swimming pool, stirring the water with your feet. How quickly the pool's surface is updated! The "computation" is so fast because it is parallel: all the water molecules are computing at once. And how does a molecule compute? It reacts to forces from its neighbors (locality), in accordance with the laws of physics (homogeneity).

CelLab allows you to explore cellular automata on your own personal computer, running under MS-DOS or Windows. You can define your own rules by writing short programs in Java, C, BASIC, or Pascal, create patterns of cells and color palettes, then run the rule and observe its evolution on the screen. We supply a wide variety of ready-to-run rules, simulating processes as varied as heat flow, diffusion of gases, annealing of metal, behavior of tubeworms on the ocean floor, chemical reactions, and ecosystems of artificial life. Complete source code for all of these rule definitions is included in both Java and Pascal, allowing you to use our rule definitions as the point of departure for your own experiments.

Advanced users can customize the cellular automata simulator by writing custom evaluators in assembly language for DOS or Windows, or as a DLL written in C for the Windows-based simulator.

CelLab User Guide

The CelLab user guide, a complete introduction to cellular automata and laboratory manual for exploring them using the CelLab software, is published on the World-Wide Web. Click the link above to display the table of contents of this 250+ page on-line book.

Downloading and Installation

Click the title above to download cellab.zip, a ZIP compressed archive containing all the components of CelLab. After you've downloaded the archive, create a directory for CelLab and extract the contents of the archive with PKUNZIP or a compatible program. It is essential that you extract with the option set that preserves the directory structure in the archive; if you fail to use this option, "-d" for PKUNZIP, all the files will be extracted into one monolithic directory and nothing will work as documented. Assuming you've downloaded cellab.zip into a directory named \download, you could install using the following DOS commands:

        mkdir \cellab
        cd \cellab
        pkunzip -d \download\cellab.zip
        del \download\cellab.zip

More detailed instructions for installing CelLab and exploring its various components are given in the CelLab User Guide.

Note: Long Java File Names

Sample rule definition programs written in Java reside in the jc/java subdirectory. These files have a file type (extension) of ".java", and some have names longer than 8 characters. If you extract these files with an UNZIP utility which doesn't support the long file names of Windows 95 and Windows NT, the names will be truncated to the MS-DOS format of FILENAME.JAV, and will not compile correctly until renamed. If you aren't using Java, this name truncation won't pose any problem; all the other files in the CelLab archive conform to the original DOS file name convention.

CelLab History

(A more detailed history of cellular automata appears in the CelLab User Guide.)

The first edition of CelLab was developed by Rudy Rucker and John Walker in 1988 and 1989 when both were working in the Autodesk research lab. The package was to be the first title in the "Autodesk Science Series", which would use computer simulation to explore aspects of science and mathematics. The product was first shipped in June of 1989 at a suggested retail price of US$59.95, under the name Rudy Rucker's Cellular Automata Laboratory. Rudy went on to complete the second title in the Science Series, James Gleick's CHAOS -- The Software which used programs developed by Rudy and another Autodesk programmer, Josh Gordon, to illustrate aspects of James Gleick's bestselling book. CHAOS -- The Software shipped in November of 1989. Rudy was working on the third title in the series, Artificial Life Lab, and John was developing the fourth, Home Planet, when Autodesk's management decided to close the research lab and terminate development of the Science Series. Rudy finished Artificial Life Lab, which was published as a book plus disk by The Waite Group Press in 1993. John released Home Planet as a freeware program in the same year, and the current version can be downloaded from this site.

The demise of the Science Series orphaned Cellular Automata Laboratory, which disappeared from the market in 1994. Rudy and John explored the idea of a new edition with several publishers, but none seemed to be interested. With the advent of the World-Wide Web, software can be distributed at a minuscule fraction of the cost of packaged software in the 1980's, so this seemed a natural way to get Cellular Automata Laboratory back into the hands of creative people interested in exploring massively parallel computing. Re-launching a program developed almost a decade ago required a modicum of work; a new cellular automata simulator that runs under Windows was developed, the User Guide, originally a 265 page book typeset using LaTeX, was transformed into an HTML document for the Web, and Java was added to the languages one can use to define cellular automata rules, being ever so much more with-it than Pascal, BASIC, and C.

So now it's finished, or at least at large again. Ideally, CelLab will never be done, not as long as folks continue to use it to explore the world of cellular automata and share their discoveries with other pioneers on this frontier of computing.

About the Authors

Rudy Rucker, the author of thirteen books of science-fiction and popular mathematics, is Professor of Mathematics and Computer Science at San Jose State University. John Walker is founder and former president of Autodesk, Inc. Autodesk's best-known product is a computer-aided design (CAD/CAM) graphics program called AutoCAD.