惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
月光博客
月光博客
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Y
Y Combinator Blog
有赞技术团队
有赞技术团队
PCI Perspectives
PCI Perspectives
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
Latest news
Latest news
P
Palo Alto Networks Blog
Blog — PlanetScale
Blog — PlanetScale
Cyberwarzone
Cyberwarzone
P
Privacy International News Feed
Scott Helme
Scott Helme
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
F
Fortinet All Blogs
Engineering at Meta
Engineering at Meta
V
Vulnerabilities – Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tor Project blog
S
Securelist
H
Hackread – Cybersecurity News, Data Breaches, AI and More
NISL@THU
NISL@THU
GbyAI
GbyAI
H
Hacker News: Front Page
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
U
Unit 42
T
The Blog of Author Tim Ferriss
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Cloudbric
Cloudbric
Microsoft Security Blog
Microsoft Security Blog
博客园 - Franky
L
LINUX DO - 最新话题
The Hacker News
The Hacker News
WordPress大学
WordPress大学
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
T
Threatpost
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
L
LINUX DO - 热门话题
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Recorded Future
Recorded Future
K
Kaspersky official blog
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

Show HN

GitHub - steveking-gh/firmion: Firmion is DSL and engine for firmware image generation. GitHub - villagesql/villagesql-skills: Agent skills for VillageSQL - gemini-cli-extension; claude-code-plugin GitHub - flightdeckhq/flightdeck: Observability and control plane for AI agents. CSP Radar GitHub - Light-Heart-Labs/DreamServer: Turn your PC, Mac, or Linux box into an AI server. LLM inference, chat UI, voice, agents, workflows, RAG, and image generation. GitHub - Diplomat-ai/diplomat-agent-ts: What can your TypeScript AI agent do to the real world? Scan your code. See which tool calls have zero checks Code Block Selector - Visual Studio Marketplace Prometheus dependency graph — interactive showcase | Riftmap Show HN: I made a vi-like modal keyboard plugin for Figma GitHub - run-llama/liteparse: A fast, helpful, and open-source document parser GitHub - dalemyers/Roar: A macOS CLI tool for notifications GitHub - district-solutions/open-agent-tools-coder: Enables small-to-large self-hosted ai models to use local source code when running tool-calling agentic workloads. We actively data mine 20,900+ (2+ TB) popular github repos using large and small ai models to create reuseable: json, markdown and parquet files for local-first tool-calling models. GitHub - progapandist/stripeek: A local TUI proxy for real-time Stripe API debugging, built for navigating complex payloads fast. GitHub - sir1st/hermes-desktop: All-in-one cross-platform desktop app for Hermes Agent — bundles Python + hermes-agent + hermes-web-ui GitHub - astefanutti/shaderbang: Shebang for Shaders Show HN: Generate Claude Code Workflows using Spec Driven Development approach GitHub - nixys/nxs-universal-chart: The Helm chart you can use to install any of your applications into Kubernetes/OpenShift Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap GitHub - noopolis/moltnet: Self-hostable chat network for AI agents. Pre-built bridges for Claude Code, Codex, and the Claws. Rooms, DMs, history. No Slack bots, no Matrix, no glue code. GitHub - tamerh/enju: Coordinating Humans, AI Agents, and Compute as Peers on a Shared Workflow Graph Show HN: Continuity-auth – Respect-weighted rate limits for the open web GitHub - luml-ai/luml: AI lifecycle platform where engineers and agents track experiments, train models, and ship to production. GitHub - mrdanielcasper/CoreTex: A UNIX-inspired, biomimetic, flat-file AI harness and knowledge engine. GitHub - clemg/pierre-github: Pierre's diffs.com and trees.software for Github GitHub - lyriks-io/unspaghettit: Behavior-driven AI development without prompt spaghetti. GitHub - sofumel/claude-handoff-revive: Resume Claude Code work after rate/usage/context limits without replaying the prior transcript. Auto-saves at 90%/95% usage. Plugin-installable, 10 languages. GitHub - dotexorg/saferpc: Typed, end-to-end encrypted RPC over any bidirectional channel. GitHub - BeeZeeAgent/beezee: Agent harness orchestration Legato Next.js Boilerplate for Internal Tools · CoreUI GitHub - clark-labs-inc/clark-hash: Clark Hash, 32x smaller searchable sketches for embeddings GitHub - ZeroPointRepo/youtube-mcp: The fastest YouTube transcript + YouTube search MCP for AI agents. Try for free. Typing Mastery — climb toward 100+ WPM, deliberately GitHub - Andebugulin/Awareen GitHub - fayzan123/claude-workflow-composer: Visual desktop app for composing multi-agent coding workflows. Drag agents, attach skills and MCPs, wire handoffs, export to .claude/ GitHub - harshaneel/humanize: Best static AI text humanizer. Two research-grounded skills that work in any LLM (Claude, ChatGPT, Gemini, Codex): humanize beats perplexity-based detectors, ai-check produces forensic scoring with evidence-quoted flags. Nine levers, 50+ peer-reviewed sources, 2024-2026 detection literature. GitHub - StackOneHQ/stack-nudge GitHub - nodes-app/swift-markdown-engine: A native AppKit Markdown editor for macOS, built on TextKit 2 and bridged to SwiftUI. We hardened an LLM agent. Each defense we added made it more exploitable. GitHub - alkait/WhatsKept: Agent-queryable WhatsApp history from an iOS backup — a single Go binary. GitHub - octelium/cordium: Open-source, general-purpose sandbox platform for devs and AI agents that provides identity-based secure access to infrastructure without credentials. WAR.GOV/UFO Microfilm5 GitHub - scosman/videowright: Build animated explainer videos with your coding agent GitHub - dipankar/dscode: The code editor you can take apart. GitHub - zoharbabin/web-researcher-mcp: MCP server (Go) for AI assistants: web search, content extraction, academic/patent/news research. Multi-provider routing, 4-tier scraping, search lenses. Works with Claude, Cursor, and any MCP client. GitHub - ruvnet/RuView: π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video. GitHub - scanaislop/aislop: Catch the slop AI coding agents leave in your code: narrative comments, swallowed exceptions, as-any casts, dead code, oversized functions. 50+ rules across 7 languages (TypeScript, JavaScript, Python, Go, Rust, Ruby, PHP). Sub-second, deterministic, no LLM at runtime. MIT-licensed. GitHub - kouhxp/cheap-im: CPU-only voice agent approximating Thinking Machines' Interaction Models demo GitHub - unprovable/OrchidMantis: Orchid Mantis — standalone framework for Zero-Knowledge Proofs of eXploit (ZKPoX). GitHub - MarcellM01/TinySearch: Shrink the web for your local LLMs! GitHub - TangibleResearch/Halgorithem: A Algo designed to detect AI Hallucitions GitHub - DO-SAY-GO/freelang: I love freelang GitHub - CarpseDeam/Aura-IDE: An AI coding harness that shaped itself - Planner/Worker agents, repo awareness, surgical edits, validation, recovery, and safe diff approvals. GitHub - chojs23/concord: A feature-rich TUI client for Discord GitHub - tommyjepsen/awesome-ux-skills: UX & AI Product designs skills you can use today in Claude Code GitHub - aerf-spec/aerf: Agent Evidence Receipt Format (AERF) — an open specification for tamper-evident, independently verifiable records of AI agent actions. GitHub - kklimuk/docx-cli: CLI for AI agents (Claude, Codex) to read, edit, and comment on .docx files with full format fidelity. GitHub - Jwrede/tokentoll: Catch LLM cost changes in code review. Infracost for LLM spend. GitHub - samchon/ttsc: A `typescript-go` toolchain for compiler-powered plugins and type-safe execution + 500x faster lint integrated into compiler GitHub - Higangssh/homebutler: 🏠 Manage your homelab from chat. Single binary, zero dependencies. GitHub - olalie/tapmap: See where your computer connects and what stands out on a live world map. GitHub - Diplomat-ai/diplomat-agent: What can your AI agent do to the real world? Scan your code. See which tool calls have zero checks GitHub - Bajusz15/beacon: Open-source agent for secure remote access, monitoring, and deploys across home-lab and self-hosted machines like Raspberry Pi, N100, or any Linux server. Open web based TTY or tunnel Home Assistant and other local services securely without opening ports. BigTech AI News - Chrome 应用商店 GitHub - vinhnx/VTCode: VT Code is an open-source coding agent with LLM-native code understanding and robust shell safety. Supports multiple LLM providers with automatic failover and efficient context management. GitHub - michaelaz774/decision-engine: A decision operating system for startup founders, powered by Claude Code. Synthesizes wisdom from 25+ legendary founders and investors into interactive AI-driven decision frameworks. GitHub - Chrilleweb/dotenv-diff: Validate environment variable usage in your codebase GitHub - Lumen-Labs/brainapi2: BrainAPI is a knowledge graph–powered AI memory layer that transforms unstructured data into structured knowledge, enabling intelligent search, recommendations, and contextual memory for AI agents and applications. GitHub - familiar-software/familiar: Let AI watch you work. Familiar lets your AI update its memory, skills, and knowledge by watching your screen. GitHub - skorotkiewicz/rudo: A small, elegant dock for Wayland GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. make sidebar/address bar rounded corner toggleable
GitHub - deepanwadhwa/anumaan: Navigation when there is no GPS and no Internet.
dwa3592 · 2026-06-19 · via Show HN

