Inspiration

Plant-diagnosis apps already exist — Plantix alone serves millions of farmers. But they all share the same flaw: they output a clinical report. And reports don't change behavior. Most houseplants still die of neglect, most beginners quit gardening after their first failure, and most kids learn botany from a textbook diagram instead of the living thing on their windowsill.

Our insight: people don't bond with reports — they bond with characters. The moment a wilting basil plant speaks and says "I've been thirsty for three days and this window gives me no sun," diagnosis becomes a relationship, and care instructions become something you actually feel responsible for.

Nabta (نبتة — "little plant" in Arabic) turns every plant into a teacher. It's a Tamagotchi, except the pet is real — and keeping it alive makes the planet a tiny bit greener.

What it does

Snap a photo of any plant, and Nabta:

  • 🔍 Identifies the species with a scientific confidence score — and honestly says "I'm not sure" instead of guessing when confidence is low
  • 📊 Rates its health 1–5 (Critical → Struggling → Okay-ish → Healthy → Thriving) on an animated meter
  • 🗣️ Makes the plant speak in first person — with humor and personality, out loud via text-to-speech — telling you what's wrong and what it needs
  • 🌿 Gives 3 concrete care recommendations matched to the plant's state
  • 🧠 Teaches one real botany fact per scan — education through empathy
  • 🔥 Tracks daily care streaks and ranks plant parents on a leaderboard by care days, not scan spam
  • 📱 Works as a web app and an 85 KB native Android APK that runs fully offline

How we built it

  • Frontend: mobile-first web app (HTML/CSS/vanilla JS) — camera capture, animated health meter, typewriter speech bubble, text-to-speech, care streaks.
  • Backend: Python Flask + SQLite. One endpoint does the magic — POST /api/analyze:
    1. Species ID: PlantNet's scientific API (with a vision-LLM fallback) returns the species with a confidence score.
    2. Health scoring: leaf-color analysis (green vs. yellow vs. brown pixel ratios in HSV space) maps to the 5 health states.
    3. Personality layer: facts are computed first, then the character voice is applied on top — so the humor never corrupts the science.
  • Accounts & security: PBKDF2-SHA256 password hashing, HttpOnly sessions, login rate-limiting, upload validation, parameterized SQL.
  • Native Android: an 85 KB APK with camera integration and native TTS, built directly with the Android SDK.

Challenges we ran into

  • Wrong species = wrong advice. Our early version confidently misidentified a medicinal flower as a snake plant — dangerous for edible or medicinal plants. We rebuilt identification around a confidence threshold: below ~55%, the app refuses to name a species, admits it honestly ("Mystery Plant 🌿"), and restricts itself to safe, general care advice.
  • The blooming orchid bug. Our pixel engine rated a gorgeous flowering orchid as "Critical — leaves mostly brown and crispy." Its vivid yellow petals were being counted as sick, yellowing leaves! We moved to HSV color space so petals register as flowers — a positive signal — and added a rule: a plant in visible bloom can never be rated "dying."
  • Character vs. accuracy. A sassy plant is fun until it gives wrong watering advice. Separating the pipeline — science first, personality second — fixed this permanently.
  • One-day scope. We cut ruthlessly: everything the demo needs, nothing it doesn't.

Accomplishments that we're proud of

  • We taught our AI to say "I don't know." Below the confidence threshold, Nabta refuses to guess — an honest "I'm not sure" beats a confident lie. We believe that's how all AI products should behave.
  • We found and fixed our own worst bugs through real testing — the misidentified medicinal flower and the "dying" blooming orchid both became engineering stories we're proud of.
  • Gamification with integrity: a leaderboard that can't be spammed, because it rewards showing up every day, not tapping a button.
  • A full product in one day: working scan-to-speech pipeline, secure accounts, profiles, leaderboard, and an installable Android APK — all demo-ready.

What we learned

  • Computer vision for plant health — how leaf color distribution correlates with stress, and how vision models identify species from a single photo.
  • Confidence is a feature. Getting an AI to admit uncertainty is harder — and more valuable — than getting it to answer.
  • Behavioral design — why "times opened per day" is a broken metric (it rewards spam) and how to reward consistency and outcomes instead.
  • Prompt engineering for personality — keeping an LLM in character as a specific plant while staying factually accurate about botany.

What's next for Nabta

  • 🌍 The Green Health Map: every talking plant is also a data point. Anonymized, geo-tagged scans can map vegetation health per school, neighborhood, and city — with communities competing to green their streets.
  • 🗣️ More languages: Darija, Arabic, French — so a grandparent and a kid can hear the same plant speak.
  • 📈 Recovery tracking: re-scan the same plant over time and watch its health curve climb — the plant thanks you personally when it recovers.
  • 🏫 Classroom mode: one plant per class, one shared streak — botany as a daily group ritual.

Built With

Share this project:

Updates

Submission history