Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
Explore and identify flora with FindFlower, an installable Progressive Web App featuring on-device AI classification and an extensive botanical species directory.
LifestylePython · JavaScriptGitHub @gsor56OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
A high‑accuracy botanical vision pipeline that provides real‑time species classification using cloud‑hosted ViT models, low‑latency edge proxying, and client‑side web acceleration.
AI translation
🌸 High-accuracy botanical vision pipeline — real-time species classification leveraging cloud-hosted ViT models, low-latency edge proxying, and client-side web acceleration.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Point your camera at a flower. Know what it is in seconds.
Flower identification for 116 species, powered by a fine-tuned Vision Transformer.
Ever seen a flower on a walk and had no idea what it was called?
Snap a photo, upload one, or paste an image link, and get a species name plus a
confidence score in a few seconds. No app to install, no account needed to try it.
📸 Snap or upload a photo of any flower
🔒 Sent over HTTPS via our inference proxy
🌼 ViT identifies it 116 species, top-5 scores
📚 Learn more pulled live from WikipediaRead the full README ↗Flower identification for 116 species, powered by a fine-tuned Vision Transformer.
Ever seen a flower on a walk and had no idea what it was called?
Snap a photo, upload one, or paste an image link, and get a species name plus a confidence score in a few seconds. No app to install, no account needed to try it.
Identification runs server-side on a fine-tuned ViT-base. Your image is sent over HTTPS to do that, used only to run the prediction, and not stored — see the privacy page for specifics.
[!NOTE] Earlier betas ran a smaller CNN in-browser via TensorFlow.js, so images stayed on your device. The ViT is far more accurate but too large to ship to a browser, so inference moved to a server. The privacy tradeoff is deliberate and documented rather than glossed over.
browser ──image──▶ Cloudflare Worker ──image + X-Proxy-Secret──▶ ONNX backend
(origin allowlist, (FastAPI +
holds the secret) onnxruntime)
◀── { flower, confidence, top_k } ────────────────────────────────────┘
The Worker keeps the backend from being an open public API: it enforces an origin allowlist and attaches a shared secret the backend checks. Only labels and scores come back, so the weights never leave the container.
| Path | What lives there |
|---|---|
*.html, *.js, favicon.svg | The static frontend (GitHub Pages) |
space/ | FastAPI + onnxruntime inference server |
proxy/ | Cloudflare Worker that fronts the backend |
training/ | Kaggle training + ONNX conversion scripts |
tools/ | Build script for the Trefle species data |
Only the frontend files are published to the web root —
.github/workflows/pages.yml copies those into _site/ and deploys that, so the
training scripts stay in version control without being served.
Frontend only — it talks to the deployed Worker, so there's no build step:
git clone https://github.com/gsor56/findflower.git
cd findflower
python -m http.server 8000 # http://localhost:8000 is on the CORS allowlist
The backend and Worker each have their own setup notes in
space/README.md and proxy/README.md.
Got a misidentification? Hit "No, incorrect" right on the try page — every bit of feedback helps retrain the model.
This is a solo, student-built project — feedback, bug reports, and suggestions are genuinely welcome. Open an issue or reach out via the contact page.
Released under the MIT License — free to use, modify, and learn from.