← All projects
Machine learningSource on GitHub

Augur

A machine learning and physics engine that takes a drone's audio and a short description and estimates 14 physical properties, like mass, thrust and battery size. Each one comes back as a range with a confidence label instead of a single guess. It's a work in progress.

Period

Jun 2026 – present

Role

Sole engineer

Type

Source on GitHub

Tools

PythonNumPySciPypandasPydanticFastAPIReactHypothesispytest

The idea

If you can hear a drone, you can learn a lot about it. Propeller blades make a tone that depends on how fast the motors spin, and once you know the RPM, physics gets you a long way toward thrust, weight and power. Augur takes a recording plus a rough description (frame size, props, battery cells) and estimates 14 properties without any help from the drone itself.

I cared more about the uncertainty than the point estimate. Every output is a distribution with an interval and a confidence label, and the report shows which input narrowed which number.

How it works

The audio front end runs a short time Fourier transform and looks for the harmonic pattern blades make. On synthetic recordings it gets RPM within 2% even with a lot of noise. It also picks up the spread between motors and whether the drone is hovering or climbing.

A physics core turns RPM and the description into thrust, power, disk loading and so on, and a Monte Carlo step combines everything. Each input acts as a weight on the samples, and there's a rule that adding an input can never make an interval wider.

To test it I wrote a forward simulator that generates fake drone audio from known specs (harmonics, motor whine, Doppler, noise), plus Hypothesis property tests for the physics. There are 131 tests. You can run it from a CLI, a FastAPI endpoint or a small React page that draws the intervals.

Something I learned

I swapped my hand set range for propeller thrust coefficients for measured data from 250 real props in the UIUC propeller database. The intervals got wider, not narrower. That stung, but the wider range is the truthful one, so I kept it.

Where it stands

This is an active project and not finished. Everything so far is tested on synthetic audio. The image and video modules and a conformal calibration step are built but haven't been validated, because I don't have real footage and measured drones to check against yet. Until then the intervals come straight from the simulation and are probably too confident.

Augur's prediction for the racing quad demo, with 90% intervals
Augur's prediction for the racing quad demo, with 90% intervals
← PreviousArmoireNext →Evoke