TRACE — Intelligent GPS-Loss Reconstruction

Overview

TRACE is a consent-based real-time positioning prototype designed to address a simple but difficult problem:

What happens when GPS suddenly becomes unavailable?

Modern positioning systems often depend heavily on continuous GPS availability. When that signal disappears, a device may lose its ability to determine where it is. TRACE explores a different approach: instead of treating GPS loss as the end of positioning, it uses the last verified location, movement history, and available evidence signals to reconstruct a probable trajectory.

TRACE combines real-time browser geolocation with a probabilistic reconstruction engine and an interactive command-center interface. When GPS is available, the system records actual device coordinates and builds a confirmed movement trail. When GPS becomes unavailable, the confirmed route freezes at the last verified position and TRACE switches into reconstruction mode.

The system then estimates a probable trajectory, displays uncertainty, and allows the reconstruction to be recalculated as evidence changes. When GPS becomes available again, TRACE resumes confirmed tracking and compares the reconstructed state with the recovered GPS position.


The Problem

GPS is powerful, but it is not continuously reliable.

Signal obstruction, indoor environments, urban structures, interference, device conditions, or temporary signal loss can interrupt positioning. A system that simply stops when GPS disappears loses valuable spatial context that was available immediately before the outage.

TRACE explores whether that context can be used to maintain a probabilistic understanding of location rather than producing a binary "GPS available / GPS unavailable" state.

The goal is not to claim exact positioning without GPS. Instead, TRACE communicates:

  • the last verified position
  • the inferred trajectory
  • alternative possible locations
  • confidence
  • uncertainty
  • contributing evidence
  • the eventual recovered GPS position

This makes uncertainty explicit rather than hiding it.


How TRACE Works

The system follows an end-to-end workflow:

Live GPS → Confirmed History → GPS Loss → Evidence Fusion → Trajectory Reconstruction → Uncertainty → GPS Recovery → Validation

1. Live GPS Tracking

TRACE can use the browser's Geolocation API to obtain the device's actual GPS coordinates.

Each valid fix contains location and timing information and is added to the confirmed movement history.

2. GPS Loss Detection

When GPS becomes unavailable, TRACE preserves the final verified GPS position as the reconstruction anchor.

The confirmed route stops at that point.

The interface clearly switches from confirmed tracking to:

RECONSTRUCTION MODE

3. Trajectory Reconstruction

TRACE uses the last confirmed position and recent movement information to estimate where the device could plausibly move next.

The reconstruction engine produces:

  • a predicted location
  • an inferred trajectory
  • alternative candidate trajectories
  • confidence information
  • an uncertainty region

The inferred route is visually separated from confirmed GPS data so that predicted positions are never presented as verified measurements.

4. Evidence Fusion

TRACE supports an evidence-fusion layer representing multiple positioning signals, including:

  • last confirmed GPS position
  • movement kinematics
  • Wi-Fi evidence
  • Bluetooth evidence
  • optical/camera evidence
  • road or network constraints

Evidence can be added or removed during the demonstration. The reconstruction can then be recalculated to show how the estimated location and uncertainty respond to changing evidence.

5. Uncertainty Visualization

Rather than displaying one location as absolute truth, TRACE visualizes uncertainty through:

  • confidence values
  • uncertainty radius
  • probability distributions
  • alternative trajectories
  • spatial uncertainty regions

This makes the limitations of GPS-denied inference visible to the user.

6. GPS Recovery

When GPS becomes available again, TRACE captures the new verified position and resumes the confirmed route.

Previously inferred points remain classified as inferred.

TRACE can then evaluate the difference between the reconstructed position and the recovered GPS position, providing a way to validate the reconstruction rather than assuming it was correct.


Why We Built It

The project was inspired by the gap between continuous tracking systems and the reality that positioning signals are not always available.

Instead of building another conventional GPS visualization, we wanted to explore a more difficult question:

Can a positioning system remain useful even when its strongest sensor temporarily disappears?

This led to the idea of separating verified location from probable location and making the transition between them visible.

That distinction became a central design principle of TRACE.


What We Learned

Building TRACE required us to work across several areas rather than treating the project as only a mapping application.

