2D Van der Pol Oscillator — Multi-Trajectory Limit Cycle
A 2D companion to the 3D Van der Pol oscillator: real RK4 integration of the actual second-order ODE, run from five different starting conditions at once so you can watch every trajectory converge onto the same limit cycle, plus an adjustable mu showing the true shape change from sinusoidal to relaxation-oscillation.
This is a 2D companion to the site's 3D Van der Pol oscillator. Instead of one trajectory in a rotatable scene, it integrates the exact same second-order ODE — ẍ − μ(1−x²)ẋ + x = 0, rewritten as ẋ = y, ẏ = μ(1−x²)y − x — with real fixed-step 4th-order Runge–Kutta, run simultaneously from five different starting points scattered around the (x, ẋ) plane. Watching all five spiral onto one shared closed curve is the most direct way to see what a limit cycle actually is: a single attracting trajectory that "forgets" where it started. A separate x(t) panel tracks the first trajectory's real waveform over time, so the shape change driven by μ — sinusoidal at low μ, a sharp relaxation oscillation at high μ — is visible as an actual signal, not just as a loop shape.
A 2D companion to the 3D Van der Pol oscillator: real RK4 integration of the actual ODE d²x/dt² - mu(1-x²)dx/dt + x = 0, run from five different starting points at once so every trajectory converges live onto the same limit cycle in phase space, with an adjustable mu showing the true shape change from sinusoidal to relaxation oscillation and a real x(t) time-series panel.
2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install