It seems to be based on cellular automata kind of rules.
I've done experiments with this almost twenty years ago, and it's surprising how much can be done with simple rules.
However, it can also be difficult to debug when you have a large amount of rules.