How to use AI to run, check and compare engines without fooling yourself.
Over the past year I have built hundreds of apps with AI. The lesson that matters: AI makes comparisons cheap, so the checks have to be strict.
My rules for any comparison: the same input file, .out files compared byte for byte, and a null test before any claim that a change made a difference.
Start here
- The Vibe Coding Paradox. What happens when a 50-year SWMM expert gets AI superpowers.
- Fixing EPA SWMM 5.2.4, One Proven Defect at a Time. 126 fixes from an AI-assisted code review, each confirmed by its own test.
- Claude Chat App for SWMM Enablement. What it is and why it exists.
- Tips for Managing WASM Models for SWMM5 and SWMM6. Learning from my mistakes. [ADD THE POST LINK ONCE IT IS UP]
Try a tool
- Agreement Is the Null. Why two engines agreeing proves less than it seems.
- Teacher-Forced SWMM. Restart engines from the same hot-start state to find where they part.
- Nine SWMM5 Engines, Not C. SWMM5 rewritten in nine languages other than C.
More apps on this topic
- SWMM5 Engine Harness. Run EPA SWMM5 in the browser and sweep parameters live.
- SWMM5 and SWMM6 Differential Sweep. The same models through SWMM5 and SWMM6, with the differences charted.
- Bellinge in SWMM5 and SWMM6. The Bellinge open dataset, run in both engines.
- OpenHydro Bench Review. A review of Scott Jeffers’s OpenHydro Bench, with the output checked.
- Calibration Ratchet. A calibration loop that keeps a change only when the score improves.
- KGE Stratified Scorer. Kling-Gupta efficiency, broken into its parts.
- SWMM Moonshine. A round-trip check of two engines on the same scenario.
- SWMM5 Benchmark Audit. A published benchmark claim, reproduced and checked.
- SWMM5 and SWMM6 Harness 2030. Run, diff and check SWMM5 and SWMM6 from one page.
Work through an example
- The 1729-model corpus. SWMM5 models with stored results for checking any engine.
- EPA SWMM regression models. EPA’s own test models and expected results.
- Extran 5 Storage Facility with Side Outlet Orifice. A classic test file, ready for AI and third-party engines.
Code and automation
- SWMMBobSWMM6/1729-SWMM5-Models-2030. The model corpus.
- dickinsonre/BatchSWMMRunner. Upload, discretize and batch-run SWMM5 and SWMM6 models in the browser.
- dickinsonre/Swmm5-UI-Engine. A browser SWMM5 workspace built on the native C engine.
- dickinsonre/Code-Rosetta-Stone. SWMM5 in many programming languages.
- HydroCouple/swmm-code-review. The AI-assisted SWMM code review behind the 5.2.4 fixes.
Recently added
- Nine SWMM5 Engines, Not C. October 2026.
- Teacher-Forced SWMM. October 2026.
- Bellinge in SWMM5 and SWMM6. October 2026.
- OpenHydro Bench Review. October 2026.
Explore the archive
- Engine Comparisons (older topic page). Earlier engine comparisons.
- Network Generators (older topic page). Generated networks for testing engines.
- Teaching (older topic page). Interactive explanations and worked examples.
Explore the six topics
- SWMM History: SWMM1 to SWMM6
- Inside SWMM5
- SWMM5 and ICM InfoWorks
- ICM InfoWorks and SWMM6
- Inside SWMM6
- Comparing Models with AI (this page)
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.