Crowdsensed mapping after disasters
After a disaster, volunteers walk the area with their phones. Proteus checks every GPS fix against the other volunteers and the pre-disaster map, and keeps only the roads that people could actually travel.
Everything runs in your browser: a JavaScript port of the reference implementation simulates the volunteers, then runs point-wise verification, intersection detection and map combination.
Method
Crowdsensed data is inconsistent: phones are noisy, volunteers wander, and two roads can look connected when they cross at different levels. Proteus never trusts a single trace. Each stage below can be shown on the map above.
The area is divided into cells and volunteers are spread across them. They stay inside their box, keep to the centre of the road, and circle every intersection before choosing an exit.
Algorithm 1 · movement rules 1–4A GPS fix counts only if at least three other volunteers recorded a fix within θ of it, and it lies within θ of a pre-disaster road. Runs of verified fixes become verified edges.
Algorithm 2Circling an intersection leaves a small loop in the combined traces. Proteus looks for those loops and collapses each into one junction, so crossings without a loop, like a footbridge over a road, stay separate.
Algorithms 3–4The old map is cut into short sub-edges. A sub-edge stays only if at least two verified edges agree with it: aligned within ω and overlapping for most of their length.
Algorithms 5–6Results
The paper evaluates Proteus with an agent-based simulation on Downtown Houston, a regular street grid, and the University of Houston campus, a network of curving footpaths. The “x-edge” models need x volunteers to confirm each edge. Three confirmations are the practical minimum; two leave large gaps.
Research directions
Then contact me at rsarbajna@uh.edu. Proteus has so far been tested in simulation, and the projects below move it toward real deployments. Each one starts from code that already exists in the repository.
Code & data
The Python package implements Algorithms 1–6, the volunteer simulator and every experiment in the paper. It runs on real GPS traces as well as simulated ones.
git clone https://github.com/RaunakDune/proteus-implementation cd proteus-implementation && pip install -e ".[analysis]" proteus simulate --grid 6,6,100 --agents 24 --steps 1000 --out sim/ proteus run --map premap.csv --traces traces.csv --out out/
@article{sarbajna2026proteus,
title = {Proteus: A system for combining paths collected using crowdsensing},
author = {Sarbajna, Raunak and Eick, Christoph F. and Ni, Jianyuan},
journal = {GeoInformatica},
volume = {30},
eid = {7},
year = {2026},
doi = {10.1007/s10707-026-00567-1}
}