Autonomous agents, local perception
Imagine a few hundred triangles, each with a position and a velocity, each able to see only the neighbours inside a small disc around it. No central controller, no shared map, no global goal. Every boid runs the same three-line update rule, every frame, independently — and the flock falls out of the sum.