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".
stirfish 2 hours ago [-]
I've been vibe coding boids implementations because my toddler likes to look at them. Here's one where the attributes of the boids (alignment, etc) are hooked up to frequency generators like a sequencer: https://neuroky.me/boidsine.html?boidCount=1700&hue=sine3&se...
I can move them to GitHub or something, but they are currently hosted in my pantry. Please be gentle :)
Ono-Sendai 4 hours ago [-]
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
Press numbers and letters on this page to switch to one of the variations.
ethan_smith 9 hours ago [-]
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.
johannes_ne 9 hours ago [-]
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.
[1] https://github.com/ghyatzo/metalplay?tab=readme-ov-file
I can move them to GitHub or something, but they are currently hosted in my pantry. Please be gentle :)
Press numbers and letters on this page to switch to one of the variations.
https://bleuje.com/tutorials/
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...
https://electricsheep.org/
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/