screwlisp proposes kittens

Planned Simulation spiral scenario (plant/insect/bird) in theory

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.

Theory

A 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 overcrowding

Still in timestep 2:

⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲
⬜⬜⬜⬜⬜🌳⬜⬜🌳⬜⬜
πŸͺ³πŸͺ³πŸͺ³β¬œβ¬œβ¬œβ¬œβ¬œβ¬œβ¬œβ¬œ

According to our simulation logic, the middle tree now sees

  1. if it goes east, it will be next to a tree
  2. if it goes northeast, it will be next to a tree
  3. if it goes north, it will not be next to a tree

Since this is the order of considered next moves,

timestep 3:

⬜⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲
⬜⬜⬜⬜⬜🌳⬜⬜🌳⬜⬜
πŸͺ³πŸͺ³πŸͺ³πŸͺ³β¬œβ¬œβ¬œβ¬œβ¬œβ¬œβ¬œ

we get here.

The tree encounters more overcrowding

Still in timestep 3:

⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲
⬜⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲
⬜⬜⬜⬜⬜🌳⬜⬜🌳⬜⬜
πŸͺ³πŸͺ³πŸͺ³πŸͺ³β¬œβ¬œβ¬œβ¬œβ¬œβ¬œβ¬œ

Timestep 4:

⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲⬜
⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜🌲
⬜⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲
⬜⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜
πŸͺ³πŸͺ³πŸͺ³πŸͺ³πŸͺ³β¬œβ¬œβ¬œβ¬œβ¬œβ¬œ

(Since diagonals happen β€˜slower’ than orthogonals)

tree eventually moves back towars locusts

Timestep 5:

⬜⬜⬜⬜⬜⬜🌲⬜⬜⬜⬜
⬜⬜⬜⬜⬜⬜⬜🌲⬜⬜⬜
⬜⬜🌲⬜⬜🌳⬜⬜🌲⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲⬜
⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜🌲
⬜⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲
⬜⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜
πŸͺ³πŸͺ³πŸͺ³πŸͺ³πŸͺ³πŸͺ³β¬œβ¬œβ¬œβ¬œβ¬œ

Timestep 6:

⬜⬜⬜🌲⬜⬜⬜⬜⬜⬜⬜
⬜⬜⬜⬜⬜⬜🌲⬜⬜⬜⬜
⬜⬜⬜⬜🌳⬜⬜🌲⬜⬜⬜
⬜⬜🌲⬜⬜🌳⬜⬜🌲⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲⬜
⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜🌲
⬜⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲
⬜⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜
πŸͺ³πŸͺ³πŸͺ³πŸͺ³πŸͺ³πŸͺ³πŸͺ³β¬œβ¬œβ¬œβ¬œ

Timestep 7:

⬜⬜⬜🌲⬜⬜⬜⬜⬜⬜⬜
⬜⬜⬜⬜⬜⬜🌲⬜⬜⬜⬜
⬜⬜⬜⬜🌳⬜⬜🌲⬜⬜⬜
⬜⬜🌲⬜⬜🌳⬜⬜🌲⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲⬜
⬜⬜⬜⬜🌳⬜⬜🌳⬜⬜🌲
⬜⬜⬜⬜⬜⬜⬜⬜🌳⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜🌲
⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜
πŸͺ³πŸͺ³πŸͺ³πŸͺ³πŸͺ³πŸͺ³πŸͺ³πŸͺ³β¬œβ¬œβ¬œ

Locusts spot a tree again

Timestep 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.

Conclusion

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.

Fin.

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