DEV Community

Cover image for Roam: Less Scrolling, More Exploring with Local AI
Atharva1723
Atharva1723

Posted on

Roam: Less Scrolling, More Exploring with Local AI

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

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

Roam — Less Scrolling, More Exploring

Roam is a screen-free, voice-first trail naturalist. You start a hike, put the phone in your pocket, and ask questions out loud:

“Hey roam, what’s that whistling?”

“Hey roam, how much water should I drink on this grade?”

Roam answers in a few spoken sentences, grounded in trail data, live weather when you’re online, a tabular model’s predictions for your elevation and grade, and a local field guide.

The idea is simple: use AI to enrich the walk, then put the phone away.

✨ The Highlights

🥾 Fully digital and free. Click START TRAIL HIKE (AUDIO MODE), then say “Hey roam” and ask. No app store, no account, no hardware, no subscription.

🔀 Any model, through one door. Roam uses the standard OpenAI-compatible /chat/completions protocol. Three environment variables (LLM_BASE_URL, LLM_MODEL, LLM_API_KEY) switch it between a fully on-device Ollama model, a hosted open-weight endpoint, or a gateway such as FreeLLMAPI that fronts many providers. Roam doesn’t do the cross-provider routing itself. That’s the gateway’s job, and Roam doesn’t need to know which provider answered.

Code

GitHub repository: https://github.com/Atharva1723/roam

How I Built It

Roam is a Node.js and TypeScript server (Express) with a plain JavaScript frontend. The default model is Gemma 2 through Ollama, and the quick start pulls the lighter gemma2:2b. Each answer is built from four lookups that run in parallel:

  • A TabPFN tabular prediction (with a scikit-learn fallback)
  • A keyword search over the field guide
  • The trail and weather data
  • A park advisory, when a key is set

The model gets rules: at most three short sentences, never certify a wild mushroom as safe from a description, and send anyone reporting an injury or being lost to emergency services first. If no model responds, a deterministic offline answer takes over, and the UI labels which path ran.

The app also plans outings: trail search with filters, a hike checklist, saved preferences, a nature journal, and a start-and-end session flow.

Why Does Open Innovation Matter?

I wanted AI to help people spend less time on their phones, not more time chatting with a bot.

A local open-weight model keeps coordinates and questions on the device, works in a ravine with no signal, and costs nothing per query, which suits trail volunteers and park nonprofits. Because the model sits behind a standard API, a club can swap the model, add its own field guide, or change the persona without waiting on a vendor.

The trade-offs are real:

  • The model has to be downloaded, and the hardware has to be capable. Speed depends on the device.
  • Hands-free listening works only in Chrome and Edge with the screen on. The browser’s speech service handles recognition, so that part isn’t offline yet.
  • The TabPFN training data is synthetic, so its predictions reproduce the rules it was trained on and aren’t field measurements.
  • The trail records are labeled sample data, and the field guide has only eight entries.
  • Roam has a known routing weakness: a compound question like “what should I pack, and what’s the weather?” can match only one intent.

Roam explores how local AI can make technology more private and useful while encouraging people to reconnect with the world outside their screens.

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.