I've recently^ been getting into what I guess is called active matter. In an effort to get good (and maintain my writing habit, even it's just a few words), I'm going to try to do a little exploration around the Vicsek model.
The Vicsek model is a minimal* model of collective motion (here, in 2D).
\[
B_i(t) := \{j \in B : \lVert \vec{r_j(t)} - \vec{r_i(t)} \rVert < R, j \neq i\}
\]
\[
\theta_i(t+1) = \frac{1}{|B_i(t)|} \sum_{j \in B_i(t)} \theta_j(t) + \eta
\]
\[
\vec{r_i(t+1)} = \vec{r_i(t)} + v\begin{bmatrix}
\cos(\theta_i(t)) \\
\sin(\theta_i(t)) \\
\end{bmatrix}
\]
where:
\(B_i(t)\) is the set of particles within a fixed radius \(R\) of particle/boid \(i\) at time \(t\),
\(\vec{r_i(t)}\) is the position of particle/boid \(i\) at time \(t\),
\(v\) is a fixed speed for all the particles/boids,
and \(\eta\) is a fixed random noise term for the angle updates.
Set the number of particles/boids, then have fun playing with the sliders below (can you spot the phase transition?):
As I was learning about the Vicsek model, I recalled reading some time ago that updates in swarms of starlings have been observed to be based on a topological rather than a metric rule (i.e. a particle would update its direction based on its k nearest neighbors, not based on neighbors defined by an epsilon ball).
The paper linked there puts the average number of neighbors at around 6.5 +/- 0.9. To that end, you can click the "Run Topo" button above to get a Vicsek-like simulation where the update rule is determined by 7 nearest neighbors rather than by a ball of radius R.
Why isn't there a metric update rule? One hypothesis is that the topological rule is more robust to predation: when subjected to an attack from a predator such as a hawk, flocks using the topological rule will tend to stay together, while flocks using the the metric rule will tend to divide. Another hypothesis is that the tracking of neighbors depends on a cognitive process that is different than counting i.e. subitizing. Intuitively, that makes sense -- it is quite hard to picture a metric rule with even a fuzzy radius somehow running in the background while a living creature is doing what it does best.
The linked paper is a real delight, I recommend reading it. Parisi also recently came out with a book In a Flight of Starlings which I recommend picking up.
A graphon can be defined as follows: assign a vertex \(v\) a value \(val(v)\) of \(0\) or \(1\) with equal probability, and include an edge connecting \(v_i\) and \(v_j\) with some probability \(W(val(v_i), val(v_j))\) such that \(W: [0,1]^2 \rightarrow [0,1]\).
If we take the random initialization of particle/boid position on an \(N \times N\) grid to be our vertex assignment (\(1\) if containing a boid, \(0\) otherwise), and we take the probability of an edge between two vertices to be a function of the speed and the update rule (i.e. the probability of an edge between two vertices is the probability of boid \(j\) being "in the neighborhood of" boid \(i\) at time \(t\)), then we might just have a graphon here.
Of course, we might not, or it might be a trivial or useless one if we do. But I'm curious to learn about both of these topics, and being wrong would still teach me plenty. At worst, it'll give me something to keep the writing habit going.