While playing around I managed to design a Cellular Automaton (CA) that behaves like a fluid. Very basic behavior, like diffusion, obstacle avoidance, pressure etc. And that got me wondering about it. Designing by hand doesn't seem like the way to go; is there any work that tried to explore the rule space using other methods? Like, combining different rules in different blocks, or maybe use machine learning to tweak the parameters of a set of rules while comparing with a traditional simulation.
A couple of disclaimers: I noticed there are different types of cellular automata, and they can be vastly different from each other. For sake of generality, consider this question without restricting to any particular type of CA. I also understand that many CA rules are Turing complete, meaning they you could model anything that can run on a Turing computer, in principle. So, for the sake of this question, consider that we want the dynamics to show up as directly as possible.