BPTK-Py: System Dynamics and Agent-based Modeling In Python

The Business Prototyping Toolkit for Python (BPTK-Py) is a computational modeling framework that enables you to build simulation models using System Dynamics (SD) and/or agent-based modeling (ABM) natively in Python and manage simulation scenarios with ease.

Next to providing the necessary SD and ABM language constructs to build models directly in Python, the framework also includes a compiler for transpiling System Dynamics models conforming to the XMILE standard into Python code.

This means you can build models in a XMILE-compatible visual modeling environment (such as iseesystems Stella) and then use them independently in a Python environment such as JupyterLabs.

Main Features

  • The BPTK-Py framework supports System Dynamics models in XMILE Format, native SD models and native Agent-based models. You can also build hybrid SD-ABM-Models natively in Python.
  • The objective of the framework is to let the modeller concentrate on building simulation models by providing a seamless interface for managing model settings and scenarios and for plotting simulation results.
  • All plotting is done using Matplotlib.
  • Simulation results are returned as Pandas dataframes.
  • Model settings and scenarios are kept in JSON files. These settings are automatically loaded by the framework upon initialization, as are the model classes themselves. This makes interactive modeling, coding and testing very painless, especially if using the Jupyter notebook environment.

Getting Started

The best way to get started with BPTK is our tutorial, which contains a number of simulation models and Jupyter notebooks to get you started – you can clone or download the tutorial from our git repository on Github.

Our Business Prototyping Toolkit Meetup meets online regularly. All meetups are recorded and the recordings are available on the meetup page.

You might also like to clone our model library repository , which contains a number of models that illustrate how to model business models and market strategies using Agent-based modeling, System Dynamics and BPTK.

BPTK was also used to build our implementation of the infamous Beer Distribution Game. Our beergame repository contains Jupyter notebooks that analyse the Beergame in-depth and also provides XMILE, SD DSL and Agent-based versions of the Beergame.

Getting Help

BPTK-Py is developed and maintained by transentis labs. Currently the main developers are Dr. Oliver Grasl, Jeremy Funk and David Granzin, former contributors include Dominik Schröck and Ahmed Eldably.

The best place to ask questions about the framework is our Business Prototyping Toolkit Meetup, which meets online regularly.

You can also contact us any time at , we are always happy to help.

Content

Installation

Quickstart

Limitations

General Information

Agent Based Modeling

Introduction to XMILE

Introduction to SD DSL