Inspiration

Wildfires, COVID, earthquakes -- every major disaster of the last decade revealed the same failure: not enough information, not enough coordination, too slow. We wanted to explore what AI-assisted response could look like in real time.

What it does

CORAL is an adversarial pandemic simulation. You deploy a virus in one of 8 countries, then mutate it, jump it to new regions, and try to infect 60% of the global population before an AI coordinator develops a vaccine. The coordinator is powered by Gemma 4 running a real-time ReAct reasoning loop -- you watch it think, adapt its strategy, and respond to every move you make. The entire simulation runs in a browser, visualized on a live 3D ArcGIS globe.

How we built it

The backend is a FastAPI server hosted on Railway running an asyncio tick loop where 1 real second equals 1 simulated day. Each tick advances a custom SIR-based spread model across 8 country nodes with border modifiers, mutation mechanics, GDP decay, and vaccine progress. Every 5 ticks a Gemini-powered coordinator agent fires -- it receives a compressed world state as a markdown table, reasons using the ReAct pattern, and returns structured JSON tool calls that dispatch containment and research actions. The coordinator maintains conversation history across cycles so it can observe the effects of its previous decisions. The frontend is a single HTML file using the ArcGIS Maps SDK for JavaScript 5.0 to render a 3D SceneView globe with country nodes that change color and size based on live infection data streamed via SocketIO.

Challenges we ran into

Balancing the simulation mathematics was the primary hurdle. Since I built the spread physics and containment parameters from scratch, early tests heavily favored the virus. I iteratively re-calibrated base transmission rates, mutation probabilities, and GDP recovery equations to ensure a competitive environment.

Accomplishments that we're proud of

I built and deployed my first agentic AI without relying on heavy frameworks like LangChain or LangGraph. Recognizing that a multi-agent approach (one LLM per country) would hit API rate limits and stall the server, I successfully engineered a custom ReAct loop where a single centralized coordinator directs deterministic Python sub-agents.

What we learned

I learned the practical value of strict project scoping. By pivoting away from a complex multi-agent architecture, I successfully built, tested, and deployed every planned feature within the 24-hour time limit, an outcome I had struggled to achieve in previous hackathons.

Built With

Share this project:

Updates