The flow is the classic Rössler system, chaotic at c₀ = 5.7:
dx/dt = -y - z
dy/dt = x + 0.2y
dz/dt = 0.2 + z(x - c)
On page load the sim integrates this system, watches every upward crossing of the plane y = 0 (the Poincaré section, shown as the faint purple plane), and searches those crossings for a close return — a point that lands almost back on itself one crossing later. That point is a genuine unstable period-1 orbit embedded in the attractor (the gold marker), found numerically, not hand-picked.
The sim then linearizes the section's return map P around that orbit by nudging its coordinates and the parameter c and re-integrating, giving a 2×2 Jacobian A and a control-sensitivity vector g = ∂P/∂c. Diagonalizing A yields the unstable eigenvalue λᵤ (|λᵤ| > 1) and its left eigenvector fu. Whenever a crossing xn lands within the capture window ε of the target x*, the OGY law
δc_n = − λᵤ · [f_u · (x_n − x*)] / [f_u · g]
picks the smallest parameter nudge that cancels the unstable component of the deviation at the next crossing — clamped to the max-nudge slider so c never strays far from 5.7. Outside the window the system is simply left alone at c = c₀ and chaos itself eventually wanders the trajectory back close enough to try again — the same "wait for chaos to bring you home" idea from the original 1990 Ott–Grebogi–Yorke paper.
- Control: ON/OFF — toggle the feedback law; when off the parameter is frozen at c₀ and the flow runs fully chaotic.
- Capture window ε — how close a crossing must land to the target before control engages (the linearization is only valid nearby).
- Max nudge |δc| — the hard clamp on how large a single correction to c is allowed to be.
- Kick — injects a random displacement to test how quickly the controller re-captures the orbit after a disturbance.