An agent-based modeling framework for Python with a shallow learning curve and powerful visualization capabilities.
Project description
Helipad
Helipad is a powerful agent-based modeling framework for Python with powerful visualization capabilities and a shallow learning curve. Documentation and API reference can be found at https://helipad.dev
Features
- ⚓️ A simple hook-based API makes it easy to build a model without worrying about the features you don’t need
- 📈 Interactive and live-updating visualizations, including time series, bar charts, networks, spatial, and an API for writing custom visualizations
- 👋🏻 Flexible parameter API allows parameter values to be set programmatically, adjusted manually from the control panel while the model is running, or shocked stochastically
- 🪐 Cross-platform and multimodal. Models can be written and run with a Tkinter GUI, in Jupyter notebooks, or without a GUI at all
- 🤹🏻♂️ Agents can barter, buy and sell with money, reproduce both haploid and polyploid, and more
- 🕺🏻 A variety of model types: sequential or random-activation models, matching models, multi-level models, network models, spatial models, and more
How to use
You can install Helipad using Pip.
pip install helipad
Once installed, getting started with a model is very simple.
from helipad import *
heli = Helipad()
#Use the heli object to set up here
heli.launchCpanel()
The included bootstrap model contains a more detailed template, and the sample models exemplify various use cases. The documentation also includes a complete hook and function reference.
Requirements
Helipad requires Python 3.6 or higher. The following libraries are also required:
- Matplotlib (for visualization)
- Pandas (for data collection)
The following libraries are optional but recommended:
- Jupyter, Ipywidgets, and ipympl (to run Helipad in Jupyter notebooks)
- NetworkX (for network analysis and visualization)
- PMW (for tooltips in the Tkinter GUI)
- Readline and Code (for the debug console)
- Pyobjc (for Mac interface niceties)
Version History
- 1.2: Extensible visualization API, events, performance profiling, Jupyterlab support
- 1.1: Virtual parameters, improved Jupyter flexibility, spatial pre-alpha, misc improvements
- 1.0: Jupyter integration, hook decorators, and separated control panel from plotting
- 0.7: Ability to output stackplots, parameter sweeps, and an updated parameter identification pattern
- 0.6: Support for multi-level models
- 0.5: Support for matching models, and the checkGrid class
- 0.4: Initial PyPI release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.