A trained drone pilot, packaged as a verified entry to the Swarm benchmark.
Depth camera in, velocity commands out. Scored on 1,100 worlds it has never seen.
Note
This repository is a verified entry to the Swarm benchmark. This README is the benchmark's hash-locked template, checked byte-for-byte, so it is identical across every entry and must not be edited.
swarm_sar_compressed.mp4
Search and Rescue. One of five missions on the Swarm benchmark: teaching a drone to find people.
This repository holds one trained flight model entered into Swarm, the open benchmark for autonomous drone AI. The artifact under artifacts/ is a complete pilot: a policy that reads a depth camera and its own flight state, and flies. Models are evaluated across six procedurally generated world types, 1,100 fresh seeds per family every weekly epoch, with no privileged information and no pre-built maps.
README.md # This file, the byte-exact benchmark template
submission_manifest.json # Declares which family this repo competes in
artifacts/<family_id>/submission.zip # The trained agent for that family
The .zip carries the agent's DroneFlightController class in drone_agent.py plus its trained weights; the manifest pins its SHA-256. One artifact, one family: every entry competes in exactly one challenge.
The model in this repo runs on your machine with the public benchmark engine: the same worlds and the same scoring the leaderboard uses.
1. Clone and install
git clone https://github.com/swarm-subnet/swarm.git
cd swarm
pip install -e .2. Run a benchmark
python -m swarm.benchmark.engine \
--model /path/to/this-repo/artifacts/cf_autopilot/submission.zip \
--family-id cf_autopilot \
--seeds-per-group 3 --workers 4Point --model and --family-id at the artifact this repo ships. The artifact lives here, not in the swarm checkout, so pass its full path.
Note
--seeds-per-group 1 runs a quick pass; validators score the full 1,100 seeds.
swarm_interceptor_720p.mp4
Interceptor: air-to-air pursuit, from a real benchmark run.
Third-person view |
FPV: what the drone actually sees |
The policy reads a depth image and its own flight state 50 times a second and answers with velocity commands: a direction, a speed, a turn. No waypoints, no obstacle coordinates, no map. It learns to read the world through the camera and react.
The benchmark runs five challenge families. Each is its own competition with its own champion, its own leaderboard lineage, and its own slice of subnet emissions. One repo enters exactly one of them: every hotkey competes in a single family.
| Family | ID | Mission | Emissions |
|---|---|---|---|
| Search and Rescue | cf_search_and_rescue |
Find a person, hold a steady 2–4 m hover overhead, never touch them | 10% |
| Swarm SAR | cf_swarm_sar |
2–8 drones sweep together; one confirmed hover wins for the team | 10% |
| Swarm Autopilot | cf_swarm_autopilot |
One policy lands 2–8 drones on a shared pool of pads | 10% |
| Interceptor | cf_interceptor |
Hunt a fleeing, jinking drone and catch it before the 60 s clock | 10% |
| Autopilot | cf_autopilot |
Cross the world, find the pad inside a noisy search area, touch down clean | 10% |
Each guide spells out the full contract: observation layout, action bounds, maps, episode rules, and scoring.
| Component | Weight | What It Measures |
|---|---|---|
| Success | 45% | Did the drone complete the family's mission? |
| Speed | 45% | How fast relative to the time limit? |
| Safety | 10% | Minimum clearance from obstacles |
seed score = 0.45 × success + 0.45 × time + 0.10 × safety
Interceptor is the one exception: 50% success, 50% speed, no safety term. It is a pursuit.
Every submission runs the full 1,100-seed benchmark and is ranked by its mean score across all 1,100 seeds. Seeds rotate weekly (Monday 16:00 UTC) and champions are re-evaluated on the fresh set. To take a crown, a challenger must beat the champion by the family's improvement floor: +0.015 (Autopilot, Swarm Autopilot, Interceptor) or +0.02 (the two SAR families).
Each family's emission slice is split among its last five champions, weighted by how much each one raised the family's best score. Full spec in King of the Hill.
This entry was trained by one miner. The benchmark is open, every family has a champion, and every champion can be beaten.
- Read the docs: the Miner guide covers repo setup, packaging, submission, and training tips.
- Pick your family: each family guide above defines the exact interface your model needs.
- Study the baseline: the training starters train a policy and package it into a ready artifact.
- Train and iterate: benchmark locally, push your score higher.
- Submit and compete: publish your repo and climb the leaderboard.
Models trained on this benchmark fly on real hardware: see Langostino, Swarm's open-source ROS2 drone.



