This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
Most modern apps want more of your screen time. FieldQuest does the opposite: it gives you a reason to put your phone in your pocket, step outside, and pay attention to the living world around you.
FieldQuest is a Victorian-botany-inspired, screen-down, offline-first Progressive Web App (PWA) powered by hybrid open-weight AI (Ollama + Podman) and a 9-tier multi-cloud fallback matrix (Google Gemini + Groq LPU).
How It Gets People Off Screens and Into Nature
- Screen-Down Mode: Quests give you observation instructions (e.g., “Find two distinct tree bark textures on north-facing trunks”), then dim the screen to preserve phone battery and prevent walking while doomscrolling.
- Sensory & Ecological Observations: Tasks are rooted in Attention Restoration Theory (ART), morphological bioindicators (lichens as air quality gauges), and acoustic canopy stratification (isolating foreground leaves from distant wind).
- The Victorian Field Studio: Explorers record their field findings and convert them into 19th-century naturalist folio lithographs using a 2.8× hardware-accelerated loupe and an archival 1200×1580 PNG/PDF print engine.
- Zero Accounts & True Privacy: No logins, no analytics, no cloud trackers. All field observations and photos remain safely on the user's device in IndexedDB.
Demo
- 🌐 Live Web App: https://fieldquest.netlify.app
- 💻 Local Air-Gapped Stack: Clone and run locally at
http://localhost:5173with Podman or Docker.
Visual Walkthrough
Hero & Ethos![]() Screen-down philosophy & zero cloud tracking. |
Adaptive Quest Planner![]() Tailored 15/30/60m missions, seated accessibility & custom botanical focus. |
Botanical Field Studio![]() Historical styles & Classical Plates I–VII. |
Acoustic Canopy Sound Mapping![]() Acoustic stratification & lichen census. |
Production Multi-Cloud Resilience![]() Gemini & Groq cascading 9-tier auto-failover. |
Air-Gapped Local AI Container![]() 100% private Ollama (qwen2.5:3b, gemma2:2b). |
Code
The entire codebase is open source under the MIT License:
arnab825
/
FieldQuest
An offline-first, screen-down nature exploration PWA. Restoring sensory attention with local open-weight AI (Ollama/Podman), 9-tier Gemini/Groq failover, and Victorian botanical folio archiving 🌿🌿.
FieldQuest 🌿
Your neighbourhood is more interesting than your feed.
FieldQuest is a polished, open-source, AI-powered, offline-first nature exploration Progressive Web App (PWA). It inspires people to spend less time glued to screens and more time exploring the living biodiversity right outside their door—in city parks, balcony pots, quiet suburban streets, or forest trails.
Our Philosophy & Science
FieldQuest is not another superficial chatbot wrapper; it is an anti-chatbot nature observation tool engineered with explicit scientific and educational rationale:
- Cognitive Science & Attention Restoration Theory (ART): Rooted in Kaplan & Kaplan's cognitive psychology, prolonged screen interaction depletes direct executive attention. Involuntary natural sensory immersion ("soft fascination") restores focus. FieldQuest actively uses a Screen-Down Mode so explorers keep phones in pockets rather than staring at glass while walking.
- Botanical Functional Morphology & Bioindicators: Observational quests train participants in fundamental ecological principles: leaf venation architecture, bark moisture gradients, and lichen as symbiotic…
Technical Stack
-
Frontend: React 19, TypeScript, Vite, Tailwind CSS v4, Dexie.js (IndexedDB), Canvas 2D composite renderer,
vite-plugin-pwa. - Backend: Node.js LTS, Express 5, TypeScript, Zod schema validation.
-
Local AI: Ollama running open-weight
qwen2.5:3bandgemma2:2b. -
Containerization: Rootless multi-stage Podman & Docker compose (
web,api,ai).
How I Built It
1. Hybrid AI Architecture & 9-Tier Failover Matrix
FieldQuest was engineered to never crash on the trail. If one API hits rate limits or cellular service drops, it seamlessly cascades down:
[Tier 1-4] Google Gemini Cluster (gemini-3.8-flash → gemini-3.1-flash → flash-latest)
│ (On 429 Quota or Error)
▼
[Tier 5-7] Groq Cloud LPU Cluster (llama-3.3-70b-versatile → llama-3.1-8b-instant)
│ (On Network Deadzone)
▼
[Tier 8] Local AI Container (Ollama qwen2.5:3b / gemma2:2b on port 11434)
│ (On Air-Gapped Standalone)
▼
[Tier 9] Deterministic Botanical Field Catalog (100% offline, zero-dependency)
2. Containerized Podman Orchestration
The entire stack runs with rootless Podman:
npm run podman:up
npm run podman:pull-gemma
Running 3 microservices:
-
fieldquest-web(React PWA, Port 5173) -
fieldquest-api(Express 5 gateway, Port 4000) -
fieldquest-ai(Ollama AI daemon, Port 11434 with persistent model volume)
Why Does Open Innovation Matter?
-
True Privacy in Nature: When you are taking photos and writing reflections on a trail, your thoughts shouldn't be piped into a centralized cloud ad engine. Open-weight models running on-device (
qwen2.5:3b,gemma2:2b) give users absolute data sovereignty. - Offline Resilience Without Cell Towers: Closed APIs require an active internet connection. Forests, parks, and mountains often have poor cell signal. Open models allow generative intelligence to run on edge laptops, Raspberry Pis, or air-gapped local devices.
- Freedom from Arbitrary Deprecations & Paywalls: Proprietary APIs can change pricing, reduce context, or shut down overnight. Open innovation guarantees that nature explorers and educators can run FieldQuest forever with zero external dependencies.
My Agent Session
This project was built with the assistance of the Antigravity AI Agent pair-programming workflow:
- Iterative multi-model fallback chain design across Gemini and Groq.
- Dexie IndexedDB client schema for zero-latency local observation storage.
- Museum-grade HTML5 Canvas 2D composite folio generator with ornamental Linnaean borders and single-page vector PDF printing.
- End-to-end containerization with rootless Podman compose and Vitest automated suites (27 tests passing).
Prize Categories
- 🏆 Hacktoberfest Week 1: Touch Grass (Main Challenge)
- 🌿 Open-Source AI & Open-Weight LLMs (Ollama / Qwen / Gemma)
- 🔒 Best Offline-First & Privacy-Preserving Architecture






Top comments (3)
What method does FieldQuest use to update its local AI models when new versions become available, and does the app support automatic background updates while offline?
Hey Tomasz! Thanks for checking out FieldQuest.
Since it's designed as an offline-first PWA with an air-gapped container option, local model updates are handled manually or via container image pulls rather than forced background downloads over cellular data (which defeats the purpose when you're out on a trail with spotty signal).
If you're running the local AI stack via Podman/Docker, you update the weights locally by running:
ollama pull qwen2.5:3bor
ollama pull gemma2:2bFor the web app layer itself, the PWA handles service worker caching and asset updates locally when you're back on Wi-Fi, but the local AI models require an explicit local pull to ensure you control your bandwidth and storage while off-grid.
tr.ee/dev-to
Some comments have been hidden by the post's author - find out more