The "making of" process—generating random points and then using them to position the bird illustrations at each point—does not make a lot of sense to me. The final bird positions are nowhere near the random points.
A possibly better approach would be to use Bridson's algorithm with a radius that roughly corresponds to the size of each bird image. You could reject points that are outside the overall shape.
https://www.c82.net/images/blog/hummingbirds-murmuration-v1-...
A possibly better approach would be to use Bridson's algorithm with a radius that roughly corresponds to the size of each bird image. You could reject points that are outside the overall shape.
https://observablehq.com/@mbostock/poisson-disc-distribution