SafeWay

An emergency management system where warnings, routes, and rescue tasks update as conditions change.

Inspiration

SafeWay started with a question about flooding in Nepal. Imagine a family receives an alert telling them to leave. A few minutes later, the road they were told to take is flooded, but the old directions are still on their phone. How do they find out what to do next, and how does a responder know they need help?

We built SafeWay so operators, residents, and responders can practice that handoff in the same drill. For our hackathon demo, we used a Houston scenario based on Hurricane Harvey to show what happens when a route closes and everyone needs the updated plan.

What it does

SafeWay runs a multi-person flood-response exercise. The operator starts the Houston / Hurricane Harvey scenario, residents receive written instructions and in-app voice calls, and a responder sees rescue tasks.

When the scenario marks a route unsafe, SafeWay withdraws the old directions, cancels the outdated call, and shows updated rescue or refuge guidance. The responder can acknowledge the new task, and the resident can see that acknowledgment. Participants choose whether to share their location and can remove it through Stop Sharing.

How we built it

  • Node.js and role-scoped APIs keep the operator, resident, and responder views in sync. Each view gets the information and controls for its role.
  • MapLibre and Three.js show the same rising flood surface across Street, Terrain, and 3D views. The water follows the terrain as the exercise progresses.
  • FEMA flood data and USGS elevation give the Houston exercise geographic context. We combined them with cached terrain and an authored scenario that controls what happens and when.
  • WebRTC delivers automatic voice calls inside the app. The app tracks which version of a route each call and acknowledgment belongs to, so it can cancel outdated calls and ignore stale acknowledgments.
  • Playwright covers browser workflows.

Exercise scope. SafeWay is a reproducible emergency-response exercise, not a real-time flood forecast, certified evacuation system, or emergency-dispatch tool. Arrival times, resident movement, route viability, refuges, and scenario progression are authored simulation assumptions. The historical Houston footprint and estimated depths do not establish a calibrated prediction of flood arrival or an approved real-world evacuation route. The local app keeps sessions, shared GPS data, call state, and SOS state in memory. Restarting it clears that state.

Challenges we ran into

  • Rendering water as one continuous surface that follows the terrain across map views.
  • Keeping the map, resident directions, voice calls, and rescue tasks in sync when a route changes.
  • Making sure a delayed call or acknowledgment can’t bring back outdated instructions.
  • Clearly labeling which parts of the exercise come from historical data and which parts we authored.

Accomplishments that we’re proud of

Our favorite moment is what happens after a route closes. The old directions disappear from the resident’s screen, the outdated call is cancelled, a rescue task appears for the responder, and the resident sees when that task is acknowledged. We also built a continuous flood surface across three map views and gave residents a visible way to stop sharing and remove their location.

What we learned

On the operator’s map, a route closure is one update. On the resident’s phone, it can leave behind directions or a call they still think is current. We learned to treat withdrawing old guidance as part of sending the next update.

What’s next for SafeWay

  • Add authentication and privacy-preserving storage.
  • Work with local emergency-management teams to validate response workflows, shelter information, and escalation procedures.
  • Evaluate calibrated flood models for future exercises.
  • Test on mobile devices under varied network conditions and add accessible, multilingual alerts.

Built with
Node.js, MapLibre, Three.js, WebRTC, Playwright

Data sources
FEMA flood data and USGS elevation

Built With

Share this project:

Updates

Submission history