Inspiration

Waze for Cities shows governments what's happening on their roads right now. Samsara's Ground Intelligence finds potholes before they damage cars. Neither answers the question that matters most: why do people keep getting hurt at the same intersections?

Roughly a quarter of U.S. traffic deaths happen at intersections, yet a city can only afford to hand-audit a few of them a year. Everything else waits for the next crash. As UF students, we wanted to give back to the Gainesville community with the tool its traffic engineers don't have: one that audits every intersection at once.

What it does

StreetSmart is road intelligence for cities. It investigates all 1,834 major intersections in Gainesville and turns 60,000+ crash records into decisions. It has a few features:

  • Red List: the 10 worst intersections, ranked by crashes above what a similar corner should see. SW Archer Rd & SW 34th St crashes at 4.5 times the rate of comparable intersections, about 36 extra crashes a year.
  • Watch List: intersections that are trending upwards in crash totals per year but aren't on the Red List yet. Information for the city to act on before they make the list.
  • Intersection reports: crash history, road design read from satellite and Street View imagery, the crash types that stand out, and a recommended fix backed by FHWA's published crash reductions.
  • Fix Plan: the fixes with the biggest payoff first, and a path to take them to the city.

How we built it

  • Data: 60,466 Gainesville crashes (dataGNV, 2015 to 2026) linked to 17,596 FDOT police reports by report number, plus OpenStreetMap road features.
  • Gemini as a sensor: Gemini labeled road design at each intersection from satellite and Street View imagery (signals, crosswalks, turn lanes, medians), with "can't tell" as an allowed answer. It matched our hand check 97% of the time.
  • Statistics, not opinions: we ranked intersections with the same method traffic engineers use. A safety performance function predicts expected crashes for a corner's traffic and design, and empirical Bayes estimates the excess: excess crashes = expected crashes (empirical Bayes) − crashes predicted for a similar corner
  • Grounded writing: Gemini wrote each report using only computed facts, with automatic checks that reject invented numbers and causal claims.
  • Stack: Python (pandas, statsmodels), FastAPI, Tiger Data (Postgres), Next.js, Google Maps.

Challenges we ran into

  • Half the city's crash coordinates were placeholders pointing at one downtown spot. We rebuilt every location from state-plane coordinates.
  • Florida's public crash data stops at 2019. We wanted to build for Miami (we're at ShellHacks, after all), but the data was too old to trust, so we built on Gainesville, a city that publishes current data.
  • One intersection had nine different spellings. We had to normalize street names before we could count anything.
  • Road features stopped predicting crashes once we controlled for traffic. We dropped those claims and switched to network screening, an industry-standard method.
  • Picking the idea was its own hackathon. We went through a dozen ideas before 1am, from drowsy-driver detection to hurricane-proof parking, before landing on StreetSmart. Many energy drinks were downed.

Accomplishments that we're proud of

  • The ranking holds up: using only pre-2022 data, StreetSmart flagged 16 of today's 20 worst intersections. Dangerous corners stay dangerous, and the data sees them coming.
  • We found a local fix that worked: after FDOT's 2019 to 2020 Newberry Rd project, crashes at NW 69th Ter dropped about 45% against similar corners. Imagine what a city could do if it could audit every intersection at once: more roads fixed, more lives saved.
  • We shipped it on a few hours of sleep. Four branches, one clean merge, and a working, deployed product at the end.

What we learned

Crashes aren't random. The same corners fail year after year, and the evidence for fixing them already exists. AI works best here as a sensor that turns imagery into data, not as the thing reaching conclusions.

What's next for StreetSmart

  • Run it on every city that publishes crash data.
  • Refresh the Watch List automatically as new crashes come in.
  • Pilot it with City of Gainesville and FDOT traffic engineers?

Built With

Share this project:

Updates

Submission history