![]() |
| Physarum polycephalum - Scott Camazine Science Source |
Cellular Automata (CA) is typically a table / grid based program, where each cell in the grid follows exactly the same set of programmed instructions. One of the most famous programs in this genre is called "Game of Life", which was written by late John Conway, with homage over, I am not going to talk about that program much as it is covered extremely well in the public domain.
So why am I writing about this slightly esoteric topic? Well, CA gives way to emergence. In this case, emergence is where something that you have not directly programmed happens through data and cell interaction. That, in my opinion, is really fascinating, as your program takes life on its own.
- Type 1 - Explicitly programmed, if this, then that, literal rules. Programmed rules lead towards very predictable output.
- Type 2 - Implicitly programmed, you did not say it literally, but this is how instructions flow. Indirectly programmed rules lead towards mostly predictable output, in imperative programming it is a complement of Type 1.
- Type 3 - Initial data state interacts with other data through rules leading towards output in the form of emergence. Typically the initial author of the code or data would not be able to predict the program outputs, it is only by running it that you start to see output emerging, hence emergence. Think of Conway’s Game of Life producing Gliders, I bet that Conway did not have Gliders in mind when he made that program.
![]() |
| Conway's Game Of Life "Glider" Wiki Image |
![]() |
| Slime mold spreads across the map to eventually settle on the optimal network. Wogan T. “Ride the Slime Mold Express” Science 21 January 2010. |
- Slime mold spreads across the surface trying to find food sources
- As it goes further from rich food origin it:
- Consolidates its spread into the tube like structures
- It creates tube like structures so that it can travel further
- As it finishes exploring available food sources it consolidates leaving shortest paths only
Initial Rules
- Start new epoch, in this epoch only already existing living cells will get a chance to take a turn
- Each cell at random will take a turn, during that cell's turn it will perform a single action only, actions in order:
- If a living cell has more resource than 1 and there is empty space around it, pick a random empty adjacent spot and create a new living cell
- If a living cell is adjacent to a food source that still has resource, eat from that food source
- If a living cell is adjacent to a cell that has more resource than you have, take some of the resource from that cell
- End epoch, go back to 1.
Experiment 1 - Clash
Experiment 2 - Repeater
Experiment 3 - Repeater Low Resource
Grid Explained
Numbers in the slime mold cell show you the amount of resources that particular cell contains at that point in time.
Initial Conclusion
- While the initial food source is rich, digital slime mold travels in a wave covering the entire map before it hits the edge (Experiment 1 and 2).
- If the initial food source is not rich and as a result originating slime mold runs out of food, slime mold goes from wave to "random" map covering, introducing entropy.
- Even if the food source is rich as per point 1, the moment slime mold hits the wall, wave travel stops and entropy is introduced as per point 2 (need to confirm this).
What Needs Work
- I have tried to introduce a positive feedback loop by introducing a volume metric for each cell and by exponentially increasing volume in each cell. Thought was that this can create "tube" like structures, which would create natural consolidation of resources, however this has not worked well at the time, this needs to be revisited.
- Ultimately digital slime mold needs to expand and contract (explore and exploit), expansion seems to work, however cellular contraction rules are less obvious and to be programmed in.






No comments:
Post a Comment