Inspiration

Natural disasters like wildfires, floods, and search-and-rescue operations require immediate aerial intelligence. However, relying on cloud-based processing during disasters is dangerous—connectivity drops, latency spikes, and central servers fail. Furthermore, unauthorized access to disaster drones presents a massive security risk. We were inspired to build a fully decentralized, zero-trust autonomous drone swarm that processes everything on the edge and operates reliably even when the world is falling apart.

What it does

MAAS (Multi-Disaster Autonomous Aerial Swarm) is a complete ecosystem for deploying and managing autonomous drone swarms for disaster relief.

  • Zero-Trust Provisioning: Operators must pair with drones using a secure, time-sensitive 6-digit handshake through a local Edge Middleware.
  • Real-Time Edge AI: Drones stream telemetry and video via WebRTC. The video is processed locally by YOLOv10 for object detection (fires, floods, and survivors).
  • LLM Commander: An edge-deployed Phi-3 Mini multimodal LLM analyzes the YOLO detections and telemetry to autonomously make navigation decisions (e.g., commanding the drone to fly toward a detected fire) without human intervention.
  • VOD Analysis: A Video-On-Demand pipeline for post-mission debriefings, instantly summarizing footage and extracting geospatial intelligence.

How we built it

The architecture is split into 4 distinct micro-repositories, representing a true distributed system:

  1. Frontend Command Center: Built with Next.js, React, and Tailwind CSS. It acts as the operator's dashboard, displaying live WebRTC video feeds and telemetry.
  2. Go Backend Orchestrator: A high-performance Golang backend handling the Zero-Trust handshake and maintaining state.
  3. Go Edge Middleware: A daemon running on the drone (or simulated drone) that generates the pairing codes and bridges MAVLink telemetry to the Orchestrator.
  4. Python LLM & Vision Pipeline: We use ArduPilot SITL to simulate the drone. The computer vision runs YOLOv10 natively. We integrated a local Phi-3 LLM to act as the autonomous commander, parsing YOLO logs and sending MAVLink navigation commands back to the drone dynamically.

Challenges we ran into

  • WebRTC Latency & Streams: Bridging LiveKit WebRTC with native Python OpenCV processing was incredibly tough. We had to manage asynchronous event loops and frame buffering to prevent queue overflows and memory leaks during live inference.
  • Zero-Trust Handshakes: Enforcing a strict pairing protocol meant the frontend, orchestrator, and edge middleware all had to be perfectly synchronized. Tracking down proxy rewrites and CORS policies tested our debugging skills.
  • Local LLM Speed: Running Phi-3 alongside YOLOv10 on edge hardware requires intense optimization. We had to carefully manage Python virtual environments to ensure the AI pipeline didn't bottleneck the live video feed.

Accomplishments that we're proud of

  • Successfully orchestrating a fully autonomous loop: Drone → WebRTC → YOLOv10 → Phi-3 LLM → MAVLink → Drone Navigation.
  • Building a highly polished, responsive frontend Command Center that looks and feels like a true military-grade dashboard.
  • Implementing a genuine Zero-Trust provisioning system from scratch instead of just hardcoding passwords.

What we learned

  • How to write robust asynchronous Python using asyncio and FastAPI for real-time video processing.
  • The intricacies of the LiveKit WebRTC protocol and how to extract raw video frames for AI analysis in real-time.
  • How to bridge simulated ArduPilot (SITL) environments with modern web stacks via MAVLink.

What's next for MAAS

  • Deploying the software onto physical companion computers (like Jetson Orin Nanos) strapped to real drones.
  • Expanding the Swarm logic so multiple drones can collaboratively map a disaster zone using swarm intelligence algorithms.
  • Adding thermal imaging support to the computer vision pipeline for night-time search and rescue.

Built With

Share this project:

Updates

Submission history