Anumaan app icon — topographic contour rings with a you-are-here dot

Anumaan (Hindi: अनुमान) means "to estimate", or "to reckon roughly". The main goal of this project is to figure out and implement an app which can help with navigation without GPS or Internet. GPS and Internet coverage has only gotten better and I think it will penetrate even more remote parts of the world with more satellites in the orbit. The reason for building this is to satisfy my own curiosity and also answer the below hypothetical:

"Scenario: internet is down, lower earth satellites have been shot down and GPS is jammed; how would you navigate from point A to point B?"

This is an imaginary scenario and it will probably never happen, right?

The problem

To route someone from point A to point B without GPS, you need three things:

  1. An offline map with routing built in, so you can run A* or any shortest-path algorithm without a network connection. This is easy.
  2. A starting position on that map, so you know where to begin. This is easy.
  3. Your position on the map as you are moving. This is hard.

Number 3 is hard because that is exactly what GPS provides: your phone pings the satellites constantly and keeps updating your position on the map, and also computes your moving speed from that. Position P1 at time T1 and position P2 at time T2 — straightforward math.

Without GPS we need a good proxy for number 3. I am using OpenStreetMap (OSM), which comes with points of interest, street names, intersections, traffic lights, speed limits, and a ton of other data, all storable on the phone.

