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.
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.
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.