Inspiration
A friend of mine moved to Nashville. In March 2020, an EF3 tornado tore through her part of the city, damaging hundreds of homes and businesses and killing five people along its path. Afterward she told me the official maps still show a lot of those same streets as low-risk.
That stuck with me. I live in Bellevue, Washington, and when the 2021 heat dome hit, it felt like 115°F at my address. Afterward I couldn't find what had actually happened that week anywhere a normal person would look.
The data exists. The National Weather Service has logged over a million floods, tornadoes and heat waves since 2000. But it's buried in government databases, organized by county, and a lot of flood reports are pinned to the middle of the city instead of the street that actually flooded. So most people never find out what the weather did to their street. Not before they rent, and not before they buy.
I wanted to build the thing I couldn't find: type an address, and see what happened there, how it's changing, and what to do about it.
What it does
You type any US street address and get:
- Your history. Every NWS-recorded event near you since 2000 (we have 1,073,750 of them, all 50 states plus DC), replayed year by year.
- Storm replay. Real NEXRAD radar, one frame every 5 minutes, for the worst flood night near you. Flood reports pop up at the minute they were filed.
- Tornadoes. Every track within 10 km of you, with damage points the AI pulled out of the Weather Service's damage surveys.
- Heat. Your address's own hottest days.
- What's changing. How many 90°F days you got in the 2000s vs the last 10 years, and what climate models expect by the 2040s, with the full range.
- Next 7 days. The official forecast in plain English, what days like that meant at your address before, and what to do.
- Get ready. A short plan based on your street's actual history.
The front page also has six moments the records caught, like the Mayfield tornado, Hurricane Ida in Queens, and the Portland heat dome. Click one and it replays.
How I built it
I built it during the hackathon. It's Next.js, TypeScript and MapLibre on Vercel. A Python pipeline crunches NOAA Storm Events and Iowa State's storm report archive into per-state indexes (98,664 flood reports and 16,479 tornado tracks). When you look up an address, it pulls from the Census geocoder, FEMA flood maps, the NWS API and Open-Meteo, which also provides the climate models.
The part I'm proudest of is the flood detective. A lot of flood reports say something like "water over the road at Main and 5th" but get pinned to city hall. The detective reads the report's words, looks up the streets it names, and moves the pin there. If the words don't name a clear place, it has to say "I don't know."
I really didn't want this to be an AI wrapper, so there's a rule across the whole app: the AI never gets the last word. Claude writes the sentences, then my code checks every one. Every number has to appear in a cited source, every quote has to match word for word, and anything like "you are safe" or "will flood" gets thrown out. If a sentence fails, users never see it.
Did it actually work? (what I measured)
Before running the detective I wrote down the test and what would count as success, so I couldn't move the goalposts later. Then I took 100 fresh flood reports with their true locations hidden.
| 100 fresh reports | Pin as filed | With the detective |
|---|---|---|
| Pins more than 5 km off | 28% | 2% |
| Pins within 1 km | 33% | 16% |
Wrong pins went from 28% to 2% (exact McNemar p = 3e-8). The catch is that it plays it safe, so fewer reports get placed super close. I'd rather it say "I don't know" than send someone to the wrong street.
Other numbers:
- Damage mapper: precision 0.98, recall 0.86 on 5 damage surveys I labelled by hand.
- Sentence checker: 66 of 67 AI sentences passed (98.5%). The one that failed was an overclaim, which is exactly what it should catch.
- A thing that didn't work: I trained my own flood forecaster. It beat the official forecast, but only when I gave it the rain that actually fell (hindsight). Without that, it scored 0.0% better. So I scrapped it and explain the official forecasts instead.
What works and what doesn't
Works
- Any US street address, all 50 states and DC
- Radar replays, tornado tracks, heat history, the climate comparison, and the 7-day view
- The detective cuts wrong pins from 28% to 2%
- The sentence checker catches unsupported AI claims
- Keyboard navigation, reduced motion, and a text version of every animation
Doesn't (yet)
- The detective is cautious. It says "I don't know" on 79% of reports. That's on purpose, but it means a lot of pins don't move.
- The detective only covers some areas. So far it's run in 8 states, and storm reports are indexed for 7. Everywhere else, the page tells you it hasn't run yet.
- The damage mapper test is small. Five surveys, labelled by me.
- You only see floods that got reported. A street with no report could still have flooded.
- Climate models aren't predictions. They run on a grid about 25 km wide and can run hotter than the real record, so I show how much they change instead of their raw numbers. Only 2 of my 10 sample addresses show a statistically clear trend so far, and the page says that honestly.
- I never say climate change caused a specific storm.
- Free APIs have limits. If Open-Meteo throttles me, the app switches to NASA data and tells you.
Challenges
- Getting the AI to admit it doesn't know. An AI that guesses confidently is the worst possible thing for a map. Making "I don't know" an allowed answer, and testing for it, is what made the detective trustworthy.
- Climate models vs reality. The raw model numbers didn't match the real record, and putting them side by side would have been misleading. Figuring out how to show this honestly took way longer than I expected.
- Killing my own forecaster. It hurt, but shipping a model that only looked good with hindsight would have been lying.
What I learned
The hard part of using AI on real public data isn't getting it to answer. It's getting it to stop when it shouldn't. Adding a code check after the AI changed how much I trusted the whole app.
What's next
- Run the detective across the whole country and test it on a much bigger sample.
- Test the damage mapper properly.
- Add "was this climate change?" notes, but only where actual published science backs them up.
I used AI coding tools to help build this, and Claude runs the AI features in the app. Everything was built during ForgeHacks (Oct 7–10, 2026).
Built With
- anthropic-api
- census-geocoder
- claude
- cmip6
- fema
- maplibre
- nasa-power
- national-weather-service
- nexrad
- next.js
- noaa
- open-meteo
- python
- react
- typescript
- vercel

Log in or sign up for Devpost to join the conversation.