.inp replaces the model, .out or .csv (time as hours, H:MM, or datetime; flow in the last column) attaches observed data. Demo watershed is preloaded. Files never leave your browser.
| Racer | k | runs | θ₁ | θ₂ | RMSE |
|---|
Calibrating a SWMM model is optimization: minimize the mismatch f(θ) between simulated and observed flow. Plain gradient descent asks only "which way is downhill from here?" Nesterov's accelerated gradient (1983) keeps momentum from recent motion, looks ahead to a predicted point yₖ, and evaluates the gradient there — for smooth convex problems this provably improves the error rate from O(1/k) to O(1/k²), the optimal rate for first-order methods.
Here every objective evaluation is a genuine EPA SWMM 5.2 dynamic-wave run in your browser, and gradients come from central finite differences (4 runs each). The currency is engine runs, exactly what an overnight calibration spends. Watch the curves cross: descent grabs the easy early error, then stalls in the shallow valley along the width axis; momentum carries Nesterov through it to a far tighter fit on the same budget.
Honest caveats: this loss surface is not convex, finite-difference gradients carry noise, and the clean O(1/k²) guarantee does not formally apply — which is precisely why watching the race on a real engine beats trusting the asymptotics. The classic momentum schedule βₖ = (k−1)/(k+2) is used verbatim. Parameters raced are the two workhorse SWMM runoff calibration dials: a multiplicative scale on subcatchment %Imperv (volume) and on Width (hydrograph shape and timing).