Watch the attractor respond to rising and falling driving intensity.
Open interactive →The Externally Driven visualization drives the EOC system through an automatically cycling rho (ρ) parameter — rising from subcritical through the bifurcation threshold and into the chaotic regime, then falling back. Three synchronized panels display the attractor in real time.
The key moments to observe: as rho rises through ~24.74, the single-wing trajectory begins making excursions toward the other wing. Wing transitions become more frequent. In the high-rho phase, the trajectory visits both wings unpredictably. As rho falls back below the threshold, the system settles again — but not necessarily into the same wing it started in. This asymmetry is structural.
The full parameter controls are available on The Controls page.
This page runs a live Three.js visualization in your browser. The mathematical computation uses fourth-order Runge-Kutta (RK4) integration with step size dt = 0.005. Desktop browsers use Web Workers for computation; mobile uses a main-thread fallback.
The equations and formal framework are on The Science page. The intuition for what you are watching is on Understand.
Take control of the attractor. Adjust all three parameters in real time.
Open interactive →The Controls page gives you direct access to all three EOC system parameters via sliders. After adjusting parameters, click COMPUTE to recalculate the trajectory, then ANIMATE to watch it evolve. Four diagnostic panels update in parallel:
Toggle the second trajectory to observe sensitive dependence on initial conditions: two trajectories separated by a tiny initial distance diverge exponentially in the chaotic regime. This is the mathematical basis for why individual therapeutic outcomes within a chaotic episode are fundamentally unpredictable.
The formal framework is on The Science page.
Every other page here draws the trajectory. This one draws the terms. The state sits at a single point in Engagement, Openness and Consolidation space, and three coloured arrows extend from it, one per variable, each showing that variable’s current rate of change. Below the scene, three bars break those same rates into their individual terms. A green block pushes the variable up, a red block pushes it down, block length is the size of the term, and the white tick marks the net rate, which is what actually moves the variable. When green and red cancel, the tick sits on the centre line and the variable holds still. dE/dt has one term and stays simple. dO/dt and dC/dt have two each, and watching those two fight is most of the point.
The factor (ρ − C) inside the openness equation decides everything, and the page prints it as its own readout. While consolidation sits below the driving intensity, the factor is positive, the drive reinforces whichever way engagement leans, and the spiral widens inside one wing. Once consolidation climbs past ρ the factor flips sign, the drive reverses, and the point is ejected toward the other wing. A red plane at C = ρ marks the crossing in the scene. Watch the number cross zero at the exact moment the point breaches the plane. That single sign change is what ends a wing, and it is invisible on any page that shows only the path.
Playback speed is wall clock only and changes nothing about the dynamics. Advance 1 t.u. moves one model time unit, 200 solver steps. Advance 1 step moves a single RK4 step at dt = 0.005, slow enough to catch one term crossing zero. Three diagnostics run alongside. Speed is the length of the velocity vector and falls to nothing at a fixed point. Turning rate is path curvature, built from the second derivatives, and it spikes at the ears of the butterfly and at every separatrix crossing. Divergence holds constant at −13.67 everywhere, which is why the trajectory collapses onto a thin attractor instead of filling the space it moves through.
On every other page ρ is a number you set or a schedule someone wrote. Here it becomes a fourth variable with its own equation, driven by what the system is doing. Quiet accumulates pressure. Upheaval discharges it. Nothing arrives from outside and the cycle runs on its own. Four panels track it: the attractor itself, ρ over time, engagement showing which wing currently holds, and a hysteresis loop plotting consolidation peaks against ρ, which fills in as the system runs and draws its own bifurcation diagram from the path it actually took.
The fourth equation is dρ/dt = ε(P − γA), where A measures how turbulent the system currently is. P is the rate at which pressure accumulates, γ is how strongly activity discharges it, and ε sets how slowly ρ moves compared with E, O and C. Two definitions of activity are available. Churn counts any upheaval, so all movement discharges pressure. Consolidation counts only genuine building, so pressure falls only when something is actually forming. The two produce different cycles from identical starting conditions. η adds noise. The Clean Loop preset runs deterministic and draws the sharpest hysteresis; the Noisy Loop trades that for ignition nearer the threshold.
The interesting behaviour is not the switching but the waiting. Pressure climbs past the Hopf threshold at 24.74 and the system does not immediately break. It rides the old configuration well beyond the point where that configuration stopped being stable, then leaves quickly, and how far past it travels barely changes when you slow ρ down with ε. Add noise and the delay collapses; the system breaks close to the threshold instead of far beyond it. Deeper settling before the pressure starts rising makes the eventual break later and harder, and disturbance along the way makes it earlier and milder.