DEV Community

Cover image for FieldQuest: Your Neighbourhood Is More Interesting Than Your Feed
Arnab Roy
Arnab Roy

Posted on Originally published at fieldquest.netlify.app AI-assisted

FieldQuest: Your Neighbourhood Is More Interesting Than Your Feed

Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass Submission 🌿

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

  1. 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.
  2. 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).
  3. 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.
  4. 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:5173 with Podman or Docker.

Visual Walkthrough

Hero & Ethos

Hero & Ethos
Screen-down philosophy & zero cloud tracking.
Adaptive Quest Planner

Adaptive Quest Planner
Tailored 15/30/60m missions, seated accessibility & custom botanical focus.
Botanical Field Studio

Field Studio
Historical styles & Classical Plates I–VII.
Acoustic Canopy Sound Mapping

Sound Mapping
Acoustic stratification & lichen census.
Production Multi-Cloud Resilience

Cloud AI Settings
Gemini & Groq cascading 9-tier auto-failover.
Air-Gapped Local AI Container

Local AI Container
100% private Ollama (qwen2.5:3b, gemma2:2b).

Code

The entire codebase is open source under the MIT License:

GitHub logo 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:

  1. 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.
  2. 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:3b and gemma2: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)
Enter fullscreen mode Exit fullscreen mode

2. Containerized Podman Orchestration

The entire stack runs with rootless Podman:

npm run podman:up
npm run podman:pull-gemma
Enter fullscreen mode Exit fullscreen mode

Running 3 microservices:

  1. fieldquest-web (React PWA, Port 5173)
  2. fieldquest-api (Express 5 gateway, Port 4000)
  3. fieldquest-ai (Ollama AI daemon, Port 11434 with persistent model volume)

Why Does Open Innovation Matter?

  1. 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.
  2. 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.
  3. 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)

Collapse
 
wrobeltomasz profile image
Tomasz •

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?

Collapse
 
arnab825 profile image
Arnab Roy • • Edited

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:3b

or

ollama pull gemma2:2b
For 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.

Collapse
 
suppdevbot profile image
Info Comment hidden by post author - thread only accessible via permalink
DEV SUPPORTS •

You need to verify your account.

Enter fullscreen mode Exit fullscreen mode

tr.ee/dev-to

Some comments have been hidden by the post's author - find out more