Inspiration
Challenge 2 asks for a tool that identifies Team USA hometown hubs by correlating geography with the sports Team USA is present in. I wanted to build an analyst-style experience that looked at where Olympians and Paralympians are from, not just medals or podium results.
The goal was to make Olympic and Paralympic representation visible in one shared map, using hometown geography to help surface regional patterns that could guide better scouting, outreach, and youth-program questions.
What it does
The Hometown Success Engine maps 5,119 Olympians and Paralympians from Tokyo 2020 through Milan-Cortina 2026 across 40 hometown hubs.
The signature feature is Gemini Live voice interaction. Users can speak naturally to Gemini and have it control the map: select hubs, open states, highlight Paralympic Hot Spots, answer rankings, compare places, explain the dots and layers, focus hometowns, and reset the view.
The app also includes typed Gemini chat with the same full engine context, tool schema, ranking logic, sport aliases, hometown lookup, Hot Spot rules, climate context, and safety rules.
How we built it
The frontend is a Vite + TypeScript Web Component using Google Maps and deck.gl for the state, hub, and hometown point layers.
The backend is FastAPI on Cloud Run. It serves hub data, sanitized public athlete map points, aggregate hometown data, state summaries, Gemini chat, and Gemini Live voice through a WebSocket.
Gemini is connected to deterministic tools like select_hub, select_state, filter_to_paralympic, focus_hometown, highlight_hubs, explain_map, explain_engine, and query_data. Tool results are computed from runtime data first, then Gemini explains them.
Challenges we ran into
The hardest part was making Gemini reliable enough for natural testing. A question like “What state has the highest Paralympic share?” has to choose the right metric, apply the right ranking universe, move the map to the right state, and explain the result without inventing anything.
I also had to keep the visible map, state panels, hub panels, constellation dots, Gemini text, and Gemini voice responses aligned to the same data.
Accomplishments that we're proud of
- Built a live Google Cloud hosted interactive map.
- Mapped 5,119 Olympians and Paralympians across 40 hometown hubs.
- Added 10 Paralympic Hot Spots using a deterministic 7.5% threshold.
- Built Gemini chat and Gemini Live voice interactions that can control the map.
- Added exact ranking, middle ranking, sport ranking, hometown lookup, comparison, and map-literacy support.
- Hardened the public deployment so the app uses aggregate/sanitized data and does not expose athlete names or sensitive local files.
What we learned
Gemini works best here when it translates natural language into structured tool calls, while the backend computes the exact facts. That pattern made the system more accurate, more explainable, and better suited to live demos.
I also learned that voice needs a different UX than chat. Chat can be detailed. Voice needs to be concise, map-first, and grounded.
What's next for Hometown Success Engine
- Add more sport-specific analytics and timeline views.
- Add export workflows for hub and state summaries.
- Add stronger accessibility controls for map layers and color modes.
- Expand the data pipeline as new public roster and hometown facts become available.
- Continue improving Gemini Live conversational follow-ups and direct map narration.
Built With
- cloud-run
- deck.gl
- fastapi
- firebase
- gemini
- github
- google-maps
- open-meteo-forecast
- powershell
- pydantic
- python
- typescript
- vite
Log in or sign up for Devpost to join the conversation.