Systems Dynamics software

Unfortunately, most software for systems dynamics modelling is very expensive, proprietary and limited to working on *Windows* or a *Mac*. See, for example, https://systemdynamics.org/tools/core-software/.

A few open source options do exist, some of which are listed at https://en.wikipedia.org/wiki/Comparison_of_system_dynamics_software, but unfortunately none of these are sufficiently complete or flexible to meet more than a narrow set of requirements.

Fortunately, an open standard for system dynamics models, **XMILE** (https://blog.iseesystems.com/news-announcements/xmile-faq/), has been adopted widely.


## Simlin: system dynamics modelling

Described at https://github.com/bpowers/simlin/blob/main/README.md as "an open source tool for creating and editing System Dynamics models". However, although the source code is available at https://github.com/bpowers/simlin/, there is no helpful documentation or guidance to install a copy except using the *Google Cloud SDK* (https://cloud.google.com/sdk).

Fortunately, the project's own hosted version (at https://app.simlin.com) is very useful for defining simple models which can the be exported in XMILE format.


## OpenModelica

*OpenModelica* (https://www.openmodelica.org and https://en.wikipedia.org/wiki/OpenModelica) is a free and open source environment based on the *Modelica* language for modelling, simulating, optimizing and analysing complex dynamic systems.

Among other helpful features, *OpenModelica* provides a Python Interface (OMPython) enabling users to access its modelling and simulation capabilities from other Python scripts.

Unfortunately, *OpenModelica* does not yet have the ability to export or import XMILE files.


## NetLogo System Dynamics Modeler

Although primarily designed to support ABS (Agent Based Simulations), *NetLogo* (http://ccl.northwestern.edu/netlogo/) provides tools to support systems dynamics modelling (https://ccl.northwestern.edu/netlogo/docs/systemdynamics.html).

Although *NetLogo* does not yet have the ability to export or import XMILE files, it does provide a number of powerful ways to integrate it with other software, including a controlling API, and extensions API, and Python and R extensions.


## PySD

*PySD* (https://pysd.readthedocs.io/en/master/) is a simple library for running system dynamics models in Python, with the purpose of improving integration of Big Data and Machine Learning into the systems dynamics workflow. PySD can translate XMILE model files into Python modules, and provides methods to modify, simulate, and observe those translated models.


## Other options

Many other options exist, especially for those who do not mind being limited to *Windows* (e.g. *Simantics System Dynamics* - https://en.wikipedia.org/wiki/Simantics_System_Dynamics) or to a walled on-line environment (e.g. *Insight Maker* - https://insightmaker.com/).

However, for integrating systems dynamics tools into a workflow incorporating a diversity of components, options are limited.