In the past I have worked on a lot of cellular automatons in which each cell contained a genetic code that was designed to be mutated, mated, and tested against a variety of other randomly generated and mutated cells. Not long ago I had planned to work on a simple game, which I may still return to, that incorporated particle physics with "chemicals." The intention was that randomized creatures composed of particles would divide and consume the finite particle resources around them to fuel their growth, permitting competition among multiple species of such creatures. I have thought about this for a while and the idea has evolved, but it did not significantly change. I had tested whether it was feasible or not, and it seems to be a bit too computationally expensive regardless of how it is done.
However, I recently learned about reaction-diffusion simulations, which can be used to simulate real world chemical reactions and biological processes. These amazing things are generic and only have local interactions, making them amazingly easy to simulate massively in parallel. Here are some remarkable examples of emergent phenomena created by reaction-diffusion simulations:
After learning how it worked, my initial thought was that a square grid is not a good way to carry out these simulations, since a square has eight neighbors: four neighbors in the cardinal directions with distance 1, and four neighbors in the diagonal directions with distance sqrt(2). Real simulation of 2d space would be better achieved by using hexagons, each with 6 equidistant neighbors. For a 3d simulation, I would personally use a rhombic-dodecahedral honeycomb to achieve the same effect. However, the trend in general is that adjacent cells diffuse with each other...but they don't have to be on a grid.
My primary intention is to somehow create an automaton with evolving creatures that uses reaction-diffusion equations to control the flow of chemicals, which could be used as food or other material, so I started by thinking of a few ways I could do this. I thought at first that I might try to create a separate "chemical" for each creature, but then I realized that this would become too computationally complex, and the chemicals would not be able to respond intelligently to their environment. The next thing I considered was to create a system that would have many emergent-phenomena, such that a replicating creature could develop with a genetic code very easily, much like Langston's Loops. This may be possible, and I may try this idea later, but I think that is something cellular automatons will do better at, and though I may be wrong, I believe it would be difficult to create such a rule-set.
I have decided that one possible way to achieve an interesting developing system is to make each simulated cell in the reaction-diffusion simulation have its own genetic code. Each one of these cells could identify its own species and act to its own benefit by attempting to divide and control the rate of diffusion via active transport all at the cost of food (pat of the reaction). Multiple chemicals could interact with each other in ways such that food may be destroyed and interesting things can be done to other cells, so that cells have a way to defend themselves and attack their neighbors. However, this model is not sufficient on its own because too many cells would need to be simulated and cells cant effectively interact with other cells to their own benefit, since I suspect that some equilibrium might be achieved in a finite space. Thus I plan to make the space effectively dimensionless from the perspective of cells. Each cell will connect in a mesh to a variable number of other cells. A new cell can appear anywhere when a cell divides, which will connect the two cells and split old connections between the two cells so that no new connections are made.
Now I could use this model simply by inserting random cells into the mesh and having them fight it out, trying to destroy cells by shorting out their food. However, I am going a step further. The plan is to generate random cells and place them in their own separate mesh, then place each of these cells as a particle into a 3d n-body particle simulation. Connections between cells will pull them together and chemicals will cause various forces to be applied between the cells. Now cells can effectively become colony-meshes and attack other colony-meshes using inter-particle forces, attaching to those colonies, then performing biological warfare by pumping food-depleting chemicals into the opponent or giving them chemicals that force them to repel and detach from each other. The possibilities for different adaptations in such a system is endless, and colonies could form complex structures and even neural-networks naturally as part of the chemical-diffusion system that worked along the meshes.
Hopefully anybody that has read this far is as excited as I am. I used this blog to flesh out my ideas and my thinking, but also to share the project. As the project develops, I will upload pictures, videos, and new information. All the while I will be learning this blog business as I go.
No comments:
Post a Comment