The CSDMS Workbench

The CSDMS Workbench is the integrated system of software tools, technologies, and standards developed by CSDMS for building, interfacing, and coupling models. Each element of the CSDMS Workbench is developed as open source software and released to the community under the MIT License. The CSDMS Workbench consists of five core elements:

  1. Basic Model Interface (BMI)
  2. Standard Names (CSN)
  3. Babelizer
  4. Python Modeling Toolkit (PyMT)
  5. Landlab
The Basic Model Interface (BMI) is a set of functions that standardizes how numerical models can be queried, modified, and run. A model with a BMI exposes the same set of functions, no matter which language the model is written in. While a BMI can be specified for any language, CSDMS currently supports C, C++, Fortran, and Python.

[documentation, source repository]


CSDMS Standard Names (CSN) provide a comprehensive set of naming rules and patterns that are not specific to any particular modeling domain. They were also designed to have many other nice features such as parsability and natural alphabetical grouping. CSDMS Standard Names always consist of an object part and a quantity/attribute part and the quantity part may also have an operation prefix which can consist of multiple operations.

[documentation, source repository]


The Babelizer is a utility for wrapping models that expose a Basic Model Interface so they can be imported as Python packages. Within Python, these models, regardless of their core language, appear as classes. Users are then able to run models interactively through the Python command line or Jupyter Notebook, and programmatically through Python scripts.

[documentation, source repository]


The Python Modeling Tool (PyMT) provides the tools needed for coupling models that expose a Basic Model Interface. PyMT provides utilities for coupling models of disparate time and space scales, a collection of Earth-surface models, and an extensible plug-in framework for adding new models.

[documentation, source repository]


Landlab is library that allows users to easily build unique earth surface processes models to address specific hypotheses. The Landlab library contains gridding engines for building regular and irregular grids, process components that act on grid variables, tools for storing and sharing data among the grid and components, and plotting and analysis tools.

[documentation, source repository]


To learn more about the CSDMS Workbench, visit the individual product pages linked above, or reach out to us through the CSDMS Help Desk, or email us at