Status

Width:
Height:

Time Step:
Steps Per Frame:

theta_{0} | |

omega | |

k | |

noise |

The Kuramoto Model is a model of synchronization. This application looks at a set of Kuramoto oscillators in a grid pattern; each oscillator attempts to synchronize with the oscillators 4-adjacent to it. The phase of each oscillator (theta) is represented by hue. Omega is the "natural frequency" of each oscillator, k controls how strongly the oscillators attempt to synchronize, "noise" is a noise term - at each time step, a random number from -0.5 to 0.5 is generated and multiplied by the noise parameter, to give the noise term in the differential equation.

As there are lots of ways to set up the initial values of theta, and the various parameters, the contents of each parameter field are passed to eval for evaluation. You can use the variables x and y - these range from 0 to 1, where (0, 0) is the bottom left. As well as the standard javascript functions, there is also rnd_gauss() which generates a random number according to a standard Gaussian distribution, and rnd_cauchy() that generates a random number from a Cauchy distribution. Some examples, good for copying and pasting, applicable to various fields, are below. Remember to press Reset after changing the parameters.

`
Math.random()*Math.PI*2
x
y
y*y
1.0
0.0
-1.0
y+(.5*(0.5-Math.random()))
xx = x - 0.5; yy = y - 0.5; Math.sqrt((xx*xx)+(yy*yy))
((Math.sin(10*x) + Math.sin(10*y))/4)
((Math.sin(10*x) + Math.sin(10*y))/4)+(.5*(0.5-Math.random()))
xx = x - 0.5; yy = y - 0.5; Math.cos(20*Math.sqrt((yy*yy)+(xx*xx)))
rnd_gauss()/4
rnd_cauchy()/10
`

Peter Corbett, 2014

Back to ptc24 labs.