Fastscape is a set of open-source software components aimed at making landscape evolution models and topographic analysis algorithms readily accessible to a wide range of users, from experts in landscape evolution modelling to scientists, researchers and teachers in the broader Earth science community.
It consits of the following components:
Fastscape is a flexible and modular landscape evolution model that is highly connected to the Python scientific ecosystem, thanks to the Xarray-simlab modeling framework (see below). It provides +30 components that can be combined together in order to create custom models. Users can also plug in their own components. Its high-level, user-friendly interface enables interactive landscape evolution modeling, e.g., within Jupyter notebooks.
Fastscapelib-Fortran implements efficient algorithms for landscape evolution modeling. It provides a basic Fortran interface with model setup, runtime and I/O routines that can be used in standalone programs or for coupling landscape evolution models with other Fortran codes (e.g., tectonic or climate models).
Fastscapelib (C++) is the successor of Fastscapelib-Fortran (it is still in early development). It aims to provide a flexible, yet optimized system for implementing various core algorithms (e.g., flow routing and enforcement, solvers for erosion processes) on multiple grids. It exposes a C++ API that is compatible with the Xtensor library (i.e., a multi-dimensional array library heavily inspired by NumPy). It also exposes a Python/NumPy API and may have language bindings for R and Julia.
Xarray-simlab is a modeling framework used by "Fastscape" to build, setup and run custom models. It is very well integrated with tools of the Python Scientific / PyData / Pangeo ecosystems such as Xarray, Dask, Zarr and the Holoviz projects. It is a generic framework that can be used to build models in a wide range of domains.
Ipyfastscape provides interactive widgets for topographic data analysis and modelling in Jupyter notebooks. While ipyfastscape is tightly integrated with fastscape, it also integrates very well with any data in the form of an xarray dataset or any model created with xarray-simlab. Ipyfastscape's high-level UI components can be reused for building interactive web applications (dashboards). It's very useful for research communication, teaching and outreach.