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 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 either Pip or Conda, depending on your preferred package manager.
pip install helipad
conda install -c charwick 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.8 or higher. The following libraries are also required:
- Matplotlib for visualization
- Pandas for data collection
- NetworkX for network analysis and spatial visualization
- Optional: Jupyter, Ipywidgets, and ipympl to run Helipad in Jupyter notebooks
- Optional: Shapely for geospatial models.
How to Cite
If you use Helipad in your own research, please cite as follows:
Harwick, Cameron (2021). “Helipad: A Framework for Agent-Based Modeling in Python.” Working paper available at ssrn.com/abstract=3870501.
Version History
- 1.6: Geospatial models, agent scatterplot visualizer, new
Agents
andEdges
containers - 1.5: Polar grid spatial models, various spatial improvements
- 1.4: More consistent container API, localization, miscellaneous interface improvements
- 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.
Source Distribution
Built Distribution
File details
Details for the file helipad-1.6.2.tar.gz
.
File metadata
- Download URL: helipad-1.6.2.tar.gz
- Upload date:
- Size: 597.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6c63e0704c2fc09cc7acfef25c637b8587d11860ccf5c77524ed33038eba333 |
|
MD5 | 7cef7adc773afffd88cd56ceff332013 |
|
BLAKE2b-256 | 20b8af2066ac6cd1d0466614346a496e79e28c2a13adb6426ac19c7d117aae5a |
File details
Details for the file helipad-1.6.2-py3-none-any.whl
.
File metadata
- Download URL: helipad-1.6.2-py3-none-any.whl
- Upload date:
- Size: 610.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c52ba9d16959962ef322b04068d63b91b43b5ebc43570786c8ec1db0270d0def |
|
MD5 | 7ea6b6a1ae6bdb2f6fd6a173c527e7c7 |
|
BLAKE2b-256 | 7f4362b5e839cc42e01e5ec2cc5bccd09288b8280b1c84071997ac4af652f7cb |