If the system can verify points of interest along the way, it can locate itself on the map. The app runs A* (similar to what Google Maps does), loads the points of interest on the route, and asks the human: "have you reached this next POI?" Yes or no. Each answer corrects the position estimate.

This works but feels hacky. What if you go the wrong way? Google Maps detects that automatically with GPS and reroutes. So the app also has an "I am lost" feature. If you do not see the POI the app is asking about, you might be off route.

How does "I am lost" work without GPS? The app also downloads Digital Elevation Model (DEM) data alongside OSM. DEM gives you the elevation of every point on the map (resolution varies: NED for some areas, SRTM for others). When "I am lost" is pressed, the app starts collecting sensor data from the phone: compass direction and barometer readings. Direction comes from the compass; barometer values are a good proxy for elevation change. As you move, you are literally drawing a curve on the earth's surface with two properties: heading (degrees) and elevation change. Walk far enough, and you have drawn a curve long enough to ask the map: "is there a curve like this, with this elevation profile, somewhere in this area?" The map then runs the Terrain Contour Matching algorithm (TERCOM), the same class of algorithm used by Tomahawk missiles, and once it thinks it has found you it loads the nearest POIs and asks: "do you see this intersection?", "are you near this ridge?" Once confirmed, you are back on the map.

There is a lot that is still pending and I am still working on it.

The text below is generated by Claude Opus 4.8 from a rought draft I gave it, it is technically correct but I don't like how it reads, so I am going to rewrite it but for v0, it is technically correct.

Real-world testing, then a simulator to scale

I tested this in the field. I walked real paths outside with the phone and ran the "I am lost" recovery on the sensor data it actually recorded. That is the real test, and it is how I know the approach works on real hardware.

But walking a fresh path every time I want to try a change does not scale. So I also built AnumaanSim, a simulator that runs the same recovery engine over any area in the world from my desk, no hiking required. It is not a replacement for the field tests; it is a way to try many more ideas, on many more places, far faster.

One caveat about the simulator, stated plainly: it feeds the engine idealized input. It assumes clean elevation changes and clean heading, as if the barometer and compass were perfect. Real phone sensors are not. The barometer drifts with weather and temperature, and the compass wanders near metal, cars, and buildings. So the simulator's accuracy numbers are an optimistic ceiling; real sensor noise pulls them down in the field. The simulator is for comparing ideas quickly and cheaply, not for predicting exact real-world accuracy.

