Case study · Nature diary app

Capture Garden turns walks into memory.

An iPhone-first app that turns photos of plants, insects, birds, and fungi into residents of a calm 2.5D garden: a visual diary of time outdoors, not a scientific ID tool, social feed, or high-pressure game loop.

STATUSPhase 0 substantially built · real-device polish next
ROLEProduct, UX, Skia rendering, and data model
STACKExpo · React Native · Skia · Reanimated
CAPTURE GARDEN · SNAPSHOT
P0BUILD PHASE
8CORE SURFACES
6NATIVE INTEGRATIONS
  • Onboarding, capture flow, and a custom Skia garden scene
  • Procedural residents that grow from photographed observations
  • Field Guide, Garden Letters, Wander map, and a satchel of items
  • Simulated seed-to-bloom generation, with a real async AI/3D pipeline next
Problem

Nature apps optimize for identification. Almost none optimize for memory.

Plant-ID apps are transactional: point, identify, close the app. That is useful, but it treats every walk as a lookup instead of an experience worth remembering.

Capture Garden asks a different question: what if the reward for noticing something outside was not a species name, but a small, living piece of a garden that is yours? The identification is secondary. The diary is the point.

PRODUCT LOOP

Notice something, grow something.

The loop is built around a single emotional beat: you noticed something outside, and now there is proof of it, quietly growing.

01

Notice

Spot a plant, bug, bird, or fungus on a walk. No expertise required to start.

02

Capture

Photograph it inside a calm, unhurried capture flow built for a single hand.

03

Grow

The observation becomes a procedural resident that takes root in your garden scene.

04

Return

Come back to see what has bloomed, wander the map, and read garden letters from past visits.

Process

Built with the same operating discipline as my BA work.

DISCOVERY

Separate identification from memory

Most competitors chase ID accuracy. The open space was treating every capture as an emotional artifact, not a database lookup.

REQUIREMENTS

Define what "calm" means in code

No streaks, no leaderboard pressure, no push notifications that guilt you back outside. Retention has to come from genuine delight.

PROTOTYPE

Build the garden before the intelligence

Ship a real, textured 2.5D Skia scene with simulated growth first, so the AI/3D pipeline has a stage worth performing on.

Current Build

  • Onboarding, capture flow, and the Skia-rendered garden scene.
  • Procedural residents with simulated seed-to-bloom generation.
  • Field Guide, Garden Letters, Wander map, and satchel/items.
  • Local persistence via Zustand and AsyncStorage.

Next Bets

  • Real-device polish and an accessibility pass.
  • Production plant, insect, and bird identification providers.
  • Privacy hardening for photo and location data.
  • The real async AI + 3D generation pipeline.
What I learned

Restraint is a feature.

The easiest version of this product is a gamified collection loop with streaks and push notifications. The harder, better version trusts that noticing nature is intrinsically rewarding enough on its own.

That meant saying no to mechanics that would have boosted early engagement metrics but eroded the exact calm the product is selling.

Phase 0 is substantially built.

Onboarding, capture, the Skia garden scene, and local persistence all run today. Next up: real-device QA, production identification providers, accessibility, privacy hardening, and the real async AI/3D pipeline.

Contact Kevin