Fauna
Turning casual outdoor curiosity into ecological literacy through an approachable AI field companion
Bridging computer vision and field biology to help people explore, understand, and engage responsibly with nature.



01 / Origins
It started with paying attention.
We know more about the natural world than any generation before us, yet experience far less of it.

For years, I traveled the way most people do—chasing iconic landmarks and tourist hotspots. Eventually, that changed. I started seeking out quieter landscapes and researching what lived there before arriving. That shift fundamentally sharpened my perception. Exploring outdoors felt less like passive sightseeing and more like an intentional quest to notice what hides in plain sight.
But when I looked for a way to document what I observed, existing tools fell short. Most felt too academic, utilitarian, or difficult to stick with. So, I built Fauna as a personal field journal to solve my own frustration, though what began as a private project quickly evolved into something much larger. Today, Fauna exists to prove that engaging with nature shouldn’t require specialized training or cumbersome tools. Just curiosity, thoughtful design, and a reason to look closer.
02 / Designing for discovery
A reason to look outward.
Connection starts with something as simple as being able to name what you're looking at.
Most products want your attention. This one hands it back.
Start with the wildlife people actually encounter
The experience
The Reality
Early scan behavior revealed that users begin with what is immediately within reach, often testing the camera on friends, family, houseplants, and pets before ever stepping outdoors.
The Response
Discovery needed to feel immediately accessible. I restructured collections around familiar, reachable environments rather than intimidating, distant biomes, ensuring first milestones felt natural and attainable from the doorstep.
The Result
Meeting users where they already were drove the highest engagement. The most accessible collections became the most unlocked sets: Backyard Birds, Secret Garden, and Mystic Meadows—proving that users didn't need rare expeditions to feel the reward of discovery, just a reason to notice what was already around them.
The Takeaway
Start with the world users already know, then give them a reason to explore further.
Pacing discovery through physical uncertainty
The experience
The Reality
Wildlife discovery is often unpredictable. Encounters cannot be scheduled, spawned, or forced. When collection mechanics rely strictly on all-or-nothing set completion, the system inadvertently penalizes users for environmental factors outside their control.
The Response
I separated momentum from rigid checklists by layering open-ended micro-milestones and field challenges alongside macro-collections. Instead of gating achievement behind rare, elusive species, the system rewards broader attentiveness like logging broad taxonomic categories, observing distinct micro-habitats, or maintaining consistent outdoor streaks.
The Result
Rewarding everyday exploration eliminated the sharp drop in engagement during the first week. Users returned more often and stayed active week after week. With every walk offering a chance to make progress, discovery became a habit rather than a hunt for rare sightings.
The Takeaway
Reward the effort of looking, not the luck of finding. Progress in physical spaces must validate attentiveness over completion.
03 / The consistency problem
Recognition is one thing. Classification is another.
One plant shouldn't have three identities.
A model guesses in isolation.
A system requires a single truth.
From model inference to canonical taxonomy
My early computer vision experiments with Gemini highlighted the instability of raw model outputs. Scanning the exact same bird of paradise across different angles and lighting returned arbitrary names like “Bird of Paradise Plant,” “Giant Bird of Paradise,” and “Large Bird of Paradise.”
The identification system
From photo to collection progress
AI suggests an identity. GBIF gives it a consistent reference.
Photo + context
Photos, date, and location give the system a starting point.
Image quality is checked before analysis.
AI suggestions
Gemini proposes a likely species and ranked alternatives.
Nothing identifiable? Return no match.
GBIF identity
Resolve the proposed name to a taxonomic record.
Stable species keyTaxonomic lineageNo reliable anchor? Keep the identity unresolved.
Profile + confidence
Build the profile around that identity and show how certain the ID is.
Low confidence? Show a best guess, with a choice to retake or log.
Log + match
Save the sighting and check it against collection criteria.
Match by identity and lineage, even when names vary.
One shared identityA stable key connects sightings to the same species profile.
A place in the family treeLineage connects that species to broader collection groups.
The Reality
Because vision models are probabilistic, relying on naive string matching was unviable. Cataloging every colloquial synonym and regional alias across thousands of species would quickly collapse.
The Response
I anchored the classification system to the Global Biodiversity Information Facility (GBIF), which maintains taxonomic keys for over a million species. Instead of matching arbitrary strings, I restructured the identification pipeline and prompt architecture to map visual inferences directly to persistent GBIF taxon keys, giving the app a standardized, scientific backbone.
The Result
The collection engine gained deterministic stability. Regardless of how the AI phrased its initial observation, the backend reliably resolved it to a canonical biological entity, preventing duplicate catalog entries and false-negative scans.
The Takeaway
Trust in AI is built beyond the model. Reliable systems turn uncertain predictions into experiences people can depend on.
Clarifying matching criteria with natural language
A user scanned what they believed was a four-leaf clover, only to find that it didn’t fill the collection slot: the model identified it as wood sorrel, a different plant. Moments like this exposed a gap between how people understand nature and how biology actually works. Familiar names and visual similarities can lead to mistaken assumptions. I had to reconcile scientific accuracy with those expectations, helping people understand unexpected identifications while reconsidering where collection rules were too restrictive.
The matching logic
When everyday names don’t fit the family tree
A biological group can include animals people would never put in the same collection slot.
| Collection match | What goes wrong | How the system handles it |
|---|---|---|
| Moth | Lepidoptera includes butterflies, too. | Exclude 5 butterfly families |
| Butterfly | One broad group cannot separate butterflies from moths. | Combine 5 family anchors |
| Duck | Anatidae also includes swans and geese. | Exclude 3 groups |
| Squirrel | Sciuridae also includes chipmunks. | Exclude chipmunks |
| Grasshopper | Orthoptera also includes crickets. | Exclude crickets |
| Wolf | Domestic dogs fall within the wolf’s ancestry. | Combine anchors; exclude dogs |
| Minnow | Cyprinidae includes koi and goldfish. | Match 7 selected genera |
| Rat | Muridae also includes mice, voles, and gerbils. | Narrow the match to genus |
| Snail | The same ancestry can include shell-less slugs. | Unresolved by taxonomy alone |
The experience
The Reality
People group wildlife through casual, intuitive mental models (think “duck”, “snail”, “moth”), but biological taxonomy does not follow conversational English. Many everyday terms are paraphyletic or polyphyletic groupings rather than clean clades. A “slug,” for instance, isn't an isolated evolutionary branch. It's a trait that evolved independently across multiple snail lineages. Because both share the same taxonomic order, scanning a slug naturally satisfies the “snail” slot, which most people wouldn’t expect, but it is what’s taxonomically correct.
The Response
My initial solution was to display the exact matching criteria on each slot to eliminate guesswork. To further improve the experience, I expanded the matching criteria to include regional variants and broader taxonomic ranks, significantly increasing the likelihood of users around the world successfully filling each slot.
The Result
While exposing the criteria was a helpful guide that removed a lot of confusion, some slots required longer lists that felt long and cumbersome. I later replaced this text-heavy approach with a visual “Types” section, conveying the various species users could spot through thumbnails instead of specific taxonomic conditions.
The Takeaway
A familiar label can hide a complicated boundary. Handle taxonomic complexity in the system so the interface speaks the user’s natural language.
04 / Trust in the field
Balancing digital discovery with ecological responsibility.
In the wild, false certainty has real consequences. The interface has to be designed for what the model doesn't know.
01Show what the model is unsure about.
02Make mistakes easier to report.
03Keep the encounter safe to observe.
Transparency in uncertainty
The experience
The Reality
No identification from a probabilistic model is absolute, and presenting a guess as fact can lead to serious repercussions–especially if a user relies on it to decide whether something is edible or venomous.
The Response
I included a confidence score for every identification, alongside other possible matches detailing their diagnostic features. A transparent rubric accompanies these scores, explaining exactly what the percentage means and why the model placed the image in that specific confidence tier.
The Result
User feedback on this addition was highly positive. They appreciated seeing alternative possibilities, finding value in the learning process even when the model’s primary prediction was incorrect. From a systems perspective, these scores provided a critical new data point in user correction reports, helping me diagnose whether the system prompt needed tuning, whether user images lacked diagnostic quality, or the underlying architecture needed adjustment to boost confidence.
The Takeaway
A confident answer needs room for doubt. Trust comes from inviting people into the validation process.
Give users a clear way to flag mistakes
The experience
Early submissions showed users were eager to flag misidentifications, and their self-reported confidence ratings (“expert ID” vs. “pretty sure”) offered a valuable signal. But evaluating ambiguous, freeform submissions manually was unscalable, leaving a growing queue of user reports with no reliable path to resolution.
The Reality
Capturing error reports is straightforward. Triaging them without a biological domain expert is the real bottleneck. Platforms like iNaturalist solve verification through crowdsourced consensus, but Fauna is fundamentally a personal collection, so importing social moderation would fundamentally shift the product's identity.
The Response
Instead of jumping to heavy community infrastructure, I audited the incoming reports. Nearly 50% of submitted corrections were secondary candidates the model had already identified. Users had overlooked them simply because the suggestions were presented in scientific binomials rather than colloquial English. I paired common names alongside the binomials and allowed users to directly swap their entry to a secondary match during the report flow.
The Result
Translating model alternatives into plain language turned passive feedback tickets into instant, self-serve corrections. Users resolved roughly half of all misidentifications immediately without waiting for backend triage. While authoritative validation for rare edge cases remains an open challenge at scale, this interface fix eliminated the bulk of triage friction and closed the feedback loop within seconds.
The Takeaway
Before building operational overhead to fix reports, check if the interface is simply obscuring the right details. Often, the most effective error recovery isn't complex backend moderation—it's giving users the tools and language to self-correct in the moment.
Landing in-between confidently wrong and cautiously right
The experience
A report from a user who had seen a grizzly bear in Alaska exposed a subtle product tension: the identification was scientifically accurate, but calling it a “brown bear” felt wrong to the user.
The Reality
General vision models cannot reliably separate subspecies. Natural variation within a group often outweighs the differences between separate ones, and training data is thin. Unlike specialized classifiers (like Merlin for birds or PictureThis for flora), an “all-life” app must spread its training data across entire kingdoms, diluting sample depth. Compounding the issue, subspecies is taxonomy's least stable rank—rarely backed by scientific consensus and subject to constant revision.
The Response
Rather than chasing false precision through high-risk model guessing, I deliberately capped classification at the species level. I introduced an “Also Known As” section to display regional and colloquial names as non-definitive possibilities.
The Result
By framing these variants as contextual overlap rather than an authoritative verdict, the UI validates the user's mental model without requiring the model to make a high-risk, unverified subspecies call.
The Takeaway
Know when detail stops adding value. When signals are weak, a defensible broad answer builds far more trust than a plausible guess.
How loud a warning needs to be
The experience
Pokémon Go demonstrated what happens when digital collection mechanics collide with the physical world: people trespassing, crowding, and trampling habitats just to finish a set. I wanted to design for the opposite pressure, which meant deciding not only what to say about wildlife, but how forcefully say it.
The Reality
Gamified collection can drive reckless behavior outdoors, and relying on AI for safety guidance proved unreliable. An early model flagged domestic cats as “Large Wildlife” through family inheritance, while a coral snake identified at 62% confidence showed zero hazard warnings because safety checks were gated behind high-confidence thresholds.
The Response
I anchored seven hazard flags to taxonomic baselines that the AI can raise but never lower. Warnings trigger regardless of model confidence, while pets skip family inheritance to prevent false alarms. Guidance scales from subtle viewfinder cues to detailed profile notes without encouraging dangerous close-ups.
The Result
The system eliminated critical safety false-negatives without creating alert fatigue. Domestic animals ceased triggering apex-predator warnings, while ambiguous, high-risk encounters surfaced immediate protective guidance regardless of model certainty.
The Takeaway
When an interface mediates real-world hazards, guardrails must never be left solely to model guesswork. Proper safety baselines should be factored into the architecture so digital incentives never compromise real-world safety.
Help users take a better shot for identification
The experience
Auditing user correction reports revealed that many “AI failures” were actually capture issues. Submitted photos were frequently motion-blurred, taken from dozens of feet away, crowded with multiple competing subjects, or buried in environmental clutter.
The Reality
Since computer vision is fundamentally bounded by visual input quality, poor framing capped identification accuracy.
The Response
I introduced an on-demand camera guide directly accessible from the viewfinder. Instead of vague photography advice, the guide provided category-specific framing rules, paired with clear visual examples illustrating the most diagnostic angles for different types of flora and fauna. To measure effectiveness, I tracked how often people opened the guide and whether low-confidence scans and reports of incorrect categories became less common.
The Result
The guide helped users take clearer, better-framed photos. Visual examples showed which angles to capture and how much of the subject to include. This led to fewer low-confidence identifications and fewer reports of incorrect categories, without adding extra steps to scanning.
The Takeaway
When an AI product relies on visual reasoning, guiding user capture behavior at the point of input often delivers bigger, faster gains in reliability than backend model tuning.
05 / Guided exploration
Giving curiosity a place to start.
Without direction, an open landscape can feel overwhelming. Explore narrows the field by displaying what, where, and when to explore.
A seasonal guide with honest limits
The experience
The Reality
Plants deserve as much attention as animals, but building and maintaining a real-time phenology pipeline is too much infrastructure for one small section of a product. While raw open data is free, the infrastructure required to continuously ingest regional observations, calculate dynamic climate baselines, and sync live databases was financially unjustifiable for a single module on a screen.
The Response
I transitioned from a static list of species to an agile, predictive estimation model. Instead of timeless catalogs, each flowering plant was mapped to a four-stage window: budding, blooming, peak, and fading. I then fed the AI thirty days of trailing local temperature data, allowing the system to dynamically nudge predicted peak dates forward or backward depending on whether a region experienced an unseasonable warm streak or an early freeze.
The Result
The model delivered responsive botanical guides without continuous operational costs, but batch latency exposed an unavoidable constraint. Because dates are generated once a month, a late frost can hold buds closed while the app reports peak bloom, leaving the error uncorrected for weeks. Eliminating that drift isn't something design can solve alone. It requires moving from weather-based heuristics to a live, observational ground-truth pipeline.
The Takeaway
When continuous data pipelines are cost-prohibitive, lightweight predictive heuristics deliver the perceived magic of real-time responsiveness.
06 / A new founder paradigm
AI expanded what I can build and changed what I have to own
The feedback loop got shorter, but the responsibility got bigger. Building and running Fauna taught me many lessons about where to focus, how to listen, and what to measure.
From “can we build it?”
to “should we?”
Do not try to solve every future problem on day one.
I overbuilt early with restrictive API caps, aggressive caching, and a comprehensive design system before the product had earned that complexity. Some safeguards created more friction than they removed.
Find the real need behind the request.
Not all user friction requires a design intervention. One person wanted scans saved automatically and another valued choosing what to keep in their journal. The right response begins with listening to the intention.
Instrument the product from the start.
Analytics gave me a way to test assumptions, evaluate what was working, and explain my decisions. Without that grounding, I would have wasted effort building something more complex when a simpler solution was available.