staff project download information miscellaneous
Former Projects   Cellular Automata Programming Project
Mango Programming

siRNA Design Project

Rice Microarray Project

Vect Programming Tool

Cellular Automata Programming

NTU CS Alumni Class of 1989Former EmployeesDeveloper Information
1. Cellular Automata Model

Cellular automata (CA) were originally conceived by Stanislaw M. Ulam and John von Neumann in the 1940s to provide a formal framework for investigating the behavior of complex, adaptive systems.

CAs are dynamic systems in which space and time are discrete. A CA space consists of a grid of cells, each can be in one of N finite states at any time. One cell determines its next state based on the state of itself and its neighborhood using a rule set. One of the most famous rules, the Game of Life, is shown in the following figure to depict the mechanism of cellular automata.

The Game or Life rules are as follows:

  1. An active cell will be born when it has 3 active neighbors,
  2. It will die if it has less than 2 or more than 3 active neighbors.

According to these rules, a given initial pattern, which is a collection of living cells in a universe of dead cells, can develop over generations and produces various configurations. In the above figure, the pattern is called "glider". Users can find that this pattern gradually move to the lower right corner like a glider during the simulation.

Over the years, CA has been applied to the study of natural phenomena, including evolutions, competition, self-replication, and computational problems.

2. Trend---A General Purpose Cellular Automata Simulator

Traditionally, the cellular automata programming was conducted manually. This approach is tedious and difficult to be followed by a human being. To manage this problem, we developed a cellular automata simulator, Trend, to assist users in the cellular automata research.

Trend is a general purpose cellular automata simulation environment with an integrated high level language compiler, a beautiful graphical user interface, and a fast, three stage cached simulation engine. In addition to provide most capabilities of available cellular automata simulation systems, Trend provides more flexibilities, such as changing the cellular automata space, defining the rules "on the fly" using the Trend programming language, and backtracking to a previous cellular automata space configuration. To make Trend available for different platforms, we ported Trend to Java runtime environment. The Java-based Trend, which is called jTrend, can be run on most platforms such as Windows, UNIX, Linux, Solaris, Mac OS X, etc. To download Trend and jTrend, please visit our Trend and jTrend Download Page.

Since Trend is a general purpose cellular automata simulator, it can be used to do most one- and two-dimensional cellular automata simulations. Actually, Trend has been used to discover the first emergent self-replicating cellular automata rule set, the first problem solving self-replication loop, and other real-world problems. To learn more about our cellular automata research, please visit our Trend examples.

This project was supported in part by an Iowa State faculty startup grant and by the NSF SGER Grant IIS-0001542.

Last modified June 13, 2008 . All rights reserved.

Contact Webmaster