This is the classic Stommel two-box model (Stommel 1961; simplified form after Cessi 1994) of the thermohaline "conveyor belt", integrated live with an RK4 solver — the same equations as the 3D version of this simulator:
dx/dt = (η1 − x(1+|x−y|)) / ε (pole↔equator temperature contrast x)
dy/dt = η2 − y(η3+|x−y|) (pole↔equator salinity contrast y)
q = x − y (density-driven overturning flow)
x is the temperature difference and y the salinity difference between a polar and an equatorial box; both relax toward forcing values η1 (thermal) and η2 (freshwater) but are eroded by the flow itself. η3 = 0.1 sets the evaporation/salt-transport ratio and ε = 0.5 the temperature-to-salinity relaxation-rate ratio — these two, not just η2, decide whether a genuine second stable state exists, so this build fixes them at the values verified below rather than the first parameters that come to mind.
- The bottom canvas is a live phase portrait: every frame plots (x, y) as a point, leaving a fading trail — the trajectory the ODE actually traces, not a scripted animation.
- The two large markers are the model's real fixed points, found by solving x(1+|x−y|)=η1 and y(η3+|x−y|)=η2 for the current sliders (bisection on the closed-form q-equation, recomputed whenever you move η1/η2) and linearizing there to keep only genuinely stable roots (both Jacobian eigenvalues negative) — not hand-placed, and not every root the equation has: at η3 = 0.1, ε = 0.5 several nearby parameter choices (e.g. the textbook-typical ε = 0.1) turn out to give only one truly stable state despite having a second root, which is why this build's constants were chosen by eigenvalue search rather than assumed. The small marker (when shown) is the unstable saddle that separates the two basins of attraction.
- For η2 roughly between 0.66 and 0.90 (with η1 = 3, the default) both q>0 (ON) and q<0 (OFF/reversed) are simultaneously, rigorously stable — genuine bistability for the same forcing, not a range you cycle through over time.
- Use "Start in ON/OFF state" to drop the trajectory at each of today's real fixed points and watch it stay put; then fire the meltwater pulse from ON to watch it cross the unstable saddle and permanently fall into OFF, even though the forcing sliders never moved — the toy-model analogue of a real AMOC tipping point.