New Both engines now benchmarked against EPANET and SWMM

Water infrastructure simulation,
from tap to outfall.

A suite of domain engines behind one toolchain, written in Rust. Import a model, run it, and read the same report everywhere: in the desktop app, from the command line, through the Rust SDK, or right here in your browser.

hydra run
  EPANET Example Network 1      Number of Junctions................ 9      Number of Pipes ................... 12      Quality Analysis .................. Chlorine      Total Duration .................... 24.00 hrs  Analysis begun Mon Aug 17 13:50:54 2026  Analysis ended Mon Aug 17 13:50:54 2026
  Example 1  Flow Units ............... CFS  Flow Routing Method ...... DYNWAVE  Surcharge Method ......... SLOT  Total Precipitation ......        15.679         2.650  Surface Runoff ...........         6.251         1.057  Continuity Error (%) .....         0.000
2 engines, one for each network Water distribution and urban drainage, each owning its data model end to end.
4 ways to run a model Desktop app, CLI, Rust SDK, and the browser. The same engine code runs everywhere.
0 uploads, ever The browser demo reads, solves and reports your model in your own tab.

Why simulate

What is this for?

Every city runs on buried networks: one delivers drinking water under pressure, and drainage systems carry rain and wastewater away. All are expensive to dig up and impossible to experiment on, so engineers answer their questions on a model first. Hydra is where those questions get asked: try things against the physics before committing to concrete.

Will pressure hold at peak demand?

Morning showers and lawn watering pull hard on a network. Simulation shows the pressure at every junction, hour by hour, before anyone's tap runs weak.

Can hydrants deliver during a fire?

Fire flow is the stress test of a water network. Add the fire demand at the hydrant's junction and rerun; pressure-driven analysis shows the residual pressures and the shortfall honestly.

Is the water still fresh at the edge of town?

Water ages in pipes and disinfectant decays along the way. Run a water-age analysis, model chlorine decay, or trace the share of water arriving from any source, out to the farthest junctions.

Which streets flood in a heavy storm?

Feed a design storm to the drainage model and see where the network surcharges and floods, and how much water it loses, before it happens outside.

Can the sewers take a new development?

New rooftops and parking lots shed more water, faster. Check the downstream pipes before approving the plans.

Do rain gardens pay off?

Model green infrastructure on the catchments and read how much runoff it actually keeps out of the sewers.

These are the daily questions of water utilities, city public works departments, engineering consultancies, and the researchers and students learning the field. Hydra gives them one open, modern toolchain for both buried networks.

The engines

One engine for each network

Hydra reimplements the models behind EPANET and SWMM with its own solvers. Each engine owns its data model end to end: reader, solver, and report. Correctness is defined by Hydra's own convergence criteria and physical conservation laws, and because the outputs are file-compatible, you can run Hydra beside your current tool on your own models and diff the results.

Water distribution

EPANET data model

A Global Gradient Algorithm hydraulic solver and a Lagrangian water quality engine. Reads any EPANET 2.x .inp file; writes EPANET-compatible binary results and text reports.

Urban drainage

SWMM data model

Rainfall-runoff hydrology, Preissmann-slot dynamic-wave routing of the Saint-Venant equations, and water quality on the SWMM data model: infiltration, LID controls, snowmelt, groundwater, pollutant transport.

Bring the models you already have

Reads your files

Any EPANET 2.x .inp file opens as-is, and SWMM 5 models open directly; the engine is detected from the model's contents, never its file extension. Drainage models built for steady or kinematic-wave routing run under the full dynamic-wave solver, and the import says so.

Writes their formats

Results land as EPANET- and SWMM-compatible binary .out files, faithful to the byte layout, so tools that read them keep working. Text reports follow the predecessors' layout with documented differences.

Repairs on import

Provably safe fixes are applied automatically on import, never destructively, and every repair is reported so you can review what changed.

Moving over? See Migrating from EPANET and Migrating from SWMM.

