Skip to main content


PyPI DOI

smash (Spatially distributed Modeling and ASsimilation for Hydrology) is a Python library, interfaced with an efficient Fortran computational engine, that provides user-friendly routines for both hydrological research and operational applications.

The platform enables the combination of vertical and lateral flow operators through either process-based conceptual models or hybrid physics-AI approaches incorporating Artificial Neural Networks (ANNs). It is designed to simulate discharge hydrographs and hydrological states at any spatial location within a basin, and to reproduce the hydrological responses of contrasting catchments by leveraging spatially distributed meteorological forcings, physiographic data, and hydrometric observations.

smash offers a range of advanced calibration techniques, including Variational Data Assimilation (VDA), Bayesian estimation for uncertainty quantification, and machine learning methods, all within a spatialized and differentiable modeling framework. This is enabled by a numerical adjoint model automatically generated using the Tapenade differentiation tool, which provides accurate gradients for high-dimensional, non-linear optimization and efficient model learning.

Whether you are managing water resources or conducting research in hydrological modeling, smash can provide an easy-to-use yet powerful solution to support your work. Refer to the Getting Started guide for installation instructions and an introduction to its features.

How to cite smash

For smash software use, please cite:

Colleoni, F., Huynh, N. N. T., Garambois, P.-A., Jay-Allemand, M., Organde, D., Renard, B., De Fournas, T., El Baz, A., Demargne, J., and Javelle, P. (2025). SMASH v1.0: a differentiable and regionalizable high-resolution hydrological modeling and data assimilation framework. Geosci. Model Dev., 18, 7003–7034. https://doi.org/10.5194/gmd-18-7003-2025.

BibTeX entry:

@article{Colleoni2025smash,
    author  = {Colleoni, François and Huynh, Ngo Nghi Truyen and Garambois, Pierre-André and Jay-Allemand, Maxime and Organde, Didier and Renard, Benjamin and De Fournas, Thomas and El Baz, Apolline and Demargne, Julie and Javelle, Pierre},
    title   = {SMASH v1.0: a differentiable and regionalizable high-resolution hydrological modeling and data assimilation framework},
    journal = {Geoscientific Model Development},
    volume  = {18},
    year    = {2025},
    number  = {19},
    pages   = {7003--7034},
    doi     = {10.5194/gmd-18-7003-2025}
}

Please also cite the relevant references corresponding to the algorithms and methods used:

  • Hybrid physics–AI frameworks embedding neural networks for internal flux correction into (i) a universal differential equations (UDE) solver or (ii) algebraic models solving analytical solutions of time-integrated ordinary differential equations (ODEs):

    Huynh, N. N. T., Garambois, P.-A., Colleoni, F., and Monnier, J. (2026). A hybrid physics–AI approach using universal differential equations with state-dependent neural networks for learnable, regionalizable, spatially distributed hydrological modeling. Geosci. Model Dev., 19, 1055–1074. https://doi.org/10.5194/gmd-19-1055-2026.

    Huynh, N. N. T., Garambois, P.-A., Renard, B., Colleoni, F., Monnier, J., and Roux, H. (2025). A distributed hybrid physics–AI framework for learning corrections of internal hydrological fluxes and enhancing high-resolution regionalized flood modeling. Hydrol. Earth Syst. Sci., 29, 3589–3613. https://doi.org/10.5194/hess-29-3589-2025.

  • Learning regionalization of spatially distributed hydrological pararameters (Hybrid Data Assimilation and Parameter Regionalization, HDA-PR, approach):

    Huynh, N. N. T., Garambois, P.-A., Colleoni, F., Renard, B., Roux, H., Demargne, J., Jay-Allemand, M., and Javelle, P. (2024). Learning Regionalization Using Accurate Spatial Cost Gradients Within a Differentiable High-Resolution Hydrological Model: Application to the French Mediterranean Region. Water Resour. Res., 60, e2024WR037544. https://doi.org/10.1029/2024WR037544.

  • Signatures, multi-criteria calibration, hydrograph segmentation algorithm:

    Huynh, N. N. T., Garambois, P.-A., Colleoni, F., and Javelle, P. (2023). Signatures-and-sensitivity-based multi-criteria variational calibration for distributed hydrological modeling applied to Mediterranean floods. J. Hydrol., 625, 129992. https://doi.org/10.1016/j.jhydrol.2023.129992.

  • Fully distributed variational calibration:

    Jay-Allemand, M., Javelle, P., Gejadze, I., Arnaud, P., Malaterre, P.-O., Fine, J.-A., and Organde, D. (2020). On the potential of variational calibration for a fully distributed hydrological model: application on a Mediterranean catchment. Hydrol. Earth Syst. Sci., 24, 5519–5538. https://doi.org/10.5194/hess-24-5519-2020.

Metadata

Release files for hydro-smash 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hydro-smash 1.3.0
File Size Uploaded
hydro_smash-1.3.0.tar.gz 21.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for hydro-smash 1.3.0
File
hydro_smash-1.3.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
hydro_smash-1.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
hydro_smash-1.3.0-cp313-cp313-macosx_15_0_arm64.whl CPython 3.13 CPython 3.13 macOS 15.0+ ARM64 Details
hydro_smash-1.3.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
hydro_smash-1.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
hydro_smash-1.3.0-cp312-cp312-macosx_15_0_arm64.whl CPython 3.12 CPython 3.12 macOS 15.0+ ARM64 Details
hydro_smash-1.3.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
hydro_smash-1.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
hydro_smash-1.3.0-cp311-cp311-macosx_15_0_arm64.whl CPython 3.11 CPython 3.11 macOS 15.0+ ARM64 Details
hydro_smash-1.3.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
hydro_smash-1.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
hydro_smash-1.3.0-cp310-cp310-macosx_15_0_arm64.whl CPython 3.10 CPython 3.10 macOS 15.0+ ARM64 Details

