Inspiration

The inspiration for CivicGuard / EmberGuard was the urgent need to address the critical latency in wildfire disaster response, where the delay between detecting a fire and issuing evacuation orders can determine community survival. By focusing on automating the synthesis of complex incident data, we aimed to compress the critical window between situational awareness and public action.

What it does

CivicGuard / EmberGuard is a high-automation emergency management platform that bridges the gap between real-time geospatial data and public communication, compressing disaster response latency from hours to seconds. By leveraging a Flask backend to invoke the Claude 3.5 Sonnet model, the system synthesizes context-aware, multi-language evacuation orders based on fire severity ($S$) and location ($L$), while providing an interactive console that allows emergency managers to visualize, review, and release these alerts through a unified interface.

How we built it

The project utilizes a full-stack architecture that deeply integrates Geographic Information Systems (GIS) with modern web technologies. The backend relies on the Flask framework and SQLAlchemy to manage a SQLite database for alert persistence, while the core intelligence is powered by the Anthropic API to automate content generation. The frontend employs Leaflet.js to build an interactive map, overlaying custom SVG layers to dynamically render real-time fire perimeters and road closure status

Challenges we ran into

The primary technical obstacle was maintaining interface fluidity when handling dense geospatial data, which we resolved by optimizing render logic via requestAnimationFrame to prevent UI thread blocking. Furthermore, because real-time data from external ArcGIS services often extended beyond our target exercise area, we implemented robust fallback logic to ensure the system maintained a professional and accurate visual presentation regardless of the data complexity

Accomplishments that we're proud of

Our most significant achievement was realizing sub-second generation times for multi-language alerts, which vastly improves the efficiency and consistency of the traditional manual alert-drafting process. Simultaneously, we successfully created a cohesive decision-support system that seamlessly unifies complex ArcGIS public service data with an intuitive "Public Warning Composer," providing a valuable blueprint for building responsive emergency tools.

What we learned

Through this project, we gained technical mastery over the dynamic rendering of GeoJSON data in browser environments and significantly improved our ability to design Flask-to-LLM pipelines, particularly in structuring prompts to ensure alert accuracy. Additionally, we deepened our understanding of asynchronous data fetching and state management, which are essential when building complex, high-responsiveness applications that rely on multiple external API sources.

What's next for CivicGuard

Looking ahead, we plan to further harden the architecture by integrating official Common Alerting Protocol (CAP) gateways to enable real-world alert distribution and full-cycle verification. We also aim to incorporate real-time atmospheric sensor data to provide more precise fire-spread trajectory predictions and introduce a "human-in-the-loop" decision mechanism, allowing operators to select from multiple AI-proposed evacuation paths based on live traffic feedback

Built With

Share this project:

Updates