Skip to content
System Dynamics Modeling in Python
Jupyter Notebook Python HTML
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist Packaging for 9.0 Jun 20, 2018
docs Issue #153: Update documentation from Py2 to Py3 Jul 16, 2018
pysd Update package version to 0.10.0 Apr 2, 2019
tests Test fixes Mar 15, 2019
.gitignore Updated .gitignore to exclude files generated during a sphinx build Jul 31, 2018
.gitmodules Trying to fix travis submodule import error Aug 5, 2016
.travis.yml Reverting temporary changes to debug travis ci issues Aug 20, 2018
LICENSE Packaging 0.8.0 Oct 16, 2017 Inlcude missing packages and files into pkg setup script. Oct 17, 2017 Update Sep 11, 2018
Xarray value assignment.ipynb Some tests pass Aug 30, 2016
requirements.txt Fixed tests! Jun 13, 2018
sandbox.ipynb Packaging for 9.0 Jun 20, 2018
setup.cfg v0.1.0 - first packaged version Sep 2, 2014 Fixed tests! Jun 13, 2018


Coverage Status Code Health Build Status

Simulating System Dynamics Models in Python

This project 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 SD workflow.


See the project documentation for information about:

For standard methods for data analysis with SD models, see the PySD Cookbook, containing (for example):

If you use PySD in any published work, consider citing the PySD Introductory Paper:

Houghton, James; Siegel, Michael. "Advanced data analytics for system dynamics models using PySD." Proceedings of the 33rd International Conference of the System Dynamics Society. 2015.

Why create a new SD simulation engine?

There are a number of great SD programs out there (Vensim, iThink, AnyLogic, Insight Maker, and others). In order not to waste our effort, or fall victim to the Not-Invented-Here fallacy, we should have a very good reason for starting a new project.

That reason is this: There is a whole world of computational tools being developed in the larger data science community. System dynamicists should directly use the tools that other people are building, instead of replicating their functionality in SD specific software. The best way to do this is to bring specific SD functionality to the domain where those other tools are being developed.

This approach allows SD modelers to take advantage of the most recent developments in data science, and focus our efforts on improving the part of the stack that is unique to System Dynamics modeling.

Cloning this repository

If you'd like to work with this repository directly, you'll need to use a recursive git checkout in order to properly load the test suite (sorry..)

The command should be something like:

git clone --recursive


You can use PySD in R via the PySD2R package, also available on cran.


Many people have contributed to developing this project - by submitting code, bug reports, and advice.

Special thanks to the development team, who have made great contributions to XMILE support, and for integrating PySD into their cloud-based model simulation environment.

You can’t perform that action at this time.