Dependencies
Larvaworld leverages 40 carefully selected Python packages spanning scientific computing, visualization, agent-based modeling, and development tools. This page provides a comprehensive overview of the dependency ecosystem.
Dependency Overview
mindmap
root((Larvaworld<br/>40 deps))
sci
numpy
pandas
scipy
matplotlib
seaborn
scikit-learn
powerlaw
statannot
abm
agentpy
box2d-py
nengo
geo
geopandas
shapely
movingpandas
viz
holoviews
hvplot
panel
param
pygame
imageio
io
tables
pypdf
cli
typer
rich
argparse
docopt
progressbar
util
pint
pint_pandas
typing-extensions
filelock
test
pytest
pytest-cov
pytest-xdist
docs
sphinx
sphinx-rtd-theme
sphinx-autoapi
sphinx-autobuild
furo
myst-parser
Core Dependencies
Scientific Computing (sci)
The foundation of all numerical operations:
Package |
Purpose |
Use in Larvaworld |
|---|---|---|
numpy |
N-dimensional arrays |
All numerical operations, trajectory data |
pandas |
Data manipulation |
Time-series data ( |
scipy |
Scientific algorithms |
Statistical tests (KS), signal processing, optimization |
matplotlib |
Base plotting |
All static plots (trajectories, distributions, etc.) |
seaborn |
Statistical visualization |
Box plots, heatmaps, distribution comparisons |
scikit-learn |
Machine learning |
Clustering, dimensionality reduction |
powerlaw |
Power-law distributions |
Analysis of movement patterns |
statannot |
Statistical annotations |
P-value annotations on plots |
Agent-Based Modeling (abm)
Specialized libraries for simulation and physics:
Package |
Purpose |
Use in Larvaworld |
|---|---|---|
agentpy |
Agent-based modeling |
Core ABM framework ( |
box2d-py |
2D physics engine |
Realistic multisegment larva bodies with physics |
nengo |
Neural simulation |
Neural network-based brain controllers ( |
Note
nengo and box2d-py are optional dependencies. Install them if you need neural controllers or physics-based body simulation:
pip install larvaworld[nengo,box2d]
Geospatial (geo)
For spatial operations and trajectory analysis:
Package |
Purpose |
Use in Larvaworld |
|---|---|---|
geopandas |
Geospatial data frames |
Spatial analysis of trajectories |
shapely |
Geometric objects |
Arena boundaries, collision detection |
movingpandas |
Trajectory analysis |
Movement pattern analysis |
Visualization (viz)
Rich visualization tools for interactive and static outputs:
Package |
Purpose |
Use in Larvaworld |
|---|---|---|
holoviews |
Declarative visualization |
Interactive plots |
hvplot |
Pandas plotting |
High-level interactive plotting API |
panel |
Web dashboards |
Interactive web applications ( |
param |
Parameter management |
Dashboard widgets and validation |
pygame |
Game engine |
Real-time 2D rendering ( |
imageio |
Image/video I/O |
Video export (MP4, AVI) |
I/O (io)
Data persistence and file handling:
Package |
Purpose |
Use in Larvaworld |
|---|---|---|
tables (PyTables) |
HDF5 interface |
Dataset storage ( |
pypdf |
PDF handling |
PDF figure import/export |
CLI (cli)
Command-line interface utilities:
Package |
Purpose |
Use in Larvaworld |
|---|---|---|
argparse |
Argument parsing |
Primary CLI argument parser |
typer |
Modern CLI |
Optional CLI utilities (legacy) |
rich |
Terminal formatting |
Pretty printing, progress bars |
docopt |
CLI from docstrings |
Alternative CLI interface |
progressbar |
Progress bars |
Long-running task feedback |
Utilities (util)
General-purpose utilities:
Package |
Purpose |
Use in Larvaworld |
|---|---|---|
pint |
Physical units |
Unit conversions (mm, cm, seconds, etc.) |
pint_pandas |
Pint + Pandas |
Units in data frames |
typing-extensions |
Type hints |
Python 3.10+ type annotations |
filelock |
File locking |
Multi-process safe file access |
Testing (test)
Test framework for quality assurance:
Package |
Purpose |
Use in Larvaworld |
|---|---|---|
pytest |
Testing framework |
Test suite runner |
pytest-cov |
Coverage reporting |
Code coverage analysis |
pytest-xdist |
Parallel testing |
Speed up test execution |
Documentation (docs)
Sphinx-based documentation generation:
Package |
Purpose |
Use in Larvaworld |
|---|---|---|
sphinx |
Documentation generator |
ReadTheDocs build |
sphinx-rtd-theme |
ReadTheDocs theme |
Classic RTD theme (alternative) |
sphinx-autoapi |
API documentation |
Auto-generate API docs from docstrings |
sphinx-autobuild |
Live rebuild |
Development server with auto-reload |
furo |
Modern Sphinx theme |
Primary documentation theme |
myst-parser |
Markdown support |
Write docs in Markdown instead of RST |
Dependency Groups
Dependencies are organized into optional groups in pyproject.toml:
Main Dependencies (Always Installed)
Core scientific stack + agent modeling:
pip install larvaworld
Includes: numpy, pandas, scipy, matplotlib, seaborn, agentpy, shapely, pygame, tables, and more.
Optional: Neural Simulators
pip install larvaworld[nengo] # Nengo neural simulator
pip install larvaworld[brian2] # Brian2 neural simulator
Use case: Neural network-based brain controllers.
Optional: Physics Engine
pip install larvaworld[box2d]
Use case: Realistic multisegment body simulation.
Optional: Development
pip install larvaworld[dev]
Includes: pytest, ruff, pre-commit, commitizen, and more.
Use case: Contributing to Larvaworld.
Install All
pip install larvaworld[all]
Installs all optional dependencies.
Python Version Requirements
Larvaworld supports Python 3.10–3.13:
[tool.poetry.dependencies]
python = ">=3.10,<3.14"
Dependency Updates
Current Strategy
Major updates: Tested manually before merging
Minor updates: Automated via Dependabot
Security patches: Applied immediately
Pinning Policy
Core deps: Pinned to major versions (e.g.,
numpy >=1.20,<2.0)Dev deps: Flexible (e.g.,
pytest >=7.0)Docs deps: Python 3.11+ only (e.g.,
sphinx >=4.0, python >=3.11)