Flexible modeling and simulation software for free-surface flows.
Zoomy's main objective is to provide a convenient modeling interface for complex free-surface flow models. Zoomy transitions from a symbolic modeling layer to a numerical layer, compatible with a multitude of numerical solvers, e.g. NumPy, JAX, Firedrake, FEniCSx, OpenFOAM, and AMReX. Additionally, we support the preCICE coupling framework for some numerical backends, enabling convenient integration of our solver with your existing code.
See the Zoomy documentation for the user guide, tutorials, API reference, and full installation / development setup.
@online{Zoomy,
author = {Ingo Steldermann},
title = {Zoomy: Flexible modeling and simulation software for free-surface flows},
year = 2026,
url = {https://github.com/ZoomyLab/Zoomy},
urldate = {YYYY-MM-DD}
}- Try it now in your browser — interactive GUI at zoomylab.github.io/Zoomy/gui.
- Try a notebook in your browser — JupyterLite playground (coming back soon — deployment is being rebuilt).
- Pip install the core:
pip install zoomy_core
- Everything else (full repo clone, submodules, Apptainer / Docker, devcontainer, Conda/Mamba, backend-specific setup, development workflow) — see Documentation → Installation.
Zoomy's symbolic layer compiles to several solver backends. Each one has its own page in the documentation:
CI test reports for each backend are published with the docs site: see CI Reports.
The Zoomy source code is free open-source software, licensed under version 3 or later of the GNU Lesser General Public License (LGPLv3+). See LICENSE for full copying permissions.
Zoomy builds on, integrates with, or uses logos from the following open-source projects. We gratefully acknowledge their authors and the licenses under which we use their work:
| Project | Role in Zoomy | License | Notes |
|---|---|---|---|
| SymPy | symbolic modeling layer | BSD-3-Clause | logo by Fredrik Johansson, free use under the same terms as SymPy |
| NumPy | reference solver, arrays | BSD-3-Clause | |
| JAX | zoomy_jax backend |
Apache-2.0 | |
| Firedrake | zoomy_firedrake backend |
LGPLv3+ | |
| FEniCSx / DOLFINx | zoomy_fenicsx backend |
LGPLv3+ | |
| PETSc | DMPlex backend, Firedrake | BSD-2-Clause | |
| AMReX | zoomy_amrex backend |
BSD-3-Clause | |
| OpenFOAM | OpenFOAM backend | GPL-3.0 | logo: Carnby, CC BY-SA 4.0, via Wikimedia Commons |
| preCICE | coupling framework | LGPLv3+ | |
| Gmsh | mesh generation | GPLv2+ | |
| ParaView | post-processing | BSD-3-Clause | macros in tools/paraview_macros/ |
| Jupyter Book | this documentation site | BSD-3-Clause | |
| JupyterLite / Pyodide | in-browser notebook execution | BSD-3-Clause / MPL-2.0 |
If you spot a project we use but haven't credited, please open an issue.
