Skip to content

HOLMES

HydrOLogical Modeling Educational Software

HOLMES is a web-based hydrological modeling tool designed for teaching operational hydrology. Developed at Université Laval, Québec, Canada.


Features

  • Multiple Hydrological Models: GR4J (4 parameters) and Bucket (6 parameters) rainfall-runoff models
  • Snow Modeling: CemaNeige degree-day model with multi-elevation band support
  • Automatic Calibration: SCE-UA (Shuffled Complex Evolution) optimization algorithm
  • Climate Projections: Run future scenarios with calibrated model parameters
  • Interactive Interface: Real-time parameter adjustment and streamflow visualization
  • High Performance: Rust-powered computational engine with Python integration

Quick Start

Install HOLMES:

pip install holmes-hydro

Start the server:

holmes

Open your browser at http://127.0.0.1:8000.

Get Started User Guide


Documentation Sections

  • Getting Started


    Install HOLMES and run your first simulation in minutes.

    Installation

  • User Guide


    Learn how to use the web interface for calibration, simulation, and projection.

    User Guide

  • Concepts


    Understand the hydrological models, calibration algorithms, and metrics.

    Concepts

  • Developer Guide


    Architecture overview and API documentation.

    Developer Guide


Architecture Overview

HOLMES uses a three-tier architecture:

Layer Technology Purpose
Frontend Vanilla JavaScript, D3.js Interactive web interface
Backend Python, Starlette, Uvicorn API routing, data loading, orchestration
Compute Rust (holmes-rs), PyO3 High-performance numerical models

Communication between frontend and backend uses WebSockets for real-time updates during calibration.


License

HOLMES is released under the MIT License.