The simulator has two modes:

  • Draw your own path. Click a walk onto the map and watch the engine try to recover where you are, answering its Yes/No questions as the hypothesis cloud narrows down.
  • Run a benchmark. Generate hundreds of random walks across a downloaded area and score how often the engine finds you, and how accurately. This is what produced the numbers below.

Road navigation already has a simpler answer

If you are lost on a road, you have an easier option than any of the above. Look at the nearest street sign, type it into an offline map, and it tells you exactly where you are.

Localization on road networks was the first step, a way to build and validate the underlying TERCOM, POI verification system before pointing it at the harder problem. The hard problem is what happens when there is no street sign, no road, and nothing around you but terrain ; aka wilderness.

What makes the wilderness case hard

Off-road is harder because the road constraint disappears. On a road you can only be on the road, which collapses the candidate set to a thin set of lines. In a national park or backcountry you could be anywhere.

What makes it especially hard is that big terrain repeats itself. A 3 km walk at 1,400 m elevation on a south-facing slope in the Smokies might look almost identical to a different 3 km walk at the same elevation on a different south-facing slope 8 km away. The engine either nails it or lands on one of these look-alikes, with little in between. The benchmarks below show that split clearly.


What is in this repo

  • iOS app (ios/) is a native Swift app with three screens: Navigate (follow a route by dead reckoning), Track (record a walk, work in progress), and Lost (recover your position from the terrain with TERCOM). I had claude build this so I could take my phone outside and test whether the dead-reckoning and terrain-matching ideas hold up in the real world, and the Lost mode has been tested on-device. Day-to-day iteration now happens in the simulator so I do not have to walk a fresh path for every experiment. See ios/README.md to build and run it.
  • Map Simulator (/sim) is where the "I am lost" mode is iterated on today. It runs the same Swift recovery engine (AnumaanSim CLI) over any downloaded area, in two modes: draw your own path on the map and watch the particle filter and Q&A engine converge onto your true position, or use the Region Benchmarker to run hundreds of random walks and score how often the engine recovers the correct position.

Run the simulator

This project uses uv and the pmtiles command line tool. Install both once:

brew install uv pmtiles
uv sync                       # create the environment and install deps from uv.lock
uv run python run_app.py      # serves on http://127.0.0.1:8080

Open http://127.0.0.1:8080/sim in a browser.

  1. Download an area. Use the geocoding search to find a location, then click Download Current View. This downloads the OSM road network and AWS elevation tiles for the bounding box.
  2. Choose a mode. Paved Roads uses the road-snapping particle filter. Off-Trail uses terrain-contour TERCOM matching.
  3. Draw and run. Click the map to draw a walk path (at least 2 waypoints), then click Run Sim.
  4. Answer questions. The simulator asks Yes/No questions about landmarks along the path. Watch the hypothesis cloud (orange dots) narrow down to the true location (pink marker).
  5. Run a benchmark. Switch to the Region Benchmarker tab to run hundreds of walks automatically and see aggregate accuracy, median error, and per-walk statistics on the map.

Benchmark results

All numbers below come from AnumaanSim, so they assume the idealized sensors described above (clean elevation and heading). Read them as a ceiling for comparing approaches against each other, not as field accuracy.

Road localization

The road engine performs well on dense road networks. These runs used a strict trail walk style (paths that never reuse a street segment), a minimum walk distance of 3 km, and randomized Q&A (1 to 4 questions per walk).

Area Accuracy Notes
Clemson, SC 90% Mixed suburban/rural grid
Buffalo, NY 89% Dense urban grid
Bangalore, India 81% Complex junction-heavy layout
Kyiv, Ukraine 91% Wide arterials, river peninsula

The numbers are not 100% because some walks are genuinely ambiguous: two streets of the same length and orientation are hard to tell apart from motion sensors alone.

Clemson road benchmark — 90% accuracy Clemson, SC. 90% of 197 strict-trail walks located to within 13 m median error.

Buffalo road benchmark — 89% accuracy Buffalo, NY. 89% accuracy on a dense urban grid. Red dots show the small cluster of misses near the southern boundary.

