Preface:

--Visit http://www.permadi.com/java/cautom/ to learn more about this CA called the cylic space cellular automaton; developed by David Griffeath at the University of Wisconsin.

--A two dimensional grid is filled with psuedo-random integers between (0, 9), inclusive. Every pixel on the two dimensional grid has eight neighbors. During each cycle, all of the neighbors in the 3x3 block under "Neighbors" marked with a white 'X', will be checked. The current pixel checks its value against the neighbors' values, and if any of the neighbors' values have a value one higher than the current pixel, then the current pixel changes to that value. For example, if the current pixel has value 5, and one of its marked neighbors(a neighbors with a white 'X' in the box) has the value 6, then the current pixel changes its value to 6. When the value of a pixel is the maximum value, it checks if any of its neighbors have a 0 value. This creates the cycle.

Instructions:

--Clicking on the pixels themselves will increment the value of that pixel by one, unless it's the maximum value, then it changes to zero

--Neighbors: Mark or unmark the boxes under "Neighbors" to determine if the pixel checks that neighbor or not.

--Pause: Simply pauses the applet. You can change the applet while it's paused, using the menu or by clicking on a pixel

--C.D.(Cyclic Difference): I don't know if this has been done before, but when the box next to C.D. is marked, then the current pixel checks for different neighbor values than (current_value + 1), where current_value is the value of the current pixel. The pixel will check for values of (current_value + 1) and the next cycle it will check for (current_value + 2) and so on... This creates a pulsating effect.

--Color: Changes the color of the pixels

--Speed: Click the '-' to go slower and '+' to go faster

Additional Information:

--If you have any questions, comments, or just want to talk about CA's, e-mail me at acampbel@cs.ucf.edu