Inspiration

When boarding an elevator, have you noticed a sign that says something along the lines of "in the event of a fire, please take the stairs?" These signs left us thinking about what an evacuation is like for people in wheelchairs or with other disabilities that make taking the stairs difficult. Evacuation routes tend to make ableist assumptions about what is and is not a possible route to take. Even the detailed floor plan of the Fuqua School of Business can leave visitors overwhelmed when trying to find an evacuation route that meets their needs. We were inspired to create a website to help people with disabilities find their way around large buildings in the event of an emergency.

What it does

EvacMap gets insight into your location from location tracking or manual text input and uses reverse geolocation to determine the building that you are currently in. It then prompts users to select accessibility options and the emergency event from two drop-downs. EvacMap pulls an appropriate floor plan from a database for the user's detected building and analyzes it to determine the optimal evacuation path for the user. It displays a 3D floorplan of the building by layering several floor plans together and uses pathfinding to generate a labeled evacuation route and set of human-friendly instructions that can be followed in an emergency. These instructions can vary on the location of the user in the building as well as the type of emergency.

How we built it

We built EvacMap on a Node.js/Express backend which integrates external APIs (Nominatim for reverse geocoding, Overpass for indoor mapping) and MongoDB for data storage. We were able to design a program to convert annotated floor plan images into GeoJSON and used a pathfinding algorithm to compute evacuation routes. The frontend, developed in HTML, CSS, and JavaScript, and Three.js using Mapbox GL JS, displays these routes on an interactive floor plan.

Challenges we ran into

The project started out really smooth for us, but we encountered significant challenges in converting and annotating floor plan images into GeoJSON files. The pathfinding algorithm was also difficult to accomplish because we needed to process floor plan images to add nodes and walls for the pathfinding. Making the 3D floor plan interactive was challenging as well, but it was not as hard as the first two problems that I mentioned.

Accomplishments that we're proud of

We are happy that we were able to get an iteration of this web app up and running within 24 hours. Going into this project, we knew it would be very ambitious as we are both new to web app development, but we think that we executed pretty well and were able to support each other throughout the journey.

What we learned

Pathfinding algorithms were definitely a new concept for us. One of the team members had a game dev background, but creating a pathfinding algorithm from a PNG image is extremely tedious and requires precise annotation. We also had to test after nearly every little change to the project, which surprised us because we naively expected different parts of the program to work well together.

What's next for EvacMap

EvacMap has the potential to become a widely accessible app, but it needs to be given larger datasets of floorplans to work with. Currently, there are no nationwide or even regionwide datasets that contain images of floorplans for any category of large buildings, such as airports, hospitals, and government buildings. By gaining access to these datasets, this application will be able to generate evacuation routes for countless buildings, fulfilling its goal of providing accessible routes for anyone at anytime. Additionally, future iterations of EvacMap will also be deployable as mobile applications. Because mobile devices are widely used, having EvacMap as a phone app is more convenient than relying solely on a web app.

Share this project:

Updates