This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.
What I Built
GardenFix is a local AI plant-care assistant built around a simple idea: take a photo, get one useful check, and return to your plant.
It is for beginners who notice drooping or discoloured leaves but don’t know what to investigate next.
Users upload a plant photo and answer two questions:
- When did you last water it?
- How much sunlight does it receive?
GardenFix then provides visible observations, possible explanations, and one practical physical check. It also explains what cannot be determined from the photo.
The screen is the starting point. The useful part happens afterward, when someone inspects the soil, drainage, or surrounding conditions themselves. Suggestions are not confirmed diagnoses.
Demo
GardenFix runs locally. You can try it using the setup instructions in the repository below.
Code
🌱 GardenFix
A local AI plant-care assistant built for the Touch Grass open-source AI challenge.
Everything runs on your own machine — no paid APIs, no cloud dependencies, no authentication. Designed for local processing; works offline after dependencies and model files are downloaded.
Upload a photo of your plant, tell GardenFix when you last watered it and how much sunlight it gets, and receive:
- Plant Condition – assessment of overall visual health (Healthy & Thriving, Mild Stress, Severe Distress / Dying)
- Visible Observations – AI observations that may contain errors
- Possible Explanations – tentative causes tailored to your watering history and sunlight
- One Practical Outdoor Check – a physical check with conditional follow-up actions based on what you find
- Limitations Notice – clear transparency about what cannot be determined from a photo alone
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | React 18 + Vite 5 (system fonts, Vanilla CSS) |
| Backend | Node.js + |
Source code and setup instructions
The application code is MIT-licensed. Gemma’s model weights are governed separately by its model terms.
How I Built It
The frontend uses React, Vite, and plain CSS. The backend uses Node.js and Express, with Multer for in-memory uploads and Sharp for image processing.
At its core is Gemma 3 4B, an open-weight vision-language model running locally through Ollama.
The backend validates and resizes the uploaded image, then sends it to Gemma alongside the user’s watering and sunlight answers. It requests structured output and validates that response before displaying it.
Gemma performs the image analysis and connects visible features with the supplied care context. The application handles missing model files, unavailable Ollama, and inference errors.
What I Learned From Testing
I tested images showing green foliage and another plant with brown leaves and pronounced drooping. The responses reflected those differences, but they also revealed mistakes.
For example, one response described leaves as detached when the photo did not clearly establish that. Some explanations were also more confident than the evidence justified.
This reinforced an important design decision: observations, possible explanations, and limitations should appear separately. A fluent AI answer still needs human checking. Broader testing and more careful recommendations remain areas for improvement.
Why Does Open Innovation Matter?
GardenFix’s local approach gives me control over where inference happens and how the model is used.
After downloading the dependencies and model files, the app is designed to run without a cloud AI service. In the default local configuration, plant photos and care information are processed on my machine.
There are no per-request AI API charges, although inference still uses local computing resources.
Using an open-weight model also lets me experiment with prompts, adjust the output structure, and explore other compatible models. When testing reveals misleading responses, I can inspect and change the application’s inference instructions.
A closed cloud API could analyse plant images too. The benefit here is being able to build around local processing and offline availability after setup, without depending on a remote AI provider.
For GardenFix, open innovation makes the AI a component I can run and adapt myself.
Prize Categories
Best Use of Gemma
GardenFix uses gemma3:4b through Ollama as its core image-analysis model. It processes plant photos alongside watering and sunlight context to generate observations, possible explanations, and a practical next check.



Top comments (1)
tr.ee/dev-to