Inspiration

During natural disasters, emergency responders have to make critical decisions about evacuation routes, shelter allocation, and limited resources, often with very little time. However, a strategy that works for one neighborhood might leave another at a serious disadvantage.

I was particularly interested in how technology could help evaluate these decisions before disasters occur. Most disaster management platforms focus on monitoring hazards and issuing alerts, but I wanted to explore what happens after a disaster begins and how different response strategies influence the outcome.

This inspired me to build CrisisSim, a fairness-aware emergency response simulation platform that focuses not only on saving the greatest number of people, but also on ensuring that vulnerable communities are not overlooked.

Flood metric

What it does

CrisisSim allows users to create, run, visualize, and analyze flood evacuation scenarios in Riverton, a synthetic city.

Users can configure parameters such as rainfall intensity, storm duration, warning time, response budget, shelter capacity, and emergency resources. These inputs define the conditions and constraints of each simulation.

The interactive 3D Command Center visualizes the city's terrain, infrastructure, flood conditions, evacuation routes, and emergency facilities. Simulation metrics track evacuation progress, stranded residents, shelter occupancy, and other outcomes.

Beyond the simulation, CrisisSim includes a City Model for exploring neighborhood characteristics, a Policy Lab for comparing and optimizing response strategies, System Dynamics for investigating how conditions change over time, and Uncertainty Analysis for examining the effects of varying assumptions.

The platform also provides equity analysis, exportable reports, methodology documentation, and customizable visualization settings.

Its central purpose is to help users understand how different emergency response decisions affect safety, efficiency, cost, and fairness.

How I built it

I developed CrisisSim as a full-stack simulation platform, combining an interactive frontend with a Python-based computational backend.

For the frontend, I used HTML, CSS, JavaScript, and Three.js to create the dashboard, interactive 3D city model, simulation controls, and analysis interfaces. The application includes data visualizations, scenario management, configurable map layers, and responsive layouts.

The backend uses Python and FastAPI to connect the interface with the simulation components. I structured the system around several computational models:

  • Flood hydrodynamics: An ANUGA-based numerical modeling approach using the two-dimensional shallow-water equations to represent flood depth and water movement across terrain.
  • Agent-based evacuation: Simulated residents with individual attributes, locations, evacuation states, and behavioral parameters.
  • Dynamic transportation modeling: A road network represented as a graph, with routing influenced by flood conditions, accessibility, and congestion.
  • Emergency resource allocation: Models for shelters, hospitals, ambulances, and rescue boats, incorporating availability and capacity constraints.
  • Multi-objective optimization: A policy optimization architecture using approaches such as NSGA-II to explore trade-offs between evacuation safety, cost, efficiency, and equity.
  • Uncertainty analysis: Monte Carlo simulation methods for examining how outcomes vary across different environmental and behavioral assumptions.

The backend architecture also incorporates tools such as NumPy, SciPy, NetworkX, OR-Tools, and pymoo, alongside persistence and API components.

One of the most important technical challenges was integrating these different systems so that the visualizations, simulation states, and analytical outputs could remain consistent.

The platform uses a synthetic city rather than real-world emergency data, and its numerical accuracy and predictive capabilities require further validation.

Architecture Diagram

Challenges I ran into

One of my biggest challenges was the complexity of connecting multiple simulation systems. Flooding, transportation, evacuation behavior, and resource allocation are interconnected, meaning changes in one component can influence several others.

Developing the 3D city visualization was another challenge. I had to work with terrain geometry, imported 3D assets, coordinate systems, camera positioning, and dynamic visualization layers while keeping the interface understandable.

I also encountered difficulties integrating the frontend with the backend, particularly when translating numerical simulation outputs into spatial visualizations and graphs.

Another important challenge was balancing technical complexity with usability. I wanted CrisisSim to include meaningful computational analysis without overwhelming users with unfamiliar terminology or complicated controls.

Finally, I had to consider the limitations of synthetic data. Building a simulation is different from proving that it accurately predicts real emergencies, so documenting assumptions and identifying areas requiring validation became an important part of the development process.

Accomplishments that I'm proud of

I'm particularly proud of developing CrisisSim independently and bringing together several areas of computer science within one project.

Rather than creating a simple disaster information dashboard, I built a platform that connects an interactive city model with evacuation simulation, emergency response planning, policy comparison, and fairness analysis.

The 3D Command Center is one of my favorite parts because it makes complex spatial information much easier to understand.

I'm also proud of the Policy Lab and equity-focused approach. I wanted the platform to go beyond maximizing overall evacuation numbers and encourage users to consider how emergency decisions affect different communities.

Most importantly, I'm proud of having approached the project as both a technical and social challenge, combining computational modeling with a problem that has meaningful real-world implications.

What I learned

Building CrisisSim taught me how complex real-world systems become when multiple factors interact.

I gained experience with full-stack development, Three.js, backend APIs, numerical modeling concepts, graph-based transportation systems, agent-based simulation, and optimization techniques.

I also learned the importance of reproducibility, testing, and separating computational results from visual presentation. A simulation can look realistic without necessarily being accurate, so understanding and communicating its limitations is essential.

Another major lesson was that optimization is rarely about finding one universally perfect solution. Improving one objective, such as evacuation speed, can introduce trade-offs involving cost, resource availability, or fairness.

Above all, I learned how to break down an ambitious interdisciplinary problem into smaller components and gradually connect them into a coherent platform.

What's next for CRISIS SIM

My next priority is strengthening the platform's numerical verification and end-to-end testing, particularly the integration between flood modeling, evacuation behavior, transportation dynamics, and policy optimization.

I also want to improve simulation performance, expand the range of configurable scenarios, and make the 3D visualizations more detailed and intuitive.

Another important step is validating the modeling assumptions against appropriate reference datasets and benchmarks. This would help establish where the platform's outputs are reliable and where further improvements are necessary.

In the longer term, I hope to expand CrisisSim beyond flooding to support other emergencies, including wildfires, heatwaves, and epidemics, with dedicated models appropriate to each hazard.

I would also like to improve the accessibility of the platform so that students, researchers, and community planners can explore emergency response decisions without requiring extensive technical knowledge.

Ultimately, my vision is to develop CrisisSim into a more rigorous, accessible, and transparent environment for exploring emergency response strategies, with fairness remaining a central consideration throughout its development.

Built With

Share this project:

Updates

Submission history