The Problem
PromptWars Challenge 4 asked for a GenAI solution touching stadium
navigation, crowd management, accessibility, transportation,
sustainability, multilingual support, and operational intelligence
during FIFA World Cup 2026 — for fans, organizers, volunteers, or
venue staff.
That's seven verticals in one sentence. Trying to solve all of them
is how you end up with a shallow app that does nothing well.
Why I Rejected the Obvious Path
Most teams in this challenge will build a fan-facing app — a chatbot
that helps you find your seat, or a navigation assistant. It's the
first idea everyone has, which means the leaderboard will be full of
near-identical submissions competing on polish alone.
I went the other way: build for stadium staff, not fans. A World
Cup venue runs on volunteers and ops staff making fast decisions with
incomplete information — where's the bottleneck, who do we move, in
what language do we tell them. That's a harder, less obvious, and
much less saturated problem. I named it Marshal.
Marshal combines three of the seven verticals — crowd management,
real-time decision support, and multilingual support — and
deliberately ignores the other four (navigation, accessibility,
transportation, sustainability) for this build. Depth over breadth.
Architecture
Marshal runs as a 4-agent pipeline:
- Signal Ingestor — reads live gate density, transit delays, and incident feeds (simulated for this build)
- Situation Analyzer — detects anomalies and classifies severity (LOW/MEDIUM/HIGH) based on how fast a gate is approaching capacity
-
Action Recommender — calls a tool,
checkAlternateGateCapacity(), that checks the real-time density of every other gate and picks the least-congested one, then drafts a concrete staff action - Multilingual Notifier — generates real alert text in English, Spanish, French, and Hindi for staff, plus a simplified version for fan-facing signage
The pipeline is visualized live in the UI — each stage lights up as
it runs, and a reasoning console streams the AI's decision-making in
real time, so a viewer can watch the logic unfold instead of just
seeing a final answer appear.
My Build Process with Antigravity
I built this in 8 sequential prompts rather than one giant spec —
smaller, focused prompts held Antigravity's output closer to what I
actually wanted at each stage.
Prompt 1 scaffolded the 3-panel dashboard and simulated gate-density
generator. This came out clean on the first pass — proper HTML/CSS/JS
separation, a distinctive dark control-room visual theme (glassmorphism,
scanline overlay, amber/cyan glow accents) instead of a generic template.
What broke: After the first few prompts, three real gaps showed up
when I compared the output against what I'd actually asked for:
- The "Simulate Crowd Spike" button had no click listener wired to it — the pipeline was instead running on a random 3-second timer, which meant I had zero control over when a demo-worthy event actually fired.
- The Action Recommender was a hardcoded lookup table
(
{'Gate A': 'Deploy 2 tickets...'}) instead of a real tool call — it gave the same canned advice regardless of what was actually happening at the other gates. - The Multilingual Notifier printed a console line claiming it sent alerts in EN/ES/FR, but never actually generated any translated text.
How I fixed it: I sent three targeted follow-up prompts rather than
re-prompting from scratch — each one named the exact gap:
- Wire a real click handler to the button and force a controllable spike instead of relying on the timer
- Replace the lookup table with a real
checkAlternateGateCapacity()function that reads live gate state and picks the actual least-congested option, with the tool call and its result logged visibly in the console - Generate real 4-language alert text tied to the specific gate and action from that run, displayed in the alert card itself
This iteration loop — build, compare against the original prompt, name
the specific gap, re-prompt — was more reliable than trying to get
everything right in one shot.
Demo Walkthrough
Clicking "Simulate Crowd Spike at Gate 3" triggers the full pipeline:
Gate 3 density jumps to 91%, the Signal Ingestor picks it up, the
Analyzer classifies it as HIGH severity and explains why, the
Recommender calls its tool and finds the least-crowded alternate gate,
and the Notifier pushes a real multilingual alert — all visible in the
console in under 15 seconds.
Quantified Impact
Simulated staff decision latency drops from ~4 minutes of manual radio coordination to under 15 seconds of automated
detection-to-alert time." its a simulated benchmark,
since this is a prototype, not a deployed system.
What I'd Build With More Time
- Real IoT/sensor integration instead of simulated feeds
- A predictive model (forecasting a crowd spike 10+ minutes ahead) rather than a reactive one
- Historical incident data to tune severity thresholds per venue
- Expanding to the accessibility and transportation verticals I deliberately left out of this build
Try It
- Live demo: https://nittensharma16.github.io/marshal-stadium-copilot/*/
- Code: https://github.com/nittensharma16/marshal-stadium-copilot
Built for PromptWars Challenge 4, using Google Antigravity end to end.
Top comments (0)