controlled-oscillator

A 2D oscillator whose angular speed is gated by a third recurrent dimension — and that gate, in turn, is driven by a separate input ensemble. A clean demonstration of one neural population controlling the dynamic regime of another.

Description

This is the controlled-oscillator pattern from the CNRG tutorial series. The differential equations are the same as a plain oscillator — a 2D circle in state space — but the angular speed s is itself a dimension of the same ensemble:

dx0/dt = -x1 · s + x0 · (r - x0² - x1²)
dx1/dt =  x0 · s + x1 · (r - x0² - x1²)

A separate speed ensemble feeds the third dimension x[2]. Slide the input slider in NengoGUI and watch the oscillator speed up or stop.

Run it

In NengoGUI:

pip install nengo-gui
nengo controlled_oscillator.py

License

GPLv2 (see LICENSE).