Where am I
No sessionStart / resume
Planned route
Map (offline, no tiles needed)
Next best fix
Automatic (phone sensors)
Counts your steps and reads your heading. Hold the phone flat in front of you, top pointing where you walk. The navigator learns your stride and compass error from every fix.
Stride calibration
Manual leg (compass + pace count)
Sight a known point with the camera
Point the camera at a known landmark. Green markers show where known points SHOULD be from the current estimate. Tap the landmark itself. Two or more landmarks about 60–120° apart give a position. One landmark plus a range also works.
Range by known height
Resection from collected sightings
Calibrate
Compass: center the crosshair on the Sun (use a filter, or just its glare edge) or on Polaris, then press. Field of view: tap two known points in one frame from a known position.
Polaris — latitude & true north
Star / Sun fix
Sky now (from current estimate)
Add a known point
Share & sync
Known points on this device
Every input and what the navigator did with it
Self-test (runs on this device, offline)
Recomputes 38 U.S. Naval Observatory almanac values and known-answer geometry checks. Full measured results: docs/navcore/PROOF.md; server copy: /api/navcore/selftest.
How this navigator works
One estimate of where you are, with an honest error ellipse. Walking moves it and grows the ellipse. Every sighting of a known point, every star or Polaris line, and every map/terrain fix pulls it toward the truth and shrinks the ellipse, weighted by how good that observation is. It also learns your compass error and your stride length from those fixes. If an observation doesn't fit, it's rejected and shown in the Log. It is never silently accepted. The navigator never resets itself; only an operator can, and that is logged too.
Evidence labels: OBSERVED = a real measurement reduced by the math below. MODELED = dead reckoning only, no fix yet. SYNTHETIC = demo data, never used here.
API for other systems: /api/navcore/contract · Source: shared/navcore/ · Docs: docs/navcore/README.md