Skip to content
 
 

Latest commit

 

History

288 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenSWMM GUI

OpenSWMM GUI

Qt6/C++ graphical user interface for the OpenSWMM storm-water simulation engine (v6.0.0)

Build and Package Documentation CodeQL OpenSSF Scorecard License: GPL v3


Overview

A new GIS-based graphical user interface being developed for SWMM 6.0. The application is built with C++20 and the Qt 6 framework, providing tight integration with the next-generation OpenSWMM computational engine.

Key capabilities:

  • Interactive map canvas with pan/zoom, CRS reprojection, and layer management (vector, raster, WMS/WMTS, XYZ tiles, SWMM model & results layers)
  • SWMM model setup, editing, and validation
  • Simulation control and results visualization
  • GIS data import/export via GDAL

Dependencies

Dependency Version Notes
Qt 6.5+ Widgets, OpenGL, Network, Concurrent, Svg, Charts
GDAL 3.x GIS/CRS support — installed via vcpkg
openswmm.engine branch swmm6_rel Engine — expected at ../openswmm.engine
QPropertyModel branch dev Property editor — expected at ../QPropertyModel
vcpkg 2025.03.19 Package manager
CMake 3.21+ Build system

Building

1. Clone sibling repositories

All three repos must be siblings in the same parent directory:

# From the directory that will contain all repos:
git clone -b swmm6_gui  https://github.com/HydroCouple/openswmm.gui.git
git clone -b swmm6_rel  https://github.com/HydroCouple/openswmm.engine.git openswmm.engine
git clone -b dev        https://github.com/cbuahin/QPropertyModel.git QPropertyModel
git clone               https://github.com/microsoft/vcpkg.git

cd vcpkg
./bootstrap-vcpkg.sh   # Windows: bootstrap-vcpkg.bat
cd ..

2. Install Qt 6

Download and install Qt 6.5+ via the Qt Online Installer, then set the QT_ROOT_DIR environment variable to point to the kit directory:

# Linux example
export QT_ROOT_DIR=$HOME/Qt/6.7.0/gcc_64
# macOS example
export QT_ROOT_DIR=$HOME/Qt/6.7.0/macos

3. Configure and build

cd openswmm.gui

# macOS (Release)
cmake --preset=Darwin
cmake --build --preset=Darwin

# Linux (Release)
cmake --preset=Linux
cmake --build --preset=Linux

# Windows (Release) — from a Visual Studio Developer Prompt
cmake --preset=Windows
cmake --build --preset=Windows

Debug builds append -debug to the preset name (e.g., Darwin-debug).

4. Run tests

cmake --preset=Darwin -DSWMMVIS_BUILD_TESTS=ON
cmake --build --preset=Darwin
ctest --test-dir build/darwin -C Release --output-on-failure

API Documentation

Generated with Doxygen and published to GitHub Pages on every push to main/swmm6_gui:

doxygen docs/Doxyfile   # output → docs/html/

Disclaimer

This open-source project is provided on an "as is" basis and the user assumes responsibility for its use.

About

Source Code for the Stormwater Management Model Graphical User Interface

Resources

Code of conduct

Contributing

Stars

6 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages