Am I reinventing the wheel again? Has this not been done before? Let's consider an extension of cellular automata to an orthogonal grid containing arbitrary real values, such that a grid populated by exactly two different values behaves exactly as the corresponding binary CA (say, the lesser = dead, the greater = alive) for any two values. This necessarily means that the rule must not contain B0 and must contain S8, e.g. EightLife. Also it follows that the function new_center_value(neighborhood) must not contain any magic numbers, and the values of the cells in the neighborhood should be sufficient to determine which cells are considered alive or dead, and which new value, if any, to assign to the center cell. Multiple variants are possible. I've come up with the following mechanisms giving more or less interesting results: 0. If max(neighborhood) == min(neighborhood), do nothing, else 1a. Compute the mean. The values greater than the mean are alive, the rest are dead. 1b... I haven't considered yet any alternative ways to select the cut-off value. 2a. The new value of the center cell may be either kept as is, if the cell stays alive or stays dead, or 2b. It can be given a new value in all cases. 3a. Use max and min of the neighborhood as the new alive and dead values. This quickly decays into binary CA if the new value is always assigned. 3b. Use mean(alive cells) and mean(dead cells) as the new values for "alive" and "dead". 3c. Find the largest gap in the sorted list of cell values to classify the values, use the mean of the lesser class as the new "dead" value, and of the greater class as the new "alive" value. In case of multiple largest gaps populate the classes once per such gap, e.g. for 1 3 4 6 the lesser class contains 1 1 3 4, and the greater class contains 3 4 6 6. Unlike binary CA, in one step a cell can be alive for one neighborhood and dead for another [allusions to human culture omitted]. An example of 3b is http://ic.pics.livejournal.com/spamsink/7162160/49128/49128_original.gif An example of 3c is http://ic.pics.livejournal.com/spamsink/7162160/48828/48828_original.gif Both are 200 steps from a gradient-shaded circle (pgmrap -e 500 500|pnminvert). [the images may not be 100% correct, but they do convey the style of the result] Another aspect is that some rules resulting in trivial behavior of binary CA may exhibit a more complex behavior in grayscale CA. Regards, Leo