OpenMI provides users with a standard interface that allows the construction of modeling workflows. OpenMI allows models to exchange data with each other and other modeling tools as they run, facilitating the modeling of process interactions. Models may come from many different sources, represent processes from different scientific domains, have different spatial and temporal resolutions, and have different spatial domains/representations. The OpenMI standard is defined by a set of software interfaces that a compliant model must implement. These interfaces enable models to communicate with each other, with the possibility of two-way links between models where the involved models mutually depend on calculation results from each other. The OpenMI interfaces are available in both C# and Java. Models may run asynchronously with respect to timesteps.