Total release size: 223.8 MB

Release files / hydro_smash-1.3.0.tar.gz

Download URL hydro_smash-1.3.0.tar.gz
Size 21.1 MB
Tags Source
SHA-256 checksum
How to use checksums
873acf2debcd7959530c43914349660bb9e17acf20c25504569f9452323814c8
BLAKE2b-256 checksum
How to use checksums
798b72b5721a33012077d7ecbbdb60ace3acee0011d26781448b60eb39d3c1a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp313-cp313-win_amd64.whl

Download URL hydro_smash-1.3.0-cp313-cp313-win_amd64.whl
Size 16.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
4565d6a9d716549a1d174b7b386678f0fbbba6f7160b703ce087b5d85e1dc514
BLAKE2b-256 checksum
How to use checksums
ce982931a60a2234f09f898580a616aad8ac437acc54e8b9a388941d9cb3658c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL hydro_smash-1.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 17.3 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4f825b547fcb19354bf1c5b4831588874441b903849413031d3834a01b47bc0b
BLAKE2b-256 checksum
How to use checksums
b9a56a2c5d83ba19c4135c2e9afc35a63c7717ec807e9a3fa8314f24ec7c374a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp313-cp313-macosx_15_0_arm64.whl

Download URL hydro_smash-1.3.0-cp313-cp313-macosx_15_0_arm64.whl
Size 17.1 MB
Tags CPython 3.13 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
21358188069d657fbc1a8b10d969ff89fe29472e3099086d2c6651eed8923e62
BLAKE2b-256 checksum
How to use checksums
2dbc147ef04cc4f509a1bc28689a82f3d835a4de78fc9b41c607f69f97b7b11a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp312-cp312-win_amd64.whl

Download URL hydro_smash-1.3.0-cp312-cp312-win_amd64.whl
Size 16.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f26d74e884ee8722255680160aca68b271de7c10b00a2fd6d116f5b973c14d76
BLAKE2b-256 checksum
How to use checksums
c21210a7bb10940335f6b223aa8f7bb13d67cddb75680de775cab61b9c9b49a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL hydro_smash-1.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 17.3 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e13dc304cd4fec9990411f379e8312d19f0faa6fd1fe0e3b59514d1433505d0c
BLAKE2b-256 checksum
How to use checksums
10f005c23b4f724cc4b632d552a2c10768d96a1ba8ca78a67054fc7db0f409fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp312-cp312-macosx_15_0_arm64.whl

Download URL hydro_smash-1.3.0-cp312-cp312-macosx_15_0_arm64.whl
Size 17.1 MB
Tags CPython 3.12 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
aba12f47ed01a9481f4e0910a4e72179607c796bf3ba4f51493992869723b259
BLAKE2b-256 checksum
How to use checksums
df840438285d044ec00e5812e2ce964ff1d456fe66359ea14de89738412b2775
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp311-cp311-win_amd64.whl

Download URL hydro_smash-1.3.0-cp311-cp311-win_amd64.whl
Size 16.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
4c04d277420629b8b1f02d075c8d20acfdc0d955a7985b3c411c72d3bb7feac1
BLAKE2b-256 checksum
How to use checksums
3dcd42c01cbe2746fc83393a2e95518efddeb8324bbb3b4b65960a0d98441512
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL hydro_smash-1.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 17.3 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bfcd1dadf60f8ebe0979a5adfb82e93464d576743710e5734370f267b05722fd
BLAKE2b-256 checksum
How to use checksums
8470dc4be7d8864efb8cd6f33f3e152166ad1b1a3991001801d23cfbc1803b61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp311-cp311-macosx_15_0_arm64.whl

Download URL hydro_smash-1.3.0-cp311-cp311-macosx_15_0_arm64.whl
Size 17.1 MB
Tags CPython 3.11 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
101e62c75b94b46ee910da69b6fe569f5931307e6133e531253fe026efa77f6d
BLAKE2b-256 checksum
How to use checksums
468342ce3f1b02885e4b95de84e4d23defaae06e5abf819cf428f12cb4bfa637
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp310-cp310-win_amd64.whl

Download URL hydro_smash-1.3.0-cp310-cp310-win_amd64.whl
Size 16.3 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b6faf45656eb46b64a7623ced2bf12489e12595daed7e6a7551914b7f9d9581d
BLAKE2b-256 checksum
How to use checksums
b0439d0188bf971d429f5c0165ffe3404807b37c7727d87ed9ba95223b78ffcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL hydro_smash-1.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 17.2 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
795628624ae509de315d2147b466b58ba1a30a604dfafd4788a3733cc9039bb0
BLAKE2b-256 checksum
How to use checksums
d09bf6a4c651af6b69665ea8fff4ad183b0abf3149cb192a3fdd030ac72d9dbe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hydro_smash-1.3.0-cp310-cp310-macosx_15_0_arm64.whl

Download URL hydro_smash-1.3.0-cp310-cp310-macosx_15_0_arm64.whl
Size 17.0 MB
Tags CPython 3.10 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
368a6bb36e9e1d4addaad69a207694306b989b5a2dcd51e57d3ccf323ff57bd4
BLAKE2b-256 checksum
How to use checksums
bede03f22ea244eb9c52c61922304fb18af2001ac7c63484791f5c6c800b41db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page