While we got some very fun randomness working last time, this time I want a specific interesting scenario to happen at least once.
In particular, I want a locust that eats trees to chase a tree propagating away from the locust swarm: However, the tree also tries to avoid other trees. Chased by locusts and encountering other trees in front of it, the tree turns northways (n) instead of running directly away from the locusts east.
The tree is faster than the locusts, so turning north, the locust confusedly continues propagating e (encountering the trees our tree swerved north to avoid, but this is somewhat unimportant).
However, while now unchased by locusts, our tree encounters other trees, which it turns southwards to avoid.
This takes it back into the field of view of at least one surviving locust, causing the locusts to turn northwards upon seeing a tree that way.
This will illustrate that two scenarios are possible in the simulation: firstly that a fast-moving tree can escape locusts by changing direction (which it will do if it sees another tree or locust in front of it as well as behind),
and secondly that a tree that escaped locusts by turning, faced with crowding by other trees, will sometimes turn back towards a locust infected area.
When the later tree propagates into a locustβs field of view to the north, the locust will turn northwards, and discover a new population of trees.
The goal right now is to observe once a simulation where a tree escapes locusts, faced with overcrowding, turns back towards the locusts, inadvertently alerting the locusts to a new tree population.
If this is successful, I will hope to find simulation conditions with long-lived wavefronts of trees repeatedly escaping and being re-caught by locusts: Such a stable wavefront could be inhabited by higher order predators such as birds as well as different plant, insect, and bird variations which are unsustainable by themselves, but can survive in and contribute to a broad mosaic ecosystem.
tree that flees and a locust that chases(ASCII) Pictographically, in the defined simulation. this scenario will already propagate (actually automatically, since the default direction choice is east):
β¬β¬π³
πͺ³β¬β¬
Taking trees to have a propagation-distance of 2, and locusts a propagation-distance of 1, and both having a sensor-scale of 1 here. locusts have a eating-range of 1 and a lethality-rate of 100 (i.e., their prey-species always dies).
One time step:
β¬β¬π³β¬β¬π³
πͺ³πͺ³β¬β¬β¬β¬
Two time steps:
β¬β¬β¬β¬β¬π³β¬β¬π³
πͺ³πͺ³πͺ³β¬β¬β¬β¬β¬β¬
The trees already escaped, but the locusts will catch up to any particular tree, eventually.
tree also avoiding overcrowdingStill in timestep 2:
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬π²
β¬β¬β¬β¬β¬π³β¬β¬π³β¬β¬
πͺ³πͺ³πͺ³β¬β¬β¬β¬β¬β¬β¬β¬
According to our simulation logic, the middle tree now sees
treetreetreeSince this is the order of considered next moves,
timestep 3:
β¬β¬β¬β¬β¬β¬β¬β¬π³β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬π²
β¬β¬β¬β¬β¬π³β¬β¬π³β¬β¬
πͺ³πͺ³πͺ³πͺ³β¬β¬β¬β¬β¬β¬β¬
we get here.
tree encounters more overcrowdingStill in timestep 3:
β¬β¬β¬β¬β¬β¬β¬β¬β¬π²β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬π³β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬π²
β¬β¬β¬β¬β¬π³β¬β¬π³β¬β¬
πͺ³πͺ³πͺ³πͺ³β¬β¬β¬β¬β¬β¬β¬
Timestep 4:
β¬β¬β¬β¬β¬β¬β¬β¬β¬π²β¬
β¬β¬β¬β¬β¬β¬β¬π³β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬π³β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬π³β¬β¬
πͺ³πͺ³πͺ³πͺ³πͺ³β¬β¬β¬β¬β¬β¬
(Since diagonals happen βslowerβ than orthogonals)
tree eventually moves back towars locustsTimestep 5:
β¬β¬β¬β¬β¬β¬π²β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬β¬π²β¬β¬β¬
β¬β¬π²β¬β¬π³β¬β¬π²β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬π²β¬
β¬β¬β¬β¬β¬β¬β¬π³β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬π³β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬π³β¬β¬
πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³β¬β¬β¬β¬β¬
Timestep 6:
β¬β¬β¬π²β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬π²β¬β¬β¬β¬
β¬β¬β¬β¬π³β¬β¬π²β¬β¬β¬
β¬β¬π²β¬β¬π³β¬β¬π²β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬π²β¬
β¬β¬β¬β¬β¬β¬β¬π³β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬π³β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬π³β¬β¬
πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³β¬β¬β¬β¬
Timestep 7:
β¬β¬β¬π²β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬π²β¬β¬β¬β¬
β¬β¬β¬β¬π³β¬β¬π²β¬β¬β¬
β¬β¬π²β¬β¬π³β¬β¬π²β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬π²β¬
β¬β¬β¬β¬π³β¬β¬π³β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬π³β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬
πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³β¬β¬β¬
Locusts spot a tree againTimestep 8:
β¬β¬β¬π²β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬π²β¬β¬β¬β¬
β¬β¬β¬β¬π³β¬β¬π²β¬β¬β¬
β¬β¬π²β¬β¬π³β¬β¬π²β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬π²β¬
β¬β¬β¬β¬π³β¬β¬π³β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬π³β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬π³β¬β¬β¬β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬
πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³β¬β¬
Timestep 9:
β¬β¬β¬π²β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬π²β¬β¬β¬β¬
β¬β¬β¬β¬π³β¬β¬π²β¬β¬β¬
β¬β¬π²β¬β¬π³β¬β¬π²β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬π²β¬
β¬β¬β¬β¬π³β¬β¬π³β¬β¬π²
β¬β¬β¬β¬β¬β¬β¬β¬π³β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬
β¬β¬β¬β¬β¬β¬β¬β¬β¬β¬π²
β¬β¬β¬β¬πͺ³πͺ³β¬β¬β¬β¬β¬
πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³πͺ³β¬
Well, the locusts were at least able to propagate northward by one square as a result of a spiral path taken by a tree reconnecting with them.
While it is much less elegant than Conwayβs Game of Life with a glider, we see that it is possible in at least one case for a tree species that dislikes both other trees and being eaten by locusts to at first escape the locusts, but then due to other trees, take a spiral path back to the locusts, triggering the previous locusts to then move north slightly and hence discover new trees in the future.
Conversation on the Mastodon as always please. Is there an easy (and/or mathematical) way I could have gotten this simulation construction easier?
screwlisp proposes kittens