Inspiration

All of us are compelled problem solvers, including in the area of coding problems. We found this project to be rich in algorithmic and problem solving complexity, so we took on the challenge of devising an algorithm of our own to tackle the issue of producing accurate fire escape plans quickly and optimally. Not only did we learn a lot, the app also has a highly practical use case and could ostensibly be used by various consumers.

What it does

The user submits a floor plan or blueprint (well behaved and fully grayscale for now) to the website. Our backend processes the floor plan at a pixel level and splits the building into nodes that loosely resemble rooms using the partitioning algorithm we devised. We then create a graph with these nodes and their coordinate distances to one another. Our backend also devises a list of exit locations from gaps in the provided floor plan, after which a Dijkstra's shortest path algorithm is run on the graph multiple times to determine the closest exit to each room.

How we built it

We split the work four ways: two of us worked on devising and implementing the algorithms and backend, one of us simplified the input images and implemented the exit detection subprocess, and one of us built the website and helped connect the separate components of the application.

Challenges we ran into

It took many iterations to finally perfect the partitioning algorithm, and the exit detection subprocess also took some time to land upon. We also had plenty of debugging issues and difficulties merging separate components.

Accomplishments that we're proud of

We're proud that our partitioning algorithm worked, especially as we hadn't had much faith that the project would be feasible at first. We're also proud that our combined effort has produced a result pretty close to what we had hoped for, even though we were doubtful.

What we learned

We each picked up many technical learnings across the process, such as Tailwind and an actual application of Dijkstra (as opposed to just reading about it). We also improved our teamwork and communication as we collaborated over our separate components and helped each other debug.

What's next for Escape Plan

We hope to flesh out the website further and connect it smoothly, as well as improve the efficiency of our algorithms across the backend. Some of the processes are currently functional but not scalable, and we hope to replace these with consistent versions of the same.

We are grateful for the opportunity and really enjoyed the experience overall. We hope to participate in more hackathons in the future, including this one, and continue to improve our programming journeys!

Built With

Share this project:

Updates