Releases: mf4633/stormsewer
Release list
v0.9.3
StormSewer v0.9.3
Fixes three things that were invisible from a normal desktop: StormSewer would
not start at all on machines without an OpenGL driver, it said nothing when that
happened, and its in-app support links were dead.
Fixed
- Starts on remote desktop, Citrix/VDI, and virtual machines. The app was
built against OpenGL only. On a machine with no usable GL driver — RDP
sessions, virtual desktops, plain VMs, and Microsoft's own winget validation
sandbox — it simply failed to launch. Both renderers now ship, and startup
tries Direct3D 12 (with a software adapter as a last resort) before falling
back to OpenGL. - Says something when it cannot start. A failed launch used to print to a
console that a double-click does not have, so nothing appeared to happen at
all. It now explains why, names the likely cause, and points at the browser
build, which needs no graphics driver. - The support links work. The Help menu item and the About dialog button
pointed at a Buy Me a Coffee account that does not exist, so anyone who tried
to say thanks hit a dead page. Both now open the real checkout. - The version is read from the build. The window title, the document title,
and the About dialog carried a hardcodedv0.9that had already gone stale
once. All three now read the released version, with a test that fails on any
new literal.
Install
brew tap mf4633/tap
brew install --cask mf4633/tap/stormsewer # macOS app
brew install mf4633/tap/stormsewer-cli # macOS + Linux CLIThe engine is on crates.io (cargo add stormsewer) and compiles to WebAssembly.
| Platform | Download |
|---|---|
| Windows | StormSewer-0.9.3-setup.exe |
| macOS (Intel + Apple Silicon) | StormSewer-macos-universal.zip |
| Linux | StormSewer-x86_64.AppImage or StormSewer-linux-x64.tar.gz |
| Command line | stormsewer-cli-linux-x64.tar.gz / stormsewer-cli-macos.tar.gz |
| Browser build (engine only) | stormsewer-web.zip |
Windows and macOS builds are unsigned — SmartScreen and Gatekeeper will warn on
first run. On macOS, right-click the app and choose Open.
Also since 0.9.1
- VALIDATION.md
works every number on a reference network by hand — intensity, Manning
capacity, Rational accumulation, Tc accumulation, partial-flow velocity, HGL
with junction loss, HEC-22 interception — and matches the engine to six
decimal places, with a test that fails if any published number moves. - Python bindings.
pip install stormsewergives the same engine as a
native extension: primitives for scripting, and whole-network analysis
returning dictionaries that drop straight into pandas. - Project files carry a format version, with the promise that any 1.x
StormSewer opens any 1.x project. - Preferences and unsaved-work recovery now work on macOS and Linux (0.9.2).
293 tests.
Support
Bugs and feature requests belong in
Issues — free, and the fastest
way to get something fixed. For commercial support, custom modules, or
firm-wide rollouts: support@hydrocomplete.com. If StormSewer saves you an
afternoon, buy me a coffee.
Built by Michael Flynn, PE — see also HydroComplete
for browser-based hydrology and hydraulics.
Full Changelog: v0.9.2...v0.9.3
v0.9.2
StormSewer v0.9.2
A correctness release for macOS and Linux, plus new ways to install.
GPL-3.0-or-later; free for the world.
Fixed
- Preferences and unsaved-work recovery now work on macOS and Linux. The
per-user data directory only ever consulted%APPDATA%, so on macOS and
Linux it fell through to a relative path. A bundled app launched from Finder
runs with/as its working directory, which meant preferences and the
autosave recovery file were silently discarded on both platforms. StormSewer
now uses~/Library/Application Support/StormSeweron macOS and
$XDG_CONFIG_HOME/stormsewer(or~/.config/stormsewer) elsewhere; Windows
behaviour is unchanged. - The macOS app reports its real version. The bundle carried a hardcoded
0.7.0, which Finder displayed and Homebrew's upgrade check believed. The
release build now stamps it from the tag.
Windows is unaffected by both fixes — 0.9.1 and 0.9.2 are functionally
identical there.
Install
winget and Homebrew now work alongside the direct downloads:
brew tap mf4633/tap
brew install --cask mf4633/tap/stormsewer # macOS app
brew install mf4633/tap/stormsewer-cli # macOS + Linux CLIThe engine is also on crates.io — cargo add stormsewer — and compiles to
WebAssembly.
| Platform | Download |
|---|---|
| Windows | StormSewer-0.9.2-setup.exe |
| macOS (Intel + Apple Silicon) | StormSewer-macos-universal.zip |
| Linux | StormSewer-x86_64.AppImage or StormSewer-linux-x64.tar.gz |
| Command line | stormsewer-cli-linux-x64.tar.gz / stormsewer-cli-macos.tar.gz |
| Browser build (engine only) | stormsewer-web.zip |
Windows and macOS builds are unsigned — SmartScreen and Gatekeeper will warn on
first run. On macOS, right-click the app and choose Open.
From 0.9.1
If you missed it, 0.9.1 rewrote the PDF report into a submittal document —
title block on every page, ruled pipe / structure / HEC-22 inlet schedules, a
scaled plan, and a profile with real elevation and station axes — and put it
behind a Report Options dialog where you choose the sections, fill the title
block, preview, and pick where it saves.
Support
Bugs and feature requests belong in
Issues — free, and the fastest
way to get something fixed. For commercial support, custom modules, or
firm-wide rollouts: support@hydrocomplete.com. If StormSewer saves you an
afternoon, buy me a coffee.
Built by Michael Flynn, PE — see also HydroComplete
for browser-based hydrology and hydraulics.
StormSewer 0.9.1
StormSewer is a free, open-source storm sewer design and analysis desktop app — Rational method hydrology, Manning capacity, gradually-varied HGL/EGL, HEC-22 inlet capture with bypass carryover, and submittal-ready reports. GPL-3.0. No license key, no seat count, no trial.
What's in this release
Reports. The PDF export is a real submittal document: a header band on every page carrying project number, engineer, firm, jurisdiction and date; ruled pipe, structure, and HEC-22 inlet schedules with right-aligned numerals; a plan schematic drawn to the network's own aspect with a scale bar; and a profile with true elevation and station axes, grid, HGL/EGL legend, and stated vertical exaggeration. Export PDF Report, Print Report, and Ctrl+P all open a Report Options dialog — pick your sections, fill the title block, preview it, then choose where it saves.
Drawing and editing. Import a PNG or JPEG background, scale it from two points of known distance, and draw pipes on top. Multi-select with Ctrl+click and delete with the Delete key. Rename any structure, pipe, or catchment at any time — every link follows. Deep undo/redo, 100 steps, coalesced per gesture.
Profiles. Shift+click pipes to build exactly the profile run you want, including branches off a trunk. Structures draw at their real barrel diameter (4 ft default).
Interoperability. Import Hydraflow STM, DXF, LandXML, and NOAA Atlas 14 IDF (file or paste). Export DXF, LandXML, PDF, HTML, and custom CSV/HTML report templates.
Light and dark mode, following your system theme by default.
Install
| Platform | Download |
|---|---|
| Windows | StormSewer-0.9.1-setup.exe |
| macOS (Intel + Apple Silicon) | StormSewer-macos-universal.zip |
| Linux | StormSewer-x86_64.AppImage or StormSewer-linux-x64.tar.gz |
| Command line | stormsewer-cli-linux-x64.tar.gz / stormsewer-cli-macos.tar.gz |
| Browser build | stormsewer-web.zip |
Windows and macOS builds are unsigned — Windows SmartScreen and macOS Gatekeeper will warn on first run. On macOS, right-click the app and choose Open.
Support
Bugs and feature requests belong in Issues — free, and the fastest way to get something fixed. For commercial support, custom modules, or firm-wide rollouts: support@hydrocomplete.com. If StormSewer saves you an afternoon, buy me a coffee.
Built by Michael Flynn, PE — see also HydroComplete for browser-based hydrology and hydraulics.
v0.9.0
StormSewer v0.8.0
Second release — a major step toward a defensible professional tool. Deeper
hydraulics, real HEC-22 methods, NOAA rainfall ingestion, and a correctness
audit of it all. GPL-3.0-or-later; still free for the world.
New in 0.8.0
Hydraulics
- True gradually-varied-flow (GVF) backwater — the HGL is now a real
standard-step water-surface profile (M1/M2), not a single friction step. - Flow-regime classification — every reach is reported as subcritical,
critical, supercritical, or pressurized (from normal vs critical depth), and
the HGL model routes each regime correctly. A supercritical reach whose outlet
is drowned by a downstream surcharge is now backed up rather than ignored.
HEC-22
- Access-hole structure losses (opt-in) — composite energy-loss coefficient
from relative access-hole size, flow deflection, plunging, and benching. - Real inlet interception — Izzard gutter spread, frontal/side-flow grate
efficiency, curb-opening length for full interception, and weir/orifice sag
capacity, replacing the earlier surrogate.
Rainfall
- NOAA Atlas 14 import — load or paste a NOAA PFDS precipitation CSV and
StormSewer fitsa/(t+b)^cIDF coefficients for every return period; fitted
curves are shown in the IDF panel. - Rational frequency factor (Cf) — raises the effective runoff coefficient
for rarer storms (25/50/100-yr).
Reports & review
- Submittal metadata (engineer, firm, project number, jurisdiction) on reports.
- HGL freeboard check and non-circular cover (uses section rise) in the review.
- Real FAA Tc formula; TR-55 channel segments use Manning velocity.
Quality
- A multi-agent correctness audit of the new GVF, HEC-22, and NOAA code, with
every real finding fixed (see the audit-hardening commit). - Test suite expanded to 180+ tests (integration, robustness, unit-conversion,
and golden-value coverage).
Editor
- Draw pipe runs by clicking the canvas, snap highlighting, finish-on-right-
click/double-click, drag-to-merge, split-by-drop, reverse, duplicate, and
place-on-empty context menus.
StormSewer v0.7.0
First public release of the StormSewer hydrology & hydraulics engine — an open
recreation of the standard methods used by tools like Autodesk Hydraflow Storm
Sewers. GPL-3.0-or-later.
What's in it
- Engine (
stormsewer) — Rational-method peak-flow accumulation, Manning
circular open-channel hydraulics (exact geometry, normal/critical depth, full
and peak capacity), time-of-concentration (Kirpich, TR-55, FAA), HGL backwater
with junction losses, standard-pipe sizing, and HEC-22 inlet capacity. - Desktop app (
StormSewer) — plan + profile + inspector, live analysis,
editing with undo, light/dark themes, DXF/LandXML/.STMimport and
DXF/LandXML/PDF/HTML export. - CLI (
stormsewer-cli) — analyze a.ssnnetwork, with--sizeand
--review. - Web (
stormsewer-wasm) — the same engine compiled to WebAssembly; a
browser playground with live calculators and full-network analysis, no server.
Validation
Correctness is pinned to hand-derived reference values, not ranges:
tests/validation.rs— Manning full-flow (16.04 cfs), half-full = ½ capacity,
peak capacity 1.076× full at y/D≈0.938, critical depth at Froude = 1, Kirpich,
TR-55.tests/worked_example.rs+WORKED_EXAMPLE.md— a full two-pipe network
reproduced column-for-column.tests/hgl_validation.rs— HGL backwater (friction + structure loss +
tailwater → 111.81 ft).
106 tests pass; debug and release builds are clean on stable Rust.
Try it
# CLI
cargo run --bin stormsewer-cli -- examples/sample.ssn --size --review
# Web (or open the GitHub Pages URL)
./wasm/build.sh && cd wasm && python3 -m http.serverImport an existing Hydraflow .STM project and compare — that's the fastest way
to see the numbers line up with what you already trust.
Known limitations
See READINESS.md. In brief: steady Rational peak flow only (no hydrograph
routing), single-K junction losses (not full FHWA structure-loss methodology),
non-circular shapes solved as equivalent circular, and multi-structure HGL not
yet validated against a published HEC-22 profile.
Full Changelog: v0.7.0...v0.9.0
v0.7.0
StormSewer v0.7.0
First public release of the StormSewer hydrology & hydraulics engine — an open
recreation of the standard methods used by tools like Autodesk Hydraflow Storm
Sewers. GPL-3.0-or-later.
What's in it
- Engine (
stormsewer) — Rational-method peak-flow accumulation, Manning
circular open-channel hydraulics (exact geometry, normal/critical depth, full
and peak capacity), time-of-concentration (Kirpich, TR-55, FAA), HGL backwater
with junction losses, standard-pipe sizing, and HEC-22 inlet capacity. - Desktop app (
StormSewer) — plan + profile + inspector, live analysis,
editing with undo, light/dark themes, DXF/LandXML/.STMimport and
DXF/LandXML/PDF/HTML export. - CLI (
stormsewer-cli) — analyze a.ssnnetwork, with--sizeand
--review. - Web (
stormsewer-wasm) — the same engine compiled to WebAssembly; a
browser playground with live calculators and full-network analysis, no server.
Validation
Correctness is pinned to hand-derived reference values, not ranges:
tests/validation.rs— Manning full-flow (16.04 cfs), half-full = ½ capacity,
peak capacity 1.076× full at y/D≈0.938, critical depth at Froude = 1, Kirpich,
TR-55.tests/worked_example.rs+WORKED_EXAMPLE.md— a full two-pipe network
reproduced column-for-column.tests/hgl_validation.rs— HGL backwater (friction + structure loss +
tailwater → 111.81 ft).
106 tests pass; debug and release builds are clean on stable Rust.
Try it
# CLI
cargo run --bin stormsewer-cli -- examples/sample.ssn --size --review
# Web (or open the GitHub Pages URL)
./wasm/build.sh && cd wasm && python3 -m http.serverImport an existing Hydraflow .STM project and compare — that's the fastest way
to see the numbers line up with what you already trust.
Known limitations
See READINESS.md. In brief: steady Rational peak flow only (no hydrograph
routing), single-K junction losses (not full FHWA structure-loss methodology),
non-circular shapes solved as equivalent circular, and multi-structure HGL not
yet validated against a published HEC-22 profile.
Full Changelog: https://github.com/mf4633/stormsewer/commits/v0.7.0