.. image:: images/hydrocouple_logo.png :alt: HydroCouple Logo :width: 200px ======== OpenSWMM ======== **Open Storm Water Management Model — Python bindings.** OpenSWMM is a community-driven, open-source continuation of the EPA Storm Water Management Model (SWMM) — a dynamic hydrology / hydraulics / water quality simulation model used for single-event and long-term simulation of runoff quantity and quality from primarily urban areas. The :mod:`openswmm` package ships **two engines** that share the same package namespace: .. grid:: 2 .. grid-item-card:: OpenSWMM 6 — Refactored Engine :link: guide/index :link-type: doc :mod:`openswmm.engine` The new reentrant C++20 engine. Domain-split API (Nodes, Links, Forcing, Controls, …), bulk numpy accessors, programmatic model construction, in-place editing, plugin SDK. **Recommended for all new work.** .. grid-item-card:: Legacy SWMM 5 — Compatibility Layer :link: legacy/index :link-type: doc :mod:`openswmm.legacy.engine` and :mod:`openswmm.legacy.output` The original EPA SWMM 5.x solver and binary-output reader, preserved verbatim for backward compatibility with existing scripts. No new development; bug fixes only. If you are coming from a SWMM 5 codebase, see :doc:`migration/swmm5_to_swmm6` for a side-by-side translation. ---- Where to start ============== .. grid:: 2 .. grid-item-card:: New to OpenSWMM :link: guide/quickstart :link-type: doc A 10-minute walkthrough using the v6 engine: install, run, query, plot. .. grid-item-card:: Coming from SWMM 5? :link: migration/swmm5_to_swmm6 :link-type: doc Side-by-side translation guide. .. grid-item-card:: User Guide :link: guide/index :link-type: doc Topic-by-topic guides for every domain class in the v6 engine. .. grid-item-card:: API Reference :link: api :link-type: doc Full class & method reference, generated from the Cython type stubs. Both engines. ---- .. toctree:: :maxdepth: 2 :hidden: :caption: Getting started guide/install guide/quickstart guide/concepts .. toctree:: :maxdepth: 2 :hidden: :caption: OpenSWMM 6 — Refactored Engine guide/index .. toctree:: :maxdepth: 2 :hidden: :caption: Legacy SWMM 5 — Compatibility legacy/index legacy/solver legacy/output .. toctree:: :maxdepth: 1 :hidden: :caption: Migration migration/swmm5_to_swmm6 .. toctree:: :maxdepth: 2 :hidden: :caption: Reference api license ---- Project at a glance =================== .. list-table:: :widths: 30 70 * - **Audience** - Hydrologists, stormwater engineers, researchers, app developers. * - **Engines** - OpenSWMM 6 (reentrant C++20, ``openswmm.engine``) and the preserved SWMM 5.x solver (``openswmm.legacy.engine``). * - **Language** - Python ≥ 3.9 with NumPy ≥ 1.21 (NumPy 2.x supported). * - **Platforms** - macOS (arm64 + x86_64), Linux (x86_64 + aarch64), Windows (x64). * - **Build system** - scikit-build-core + CMake + Cython. * - **License** - MIT. Related documentation ===================== * `OpenSWMM C/C++ engine docs `_ — the underlying engine these Python bindings wrap. Full C API reference, technical reference manuals (Hydrology, Hydraulics, Water Quality), user manual, architecture & design notes. *(The "C/C++ Engine Docs" link in the top navigation also goes here.)* * `Source repository on GitHub `_ — source, build instructions, contributing guide, issue tracker.