This is an interesting cellular automaton that I discovered that creates some patterns similar to those found in nature (see the related links below). As far as I know this type of cellular automaton has not been created before. The update rules are fairly simple. Each cell (i.e. pixel) has a weight between 0 and 1 (0=black, 1=white). The weight for each cell is updated based on the weights of the 8 neighboring cells. The following two rules are applied for each step of the simulation:
The "noise" parameter introduces some random noise to each cell weight. The "balance" parameter adds or subtracts a constant to all cell weights, to reach the specified average.
- Each cell weight gets set to the average of that 3x3 grid.
- If a cell's weight is below 0.5, it tries to move closer to 0. If a cell's weight is above 0.5, it tries to move closer to 1. The weight gets changed by "sucking" or "pushing" weights from the neighboring 8 cells. The "sharpness" parameter influences how much weight gets moved. You can inspect this page's source code to see the update formulas.