I quite like Boids, but recently I started playing with RVO2 ORCA (optimal reciprocal collision avoidance). I made some changes to it and moved it to a compute shader to make this:
https://www.youtube.com/watch?v=BavnPOPcHlk
The entities in the video are running super fast for testing purposes, so usually they'd be going a lot slower. They can produce some really pleasing patterns as they move through each other etc.
On the downside its quite expensive vs Boids, for example the video is from a slightly older version and every agent is looking at the closest 32 neighbours + 32 obstacles to compute its own velocity. At high densities you can drop that to e.g. 4 neighbours without appreciable difference, which allows for running e.g. 32k entities at 120fps.
The entities in the video are running super fast for testing purposes, so usually they'd be going a lot slower. They can produce some really pleasing patterns as they move through each other etc.
On the downside its quite expensive vs Boids, for example the video is from a slightly older version and every agent is looking at the closest 32 neighbours + 32 obstacles to compute its own velocity. At high densities you can drop that to e.g. 4 neighbours without appreciable difference, which allows for running e.g. 32k entities at 120fps.