Homeβ–ΈNeuroscience & Biophysicsβ–ΈKuramoto Synchronization (2D)

Kuramoto Synchronization (2D)

2D Kuramoto oscillator lab: N coupled phase oscillators on a flat ring, a live order-parameter trace and a phase histogram show the jump from incoherence to synchrony above the critical coupling K_c.

Neuroscience & Biophysics2DModerate60 FPSπŸ“± Mobile-adapted⇄ 3D version
2d-kuramoto β†— Open standalone

This 2D companion runs the identical Kuramoto phase-oscillator equations as the 3D version through plain Canvas 2D drawing instead of a WebGL-rendered scene: N phase oscillators sit on a flat ring, colored by their natural frequency, each pulled toward the population's mean phase with strength set by the coupling K. Every control carries over one-to-one β€” oscillator count N, coupling K, frequency spread Οƒ and playback speed, plus Perturb and the K=0/K=3 presets β€” while a live order-parameter trace and a phase histogram give an always-readable readout of the transition from incoherence to synchrony.

βš™ Under the hood

2D Kuramoto oscillator lab: N coupled phase oscillators on a flat ring, a live order-parameter trace and a phase histogram show the jump from incoherence to synchrony above the critical coupling K_c.

KuramotoSynchronizationPhase Oscillatorsorder parameterphase transition

2D Β· HTML5 Canvas 2D Β· 60 FPS target Β· runs fully client-side, no install

Frequently Asked Questions

What is the Kuramoto model?

The Kuramoto model describes a population of oscillators, each with its own natural frequency, that are coupled so every oscillator is pulled toward the population's average phase. Above a critical coupling strength K_c, the population spontaneously synchronizes β€” the same mechanism behind firefly flashing, cardiac pacemaker cells and neural oscillations.

What does the order parameter r show?

r measures how synchronized the population is: r = |mean(e^(iΟ†))| across all oscillators. r β‰ˆ 0 means phases are spread uniformly around the circle (incoherent); r β†’ 1 means every oscillator shares the same phase (fully synchronized). Watch it jump sharply as K crosses K_c.

How does this 2D version differ from the 3D original?

Same equations, same sliders (N, K, Οƒ, speed) and the same Perturb/K=0/K=3 buttons β€” this version replaces the orbiting WebGL circle panel with a flat Canvas 2D ring plus an order-parameter trace and a phase histogram, so the transition is readable at a glance without needing to orbit the camera.

What did you find?

Add reproduction steps (optional)