An agent-based modeling framework for Python with a shallow learning curve and powerful visualization capabilities.
Project description
Helipad
Helipad is an 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.7 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 spatial visualization
- PMW for tooltips in the Tkinter GUI
- Readline and Code for the debug console
- Pyobjc for Mac interface niceties
- Nest-asyncio to run Helipad from Spyder
Version History
- 1.3: Allow mixing time series and other plots, display networks on spatial maps, goods API improvements
- 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.