A newer version of the Gradio SDK is available: 6.20.0
title: The Podium
emoji: π―
colorFrom: indigo
colorTo: purple
sdk: gradio
sdk_version: 5.20.0
python_version: '3.11'
app_file: app.py
pinned: false
tags:
- thousand-token-wood
- game
- debate
- llm
- gradio
- interactive
- track:wood
- achievement:offbrand
license: mit
The Podium
A strategic LLM debate game β Hugging Face "Build Small" hackathon entry.
You are the strategist, not the debater. Manage a finite word pool, pick your champion's archetype, play ability cards, and coach an AI debater through 3 rounds judged by wildly opinionated AI characters β each with their own agenda, biases, and scoring personality. Every word you choose costs something. Every judge changes the calculus. Outsmart the opponent AI, read the room, and claim The Podium.
Built with a custom Gradio HTML/JS hybrid UI (Off Brand badge candidate).
Demo
π¬ Demo video: The Podium Demo
π£ Social post: LinkedIn post
How to Play
- Setup β A word pool is generated with a hidden flavor seed. Choose your debater's archetype (Firebrand, Academic, Contrarianβ¦). Receive 3 ability cards.
- Each Round β A topic is revealed along with a biased judge. Pick words from your pool and set their emphasis order. Optionally play an ability card.
- The Podium β Both AI debaters argue their assigned sides using your chosen words. The judge scores on coherence, persuasion, word integration, and judge appeal β in their own character's voice.
- Win 2 of 3 rounds (or most total points) to claim The Podium.
Tech Stack
| Component | Technology |
|---|---|
| UI | Gradio 5.x with custom HTML/JS hybrid |
| Language | Python 3.11 |
| LLM (submission) | google/gemma-4-31B-it via HF Inference API |
| LLM (dev) | Claude Sonnet (Anthropic) |
| Deployment | Hugging Face Spaces |
Running Locally
pip install -r requirements.txt
cp .env.example .env
# Edit .env β set LLM_PROVIDER and the matching API key/token
python app.py
Environment variables:
| Variable | Required for |
|---|---|
LLM_PROVIDER |
hf (HF Spaces) or anthropic (dev) |
HF_TOKEN |
HF Inference API (when LLM_PROVIDER=hf) |
ANTHROPIC_API_KEY |
Dev/local only (when LLM_PROVIDER=anthropic) |
Headless / terminal mode (for prompt testing):
python engine.py
Provider Switching
The game runs against any LLM via a single env var β no code changes needed:
LLM_PROVIDER |
Model | Setup |
|---|---|---|
hf |
google/gemma-4-31B-it via HF Inference API | Set HF_TOKEN |
anthropic |
Claude Sonnet (dev only) | Set ANTHROPIC_API_KEY |
File Structure
app.py # Gradio UI β no game logic
engine.py # Pure-Python game engine β testable headless
llm.py # Provider abstraction (HF Inference / Anthropic)
prompts.py # All LLM prompt templates
content.py # Static content: judges, archetypes, abilities, seed words
config.py # Tunables and feature toggles
Archetypes
| Archetype | Style | Judge Effect |
|---|---|---|
| π₯ The Firebrand | Emotional, punchy | +persuasion, -coherence |
| π The Academic | Precise, structured | +coherence, -appeal w/ personality judges |
| π§’ The Everyman | Plainspoken | No modifiers (safe pick) |
| βοΈ The Contrarian | Flips expectations | Bonus when arguing the harder side |
| β¨ The Charmer | Witty, disarming | +appeal with personality judges only |
Ability Cards
Echo π Β· Wildcard π Β· Hoard π¦ Β· Scramble π Β· Plant π± Β· Silence π€« Β· Appeal βοΈ Β· Bias π― Β· Inspiration π‘
Built for the Hugging Face "Build Small" hackathon. Open-weight model β€ 32B parameters.