My Story

Why I built Project Kestrel.

I've photographed birds for about ten years — since I was a kid. The love of birding and the love of photographing them grew up together. I started on the family camera, got a Canon T6i and a 55–250mm lens as a gift, and eventually saved up for the Canon 90D and Sigma 150–600mm I still shoot today. I never had money for software, so I shot RAW — it holds so much more detail — and edited in Darktable: free, open-source, a steep learning curve, but what I could afford. (Some of my photos live on Instagram.)

Beautiful photos that no one ever saw

Photographing birds is addictive. But doing anything with the photos was always the hard part — and the reason is bursts. My 90D shoots 13 frames a second, so a single morning out could mean thousands of nearly-identical frames. I'd get home, pull a couple of favorites if I had the energy that night, edit them, and send them to the family group chat. The rest went straight into the archive — never seen by anyone, sometimes not even me.

Years later I'd go hunting for some half-remembered bird in a badly-named folder, almost never find it, but stumble through hundreds of wonderful photos I'd never reviewed or shared. And I was always out of storage. That's the knot Kestrel grew out of: too many photos to cull, the best ones lost in the pile, no way to find an old memory, and never enough room to keep it all.

"Gorgeous moments, buried — my best work dying in the archive instead of being seen."

The first attempt: Project DoveEye

About five years ago — broke, just starting college — I decided to get the computer to help. Nothing out there was built for bird photography, so I tried to build it myself and called it Project DoveEye. I was a self-taught C# developer, and I could never really get it to score the bird's quality reliably. I didn't realize it at the time, but the variation in bird plumage and shape was simply too extreme for the approaches I was taking.

However, it was just good enough to catch the super-blurry frames and clear a little storage, so I used it and shipped it anyway. Then college got real, and DoveEye went on the shelf.

The breakthrough

A few years later I took a machine-learning elective. By then I'd taught myself Python, done a lot of reading on neural networks, and I had an idea. Over a few weeks, I took a sample of 3,000 of my own RAW photos, hand-labeled them, and trained a custom convolutional neural network to score the bird's quality. It took multiple 6-hour iterations to train on my CPU; I laugh about it now. Then I ran it on a real scene — a huge burst of a recent lifer Lazuli Bunting. It worked. Really, really well. That was the moment Kestrel finally felt within reach.

From "clear my storage" to a real tool

I rebuilt everything on a new pipeline, and the scope kept growing. It started as "help me clear up storage." It became "take me straight to the sharpest shots I actually want to edit" — click a photo in Kestrel and jump right into your editor. Then, loading folder after folder, I wanted to search my whole library by species — type "Sparrow sp." and pull every sparrow I'd ever shot — so it grew to "help me find that old memory of a bird I half-remember." I put it on GitHub, open-source, and people started using it.

The prize, and the investor I walked away from

On a whim I entered my University's entrepreneurship competition, expecting nothing — and made the finals, top 5 of 110 teams. I won $1,000 and got to present this side passion project to a room of 300 people. Afterward, an investor approached me. I never expected that. But I realized the natural instinct would be to make a few thousand images free, paywall the rest, pull it off GitHub, and kill the open-source. I couldn't find the version of that which honored the whole reason I built this. So I walked away.

The promises I'll keep

The desktop app stays free, open-source, and local-first — forever, with all of today's features, and it never requires an account. Open-source isn't just a license to me; it's a promise the app can never be taken away. Even if I disappeared tomorrow, anyone could rebuild it and reload everything they'd already analyzed.

I will never sell your data. Your photos are your memories and your intellectual property. By default, Kestrel runs entirely on your machine — no uploads, no account, nothing leaves your computer. The only time anything does is if you choose it: sharing an outing on Perch, or sending a backlog to Cloud Compute to run the very same analysis faster on our GPUs. Both are optional, and Cloud Compute is simply how the project keeps its lights on — never a wall in front of the free tool.

What I want it to feel like

I want using Kestrel to feel like soaring — reliving your moments and flowing through your library as freely as a bird, never the chore culling used to be. It's not perfect — the species guesses are suggestions, and quality scores aren't the only thing that makes a favorite shot. But it's genuinely useful. It's analyzed well over a million photos now, and people tell me it changed their workflow forever and made them more excited to go birding. Those stories make this whole effort so rewarding.