Project Info
Inspiration
I've killed every plant I've ever owned. Either overwatered it, underwatered it, kept it away from sunlight or simply forgot it existed for two weeks. But I also spent my childhood playing Plants vs Zombies, a tower defense game where you defeat zombies using plants and powerups for your plants, obsessed with defending those little plants from zombies. The idea hit me: what if the zombies were the diseases, and you defeat them by actually learning to care for your plant? That's Plantasia.
What it does
Plantasia turns real plant care into a tower defense game. You scan your actual houseplant, AI identifies it and gives it a personality, and it lives in your virtual garden as a character. A physical soil moisture sensor monitors your plant via Bluetooth. When something's wrong such as the soil being too dry, too wet, or you haven't checked in; a zombie spawns and heads toward your plant. Each zombie is a real disease: Drownface is root rot, Thirster is dehydration. To defeat them, you complete quests (generated based on the plant using Gemini) that teach you what's actually wrong through "chatting" with your plant and how to fix it. Water your plant in real life, the sensor detects it, quest completes, zombie dies. Your plant thanks you virtually and in real life. You earn coins for streaks, daily check-ins, and defeating zombies, which you spend on cosmetics and garden expansion. Miss your check-ins? More zombies. Let a zombie reach your plant? It's not gonna make it.
How we built it
React and three.js for the game environment. ESP32 microcontroller with a capacitive soil moisture sensor handles the hardware side, communicating via Bluetooth LE. Plant identification and health analysis run through GPT5. Chat, personality generation and quests use Gemini and makes sure to serve you the most accurate information. The pixel art style was inspired by the original PvZ aesthetic: colorful, not dark, because plant care should feel fun.
Challenges we ran into
BLE is pain. Getting the ESP32 to reliably stream data to React Native took longer than building the actual game logic. Sensor calibration was another problem. Balancing the game, specifically the zombies was challenging. If they're too aggressive, it's stressful. Too passive, nobody cares. 3D sprites were made from scratch (not downloaded from the internet) with the help of Claude, so there was lots of trial and error
Accomplishments we're proud of
The live sensor integration actually works. When I water my fern during the demo, you see the moisture percentage climb in real-time and the quest auto-completes. I'm also proud of the educational loop: you literally can't defeat a zombie without learning something about plant care first. It was my first time making a game with Javascript frameworks so it was technically pretty challenging getting up to speed with everything.
What we learned
Plants are harder to keep alive than code. Capacitive sensors are better than resistive ones (less corrosion), BLE has tons of different ways to fail silently. Creating 3D models in three.js is a pain even with Claude. Creative game design takes a lot of work.
What's next
Creating better harness for the AI to actually understand your plant along with the context about how you take care of your plant to cater better to your interests. Adding more sensors to the hardware kit to enable more quests.
What is Plantasia?
Plantasia turns real plant care into a colorful game inspired by Plants vs. Zombies. Scan a houseplant, give it a personality, and protect it from goofy disease-zombies by learning what it needs in real life.
A Bluetooth soil-moisture sensor connects your plant to the game. Water it, check in on it, and complete care quests to defeat threats such as:
- Drownface — root rot and overwatering
- Thirster — dehydration and underwatering
- More plant problems, quests, cosmetics, and garden upgrades to come
The goal is simple: make plant care feel less like a chore and more like an adventure.
Highlights
- Interactive 3D garden built with React and Three.js
- AI-assisted plant identification, health analysis, chat, and quests
- Live soil-moisture updates over Bluetooth Low Energy
- Educational quests tied to actions you take in the real world
- Coins, streaks, cosmetics, and garden expansion
Run locally
npm install
npm run dev
Build for production with:
npm run build
Built with
TypeScript · React · Three.js · Vite · Zustand · Framer Motion · ESP32 · Bluetooth LE
Created for TreeHacks 2026.
Plantasia is a hackathon prototype. Hardware and AI-powered features may require additional configuration.
Analysis
View
Metric
- 4
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- HTMLIn code
- ReactIn code
- TypeScriptIn code
- Google GeminiClaimed
- OpenAIClaimed
4 of 6 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
364 KB
Source files
38
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
suchithh/plantasia
47 files · 3.3 MB · @ cadc2ce
Structure
Interface
17 files · 36%Screens, components and styles rendered to the user.
Application logic
18 files · 38%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript72%
- CSS23%
- Markdown5%
- HTML0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 17- @libsql/client
- @react-three/drei
- @react-three/fiber
- canvas-confetti
- framer-motion
- lucide-react
- react
- react-dom
- sonner
- three
- zustand
- +6 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.