Each nanorobot senses a task's chemical/optical stimulus directly only within a short range. Beyond that, information about the task must hop robot-to-robot across a communication network — an edge exists between two robots only when their distance is below the communication range R. This is the same 1-hop-adjacency assumption behind Zigbee-style short-range swarm protocols. This 2D top-down build lays the exact same graph out on a plane so every edge and hop is visible at a glance.
edge(i,j) exists iff |pᵢ − pⱼ| ≤ R
relayed stimulus: Sⱼ = max( Sⱼ , Sᵢ · k ) (k = per-hop attenuation, propagated along edges)
Once a robot has (possibly relayed) knowledge of a stimulus level S for some task, it does not commit immediately. Its probability of engaging follows the classic response-threshold model of division of labour in decentralized swarms and social insects:
P(engage | S) = Sⁿ / (Sⁿ + θⁿ) (n = 2)
A low θ makes robots trigger-happy on weak signals; a high θ means only strongly-corroborated, multi-hop-confirmed tasks recruit workers. Engaged robots steer toward the task and add to its progress ring; when a task completes it relocates and the cycle repeats. The motion inertia slider blends a robot's current heading with its desired heading — low inertia gives twitchy, fast-reacting robots, high inertia gives smooth but sluggish ones.
The network connected readout is the fraction of the swarm in the single largest communication-linked cluster — when it drops, the swarm has fragmented into islands that cannot relay task information to each other, exactly the resilience trade-off decentralized swarms must manage. The strip below the main view plots that fraction (white) and the engaged-fraction (amber) over the last ~40 seconds, so you can watch fragmentation events happen instead of just reading a snapshot.
Drag inside the main view to pan, and scroll/pinch to zoom — the arena is still simulated in full; you are just choosing which part of it, and how closely, to look at.