Bangalore road benchmark — 81% accuracy Bangalore. 81%. The higher junction density produces more ambiguous walk profiles.

Kyiv road benchmark — 91% accuracy Kyiv. 91%. The river peninsula and wide arterials give very distinct walk profiles.

Off-trail wilderness

The off-trail benchmark generates walks shaped like triangles, squares, rectangles, circles, and zigzags across real terrain at dozens of random placements. The engine tries to match each shape against the cached elevation map.

The Great Smoky Mountains result below shows 54%. The off-trail search covers roughly 89 km² with no prior on where the walk started. When the engine gets it right, it is often within tens of meters on a 3 to 5 km walk using only a phone barometer. When it gets it wrong, the miss lands at a different location at the same elevation with a similar up-and-down profile: a genuine terrain look-alike, not a random guess. This is a known fundamental limitation of TERCOM on repetitive terrain. See "Where this is going" below for how we plan to address it.

Great Smoky Mountains off-trail benchmark — 54% Great Smoky Mountains. 54% of shape walks located. Green outlines are successful localisations; red outlines are misses. The shape leaderboard (right panel) shows which walk shapes performed best on this specific terrain. Self-crossing shapes (star and figure-eight) were universally the worst.


Project layout

ios/               # native Swift app (Navigate, Track, Lost screens)
app/
  sim.py           # benchmark runner, walk generator, off-trail engine dispatch
  terrain.py       # DEM reader, shape walk generator, terrain metrics
  routing.py       # road graph download, walk generator, coverage metrics
  server.py        # FastAPI server for the simulator
  static/sim.html  # simulator UI (MapLibre GL)
  static/vendor/   # MapLibre, pmtiles.js, Protomaps theme (vendored, offline)
data/              # downloaded areas, road graphs, DEM tiles (gitignored)
docs/              # benchmark screenshots

Where this is going

The road case works well enough to be useful. The off-road case is the hard one, and it is where most of the upcoming work is aimed.

The wilderness "Lost" mode

To study what works in the wilderness, we built a "simulate before you go" benchmark in the Map Simulator. You download a park (which caches its elevation tiles), choose Off-trail, and the tool runs the experiment for you. It lays out several walking shapes across the real terrain at many random spots, runs each one through the recovery engine, and reports which shape gets you found most often and how accurately. The best shape is not the same everywhere; it depends on the shape of the land. The idea is that you run this for your park before you go, and learn what to walk if you get lost there.

What we have learned from running it on the Great Smokies and Yosemite:

  • On terrain with real relief, the engine locates a 3 to 5 km walk to within tens of meters, in under a second per walk.
  • But the result is bimodal: dead-on or wrong by kilometers, with little in between. The misses land on a different spot at the same elevation that happens to have the same up-and-down pattern.
  • Changing the walk shape helps at the margin, but it cannot fix a search that has nothing pinning it down.

The real fix is shrinking the set of places the person could be. Three planned approaches, in order of expected impact:

  1. Start from where they were last seen. A lost hiker left a known trailhead or campsite. Search a circle around that point and grow it slowly with elapsed time. This turns a park-wide search into a small, solvable, local one.
  2. Fuse several short walks. Walk a little, narrow the candidates, walk again, narrow further. One walk is the weakest possible input; a handful is far stronger.
  3. Use the compass. An absolute heading rules out matches that only fit if you rotate them. Pinning the orientation removes a whole class of look-alike spots.

Trail maps

Parks are laced with mapped hiking trails and OpenStreetMap already has them. The plan is to treat the trail network the same way we treat roads: download it with the area and snap to it.

If a lost hiker stumbles onto any trail, even without knowing which one, we can pin them to the trail graph and recover their position the same strong way the road engine works. And even off the trails, the nearby trail network shrinks the search. Trail maps are the bridge between the road case that already works and the open-terrain case that is still hard.

Next directions

  • Put this on a robot with a camera: identifying POIs visually should be doable, removing the human Q&A loop entirely.
  • Explore deep sea terrain and build a simulation of the same TERCOM approach underwater.

Notes

  • The off-trail engine requires the release build of AnumaanSim (swift build -c release inside ios/). The debug build is too slow for the DTW search over the full terrain grid.
  • The basemap is a single Protomaps .pmtiles file per area extracted with the pmtiles tool. No tile server, no API key.
  • This is a demonstration and research prototype, not a production navigation system.