Skip to main content

AirFogSim: Benchmarking Collaborative Intelligence for Low-Altitude Vehicular Fog Computing

AirFogSim Logo

AirFogSim is a discrete-event simulation framework built on SimPy, designed for benchmarking collaborative intelligence in UAV-integrated fog computing environments. It provides a comprehensive platform for modeling complex interactions between heterogeneous aerial and terrestrial nodes, with a focus on realistic communication, computation, energy, and mobility modeling.

中文版本

📋 Project Overview

AirFogSim offers a comprehensive simulation environment for:

  • Simulating autonomous agents (like UAVs) in complex environments
  • Researching resource allocation and task offloading strategies
  • Evaluating collaborative intelligence in low-altitude vehicular fog computing
  • Benchmarking different workflows and protocols
  • Visualizing simulation processes and analyzing results

The framework employs a modular design, supporting highly customizable simulation scenarios, and provides an intuitive visualization interface for researchers and developers.

If you use AirFogSim in your research, please cite our paper:

@misc{wei2024airfogsimlightweightmodularsimulator,
      title={AirFogSim: A Light-Weight and Modular Simulator for UAV-Integrated Vehicular Fog Computing},
      author={Zhiwei Wei and Chenran Huang and Bing Li and Yiting Zhao and Xiang Cheng and Liuqing Yang and Rongqing Zhang},
      year={2024},
      eprint={2409.02518},
      archivePrefix={arXiv},
      primaryClass={cs.NI},
      url={https://arxiv.org/abs/2409.02518},
}

✨ Core Features

  • High-Performance Event-Driven Simulation Core: Optimized event-driven simulation engine achieving sub-O(n log n) computational complexity for critical operations, enabling efficient simulation of large-scale scenarios.

  • Workflow-Based Task Composition Framework: Flexible and modular workflow-driven task model that explicitly captures task dependencies, resource constraints, and collaborative interactions among heterogeneous nodes.

  • Standards-Compliant Realistic Modeling: Comprehensive models grounded in established standards, including 3GPP-compliant communication channel models, empirically validated energy consumption profiles, and physics-based mobility patterns.

  • Agent-Centric Autonomy: Agents (like UAVs) as primary actors with internal state, capable of autonomous decision-making based on their state, assigned workflows, and environmental perception.

  • Component-Based Capabilities: Clear separation of concerns with components encapsulating specific functionalities (mobility, computation, sensing) and managing task execution environments.

  • Trigger-Based Reactivity: Flexible mechanism for reacting to various conditions (events, state changes, time), driving workflow state machine transitions and enabling automated responses.

  • Managed Resources: Simulation resources (landing spots, CPU, airspace, spectrum) managed by dedicated manager classes handling registration, allocation, contention, and dynamic attribute changes.

  • Real-time Visualization: Integrated frontend interface supporting real-time monitoring and data analysis.

  • LLM Integration: Support for task planning and decision-making through large language models.

🏗️ System Architecture

AirFogSim is built around an event-driven Agent-Based Modeling (ABM) architecture that enables efficient simulation of complex interactions between heterogeneous agents. The platform extends the SimPy discrete-event simulation library, providing specialized components for UAV-integrated fog computing scenarios.

Core Components

  • 🤖 Agents: Autonomous entities (UAVs, ground stations) with decision-making capabilities
  • 🔧 Components: Modular capabilities (mobility, computation, sensing) that agents can use
  • 📋 Tasks: Specific actions that agents perform through their components
  • 🔄 Workflows: Higher-level goals that coordinate multiple tasks
  • ⚡ Triggers: Event-driven conditions that drive workflow transitions
  • 📊 Resources: Shared simulation resources (airspace, spectrum, landing spots)
  • 🎯 Managers: Centralized management of resources and system services

For detailed architecture documentation, see System Architecture Guide.

Visualization System

AirFogSim includes an integrated visualization system for real-time monitoring:

  • 📊 Dashboard: Simulation status and agent monitoring
  • 🗺️ UAV Tracking: Real-time position and trajectory visualization
  • ⚙️ Workflow Monitor: Configuration and execution tracking
  • 📈 Analytics: Resource usage and performance metrics
Status Monitoring Interface

Real-time UAV monitoring and status tracking

Architecture: React frontend + FastAPI backend + WebSocket communication

For visualization setup, see Installation Guide.

🚀 Installation Guide

Quick Start

pip install airfogsim

📋 Detailed Setup: See INSTALL.md for complete installation guide including system requirements, development setup, and troubleshooting.

Basic Installation

Option 1: Install from PyPI (Recommended)

pip install airfogsim

Option 2: Install from Source

git clone https://github.com/ZhiweiWei-NAMI/AirFogSim.git
cd AirFogSim
pip install -e .[dev]

For visualization system setup and advanced configuration options, please refer to the detailed installation guide.

📝 Usage Examples

Basic Simulation Example

from airfogsim.core.environment import Environment
from airfogsim.agent import DroneAgent
from airfogsim.component import MoveToComponent, ChargingComponent
from airfogsim.workflow.inspection import create_inspection_workflow
from airfogsim.helper import check_all_classes, find_compatible_components

# Create environment
env = Environment()

# Check system classes
check_all_classes(env)

# Create drone agent
drone = env.create_agent(
    DroneAgent,
    "drone1",
    initial_position=(10, 10, 0),
    initial_battery=100
)

# Find suitable components
find_compatible_components(env, drone, ['speed'])

# Add components
move_component = MoveToComponent(env, drone)
charging_component = ChargingComponent(env, drone)
drone.add_component(move_component)
drone.add_component(charging_component)

# Create inspection workflow
waypoints = [
    (10, 10, 100),    # Take off
    (400, 400, 150),  # Midpoint
    (800, 800, 150),  # Destination
    (800, 800, 0),    # Land
    (800, 800, 100),  # Take off for return
    (10, 10, 0)       # Return to start
]
workflow = create_inspection_workflow(env, drone, waypoints)

# Start workflow
workflow.start()

# Run simulation
env.run(until=1000)

Using Class Checker Tools

# Show all classes
python -m airfogsim.helper.class_finder --all

# Find agent classes supporting specific states
python -m airfogsim.helper.class_finder --find-agent position,battery_level

# Find component classes producing specific metrics
python -m airfogsim.helper.class_finder --find-component speed,processing_power

Starting the Visualization Interface

python main_for_visualization.py --backend-port 8002 --frontend-port 3000

🧪 Examples and Testing

Examples

AirFogSim provides a rich set of example programs demonstrating various features and use cases. These examples are located in the src/airfogsim/examples directory:

  • Basic Trigger System: example_trigger_basic.py - Shows how to use different types of triggers to create and manage workflows
  • Workflow Diagram Generation: example_workflow_diagram.py - Demonstrates how to convert workflow state machines to visual diagrams
  • Image Processing Workflow: example_workflow_image_processing.py - Shows a complete workflow for environmental image sensing and processing
  • Multi-Task Contract: example_workflow_contract.py - Demonstrates how contract workflows manage multiple tasks
  • Drone Inspection: example_workflow_inspection.py - Shows drone inspection path planning and automatic charging
  • Weather Data Integration: example_weather_provider.py - Demonstrates integration of real-time weather data into simulations
  • Benchmark Multi-Workflow: example_benchmark_multi_workflow.py - JOSS paper benchmark example with inspection, logistics, and charging workflows

Running Examples

# List all available examples
airfogsim examples

# Run specific examples
airfogsim examples workflow_diagram trigger_basic

# Run a single example directly
cd src/airfogsim/examples
python example_trigger_basic.py

Automated Testing

AirFogSim includes a comprehensive test suite to ensure reliability and catch regressions:

# Install test dependencies
pip install -e .[dev]

# Run all tests
pytest tests/ -v

# Run tests with coverage
pytest tests/ --cov=airfogsim --cov-report=html

# Run only fast tests
pytest tests/ -m "not slow"

The test suite includes:

  • Unit tests for core functionality
  • Integration tests for component interactions
  • Example tests to verify all examples run correctly
  • Continuous Integration via GitHub Actions

📁 Project Structure

airfogsim-project/
├── .dockerignore             # Docker build ignore file (backend)
├── .env                      # Backend environment variables (local, not committed to Git)
├── Dockerfile                # Backend Dockerfile
├── docker-compose.yml        # Docker Compose orchestration file
├── frontend/                 # Frontend visualization interface
│   ├── .dockerignore         # Docker build ignore file (frontend)
│   ├── .env                  # Frontend environment variables (local, not committed to Git)
│   ├── Dockerfile            # Frontend Dockerfile
│   ├── build/                # Frontend build artifacts (locally generated)
│   ├── node_modules/         # (local, not committed to Git)
│   ├── package.json
│   ├── public/               # Static assets
│   └── src/                  # Frontend source code
│       ├── pages/            # Page components
│       └── services/         # API services
├── LICENSE                   # Project license
├── INSTALL.md                # Detailed installation guide
├── CONTRIBUTING.md           # Contributing guidelines
├── main_for_visualization.py # Visualization system startup script (for local development)
├── pyproject.toml            # Python project configuration file (including dependencies)
├── README.md                 # This document (project overview)
├── requirements.txt          # Python locked dependencies (generated by pip-compile)
├── docs/                     # User documentation (Sphinx-based)
│   ├── README.md             # Documentation navigation hub
│   ├── api/                  # Auto-generated API reference
│   └── guides/               # User guides and tutorials
├── src/                      # Backend source code
│   └── airfogsim/            # Core simulation framework
│       ├── agent/            # Agent implementations
│       ├── component/        # Component implementations
│       ├── core/             # Core classes and interfaces
│       ├── docs/             # Technical documentation (developer-focused)
│       │   ├── en/           # English technical guides
│       │   ├── cn/           # Chinese technical guides
│       │   └── img/          # Documentation images
│       ├── event/            # Event handling
│       ├── examples/         # Example code and tutorials
│       ├── helper/           # Development helper tools
│       ├── manager/          # Various managers
│       ├── resource/         # Resource implementations
│       ├── task/             # Task implementations
│       ├── visualization/    # Visualization-related (FastAPI application)
│       └── workflow/         # Workflow implementations
└── ... (other configuration files, test files, etc.)

📚 Documentation

📖 For Users

🔧 For Developers

🌍 中文文档

📋 Documentation Hub: See docs/README.md for complete navigation

🤝 Contributing

We welcome contributions of all kinds! Please see our Contributing Guide for detailed information on:

  • How to report bugs and request features
  • Development setup and coding standards
  • Testing guidelines and best practices
  • Pull request process
  • Community guidelines

Quick Start for Contributors

# Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/AirFogSim.git
cd AirFogSim

# Set up development environment
pip install -e .[dev]

# Check existing classes before creating new ones
python -m airfogsim.helper.class_finder --all

# Run tests
pytest tests/ -v

For detailed contribution guidelines, please read CONTRIBUTING.md.

📄 License

This project is licensed under the Apache 2.0 - see the LICENSE file for details.


AirFogSim - Powerful simulation tools for low-altitude vehicular fog computing research

Release files for airfogsim 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 airfogsim 1.1.1
File Size Uploaded
airfogsim-1.1.1.tar.gz 284.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for airfogsim 1.1.1
File Interpreter ABI Platform
airfogsim-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 661.9 kB

Release files / airfogsim-1.1.1.tar.gz

Download URL airfogsim-1.1.1.tar.gz
Size 284.0 kB
Tags Source
SHA-256 checksum
How to use checksums
6a75d9c9c2ac20477970acf6926304e292c2c5ef06176cef073b3e4aff9d8fbe
BLAKE2b-256 checksum
How to use checksums
1638c43694546ce8d1bea61100e86950d4ebc358feeed18fd5f6c8d8b4af4354
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / airfogsim-1.1.1-py3-none-any.whl

Download URL airfogsim-1.1.1-py3-none-any.whl
Size 377.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0178c954ed0ae899b8fa7d7546a98dd77da761e361c18db2644266b0801755b0
BLAKE2b-256 checksum
How to use checksums
393e11f24ec5f146bc0ff03efa99261d6ff668734e1e5e98a793b44d5e1ae0d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

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