One toolchain

The same engines on every surface

Desktop app

Import a model, edit the network on a map, run scenarios in a background queue, and explore results. Both engines are supported.

CLI

Run hydra run model.inp. The model's own sections identify the engine, and the run writes the report and the binary results; hydra report renders analytics from them.

Rust SDK

The engines as a library. One crate, hydra-sdk, is the public API the desktop app and CLI are themselves built on.

Browser

The real engines, compiled to WebAssembly. Drop a model on the demo, or run one of its bundled examples. It prints the engine's report in your tab and uploads nothing; the map and editor live in the desktop app.

The desktop app, up close

Import a model, edit it on the canvas, run scenarios in a background queue, and play results back over the network.

Hydra
The canvas view: a drainage network in plan, mid playback, with depth and velocity legends, an element list on the left, and the selected subcatchment's properties and time series on the right.
The canvas: the network in plan, results played back in time.
Hydra
The editor view: conduits in a table with length, roughness and cross-section columns, and every element kind listed in a sidebar.
The editor: every element in tables built for bulk edits.
Hydra
The results view: tables of node extremes, link extremes, a flooding summary and an outfall summary.
Results: node and link extremes, flooding and outfall summaries.
Hydra
The report builder: a reorderable list of sections beside a PDF preview showing a run summary, a system balance and a flow chart.
The report builder: charts and tables from saved templates.
Hydra
The projects list with the task monitor open: a large model solving at 69 percent with two more runs queued behind it.
The run queue: simulations solve in the background while you work.

Build on Hydra

Everything the official apps do goes through hydra-sdk, and your code gets the same contract: parse a model, run it, read any result at any time.

SDK documentation

main.rs
use hydra_sdk::{io, NodeQuantity, Simulation};let network = io::parse(&bytes)?;let mut sim = Simulation::create();sim.load(network)?;loop {    let dt = sim.step_hydraulics()?;    if let Some(t) = sim.current_time() {        let head = sim.get_node_result("J1", NodeQuantity::Head)?;        println!("t={t:.0}s  head={head:.3}");    }    if dt == 0.0 { break; }}

Features

Everything in the box

Scenarios and run queue

Variants of one model, simulated in a background queue while you keep working.

Report builder

Saved templates rendered to text, CSV, HTML, or PDF, with charts.

Post-run analytics

Demand reliability, service compliance, rankings, and distributions computed from results.

Map canvas

Basemap providers, a coordinate-system catalog, and timeline playback over the network.

Controls and rules

Simple and rule-based controls in the water engine; SWMM control rules with PID-modulated actions in the drainage engine. Deliberate deviations are documented and flagged at import.

Hydrology in depth

Infiltration families, green-infrastructure (LID) controls, snowmelt, groundwater, and rainfall-derived inflow (RDII) for drainage models.

2D overland flow Alpha

Rain and surcharge spreading over a triangular surface mesh, coupled to the pipe network at manholes and inlets. Read the terrain before you run, and the flood depths after. The format it rides is still being defined upstream, so treat it as something to try.

Water quality

Constituent transport, age, and source tracing; buildup, washoff, and treatment.

Checkpoint and resume

Save a finished run's state from the CLI and resume a longer run from it; the resumed results match an unbroken run exactly.

Design criteria

Engine-defined criteria with editable thresholds, painted as compliance bands over the canvas and reported in analyses.

Self-updating app

The desktop app checks for signed updates and installs them in place on macOS, Windows, and the Linux AppImage.

Open source

AGPL-3.0, developed in the open, with a commercial license available.

Benchmarks

Measured against the engines they replace

Each engine is benchmarked against its predecessor on published networks: release builds of both, the same machine, best of three runs. Where results still differ, the difference is documented in the specification with its cause. Nothing is unexplained, for either engine.

Drainage, against SWMM 5.2.4

