Inspiration

Navigation apps always show the fastest routes — but never the safest ones. In a city like Waterloo, factors such as crime rates, bike thefts, poorly lit streets, or even nearby 911 calls should matter just as much as ETA. That’s why we built Luma — a real-time safety companion that guides you along the safest walking paths and lights the way home.

What it does

Luma helps you find the safest walking paths by combining real-time updates with historical safety data. It factors in recent 911 calls, police reports, crime hotspots, traffic and speed cameras (higher likeliness of responsible driving), poorly lit areas, and past theft or collision records. By weighing these inputs (and adjusting their importance based on context like time of day) these paths avoid risky streets and guides you on routes that prioritize safety as much as speed. Hourly cron jobs update our MongoDB with the latest data sources to maintain accurate, up-to-date crime information.

Using voice commands processed by Vapi Assistants, Luma can:

*Recommend the safest path for walking, biking, driving, or transit *Warn you of risks ahead (i.e. “This street had two bike thefts last night, want me to reroute?”) *Adapt paths to time and context (i.e. a path is safe at 2pm, risky at midnight) *Highlight nearby safety infrastructure (well-lit streets, CCTV coverage, speed cameras, emergency phones) *Provide hands-free navigation instructions so you never need to look down at your phone

Think Google Maps — but designed for safety.

How we built it

How we built it: *Voice Assistant: Integrated the Vapi API to deliver low-latency, two-way voice interaction. Context is managed through a system prompt that ensures the assistant responds in a calm, reassuring, and precise manner. Goal is to assist users in a hands free matter, so that their eyes are up and aware of their surroundings.

  • Backend (Python, CSVs, APIs): Aggregates and normalizes APIs, Waterloo Regional Police datasets, city of Kitchener Datasets and web scaping historical and live data
  • Database (MongoDB Atlas): Stores incidents by type (theft, harassment, poor lighting, accidents, etc.) with timestamps and geo-coordinates for fast querying onto MapBox. *Weighted pathfinding algorithms: uses historical data for predictive safety scoring and real-time data for dynamic route adjustments *Frontend (Mapbox, HTML/CSS, Live Location): Designed an intuitive UI that lets users compare the safest and fastest paths, interact with the Luma voice assistant, view speed and red-light cameras, and see recent crime locations in real time.

Challenges we ran into

  • Data chaos: Safety information comes in many forms — from structured police reports to casual social posts like “my bike’s gone lol.” We had to normalize and aggregate data from multiple sources and formats into something usable.
  • Pathfinding performance: We needed low-latency calculations so that safety-aware routes could be generated in real time without slowing down navigation.
  • Voice experience: Warning someone about risk is sensitive — we had to experiment with different voice assistants to find a tone that felt natural, calm, and reassuring.

Accomplishments that we're proud of

  • A working, low-latency pipeline: reliable data → risk scoring → path finding + voice navigation
  • High accuracy: live data for recency + historic data for pattern finding (i.e. Kind Street West has high crime)
  • Built a voice assistant that delivers guidance in a supportive and user-friendly manner.

What we learned

  • How to extend pathfinding algorithms with custom heuristics.
  • Learned a lot about using different tools that we have never used before like Mapbox, Warp, Vapi...
  • A lot about time management and collaboration. Each of us came in with a different set of skillset such as hardware and frontend but we were able to find a common ground and decided to work on whats best.

What's next for Luma

Machine Vision Dashcam Pipeline:

  • Use YOLOv8 + MobileNet deployed on mounted phones/dashcams to detect unsafe road/sidewalk conditions, unreported construction, blocked sidewalks, unlit roads in real time.
  • Each detection is geotagged and versioned in PostGIS for spatial queries.

Weather-Aware Safety Graph:

  • Integrate OpenWeather API + Environment Canada feeds for dynamic path scoring.
  • Routes dynamically adjust weights based on real-time hazards (icy sidewalks increase edge cost by 2x, flood-prone zones get blacklisted).

Campus + Community:

  • Specialized models trained on university datasets and open them to more cities and universities like University of Toronto (crime logs, shuttle routes, building hours) to deliver student-centric features. Example: “Safest route to Shawarma Plus that’s still open after midnight.”

Crowdsourced Trust System:

  • Incident reports weighted by user reputation scoring (similar to StackOverflow trust models).

Built With

Share this project:

Updates