Very nice. It seems some of the algorithms are (inadvertently?) solving the shallow water equations. Looks similar to the results I was getting working on https://github.com/Ono-Sendai/terraingen
I did something very similar some years ago while learning metal [1], I recall them being called "boids". I spent days just playing with the various parameters, luckily my implementation was not as pretty as the one offered in the OP, otherwise I would have lost weeks instead.
The original boids, or "bird-oid objects", was an algorithm and program to simulate emergent flocking behaviour from simple rules in birds. It has spawned a kind of genre, or at least a multitude of copies/derivatives, often collectively referred to as "boids".
The same author has a great series of tutorials for making looping animations, where the animation appears longer than the length of the loop. It also introduces Perlin noise, which I've found quite useful in a few unrelated projects.
Here is an example of a 10-minute movie in a 6.3-second looping GIF. https://bsky.app/profile/johsenevoldsen.bsky.social/post/3lm...
The 36 Points linked in the article is very fascinating https://www.sagejenson.com/36points/#22_transmission_tower
Press numbers and letters on this page to switch to one of the variations.
The 36 Points is part of Sage Jenson's visualization of Jeff Jones' "Artificial Nature" research, which pioneered many of these reaction-diffusion and agent-based models for simulating emergent biological phenomena.
Absolutely beautiful visualizations.
These are way beyond anything I've done, but you can actually do these with compute shaders in real time and they look quite good.
I played with using Godot to do this kind of slime simulation (inspired by Sebastian Lague) when they released compute shaders: https://github.com/jasonjmcghee/compute-shaders?tab=readme-o....
Edit:
Here's a good webgpu demo (not by me) of this kind of simulation https://shridhar2602.github.io/WebGPU-Slime-Simulation/
Reminds me of Electric Sheep
This is something that Daniel Shiffman from coding train would consider for the coding challenges