Most vision-language models can't out-fly a hovering drone.
We ran 10,200 closed-loop flight trials across 25 VLMs. The best end-to-end model beat a stationary hover by just 0.8 m; most were worse than doing nothing. Astral's modular stack reached 1.04 m — and the full benchmark, dataset, and code are open.
See it in action
One platform across mobile, quadcopter, and rover — real-time perception and autonomous decision-making in the field
Natural language mission control, try it in our simulator
Dispatch and drone
reports appear here.
Our simulator is open source and available on GitHub.
Our software will run on your drone, or you can buy our hardware
Autonomous systems with on-device AI. GPS and comm-denied capable, indoor and outdoor.
Open Benchmark · 25 VLMs · 10,200 trials
Most end-to-end models couldn't beat a hovering drone.
We tested 25 vision-language models in closed-loop flight. Most couldn't beat a stationary hover — and the best only beat it by 0.8 m. It's why we build a modular stack, and why we publish the full methodology and dataset.
| # | System | Pos. error | Collisions |
|---|---|---|---|
| 1 | Astral (modular stack) | 1.04 m | 0% |
| 2 | Hover baseline (no motion) | 9.50 m | 0% |
| 3 | Best end-to-end VLM (Gemini 3 Flash) | 8.70 m | — |
Solutions
Mission-tailored solutions that unlock the full capabilities of autonomous drone fleets. Then customize to your needs.
Defense
NDAA-compliant autonomous systems for ISR, perimeter security, and tactical operations.
Agriculture
Precision farming with crop health monitoring, spraying, and yield optimization.
Infrastructure
Automated inspection of power lines, pipelines, bridges, and critical assets.
Public Safety
Search and rescue, emergency response, crowd monitoring, and law enforcement support.
from astral import AstralClient
client = AstralClient(api_key=os.environ["ASTRAL_API_KEY"])
# Create a mission
mission = client.missions.create(
name="Survey Mission",
waypoints=[
{"lat": 37.7749, "lng": -122.4194, "alt": 50},
{"lat": 37.7751, "lng": -122.4180, "alt": 50},
],
config={
"return_to_home": True,
"obstacle_avoidance": True,
},
)
# Deploy to fleet
client.fleet.deploy(
mission_id=mission.id,
drone_ids=["drone-001", "drone-002"],
)Built for Developers
Train pre-configured LLMs or bring your own. Rapidly develop using proven, open source software. Sell your apps on the Astral App Store or build for your specific needs.
Documentation
Comprehensive guides and tutorials
API Reference
Complete API documentation
Open Source
Contribute to astral-sdk
Community
Browse all repos on GitHub
Mission Control in Your Pocket
Configure, deploy, monitor and control drone fleets with the Astral app. Build plans and missions confidently. Use our Simulator to run and confirm scenarios before takeoff.
Plan Your Mission
Design flight paths, set waypoints, and configure autonomous behaviors.
Simulate & Validate
Test your mission in our simulator before deploying to real hardware.
Deploy & Monitor
Launch your fleet and monitor real-time telemetry and video feeds.



Research-grade autonomy
We benchmarked 25 vision-language models across 10,200 closed-loop flight trials — every one lost to a drone that just hovered. That result is why we build the way we do: we publish on the metric gap in vision-language navigation, modular architectures that separate semantics from geometry, swarm sensing requirements at scale, and Yonder — a public dataset designed to expose when offline perception metrics mislead you in closed loop.
Read our research

