Business Prototyping Toolkit
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 Python.
Main Features
- The BPTK-Py framework supports System Dynamics models in XMILE Format, native SD models using the SD DSL 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 to read our Quickstart. You might also like the System Dynamics Tutorial
Our Business Prototyping Toolkit Meetup meets online regularly. Materials and recordings from past meetups are available on the meetup page.
BPTK was also used to build our implementation of the infamous Beer Distribution Game. Our model library contains simulation models of the Beergame in both System Dynamics and Agent-based versions. It also contains an illustration of how to train reinforcement-learning algorithms to play the Beer Distribution Game.
You can play the game online at beergame.transentis.com
Currently we are working on an Enterprise Digital Twin for transentis. You can find the simulation part of the digital twin in our model library
Getting Help
BPTK-Py is developed and maintained by transentis labs. Currently the main developers are Dr. Oliver Grasl, David Granzin and Dionysios Basdanis, former contributors include Ahmed Eldably, Jeremy Funk and Dominik Schröck.
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 support@transentis.com, we are always happy to help.
Contents
- System Dynamics Tutorial
- Developing Dashboards using Jupyter Widgets
- Developing Dashboards using the SimpleDashboard Utility Class
- Architecture of the BPTK Framework
- Scenarios in Depth
- Accessing Raw Simulation Results
- Advanced Plotting Features
- Persisting the BPTK-Server State
- A Simple Python Library For System Dynamics
- SD DSL Functions
- Creating User-defined Functions in SD Models
- SD DSL: Under The Hood
- The Mathematics of the SD DSL
- Working with XMILE Models
- Bass Diffusion Model. The classic Bass Diffusion Model that is used to explain the dynamics of introductiong a new product or service into a market.
- Beer Distribution Game. Computational notebooks, simulation models and AI training algorithms that explore the beer distribution game in depth.
- Competitive Pricing Dynamics A neat little model that can be used to understand pricing dynamics.
- Customer Acquisition. A model that analyses the effects of referral marketing on customer acquisition.
- Enterprise Digital Twin. A simulation of a professional service firm that forms part of the transentis Enterprise Digital Twin. This is work in progress that accompanies our current meetup series
- Make Your Professional Service Firm Grow. A model that analyses growth strategies in professional service firms.
- System Archetypes. System Archtetypes are basic patterns of behaviour of a system. The model library provides System Dynamics models and dashboards to gain a deeper understanding of the archetypes and of how to model them.