Inspiration
Every school has a fire evacuation plan, and almost every one is written for the same imaginary person: someone who hears the alarm, reads the exit signs and takes the stairs. Real buildings are full of people that plan doesn't fit. A student in a wheelchair gets sent to an exit with steps. A deaf student never hears the alarm, let alone the warden. Someone freezes. A visitor only knows the door they came in by.
Nobody finds these gaps until a real fire, because you can't run a fire to test a plan. We wanted a way to test it anyway, and to make the answer as easy as asking Alexa.
What it does
CampusEvac puts the building on Alexa, for two kinds of question.
"Which way out?" You tell Alexa once what you need ("I'm Sam, I use a wheelchair, I'm usually in the library"). Alexa checks before saving it, because it's health information. From then on, every route Alexa gives Sam is step-free, avoids the fire and the thickest smoke, and uses compass directions and the actual signs on the doors, never "turn left", because in smoke nobody knows which way they're facing.
"What if?" Ask "what happens if a fire starts in the library?" and CampusEvac runs a full simulated drill. Every person in it is an AI agent that knows only its own room, the signs it can see and what it hears, while an AI warden tries to direct them. About four minutes later Alexa's light turns yellow, and it tells you who got out, who didn't, and why: "Gus is deaf and never heard the order."
Then you can ask "would flashing fire alarms help?" and it reruns the same drill, same fire, same people in the same places, with only the fix changed. Sometimes the honest answer is no, and that's worth knowing before you spend money on it.
How we built it
- Alexa+: a self-hosted MCP server (protocol 2025-11-25, Streamable HTTP) with 12 tools: routes, smoke forecasts, whole-building evacuation plans, personal evacuation plans, and drills. Long drills can also run as MCP Tasks, so an assistant never has to wait on one.
- The simulated Alexa+: an Echo-style web page with voice in, a Strands Agents agent that answers by calling our MCP server exactly as Alexa+ would, and Amazon Polly for the voice.
- The drill engine: every evacuee is an NVIDIA Nemotron agent on Nebius Token Factory. The AI warden reads the building's sensors and gives orders by name. The same engine runs on screen in our Crowd Lab, with a scorecard against the six ways people die in fires.
- AWS: DynamoDB keeps drill results and personal plans, AppSync Events powers two-player drill rooms, SES emails drill reports, and the CDK sets it all up. The app is Next.js, deployed on Vercel.
Challenges we ran into
- Drills take minutes, and voice can't wait. We split them into "start" and "ask me later", with the ring turning yellow when one's done, and also offered them as proper MCP Tasks.
- Running a 3D simulation without a screen. The drill engine was built for the browser, so we taught it to run on the server: the warden reads sensors instead of a camera, and people walk a map built from the wall plan.
- Keeping the agent honest. Early on it would say "let me check that" without actually calling the tool. We had to be explicit: if you say it, do it.
- Production surprises. The site's security settings quietly blocked the microphone and the voice audio, but only on the live site. And a lockfile written on Windows broke our install on Linux CI. Both are fixed.
Accomplishments that we're proud of
- A wheelchair user's route that automatically skips the stepped fire exit, without anyone having to ask for it.
- Drills that name real people and real reasons, not just a percentage.
- Fix comparisons that are fair (same seed, same people, same places) and honest even when the fix doesn't work.
What we learned
The hardest part of evacuation isn't the map, it's the people. Most failures came from someone not hearing, not seeing or not being able to use a route, and plans almost never write those people in. We also learned that a voice assistant needs different design than a screen: short answers, no left or right, and never leaving someone waiting.
What's next for CampusEvac
- Upload your own floor plan instead of using our demo campus.
- Run each drill many times and show the range of outcomes, not one run.
- Connect it to a real Alexa+ device, and to real occupancy sensors.
- Pilot it with a school safety team on their own building.
CampusEvac is a training and planning tool, not live emergency guidance. Everyone in the drills is simulated.
Built With
- alexa-plus
- amazon-dynamodb
- amazon-polly
- amazon-ses
- aws-appsync
- aws-cdk
- mcp
- model-context-protocol
- nebius
- next.js
- nvidia-nemotron
- react
- strands-agents
- three.js
- typescript
Log in or sign up for Devpost to join the conversation.