This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
Most applications compete to monopolize your screen time. StrideQuest is built on the inverse premise: use open-weight AI to nudge you out the door, turn your attention toward the physical world, and then get out of the way.
StrideQuest is a local-first outdoor scavenger hunt Progressive Web App (PWA). It transforms an everyday walk into a mini-expedition: select a quest, step outside, search for specific natural elements in your surroundings, and log what you discover. Browser-based image classification assists with identifying observations, while an integrated journal and progression loop make those outdoor discoveries rewarding to catalog.
What I Built
StrideQuest unifies a modular expedition engine, lightweight field journaling, and in-browser edge AI into a single installable web application.
- 7 Field Expeditions: Forest Floor, Waterside Explorer, Urban Nature, Seasonal Scout, Rock & Mineral Hunt, Wildlife Watch, and Micro-Adventure.
- 38 Curated Collectibles: A structured field catalog of botanical, geological, and natural features to observe across different biomes.
- GPS & Elapsed-Time Tracking: Active session monitoring with threshold-based accuracy filtering and stationary drift rejection.
- Camera-Based Observation Loop: Direct capture flow with viewfinder preview, retake options, and an upload fallback for legacy devices.
- Local Field Journal: Observations and camera image blobs stored directly in IndexedDB, featuring filters for discovery state, category, and rarity.
- Progression System: Earn XP, level up, and unlock eight distinct achievement badges tied to genuine outdoor activity.
- Expedition History & Telemetry: Revisit past expeditions with logged duration, distance, and itemized findings.
- State Recovery & Session Controls: Pause, resume, complete, or cancel expeditions on the fly; active sessions automatically recover across browser reloads.
- Data Sovereignty: Full JSON import and export tooling for local journal data and metadata backups.
- PWA & Offline Foundations: Includes a Web App Manifest, Service Worker caching, adaptive app icons, and an active network status indicator.
- Safety & Privacy Guidance: Transparent notices detailing on-device storage mechanics and encouraging safe, non-intrusive outdoor exploration.
The goal is not to keep users staring at a screen mid-walk. The interface helps plan the outing and record discoveries, leaving the actual exploration entirely to the person on the trail.
Demo
Note: StrideQuest is designed for mobile screens, where camera workflows and geolocation APIs function naturally. WebGPU availability, model download performance, and hardware camera behavior vary across operating systems and browsers.
Code
The project is fully open-source on GitHub:
StrideQuest
StrideQuest is a local-first outdoor scavenger-hunt PWA for the DEV Hacktoberfest Week 1 Touch Grass challenge. It turns a short walk through a park, trail, garden, or city block into a lightweight field expedition: choose a target, put the phone away, photograph something only after stopping safely, and build a personal journal of what you noticed.
Challenge tags: #devchallenge #hf26challenge
Run locally
npm install
npm run dev
Open the localhost URL in a modern browser. Production checks are:
npm test
npm run build
npm run preview
Camera, GPS, wake lock, and service-worker behavior require HTTPS when deployed. localhost is treated as a secure context by browsers during development.
What is implemented
- Dashboard with level/XP progress, a daily invitation, recent field notes, collection progress, measured distance, and local-model readiness.
- Seven data-driven expeditions: Forest Floor, Waterside Explorer, Urban Nature, Seasonal Scout, Rock & Mineral Hunt, Wildlife Watch, and Micro-Adventure.
- 38 catalogue…
The repository includes the complete client source, data models, test suites, and project documentation.
How I Built It
StrideQuest is built with React, Vite, JavaScript, and Tailwind CSS, leaning directly on modern web APIs for device hardware access and local storage.
Local-First Architecture and Privacy
StrideQuest operates without a custom backend server or a remote cloud vision API. All field observations, geographic metrics, and raw image blobs are stored client-side in IndexedDB, while interface configurations live in localStorage.
There are essential network considerations to note: the application bundle must be downloaded on first load, and the AI model weights and runtime assets are fetched from Hugging Face on demand. The local-first design ensures that user data and photos are not dispatched to a central analytics or storage server, rather than asserting that the initial download is zero-network.
The Service Worker caches the core application shell for subsequent visits. Offline AI inference has not yet been benchmarked end-to-end on a physical handset; complete disconnected inference requires all model chunks and runtime dependencies to be fully downloaded and cached locally before venturing off-grid.
On-Device Image Classification
The vision pipeline runs entirely in-browser using Transformers.js v3 and ONNX Runtime Web:
-
Vision Model:
onnx-community/mobilenetv4_conv_small.e2400_r224_in1k - Execution Strategy: The classifier initializes lazily on first observation and operates as a shared singleton. It requests WebGPU acceleration when exposed by the browser environment and defaults to the multi-threaded WASM runtime otherwise.
The model is a generalized ImageNet-1K classifier, not a specialized taxonomic or botanical authority. Because generalized labels do not always map 1:1 to outdoor field objectives, StrideQuest implements confidence-weighted objective matching, surfaces top predictions transparently, communicates uncertainty honestly, and allows users to save manual observation entries whenever the model output is ambiguous.
Real-world latency, initial weight transfer sizes, and hardware thermal characteristics have not yet been rigorously benchmarked on physical mobile chips.
Persistence and Session Reliability
- IndexedDB: Persists structured records for field observations, captured image blobs, completed expeditions, and achievement progress.
- Session Safeguards: Expeditions handle pause, resume, finish, and interrupt flows, while localStorage maintains an active expedition checkpoint to restore state after accidental tab closures or mobile browser refreshes.
- GPS Filtering: Haversine calculations discard positional updates with poor horizontal accuracy or stationary GPS drift.
Verification and Test Suite
Development verification included:
npm install-
npm test— 4 test suites passed (6 tests verifying distance calculations, progression logic, and persistence schemas) -
npm run build— Clean production bundle generated (with standard ONNX/Transformers.js bundle size notices) -
npm run dev -- --host 127.0.0.1— Dev server, web app manifest, and service worker validated with HTTP 200 responses
Why Does Open Innovation Matter?
StrideQuest explores what happens when open-weight models and web standards meet experiences outside the traditional screen-first paradigm:
- Edge Intelligence: Running open-weight models in the browser shifts inference directly to consumer hardware, removing per-request cloud API dependencies and server hosting bills.
- Auditability & Transparency: Open codebases and open weights mean users and contributors can inspect the prompt mappings, see confidence thresholds, and review exactly how their data is processed.
- Intentional Technology: Open tooling allows developers to build software that serves as a quiet utility—documenting and encouraging physical activity—rather than optimizing for maximum screen engagement.
- Iterative Community Growth: Contributors can readily test domain-specific fine-tunes (such as dedicated flora or fungi classifiers), refine objective heuristics, and optimize WASM/WebGPU pipelines across varied mobile hardware.
My Agent Session
Development architecture, state persistence schemas, and test suites were refined interactively with an AI coding assistant. Because this was completed in a local workflow without an external public DevRelay session link, no unverified third-party session URL is included.
Prize Categories
- Primary Track: Hacktoberfest Week 1: Touch Grass Challenge (Overall Submission)
Step outside, keep your phone in your pocket between milestones, and let the real world be the main event.
Top comments (0)