We learned how to:

  • work with real-time browser geolocation
  • maintain and visualize GPS history
  • distinguish verified measurements from inferred states
  • design a lightweight probabilistic reconstruction workflow
  • combine multiple evidence sources
  • represent uncertainty visually
  • handle GPS-loss and recovery states
  • validate predictions against later GPS observations
  • build an interactive geospatial interface
  • design privacy and consent controls into the system

One important lesson was that uncertainty should be part of the interface, not hidden inside the algorithm.

A predicted location without confidence or evidence can easily be misunderstood as a confirmed location. TRACE therefore makes the distinction explicit throughout the UI.


Technical Architecture

TRACE is built as a web-based interactive system.

Frontend

  • React
  • TypeScript
  • Vite
  • Leaflet
  • Tailwind CSS

The frontend manages live tracking, visualization, reconstruction states, telemetry, scenario controls, and interactive map layers.

Positioning Layer

The browser Geolocation API provides real device location when live mode is enabled.

TRACE stores recent confirmed fixes and uses them as the foundation for reconstruction.

Reconstruction Layer

The reconstruction engine combines the last verified anchor, movement history, evidence constraints, and uncertainty calculations to generate probable trajectories and candidate locations.

Evidence Layer

The evidence-fusion system allows multiple evidence types to contribute to the reconstruction and supports dynamic recalculation when evidence changes.

Validation Layer

When GPS returns, TRACE compares the recovered verified position with the reconstructed state to provide an observable validation step.


Real-Time vs Simulation

TRACE contains both real device functionality and controlled demonstration scenarios.

Real

The following functionality can operate using the user's actual browser/device location:

  • GPS coordinate acquisition
  • GPS movement history
  • confirmed GPS trail
  • last verified GPS anchor
  • GPS-loss state transition
  • reconstruction from the live anchor/history
  • GPS recovery
  • recovered-position validation

Simulated / Demonstration Evidence

The current prototype uses controlled evidence inputs for signals such as:

  • Wi-Fi
  • Bluetooth
  • optical/camera observations
  • selected network/road constraints

These allow the reconstruction behavior to be demonstrated consistently without requiring specialized external hardware.

This separation is intentional: TRACE does not pretend that simulated evidence is real-world sensor data.


Privacy and Consent

TRACE is designed around explicit participation.

The prototype does not attempt to identify or covertly track people.

The system is designed around:

  • explicit location permission
  • consent-based tracking
  • visible tracking state
  • clear GPS-loss indicators
  • separation between verified and inferred locations
  • privacy-conscious session design

The purpose is to explore positioning resilience, not covert surveillance.


Challenges

One of the main engineering challenges was maintaining a strict separation between real GPS data and simulated demonstration data.

A reconstruction system can appear convincing while accidentally falling back to hardcoded coordinates or demonstration data. We therefore added safeguards so that live mode uses the actual live GPS anchor and does not silently substitute a simulated location.

Another challenge was representing probability correctly.

Early versions could display the primary confidence together with alternative branch probabilities in a way that did not represent one normalized distribution. This was corrected so that the displayed sector probabilities form a genuine normalized distribution.

We also had to handle the transition between:

confirmed → inferred → recovered

without incorrectly converting inferred locations into verified GPS observations.


Current Status

TRACE is a functional prototype demonstrating:

  • real-time GPS tracking
  • GPS-loss detection
  • GPS-denied trajectory reconstruction
  • evidence fusion
  • uncertainty visualization
  • dynamic recalculation
  • GPS recovery
  • reconstruction validation
  • privacy and consent controls

The project is intentionally presented as a prototype rather than a production-grade navigation or positioning system.


Future Development

Future versions could extend TRACE with:

  • real Bluetooth evidence collection
  • Android-based Wi-Fi signal integration
  • additional environmental sensors
  • stronger probabilistic motion models
  • map-matching and road-network inference
  • larger-scale trajectory validation datasets
  • real-time device-to-server streaming
  • stronger privacy-preserving distributed architectures

The current prototype establishes the core interaction and reconstruction workflow while keeping the system lightweight and demonstrable.


Project Status

Functional prototype — real-time GPS tracking with GPS-denied trajectory reconstruction.

Built With

Share this project:

Updates

Submission history