A hiking decision-support experiment

Which way up, given today?

Search a trail, and ProbablyThisWay scores every mapped route against today's weather, daylight, distance and climb with TypeSafe AI's Jev model. Then it replays the best eligible route on 3D terrain and shows you why.

Newton Hill · Worcester, MARoute preview · not live GPS
drag to orbit · scroll to zoom · shift-drag to pan

Recommended route

Summit Loop

Ranks highest among eligible routes. Its 48-minute estimate leaves daylight to spare.

Live session

Temp58°F
Wind7 mph
Rain10%
Daylight2h 40m
Pace2.4 mph
Fatiguelow

Route signal

Summit Loop82
Ridge Path55
North Spurclosed
How it works

From a place name to a reasoned route.

Unknown facts stay unknown. The model scores; a deterministic policy decides; the interface shows every step.

  1. Search a trail

    OpenStreetMap is searched by name and location. A place can resolve to its trail lines or up to eight named branches nearby.

  2. Take a snapshot

    Route geometry and known facts are stored, with current conditions from Open-Meteo at the trailhead, refreshed every five minutes.

  3. Score every candidate

    Jev weighs weather, daylight, distance, duration, climb, exposure, pace, fatigue and data quality, returning a score, confidence and probabilities.

  4. Apply the policy

    Ineligible routes are removed by rule. The highest scoring eligible route wins. Jev never makes the final pick on its own.

  5. Show the evidence

    Shared inputs, every score, policy checks and exclusions stay on screen. Structured evidence, not hidden reasoning.

  6. Replay the route

    A marker walks the route across Cesium 3D terrain while the model-to-policy stages replay beside it.

Eligibility policy

Some routes are never an option.

Before any score counts, the policy excludes routes the data says you shouldn't take. If nothing is eligible, the app says so plainly and tells you to check official guidance.

Illegal trail

Routes marked as illegal trails are excluded.

Officially closed

Closed routes never reach scoring.

Active access restrictions

Restricted access, or any prohibitive restriction, removes a route.

No key? Still works.

Without an OpenRouter key, or if Jev returns something invalid, a clearly labelled deterministic baseline takes over.

Re-evaluation triggers · a new decision when conditions move this much
Temperature±10°F
Wind±5 mph
Rain chance±15%
Daylight±10 min
Pace±15%
Run it

No database, no Docker, no keys needed to start.

Node 22 and a WebGL browser are enough. Add an OpenRouter key to switch from the baseline to Jev. For production, Docker Compose adds PostgreSQL and Nginx.

# clone and install
git clone https://github.com/shivamshinde123/ProbablyThisWay.git
cd ProbablyThisWay && npm install

# optional: enable Jev (~typesafe/jev-latest)
cp .env.example .env
# OPENROUTER_API_KEY=…

npm run dev
# open http://localhost:5173 and try
# "Newton Hill, Worcester, MA, USA"
Web

React 19, TypeScript, Vite, CesiumJS

API

Node.js 22, Fastify, Zod

Decisions

TypeSafe AI Jev via OpenRouter's Decisions API

Data

OpenStreetMap, Open-Meteo, PostgreSQL 17

⚠

Decision support, not a safety guarantee. ProbablyThisWay is an experiment, not a navigation system. Always check official trail guidance, closures, weather alerts and posted signs before you hike.