Photo-in, lure-out — Flutter app that identifies fishing lures with Gemini and pairs them to nearby water.

Problem
You pick a lure out of somebody's tackle box and have no idea what it is, how to fish it, or what it pairs with. The existing "identify this" apps are terrible at small tackle. Gemini is not.
Shape
Flutter client, Firebase AI as the Gemini 2.5 Pro surface, two prompt modes: basic identification (fast, cheap) and detailed multi-question analysis (slower, thorough). An image preprocessing service crops, rotates, and normalizes before the model ever sees the photo.
Build
Location discovery pulls from USGS and Recreation.gov's RIDB inside a 20-mile radius of the user, deduplicates by proximity, and caches results for 30 minutes so a drive around the lake does not redo the lookup. State is auto-detected from the device so the search narrows before the user touches anything. The prompt templates are versioned alongside the Dart code so changes show up in diffs.
Result
The hard part was never the model; it was making the photo and the location context good enough that the model had a chance. The preprocessing pipeline + location cache do most of the real work; the Gemini call is the last mile.
stack
FlutterFirebase AIGemini 2.5 ProUSGSRecreation.gov