DEV Community

Takahata Shintaro
Takahata Shintaro

Posted on

plantsphoto: A Tiny Browser AI That Rewards You for Touching Grass

The image itself is passed directly to the local model in the browser. There is no image upload API, database, or server-side image processing.
The source code and deployment workflow are available on GitHub:
https://github.com/M-Taka-Shin/Touch-Grass
The site is deployed with GitHub Pages, and updates to the master branch are automatically deployed through GitHub Actions.
Why open innovation matters
This project would be much less useful if every image had to be sent to a remote service.
Using an open-source, browser-based machine-learning stack makes the core experience:

  • Private: photos stay in the browser during classification.
  • Affordable: there is no per-image API bill.
  • Inspectable: the model and application flow can be examined and modified.
  • Portable: the app is a static website that can run on a normal laptop or phone browser.
  • Replaceable: the classifier can be swapped for another model as the project evolves. The initial JavaScript and model files are loaded from a CDN, but the classification itself happens on the user's device. This is a useful middle ground for a small prototype: it is easy to share while keeping the actual image-processing step local. What I learned The most important lesson was that an AI feature does not need to dominate the product. MobileNet is not being used here to generate a long explanation or replace the user's judgment. It provides one small confirmation step, and the rest of the experience is about observing the world directly. I also learned that a simple local-first design changes the kind of product you can build. Without accounts, uploads, or a backend, the project became easier to understand and easier to trust. Limitations and next steps plantsphoto is intentionally small, and it has limitations:
  • The plant decision is based on the model's top predictions and a keyword list.
  • Some plants may be rejected if MobileNet uses an unexpected label.
  • Some non-plant objects may be accepted if their labels happen to match the keyword list.
  • The streak is stored only in the current browser.
  • The model still needs to be downloaded the first time the app is opened. Possible next steps include adding a more specialized plant model, improving accessibility, adding an optional offline cache, and letting users review their own plant-photo history without sending it to a server. For now, the app has one goal: make the next walk a little more interesting. Take a photo. Notice a leaf. Touch grass.

Top comments (0)