Skip to main content

JOSS status DOI

AeroAgentSim

AeroAgentSim Logo

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 / workflow definitions are file-backed under registry/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:

  1. Overview: current config version, recent run, and validation status
  2. Class Catalog: builtin and custom metadata plus compatibility lookup
  3. Workflow Studio: table/form editing with a workflow-agent-state relation graph
  4. Run Console: start, pause, resume, reset, live logs, critical path, and live 2D map
  5. Trajectories & Logs: run history, trajectory replay, and structured log inspection

The visualization layer is intentionally lightweight and developer-oriented:

  • Leaflet-based 2D spatial views
  • simulation_plane mode with CRS.Simple
  • geo_osm mode 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.

Workflow Studio relation graph

The workbench also provides:

  • global zh-CN / en-US UI switching
  • page-local Validate for the active draft in Workflow Studio
  • centralized Review / Validate checks 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_DIR
    • AEROAGENTSIM_REGISTRY_DIR
    • AEROAGENTSIM_DB_PATH
    • AEROAGENTSIM_LOG_LEVEL
  • Compatibility aliases accepted by the backend:
    • AIRFOGSIM_RUNTIME_DIR
    • AIRFOGSIM_REGISTRY_DIR
    • AIRFOGSIM_DB_PATH
    • AIRFOGSIM_LOG_LEVEL
  • Frontend endpoints:
    • REACT_APP_API_BASE_URL
    • REACT_APP_WS_BASE_URL
    • REACT_APP_ENABLE_MOCK_FALLBACK
  • Example-specific integrations:
    • OPENWEATHERMAP_API_KEY for weather-backed examples
    • SUMO_HOME for 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|workflows
  • GET /api/catalog/compatibility
  • GET/POST /api/registry/{kind}
  • GET/PUT/DELETE /api/registry/{kind}/{definition_id}
  • POST /api/registry/{kind}/{definition_id}/validate
  • GET/PUT /api/configs/{config_id}
  • GET/POST /api/configs/{config_id}/graph
  • POST /api/configs/{config_id}/preflight
  • POST /api/configs/{config_id}/validate
  • GET /api/health
  • POST /api/runtime/reset
  • GET /api/runs
  • POST /api/runs
  • POST /api/runs/{run_id}/pause|resume|reset
  • DELETE /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:

@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)

Source distribution for aeroagentsim 1.1.1
File Size Uploaded
aeroagentsim-1.1.1.tar.gz 303.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aeroagentsim 1.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page