How EPA SWMM 5.2.4 computes runoff, routing and everything between, one app at a time.
Each app here opens one part of EPA SWMM 5.2.4: the source file, the equation and the numbers it produces. Many of them run the real engine, compiled to WebAssembly, in your browser.
The oldest posts here are from 2013, on the iterations inside every dynamic wave time step.
Start here
- Hydraulic Jump, Froude Number and #INSIDE_SWMM5. The Froude number and hydraulic jumps in SWMM5.
- Refactoring the SWMM 5 Help File: Routing. Flow routing in SWMM5, explained topic by topic.
- Refactoring the SWMM 5 Help File: Hydrology. Runoff, infiltration and the rest of SWMM5 hydrology.
- QA Report: Dynamic Wave Flow Routing, 2006. EPA’s 2006 dynamic wave QA report, as markdown.
- Successive Under-Relaxation for the SWMM 5 Dynamic Wave Solution. The iteration inside every dynamic wave step.
Try a tool
- Inside SWMM. Inside the Node and Inside the Orifice & Weir: what happens inside a junction and a regulator.
- Dynamic Wave Midpoint Area. How dynamic wave blends normal flow with the St. Venant terms, and what each Normal Flow Criterion option does.
- Cross-Section Explorer. The built-in geometry tables behind every SWMM5 conduit shape.
More apps on this topic
- Slot-Free Pressurization. Surcharge handled without a Preissmann slot.
- Dynamic Wave Explainer. Why SWMM5’s explicit dynamic wave solution stays robust.
- Lua SWMM5 Playground. Drive the EPA SWMM 5.2.4 engine from Lua in your browser.
- SWMM5 .out Inspector Rover. Open a SWMM5 .out file and ask questions about it.
- The Bowl Is Full. Soil compaction expressed as an apparent Curve Number.
- Topsoil Recovery Check. Horton versus the LID two-layer soil for decompacted topsoil, in EPA SWMM 5.2.4.
- Fourier Cross Sections. Fit irregular cross sections with a Fourier series.
- Runoff Explorer. How hydrographs respond to width, slope and imperviousness.
Work through an example
- Runoff Routing Options Example in SWMM 5. The subarea routing options on one example.
- Example 5: Runoff Water Quality. From the EPA Applications Manual.
- EPA SWMM regression models. EPA’s own test models.
Code and automation
- SWMMBobSWMM6/Stormwater-Management-Model. My fork of EPA SWMM, with branches for new solvers and fixes (staggered grid, Preissmann box, node surface area, six Curve Number changes).
- SWMMBobSWMM6/swmm5-kw. Kinematic wave and steady flow that split flow at junctions and route loops.
- SWMMBobSWMM6/swmm524-perched. SWMM 5.2.4 with a perched two-layer soil.
- dickinsonre/alt-swmm5. A catalog of proposed SWMM5 engine features.
- dickinsonre/swmm-brain. Engine changes, a WebAssembly build, and Ruby and PySWMM scripts.
- SWMM5 in other languages. C++ (swmm5-cplus), with Rust, Fortran, C#, Python, TypeScript, Java and Go versions in the same GitHub account.
Recently added
- Fixing EPA SWMM 5.2.4, One Proven Defect at a Time. October 2026.
- Topsoil Recovery Check. October 2026.
- SWMM5 in other languages. October 2026.
Explore the archive
- Inside SWMM5 posts. Everything tagged Inside SWMM5.
- Hydraulics (older topic page). Flow, surcharge, flooding and solver stability.
- Hydrology & RDII (older topic page). Rainfall, runoff, infiltration and wet-weather response.
- swmmfive.com. My older blog, more than 2,000 posts.
Explore the six topics
- SWMM History: SWMM1 to SWMM6
- Inside SWMM5 (this page)
- SWMM5 and ICM InfoWorks
- ICM InfoWorks and SWMM6
- Inside SWMM6
- Comparing Models with AI
View all topics · Subscribe to the newsletter
Use of AI: Claude (Anthropic) drafted this page in November 2026. It picked the entries from my swmm5.org posts, Netlify apps and GitHub repositories and wrote the one-line descriptions. I chose the six topics and the layout.