(picture of CAM8 prototype)

* CAM8: a Parallel, Uniform, Scalable Architecture for Cellular Automata Experimentation

CAM8 is the latest product of over a decade of Cellular Automata (CA) machine and modeling research by the Information Mechanics group at the MIT Lab for Computer Science. CAM8 is a parallel, uniform, scalable architecture offering unprecedented performance in the fine-grained modeling of spatially-extended systems. It provides a general-purpose instrument for the systematic exploration of a new band of the computational spectrum. We have provided hardware, in the form of CAM8, and software, in the form of a programming environment based on Forth, for experimentation in this realm. Preliminary forms of documentation for the hardware and software are available.

The Official CAM8 Brochure

We have put together a short brochure of applications that have been implemented on CAM8. It should provide a good starting point for people who are wondering what the real power of a cellular automata machine is!

ARPA Project Summary

Most of our CAM8 funding has been provided by ARPA. Our current CAM8 ARPA project is titled CAM8: Moving Towards Ultimate Computation.


The STEP Technical Reference (in postscript form) provides an overview of CAM8 from the STEP chips (ASICs) that embody its bit-slice architecture to the CBus that inconnects CAM8 modules. Shown below is a CBus backplane along with one module.


CAM8 uses a Sun workstation, which runs the STEP control software, as a host. The programming environment is based on a commercially available Forth interpreter for Sun computers. The STEP program is a Forth interpreter that has been extended and modified to support primitives for programming the CAM8 hardware.   We now have more documentation available to help you get started with your CAM8 programming.  There is a growing Frequently Asked Questions document as well as a list of basic key commands and Forth words for using CAM8.  Commands for changing directories while inside the STEP software are provided through the key interpreter.  For those that have a bit more experience programming CAM8 we have hints on using advanced features such as subcells, the field compiler and allocating large numbers of LUTs. The standard distribution of demonstration experiments is available online, as are the latest working versions of all demonstrations.

There is a SunOS device driver for the SBus interface card that connects CAM8 to the workstation. The device driver has been tested with both sun4c and sun4m architecture machines.

We have written an X-Windows utility, called XCAM , that allows users to display the VGA output from CAM8 in a window on the host workstation. It is based on the popular TCL interpreter and TK Motif-like widget toolkit. XCAM allows users to capture images and save them to disk in Portable Pixmap (PPM) format or Postscript format. We use the PBMPLUS toolkit to provide this functionality. XCAM also has the ability to dump an image directly to the XV program for further processing and saving in a number of popular formats. We plan to use PPM as our basic format and provide a program for converting between PPM and pattern files (the native image format for CAM8).

We are in the process of creating a library of C routines that will be used to program CAM8. A library of routines (StepLib) for low-level control of the CAM8 hardware is almost complete. When finished this library will form the basis of a C programming environment for CAM8. It will also allow us to use other extendable or embedable public domain interpreters. Currently the publicly released version of the library consists only of the PipeComm communication package. We use as PipeComm a basis for communication between the STEP software and external utlities (such as XCAM). PipeComm uses UNIX pipes for a two-way, handshaking communication channel where the external program acts as a recipient of requests from the STEP software. This package will be extended to use Berkley UNIX sockets and improved so that it can be used as a generalized communication protocol in the CAM8 programming environment.

Latest Developments Regarding CAM8

MIT Laboratory for Computer Science

Information Mechanics Group
Cambridge, MA 02139