# Are there any studies on finding cellular automata rules for modeling specific systems?

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.

But, more concretely, think of starting with, say, the Navier-Stokes equations and then discretizing it in space and time on a uniform mesh. So $U(i,j,k)$ represents, for example, the state of the fluid at location $(i,j)$ on the grid and at the $k$th time step. If you had used an explicit time stepping scheme, then this state clearly depends on the state of the fluid in the previous time step. If, furthermore, you use a simple nearest neighbor finite difference stencil for the spatial derivatives, then $U(i,j,k)$ also only depends on the states $U(i\pm 1, j\pm 1, k-1)$.