0.95× SWMM's runtime on Bellinge's storm Published 1,020-node network; 1.04× across its full 48 h
1.5% of steps end unconverged Error-controlled stepping; SWMM leaves 36% unconverged over the same 48 h
0 unexplained differences Every corpus delta fixed, or documented with its cause

Water distribution, against EPANET

95.4% of 2.6M node pressures match Within 0.1, across 11 published research networks
1.0–1.2× EPANET's runtime on the set Balerma, BWSN, D-Town, Exeter, Kentucky, NY Tunnels
2nd order tank integration, with an error bound The one runtime trade; EPANET's own scheme is a flag away

Method, full tables, and how to reproduce them on your own machine are in the performance reference. A tracked baseline gates every change on both runtime and peak memory, so these numbers cannot quietly rot.

Licensing

Free software, with a commercial path

AGPL-3.0

for everyone

Free to use for any work, including client projects, with nothing owed: running Hydra and delivering the results, models, or reports is not distribution, so the AGPL asks nothing of you.

Commercial license

for products

Ship Hydra inside a product, or serve it to others over a network? A commercial license is priced per deal by seats, term, and support tier. Enquire at matthew@neer.ai.

Download

Runs where you work

macOS

.dmg disk image or portable .app.tar.gz, Apple Silicon.

Windows

.msi or .exe installer.

Linux

.AppImage, .deb, or .rpm package.

The latest desktop release and its notes are on the releases page. Prefer the terminal? cargo install hydra-cli (needs Rust; prebuilt binaries are on the releases page) puts the same engines behind one command.

FAQ

Questions, answered plainly

Does my model ever leave my machine?

No. The desktop app, the CLI, and the SDK run entirely on your machine. The browser demo runs the engines in your own tab and uploads nothing.

Do I have to convert my EPANET or SWMM files?

No. Hydra reads any EPANET 2.x .inp and SWMM .inp file directly, and writes results in their compatible binary and text formats.

Is Hydra free?

Yes: free software under AGPL-3.0. Products that do not want AGPL obligations can use a separate commercial license, priced per deal by seats, term, and support tier, with priority support under a negotiated service level. Enquire at matthew@neer.ai; community support lives in GitHub Discussions.

What platforms does the desktop app support?

macOS (Apple Silicon), Windows, and Linux. There is no Intel Mac build. The CLI additionally installs anywhere Rust does, with cargo install hydra-cli.

Can my firm use Hydra on client projects?

Yes, with nothing owed: running Hydra on client work and delivering the results, models, or reports is not distribution, so the AGPL asks nothing of you. The line is distributing Hydra itself or serving it to others over a network; embed it in a product you ship and the commercial license is for you.

I'm learning water modelling. Is Hydra for me?

Yes. Hydra speaks the industry-standard EPANET and SWMM formats and models the same physics, so everything you learn here transfers directly to the tools utilities and consultancies already run, and it costs nothing. Start with the demo's bundled examples, then Key Concepts in the docs. Questions are welcome in Discussions.

Who builds Hydra?

One engineer: Matthew Downs, at NEER AI, building in the open. That cuts both ways, so the project is structured so nothing depends on trusting one person: the full source is public and forkable, every solver behaviour is written down in specifications, and your models stay in standard EPANET and SWMM files that any tool can read. If Hydra vanished tomorrow, you would keep everything.

Can the browser demo handle large models?

Small and medium models run fine. But the demo lives in one browser tab, and browsers cap what a tab can hold, so a large network with captured .out results will hit limits the native builds do not have. The desktop app, the CLI, and the Rust SDK stream results from disk. Use the demo to try Hydra, and run big models natively.

Can I build my own tools on Hydra?

Yes. The hydra-sdk crate is the public API the official apps are built on, and the SDK documentation covers it end to end. It compiles to WebAssembly too.

Run your first model in the next minute

No install, no account, no upload, and no model needed: the demo ships classic EPANET and SWMM examples. It runs the real engines on your machine.