HomeEcology & Conservation BiologyDissolved Oxygen Mixing Zone (2D)

Dissolved Oxygen Mixing Zone — 2D Transverse-Mixing Streeter–Phelps Model

Interactive 2D river water-quality simulator: a point-source BOD discharge spreads across the channel width by turbulent transverse mixing while bacteria consume oxygen and reaeration replenishes it, tracing a real Streeter-Phelps oxygen sag both downstream and across the river.

Ecology & Conservation Biology2DAdvanced60 FPS📱 Mobile-adapted⇄ 3D version
2d-water-quality ↗ Open standalone

This is the 2D counterpart to the 3D Dissolved Oxygen Sag Curve simulator, and it models a genuinely different piece of the same river-quality physics: how a BOD discharge spreads across the channel, not just how it decays along it. A point-source pipe releases waste at one position across the river's width, and turbulent transverse mixing spreads it toward the far bank as the current carries it downstream — while bacteria consume oxygen locally and reaeration works to replace it. The result is a 2D BOD and dissolved-oxygen field solved by an implicit finite-difference marching scheme, so a bank-side discharge produces a real, computed low-oxygen corridor hugging the shore that only blends into the river-wide average past a calculable mixing length. Adjust the outfall's position, the river's width, and the same deoxygenation/reaeration parameters as the 3D model to see how each reshapes both the downstream sag and the cross-channel mixing pattern.

⚙ Under the hood

Simulate a point-source BOD discharge spreading across a river's width by turbulent transverse mixing while bacteria consume oxygen and reaeration replenishes it — a 2D finite-difference model whose width-averaged curve reproduces the classic Streeter-Phelps sag, with a live mixing-length readout and a drifting worst-case corridor sensor.

water qualitydissolved oxygenBODriver ecologyStreeter-Phelpstransverse mixingmixing zone2D simulation

2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)