Why does this cellular automaton generate circular patterns?

352 Views Asked by At

I made a kind of cellular automaton game with the following rules. Each cell in a rectangular grid has a "water level" (a 32-bit floating-point number). In the next generation, water "flows" from each cells to its neighbors. The amount of flow is determined as follows:

  • Water flows only from higher to lower water level cells.
  • A cell's water level cannot be reduced below a certain constant threshold.
  • Subject to the preceding constraints, flow is one eighth the difference in water level between the two cells.

If the game begins with only one cell with water, then that water will, over several generations, flow to the surrounding cells until there is a shallow, circular "puddle", a disk of cells with water level less than or equal to the threshold.

I find it interesting that the puddles seem to approximate a circle. Does anyone know why this would be? Can anyone prove it?

I apologize if anything in this question is inaccurate, poorly worded, or poorly researched. I'm not very familiar with this topic and wasn't sure how to search for answers.