Team USA Hometown Constellation
Inspiration
When fans watch Team USA compete, they see the finished product on the global stage. But every Olympian and Paralympian begins their journey in a local community. We wanted to connect fans to the LA28 Games by showing them the "hometown constellations"—the local ecosystems, climates, and cultures in their own backyards that forge elite talent.
Furthermore, we noticed that Paralympic pipelines are often less visible to the general public than Olympic ones. Our inspiration was to build a fan-centric experience that treats Olympic and Paralympic data with absolute analytical parity, celebrating adaptive sports hubs (like Birmingham's Wheelchair Rugby ecosystem) with the exact same prestige as traditional Olympic hubs.
What it does
Team USA Hometown Constellation is an interactive, fan-facing platform that maps the aggregate momentum and hometown signals of Team USA across 17 major U.S. hubs on the road to the LA28 Games.
Strictly adhering to athlete Name, Image, and Likeness (NIL) protections, the platform never focuses on individuals. Instead, it uses aggregate 2024 roster data to generate a dynamic, city-level pulse.
- Dynamic Hometown Narratives: It uses Gemini to analyze a city’s climate, geography, and aggregate sport data to explain why a region excels at certain sports.
- LA28 Momentum Scores: It calculates descriptive momentum indicators for sports in each hub based on local roster weight, recent placement data, and LA28 Games relevance.
- Parity Snapshots: Every city receives an AI-driven "Parity Snapshot" that evaluates the balance of Olympic and Paralympic data, ensuring adaptive sports are actively surfaced to fans.
How we built it
We built a highly scalable, stateless backend using FastAPI deployed entirely on Google Cloud Run. The brain of the application is the Google GenAI SDK, utilizing the gemini-2.5-flash model for high-speed logic and narrative generation.
System Architecture
[ Web Frontend (Vite/React) ]
│
▼ (RESTful HTTPS)
[ Google Cloud Run (FastAPI Container) ]
│
├──> Data Layer: In-memory store initialized via public CSV (hometown_hubs.csv)
│ (Contains aggregate roster counts, climate data, region tags)
│
└──> AI Layer: Google GenAI SDK (gemini-2.5-flash)
├──> Dynamic Narrative Generation (Startup/Cache)
└──> Momentum Analyst Logic (Runtime)
Code Example: Data-Grounded Gemini Integration
To ensure the AI respects NIL constraints and avoids hallucinations, we inject strict public aggregate data directly into the Gemini prompt via our data_store.py. We explicitly forbid medal predictions and cliché AI phrasing:
# From app/services/data_store.py
from google import genai
import os
# Authenticated securely via Google Cloud Run Secret Manager
client = genai.Client()
prompt = (
f"You are an expert local sports storyteller writing for a fan app. "
f"Write a 2 to 3 sentence engaging narrative about {city}, {state}'s contribution to Team USA. "
f"This area produced {o_count} Olympic and {p_count} Paralympic roster entries in sports like {sports}. "
f"The local climate is {climate} with features like {landscape}. "
f"Explain exactly how the daily environment, community culture, and geography naturally shape the athletes who train here. "
f"Make it sound like a deeply knowledgeable human journalist wrote it. "
f"CRITICAL CONSTRAINTS: "
f"1. Do NOT use cliché AI filler words like 'boasting', 'nestled', 'tapestry', 'testament'. "
f"2. Do not mention individual athlete names (NIL protection). "
f"3. Do not mention medal predictions or outcomes, focus only on the training culture."
)
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=prompt
)
self._rows[hub_id]["narrative"] = response.text.strip()
Challenges we ran into
- Storytelling without NIL: The biggest challenge was writing compelling sports content without relying on the most common crutch: famous athlete names and specific finish times. We overcame this by using Gemini to reason about geography and culture—having the AI explain how Seattle's waterways breed elite rowers, or how Colorado Springs' altitude impacts endurance.
- Cloud Run Synchronicity: Initially, calling the GenAI SDK asynchronously caused FastAPI's event loop to hang when generating data for all 17 hubs simultaneously. We solved this by refactoring our Cloud Run endpoints to run synchronously, allowing FastAPI to successfully manage the AI requests in a background thread pool.
- Paralympic Visibility: Raw data volume naturally skews toward Olympic sports. We had to engineer a custom algorithmic pipeline (the
ApiParitySnapshot) that explicitly scans for Paralympic identifiers (e.g., Wheelchair Basketball, Paratriathlon) and forces the UI to render them with equal weight.
Accomplishments that we're proud of
- 100% Rule Compliance: We successfully built a deeply engaging, deeply personalized sports application that completely respects all IOC/USOPC branding restrictions, strictly uses official sport terminology, and relies entirely on safe, aggregate public data without a single NIL violation.
- Meaningful AI Integration: We didn't just bolt a chatbot onto an app. We used Gemini as a data enrichment engine to turn static CSV rows of aggregate numbers into living, breathing cultural insights about American cities.
- Google Cloud Native: Securing our Gemini API keys using Google Cloud Secret Manager and deploying a containerized architecture that boots instantly and scales effortlessly on Cloud Run.
What we learned
We learned that constraints breed creativity. By being barred from using specific athlete names and scores, we had to lean heavily into Gemini's contextual reasoning capabilities. We learned how to write strict, highly parameterized prompts that force LLMs to output structured, constraint-abiding text (avoiding filler words, preventing hallucinations). We also gained deep experience orchestrating the new unified google-genai SDK within a Cloud Run deployment pipeline.
What's next for Team USA Hometown Constellation
- Winter Sports Integration: Ingesting open-source NOAA weather data to dynamically track winter sport momentum (like Snowboarding and Alpine Skiing) as we look ahead to the Olympic Winter Games Milano Cortina 2026.
- Live Public News Pulse: Using Gemini to ingest public, open-source news headlines and generate a daily "momentum brief" for each sport in a given city, keeping fans engaged daily leading up to the LA28 Games.

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