Storm Shelter Survive a solar radiation storm on the Moon and Mars, driven by NOAA's live space-weather feed.
Built by team Steel Ball Run: Jaydon, Zach and Johnae.
Inspiration
We all grew up playing Natural Disaster Survival on Roblox, and we wanted to bring that round-based "survive the disaster" feeling to something built on real space data instead of made-up hazards. We also wanted hands-on practice building a full game rather than a dashboard or a form, since a game forces you to turn numbers into something a player feels.
What it does
Storm Shelter is a round-based survival platformer. Each round you get 20 seconds to explore a new Moon or Mars map. Then mission control warns you of a solar radiation storm, and you have to choose a shelter. The close aluminum habitat cuts your dose about in half; the farther water-walled storm shelter does much better. You earn coins for every second you survive. The results screen compares your dose to the 250 mSv single-storm design limit and shows a real fact with its source. The warning and drill voicelines and the sound effects are made with ElevenLabs with the intention to compete in the ElevenLabs sponsor challenge.
The storm level comes from NOAA's live S-scale. When the real sun is quiet, the round is clearly labeled a DRILL; we never fake a live storm. A "What's real vs. tuned?" panel separates real numbers from gameplay values.
How we built it
- TypeScript, React and HTML Canvas, deployed as a static site on GitHub Pages.
- NOAA SWPC (API 1): live S-scale and proton flux, with a saved real reading as an offline fallback.
- ElevenLabs (API 2): 12 mission-control voice lines and 5 sound effects, generated at build time so the API key never reaches the browser. Playback falls back to browser speech, and captions always show.
- A seeded map generator with a reachability check, tested on 400 maps; 23 unit tests in total.
- All art is hand-drawn pixel art by Johnae. No AI-generated images or video.
- AI-assisted code (Claude Code) is documented file by file in docs/AI_USAGE.md.
Challenges we ran into
Keeping to two external APIs with no backend, making radiation math playable without misrepresenting it, and cutting the dust storm so we could ship one disaster well instead of two unfinished ones.
Accomplishments that we're proud of
We're proud that we shipped a fully playable game despite the setbacks along the way, and that every storm round is driven by a real NOAA reading rather than a scripted one. We came away with a much better sense of how much goes into a "simple" browser game. Stuff like map generation, physics, audio, and trying to label what's real versus tuned, all in a day and a half.
What we learned
Real space-weather data is quiet most days, and saying so honestly makes a better game than faking it.
What's next for Storm Shelter
A Mars dust storm built on Opportunity's 2018 power data, a CO2 scrubber failure round, live voiced briefings from each new NOAA reading, and multilingual warnings.
Live demo: https://zacharynguyen001.github.io/Hackathon-Fall-2026/ Repo: https://github.com/ZacharyNguyen001/Hackathon-Fall-2026
Built With
- elevenlabs
- html
- react
- typescript
- vite
Log in or sign up for Devpost to join the conversation.