Latest v0.9.4 · lessons from five cities Open source · verification first

Stormwater modelling with a chain of evidence.

Describe the job in a sentence. Fetch a municipal storm network from SWMMCanada, run EPA SWMM, inspect uncertainty, and export an audited report with its inputs, checks, and limits in view.

  • v0.9.4 stable
  • MIT licensed
  • EPA SWMM 5.2.4
  • PyPI + Docker
58typed tools
19reusable skills
4,067tests reported in v0.9.4
10LLM provider routes
Current release · September 2026

v0.9.4 keeps the answer tied to the run.

Two days of natural-language sessions across five Canadian cities shaped this release: stronger run context, new analysis tools, and clearer evidence in every deliverable.

Read the changelog →
01 / context

Follow-ups stay with their model

Questions return to the run they refer to. A failed fetch remains visible as a failed fetch, and provider errors leave the interactive session available to continue.

02 / analysis

Explore uncertainty before observations arrive

Propagate stated parameter ranges or rank their effects one at a time. Each analysis retains its own files and reports flow in the model’s units, with its assumptions stated.

03 / memory

Past failures inform the next attempt

Failure memory loads at session start, relevant parameter records reach the planner, and new lessons stay anchored to the place being modelled.

04 / evidence

Reports carry the limits of the result

Word reports state evidence boundaries and any design-review verdict. Re-audits retain the previous record, and expert decisions record an explicit yes or no.

The method

Ask naturally. Execute deterministically. Keep the record.

This is not a chat wrapper around SWMM. The agent coordinates; the solver, checks, and artifacts remain inspectable.

01

Source or build the model

Fetch a real municipal storm network through SWMMCanada, the upstream model-building project in the same ecosystem—or bring an existing .inp or prepared GIS layers.

02

Run, calibrate, and verify

EPA SWMM runs stay CLI-runnable. QA gates, SCE-UA calibration, precipitation-scaled climate scenarios, and direct solver comparisons keep automation grounded.

03

Audit, remember, refine

Provenance and experiment notes feed curated and raw memory. Skill changes remain proposals until a human reviews and benchmarks them.

New case · downtown Kelowna, BC

One sentence. One approval. A complete record.

The fifth city in the release campaign follows the same fetch, run, audit, and report chain. The model, figures, report, and session transcript are published together, so the SWMM simulation can be repeated offline.

Explore the Kelowna evidence →
01 / fetch

A published storm network

411 derived subcatchments, 889 storm nodes, 832 conduits, and 76 outfalls. The bundle also contains sanitary pipes; this simulation uses the storm system alone.

02 / run + audit

Numbers with a source

Principal-outfall peak 0.130 m³/s; system peak outflow 0.706 m³/s. Runoff continuity error −0.078%, routing −1.022%. The audit passed all three checks.

03 / limits

Geometry warnings remain visible

Ten conduits run uphill and five subcatchments route more than 50 m to their outlet. The model is an uncalibrated first pass with no observed flow supporting its predictions.

04 / report

The deliverable and its inputs travel together

The published case includes the original model.inp, a sample Word report, upstream QA, report excerpts, and the full two-turn transcript.

The upstream

SWMMCanada builds the model. Agentic SWMM runs, audits, and defends it.

SWMMCanada is the data-and-model-building layer of the same ecosystem: draw an area, and it assembles a ready-to-run model.inp from Canadian open data. Agentic SWMM consumes it through one typed tool and carries the retrieved archive and service identifiers into the run record.

Daily rainfall and daily mean flow at Graham Creek, Ottawa, summer 2024: the observed Water Survey of Canada gauge record against the uncalibrated SWMMCanada model
Checked against a real flow gauge — Graham Creek, Ottawa (WSC 02KF015, 22 km²), summer 2024. The uncalibrated automatically built model reproduced all 12 rainfall events on the correct days, with a total volume bias of −22.3%. The remaining gaps are structural and stated as such: no baseflow on dry days, no wetland storage on wet days.
Project overview

See the workflow, then inspect the implementation.

The short introduction explains the modelling loop. The repository contains the runtime, 19 skills, 11 MCP servers, 58 typed tools, tests, benchmarks, and audit contracts.

Published research · AI for Engineering · 2026

Auditable and reproducible stormwater modelling with Agent Skills and MCP.

Zhang, Z. & Valeo, C. · Volume 1, Issue 1, Article 5

Read the paper ↗