The 3D version paints cumulative emissions as an instanced cloud of CO2 "molecules" orbiting a spinning globe — a decorative camera view of a single already-computed number. This 2D version is a genuinely different, independently-computed representation: a system-dynamics stock-and-flow diagram. Three annual emission pipes (Scope 1/2/3, sized by their own rate) drain continuously into an atmospheric reservoir tank; the tank's fill level is animated across the actual reporting horizon, one simulated year at a time, instead of only ever showing the final total.
stock(t) = Σ(scope rates) · t [GtCO2, t in years, 0 ≤ t ≤ horizon]
ΔC(t) = stock(t) / 7.81 [ppm; 1 ppm ≈ 7.81 GtCO2]
ΔF(t) = 5.35 · ln((420 + ΔC(t)) / 420) [W/m², IPCC AR6 simplified CO2 forcing]
The right-hand panel plots that same forcing formula as an actual curve over concentration — not a single readout — with a marker that travels along the curve in lock-step with the tank filling, so the logarithmic saturation of CO2's absorption bands (each extra ppm buys a little less forcing than the last) is directly visible as the curve's slope flattens.
- Scope 1/2/3 sliders — set each pipe's annual kt CO2e/yr rate; pipe width and particle speed scale with the rate.
- Reporting horizon — how many simulated years the tank fills for before the playback loops back to empty.
- Play/Pause — freezes the stock-flow playback at its current simulated year so you can read an intermediate point exactly.
- Run verification audit — samples a ±15% independent measurement error around the reported annual total, the same third-party remote-sensing/activity-data check a real climate audit runs — a stand-in for why Scope 3 in particular is hard to certify.
Same GHG Protocol accounting and the same IPCC forcing formula as the 3D version — just rendered as a stock-flow ledger and a live forcing curve instead of a rotating globe.