Collective Motion
Vicsek and Collective Motion
In this session we study collective motion: how local alignment rules create global order. The main example is the Vicsek model, with optional predator interaction.
Case Studies
What do we need?
matplotlib.pyplot
Initialize the figure and axes and draw static elements.
matplotlib.animation
Update plot elements in real time for animations.
matplotlib.Slider
Add sliders so users can interact with parameters.
Why not use scipy.solve_ivp here?
In previous sessions, we used ODE solvers like scipy.solve_ivp to study continuous-time dynamical systems. The Vicsek model, however, is fundamentally a discrete-time, agent-based model: at each step, all particles update their direction and position based on their neighbors and some noise. This update is not described by a differential equation, but by a set of rules applied at each time step. Therefore, we implement the Vicsek model using a simple loop, not an ODE solver.
References
- (Vicsek et al. 1995)
- Check this cool simulation. This explorable illustrates of an intuitive dynamic model for collective motion (swarming) in animal groups. The model can be used to describe collective behavior observed in schooling fish or flocking birds, for example. The details of the model are described in (Couzin et al. 2002).