Project Info

Plantasia

Devpost

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.

Analysis

Compare with all teams

View

Metric

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

Found in codeClaimed only
  • 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.

0 stars