Project Computing

Synchronisation of coupled oscillators
Last updated: 14 Jan 2006 - fixed bug in charge calculation

The bottom of this page contains a simple Javscript visualisation of the synchronisation of coupled oscillators as described by Steven Strogatz in his book Sync: The Emerging Science of Spontaneous Order.

The model being simulated consists of a number of coupled oscillators, each imagined to behave as a capacitor connected in parallel to a resistor, which charge up to a threshold voltage and then discharge. The charge from each discharging capacitor is then distributed across all the other capacitors, pushing each further up their own charging curve.

The suprising thing is that the oscillators tend to synchronise: sometimes quickly, sometimes slowly, sometimes into groups, sometimes into one synhronised unit.

The simulation below is written entirely in Javascript and has been tested on IE6 and Firefox. View the source for this page to see the complete code.

It starts the specified number of oscillators at random points on their charging curves. The graphs show time running horizontally, with each point being a time step. The bar graph at the end of the display shows how the synchronisation is progressing from the "point of view" of the first oscillator: it measures how many time steps each other oscillator was away from firing (on average) when it (the first oscillator) fired. (The first and final firings are excluded from this graph because the nearest firings may have been for time steps not calculated.)

Depending on the speed and load on your machine, graphs showing many oscillators over many steps may take a while to produce.

Kent Fitch, Project Computing

Oscillators: Steps:

Project Computing Pty Ltd ACN: 008 590 967