Skip to content
System One

jev-drone

Camera-only autonomous drone simulated in MuJoCo with Jev in the control loop at 2.5 Hz.

climbing over a barrier
Image from github.com

RomanSlack/jev-drone on GitHub

Stars
164
Forks
21
Language
Python
License
MIT
Last push
22 Sep 2026

Read from GitHub on . Counts change daily.

Reported by the author

Calls per flight
~110A typical 65 s flight costs about 110 calls.github.com
Decision rate
~2.5 Hzsits at ~2.5 Hzgithub.com

jev-drone flies a Skydio X2 quadrotor through a five-station obstacle course in the MuJoCo physics simulator using only its onboard camera. A geometric flight controller handles the actual flying; nothing about the flight path is scripted.

Jev sits above that controller at about 2.5 Hz. It takes JSON, not pixels, so it can’t be the perception layer. Classical computer vision turns the depth and segmentation buffers into a compact scene description first: five forward range sectors, the height of whatever is blocking the path, whether its top edge is visible, and where the target is. Jev then answers three typed questions from that scene in one call: a choice of maneuver (hold course, go around a gap left or right, climb, brake, or reacquire the target), a risk score running from clear and open to about to hit something, and a noul question asking whether the target is genuinely lost or just briefly out of view.

Code decides when to call Jev at all. On an open corridor with the target in sight there’s nothing to decide, so no call happens, and an unchanged scene reuses the last judgment. A 50 Hz reflex layer keeps final say over anything safety-critical, for example refusing a climb decision unless the obstruction’s measured height is actually within the aircraft’s climb ceiling. The author reports a typical 65-second flight costs about 110 Jev calls.

Open on GitHub

More like this

Use cases this is tagged with