Tools portal

Revision as of 17:31, 22 December 2016 by Mpiper (talk | contribs) (Transclude Dakotathon page)


CSDMS-IF (and maybe community?) has developed tools for the community to use. We should at least mention for each of our tools the following:

  • why to use tools (how does a tool help them in their research),
  • how to use the tools,
  • where to get more information on the tools,
  • how to report bugs, ....
  • you name it.

I put your name down below each tool that needs more info. Maybe each tools needs its own page that links from this page, so the items below are really just a placeholder.
So type away, focus less on layout more on content right now maybe?
Thanks, A.



BMI builder


BMI tester



The CSDMS Web Modeling Tool


The CSDMS Web Modeling Tool, WMT, is a web application that provides an Ajax client-side graphical interface and a RESTful server-side database and API that allows users, from a web browser on a desktop, laptop or tablet computer, to build and run coupled surface dynamics models on a supercomputer.

With WMT, users can:

  • Design a model from a set of components
  • Edit component parameters
  • Save models to a web-accessible server
  • Share saved models with the community
  • Submit runs to an HPC system
  • Download simulation results

WMT provides a standardized graphical interface for components created from models submitted to the CSDMS Model Repository.

To see how you can use WMT to configure and run a standalone or a coupled model on the web, check out the WMT tutorial, or jump right into using WMT at

The architecture of WMT

WMT consists of two applications, the WMT client and the WMT server.

In a RESTful application, the client and server are separated. The client (what the user sees) stores little information, making it portable. The server (where the work is done) isn’t concerned with actions in the client, making it scalable. The client and server communicate through HTTP GET and POST methods, using JSON to carry information. WMT is stateless: each message passed between the client and the server contains all the information needed to perform an action.

The WMT client is an Ajax application written in Java with the GWT toolkit. For deployment on the web, the GWT compiler translates Java code to optimized and obfuscated JavaScript. The WMT client is supported on Firefox, Chrome, Safari, and Internet Explorer.

The WMT server, written in Python and SQLite, is a layered system, with each layer exposing a web service API:

  • wmt-db: database of component, model, and simulation metadata and output
  • wmt-api: configure and connect components
  • wmt-exe: launch simulations on remote execution servers

The database server provides JSON-encoded metadata for users to couple model components, including descriptions of component exchange items, uses and provides ports, and input parameters. Execution servers are network-accessible computational resources, ranging from HPC systems to desktop computers, containing the CSDMS software stack for running a simulation. Once a simulation completes, its output, in NetCDF, is packaged and uploaded to a data server where it is stored and from which a user can download it as a single compressed archive file.

A tool for the community

WMT was designed for use by the CSDMS community. If you encounter any problems in using WMT, or if you'd like to leave us feedback or suggestions for improvement, please email the CSDMS software engineers at

WMT is an MIT-licensed open source application, built entirely with open source software. The WMT source code is freely available on GitHub. We actively encourage CSDMS members to contribute to the development of WMT by forking and cloning its GitHub repositories, then sending pull requests with improvements back to the CSDMS software engineers.


--Mpiper (talk) 14:26, 13 October 2016 (MDT)

Additional information:





Dakota is a software toolkit developed at Sandia National Laboratories that provides an interface between models and a library of analysis methods, including support for sensitivity analysis, uncertainty quantification, optimization, and calibration techniques. Dakota is a powerful tool, but its learning curve is steep: the user not only must understand the structure and syntax of the Dakota input file, but also must develop intermediate code that allows Dakota to set up and run a model, read outputs from the model, and calculate a response statistic from the outputs.

The CSDMS Dakota Interface, or Dakotathon, is a Python package that wraps and extends Dakota’s file-based user interface. It simplifies the process of configuring and running a Dakota experiment, and it allows a Dakota experiment to be scripted. Dakotathon creates the Dakota input file and provides a generic analysis driver. Any model componentized in the CSDMS modeling framework automatically works with Dakotathon. Dakotathon has a plugin architecture, so models not wrapped into the CSDMS modeling framework can be accessed by Dakotathon by programmatically extending a template; an example is provided in the Dakotathon distribution.