AeroAgentSim
AeroAgentSim is a discrete-event simulation toolkit and developer workbench for low-altitude autonomous systems. It is designed for developers who need to configure workflows, run algorithmic experiments, inspect execution chains, and verify runtime behavior through trajectories, logs, and spatial snapshots.
The current repository, workbench, and source distribution use AeroAgentSim and aeroagentsim. Existing code can continue to import airfogsim, and the citation section below points to the JOSS paper published under the original AirFogSim title.
Overview
- Recommended developer install path:
pip install -e .[dev] - Recommended Python import:
from aeroagentsim import Environment - Current workbench pages:
Overview,Class Catalog,Workflow Studio,Run Console,Trajectories & Logs - Runtime outputs are stored under
runtime/aeroagentsim/ - Custom
agent/task/workflowdefinitions are file-backed underregistry/aeroagentsim/ - Builtin workbench workflows are aligned with runnable inspection, charging, logistics, and image-processing flows
Developer Workbench
The AeroAgentSim workbench is built for configuration, validation, execution, and runtime verification:
Overview: current config version, recent run, and validation statusClass Catalog: builtin and custom metadata plus compatibility lookupWorkflow Studio: table/form editing with a workflow-agent-state relation graphRun Console: start, pause, resume, reset, live logs, critical path, and live 2D mapTrajectories & Logs: run history, trajectory replay, and structured log inspection
The visualization layer is intentionally lightweight and developer-oriented:
- Leaflet-based 2D spatial views
simulation_planemode withCRS.Simplegeo_osmmode with geographic coordinates- live markers with workflow, task, status, and recent log context
- stored 2D trajectories rendered as polylines
Workflow Studio uses forms and tables as the persisted source of truth. The relation graph is an interactive inspection canvas with auto layout, wheel or trackpad zoom inside the canvas, background drag-to-pan, and node drag refinement for local layout adjustment.
The workbench also provides:
- global
zh-CN/en-USUI switching - page-local
Validatefor the active draft inWorkflow Studio - centralized
Review / Validatechecks for draft consistency and runtime readiness - merged browsing across builtin and custom definitions
- structured log and trajectory inspection by
run_id
Registry And Runtime
Custom definitions are stored as files:
registry/aeroagentsim/agents/registry/aeroagentsim/tasks/registry/aeroagentsim/workflows/
Runtime state is separated cleanly from configuration snapshots:
- config snapshots:
runtime/aeroagentsim/configs/ - run directories:
runtime/aeroagentsim/runs/<run_id>/ - typical run subdirectories:
logs/,workflow_states/,trajectories/,spatial/,metrics/
Run start performs runtime preflight. Compatibility findings such as skipped default create_airspace or create_frequency injection remain warning entries. Only preflight errors block POST /api/runs.
Developer Configuration
These environment variables are the main public knobs for local development and automation:
- Backend storage:
AEROAGENTSIM_RUNTIME_DIRAEROAGENTSIM_REGISTRY_DIRAEROAGENTSIM_DB_PATHAEROAGENTSIM_LOG_LEVEL
- Compatibility aliases accepted by the backend:
AIRFOGSIM_RUNTIME_DIRAIRFOGSIM_REGISTRY_DIRAIRFOGSIM_DB_PATHAIRFOGSIM_LOG_LEVEL
- Frontend endpoints:
REACT_APP_API_BASE_URLREACT_APP_WS_BASE_URLREACT_APP_ENABLE_MOCK_FALLBACK
- Example-specific integrations:
OPENWEATHERMAP_API_KEYfor weather-backed examplesSUMO_HOMEfor SUMO traffic workflows
Installation
For the current repository and workbench, use a source install:
python -m venv aeroagentsim_env
source aeroagentsim_env/bin/activate
pip install -e .[dev]
If you also want documentation tooling:
pip install -e ".[dev,docs]"
Verify the package
python -c "import aeroagentsim, airfogsim; from aeroagentsim import Environment; from airfogsim import Environment as LegacyEnvironment; print(Environment.__name__, Environment is LegacyEnvironment)"
Quick Example
from aeroagentsim import Environment
from aeroagentsim.agent import DroneAgent
from aeroagentsim.component import ChargingComponent, MoveToComponent
from aeroagentsim.workflow.inspection import create_inspection_workflow
env = Environment()
drone = env.create_agent(
DroneAgent,
"drone1",
properties={
"position": [10, 10, 0],
"battery_level": 100,
},
)
drone.add_component(MoveToComponent(env, drone))
drone.add_component(ChargingComponent(env, drone))
workflow = create_inspection_workflow(
env,
drone,
[
(10, 10, 50),
(100, 40, 80),
(180, 120, 60),
(10, 10, 0),
],
)
workflow.start()
env.run(until=600)
Start The Workbench
python main_for_visualization.py --backend-port 8002 --frontend-port 3000
API Surface
The current workbench API exposes these main groups:
GET /api/catalog/agents|components|tasks|workflowsGET /api/catalog/compatibilityGET/POST /api/registry/{kind}GET/PUT/DELETE /api/registry/{kind}/{definition_id}POST /api/registry/{kind}/{definition_id}/validateGET/PUT /api/configs/{config_id}GET/POST /api/configs/{config_id}/graphPOST /api/configs/{config_id}/preflightPOST /api/configs/{config_id}/validateGET /api/healthPOST /api/runtime/resetGET /api/runsPOST /api/runsPOST /api/runs/{run_id}/pause|resume|resetDELETE /api/runs/{run_id}GET /api/runs/{run_id}/status|logs|trajectories|spatial
Documentation
Citation
If you use AeroAgentSim in research, cite the JOSS paper:
- JOSS page: https://joss.theoj.org/papers/10.21105/joss.08267
- PDF: https://www.theoj.org/joss-papers/joss.08267/10.21105.joss.08267.pdf
@article{Wei2025,
doi = {10.21105/joss.08267},
url = {https://doi.org/10.21105/joss.08267},
year = {2025},
publisher = {The Open Journal},
volume = {10},
number = {111},
pages = {8267},
author = {Wei, Zhiwei and Li, Bing and Zhang, Rongqing},
title = {AirFogSim: A Python Package for Benchmarking Collaborative Intelligence in Low-Altitude Vehicular Fog Computing},
journal = {Journal of Open Source Software}
}
Release files for aeroagentsim 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aeroagentsim-1.1.1.tar.gz | 303.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aeroagentsim-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 695.8 kB
Release files / aeroagentsim-1.1.1.tar.gz
| Download URL | aeroagentsim-1.1.1.tar.gz |
|---|---|
| Size | 303.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
721d3006b84fad2f11652c819c4468debd38d25717608f170b8de44b1fa416c1
|
|
BLAKE2b-256 checksum How to use checksums |
9765f92eba8b1b31bd255ce56e8d6c43447b0a5e3c8393d2773bfce4a63d06c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / aeroagentsim-1.1.1-py3-none-any.whl
| Download URL | aeroagentsim-1.1.1-py3-none-any.whl |
|---|---|
| Size | 391.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d71e5c20f7a87bf88f00c55fba360cca3ea71b9b44f6e8cce8f52c3b7ad05559
|
|
BLAKE2b-256 checksum How to use checksums |
82ee5db3e059c3c1527773b2d016b18498d0397329f434e7a6f15e6c3e93ee10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|