How Do You Count Every Flower in a Field?
Not by walking it. Not from a satellite — too far to see them. Not by flying a drone low over every acre — too slow to scale.
You do it by teaching a machine to see from altitude. That's what we're building.
Fly Low. Learn. Fly High. Scale.
Fly low over a small patch and capture imagery sharp enough to see individual flowers. Annotate it — this is ground truth, the kind you can only get from twenty meters up.
Then fly high over the same patch. Now you have pairs: what the ground looks like up close, and what that exact ground looks like from altitude. Train a model on those pairs and it learns to infer the fine detail from the coarse view.
Then fly high over the whole field — or the whole county. The model does the counting. One low-altitude session becomes ground truth for thousands of acres.
Flowers are the demo. The pipeline doesn't care: crop stands, erosion features, culverts, stressed timber, anything visible from a drone and countable by a person.
Reproducibility Is the Whole Game
A training pair is only as good as its alignment. The low pass and the high pass have to cover the same ground, in the same conditions, with positioning tight enough that a pixel at altitude maps to the right flowers below it.
So we built the capture side to be boringly repeatable: computed flight paths, RTK positioning to centimeter accuracy, automated aircraft rotation for continuous coverage, full telemetry on every flight. Fly the same acre a hundred times and get a hundred comparable datasets. That's not a feature of the research — it's the precondition for it.
Real Fields In. Training Data Out.
Once you can predict what a low-altitude view implies about a high-altitude one, you can run it in reverse: generate synthetic imagery from captured terrain that's statistically close enough to the real thing to train on.
That's the deliverable we care about most. Perception models need enormous amounts of labeled aerial data, and flying for all of it doesn't scale. Simulation scales — but most synthetic data is anchored to nothing. Ours is anchored to ground we physically flew, which means we can measure exactly how far sim drifts from real, because we have the real.
And the loop closes on itself: where the model is uncertain, that uncertainty is a flight plan. The system learns where its own ground truth is thin, and we go fly there.
Ozark Hills, River Bottoms, Real Ground
We do this work outdoors, in Missouri, on terrain that punishes sloppy data — canopy cover, flood-cut banks, fields where a 10cm elevation difference decides what drains and what ponds. Ground that's hard to capture well is exactly the ground worth capturing, because that's where models trained on easy data fall apart.
If you have a field and a question with a number for an answer — how many, how much, how far — we'd like to hear about it.