0273GitHub
jev-drone
A simulated drone that asks Jev for a judgment 2.5 times a second.
RomanSlack/jev-droneREADME ↗
# jev-drone An autonomous quadrotor flies a five-station obstacle course in MuJoCo using **only its onboard camera**. A small judgment model ([TypeSafe](https://typesafe.ai)'s Jev) sits at ~2.5 Hz and decides *what the situation means*; everything time-critical stays in ordinary code. The drone is the Skydio X2 from [MuJoCo Menagerie](https://github.com/google-deepmind/mujoco_menagerie) - a real airframe with four rotors, flown by a geometric controller. Nothing about the flight is scripted. ## The idea Jev is **not** a vision model. It takes JSON and returns typed answers with probabilities. So it cannot be the perception layer, and it cannot run at control rate. What it can do is answer small questions about a situation that ordinary code finds hard to phrase. ``` 500 Hz geometric controller flight.Pilot thrust-priority mixing, slew-limited 50 Hz guidance + safety reflex run.Guidance ALWAYS owns safety 15 Hz camera -> symbolic scene flight.Eye depth + segmentation, no ground truth ~2.5 Hz tactical judgment tactics.py Jev, advisory only ``` Classical CV turns the depth and segmentation buffers into a compact scene: five forward range sectors, the height of whatever is blocking the path, whether its top edge is even visible, and where the target is. Jev reads that and answers three questions in one call: | question | type | options | |---|---|---| | `maneuver` | **Choice** | hold_course / gap_left / gap_right / climb / brake / reacquire | | `risk` | **Score** | clear and open -> tight -> about to hit something | | `target_truly_lost` | **Noul** | genuinely lost, or just briefly occluded? | Code decides *when* to ask. On an open corridor with the target in view there is nothing to decide, so no call is made. Scene
