This is more like Kangaroo than Conway’s life game. A particle system, not a cellular automata.
You can understand a particle as a point to which to add a vector (velocity) at each step, using anemone or C#. It is very easy to implement a system of particles reducing it to the Euler method:
ParticleList pts
while not converged
foreach pt in pts
ApplyBehavior(pt)
foreach pt in pts
Update(pt)
ApplyBehaviour(particle){
// Swarm behaviour, not like video
ForceCohesion(particle)
ForceSeparation(particle)
ForceAlign(particle)
}
Particle class
Position
Velocity
Acceleration
Mass
ApplyForce(Vector){
Acceleration += Vector / Mass
}
Update(deltaTime){
Velocity += Acceleration
Position += Velocity * deltaTime
Acceleration *= 0
}
This is the basic scheme, from here we are only interested in the forces you apply to achieve different behaviors (swarms, traffic, ants, growth (see below)).
But getting that kind of behavior is not easy, but it’s not too complex either. Actually they are simple rules, but the bad thing about this type of systems, is that they are highly delicate, not only work by the rules, they also need to be parameterized within very specific domains. A set of forces will only give you acceptable behavior if you give it the right weights. The same happens with Kangaroo. The same happens with real life.
If you want to learn how to model these systems regardless of the environment, I recommend you 100% to do it in Processing, plus you will have a thousand examples. Use GH-RH if you take it to 3d.
This is also a particle system, but as a mesh instead of free particles. That means there are forces that simulate membrane behavior. As in the video, there are forces that make each particle interact with its neighboring particles/vertices.
In short, learns how to model particle systems, and then investigates how to simulate different mechanical behaviors.