Start with one firefly. Between flashes, imagine an inner clock filling up. When it reaches the top: blink — then the clock starts again.
The clock is our model — not a tiny dial inside the insect.
In our rule, a seen flash adds a small pulse of charge to another clock. Tap once and watch the receiver jump ahead.
How much does one seen flash change a clock? The receiver always starts in the same place, so every comparison is fair.
Same seed. Same 18 starting phases. Same rule, pulse strength, all-to-all visibility, and 12-beat horizon. Only the natural beats change.
Commit your prediction before either field runs.
By 12 solo beats, which field will hit one all-18 flash twice in a row?
Scrub both seeded fields from 0 to 12 beats.
Nothing up our sleeve: the whole model recipe
seed 0x5f3759df
delay 0 · noise 0
mixed: T = 0.75…1.25
dt = 0.001 · stop = 12
Between events: φ += dt/T. A received flash adds ε to u(φ) = ln(1 + (e³−1)φ)/3. Reaching u = 1 joins that avalanche, flashes, resets, and sends another pulse. Fired nodes stay reset during that same avalanche.
But real fireflies are more complicated.
What did our ideal model leave out?
Does any tiny nudge always sync any network?
No leader is required when the right interaction lets repeating clocks reshape one another. Always ask: which rule, which connections, how strong, and how much variation?
psst, grown-ups
Model note. This is a deterministic Mirollo–Strogatz-style integrate-and-fire demonstration, not a claim that all firefly species follow one exact algorithm. The 1990 theorem establishes synchronization from almost all initial states for its ideal identical globally pulse-coupled system under suitable assumptions. Biological firefly research instead measures species-specific courtship signals, local visibility, delays, and variability.