Collective Motion — Milling, Schooling & Swarming Phases

Vicsek-style model with alignment (match neighbours within r_align), attraction (pull toward flock centre), and short-range repulsion. Tune noise and alignment radius to see disordered swarm → milling ring → polarized school transitions.