Inspiration
We live in an era of information overload—but a shortage of good judgment. While modern tools help us calculate faster and build quicker, very few help us practice thinking well: navigating ambiguity, weighing trade-offs, and anticipating consequences. We were inspired by the idea of a Cognitive Gym—a place where you don’t train muscles, but judgment. Instead of solving puzzles with correct answers, users confront dilemmas with no right choice, only better or worse reasoning. Our goal was to move beyond simple “A vs. B” decision tools and build something different: a system where AI doesn’t give answers, but actively challenges how you think. Dilemmathon gamifies the development of logic, empathy, and foresight through lived decision-making.
What it does
Dilemmathon is a React-based application that generates personalized, high-stakes dilemmas and simulates the downstream consequences of your choices. Rather than asking “What would you do?”, it asks: “What happens because you did?”
Core Features
Personalized Dilemma Generation: Using Gemini 3 Pro, the app generates dilemmas adapted to a user’s background (age, profession, education). A scenario designed for a student looks fundamentally different from one designed for an executive.
Visual Immersion: Each dilemma is accompanied by dynamically generated, comic-style panels using Gemini 2.5 Flash Image, helping users emotionally and visually engage with the situation.
Socratic AI Advisor: A real-time chat assistant powered by Gemini 3 Flash that refuses to give answers. Instead, it asks targeted questions to surface assumptions, risks, and ethical trade-offs.
Multi-Agent Jury Evaluation: After a decision is made, the system simulates three independent evaluators:
- The Pragmatist (outcomes and efficiency)
- The Ethicist (values and harm)
- The Skeptic (blind spots and unintended effects)
- Butterfly Effect Timeline: The app projects a branching timeline of consequences, showing how small decisions compound into long-term outcomes.
How we built it
Frontend
Dilemmathon’s frontend is built with React 19 and TypeScript, featuring a futuristic, glassmorphic interface designed with Tailwind CSS and animated using Framer Motion.
Hybrid Gemini Architecture
At the core of the system is a hybrid Gemini architecture designed to balance reasoning depth, responsiveness, and API quota efficiency.
Deep Reasoning Layer
We use gemini-3-pro-preview with thinkingConfig enabled for tasks that require long-horizon reasoning, including:
Dilemma construction
Multi-agent jury evaluation
Long-term consequence simulation
All outputs are constrained by strict JSON schemas, ensuring seamless mapping to TypeScript interfaces on the frontend.
Low-Latency Interaction Layer
For real-time interactions, we rely on gemini-3-flash-preview to handle:
Socratic dialogue
Scenario validation
Fast, iterative user feedback
This separation significantly reduces latency while preserving Pro-model quota for high-value reasoning tasks.
Data Visualization
We use Recharts to render the Cognitive Footprint radar chart, visualizing a user’s reasoning profile—logic, empathy, and foresight—against an aggregate baseline.
Gemini 3 "Wow" Features
Thought Signatures: We persist Gemini’s human-readable thought signatures between turns, allowing the system to maintain a consistent internal logic and moral framing across a session. Users can see how their reasoning profile evolves after each dilemma.
Long-Context Reasoning: By feeding the user’s last 10 decisions back into the prompt, the system detects recurring patterns and biases (e.g., short-term optimization) and adapts future dilemmas to directly challenge them.
Challenges we faced
Quota & Rate Limits: Gemini 3 Pro’s deep reasoning is powerful but expensive. Early versions hit rate limits and failed unpredictably. We solved this by implementing a hybrid routing strategy and exponential backoff for Pro-level calls.
Designing True Ambiguity: Most models are trained to be “helpful” and decisive. We had to carefully prompt Gemini to generate dilemmas with no objectively correct answer and to evaluate choices without moralizing.
Structured Output Reliability: Generating deeply nested JSON (jury responses, timelines, scores) was non-trivial. The new
responseSchemasupport in the Google GenAI SDK was essential for enforcing type safety at generation time.
Accomplishments we're proud of
The Cognitive Audit Experience: Watching your decision dissected by competing perspectives while your reasoning profile updates in real time makes abstract thinking skills tangible.
Meaningful Deep Reasoning Control: Toggling
thinkingConfigon and off produces a noticeable difference in analysis depth—making Gemini’s reasoning budget a real, user-visible feature.Visual Storytelling Integration: Combining AI-generated imagery with decision mechanics transforms the experience from a text prompt into an interactive graphic narrative.
What we learned
Latency Can Be a Feature: By surfacing system states like “Simulating consequences…” or “Convening jury…”, wait time becomes suspense instead of friction.
Schemas Are Non-Negotiable: Strong TypeScript interfaces mapped directly to AI response schemas dramatically improve reliability and developer velocity.
Context Drives Growth: Feeding prior decisions back into the model creates a true training loop—where the system targets how the user thinks, not just what they choose.
What's next for Dilemmathon
Visual Scenario Generation: As generative media advances, dilemmas will be introduced through short cinematic clips or comic-style image sequences, making stakes and context immediately tangible.
Voice Debate Mode: Integrate the Gemini Live API so users can verbally argue with the Jury in real time.
Stateful Campaigns: Decisions made early will permanently alter future dilemmas and constraints.
Multiplayer Consensus Mode: Small groups must agree on a single decision under time pressure, with AI analysis of negotiation dynamics and power balance.
Built With
- framer-motion
- gemini-2.5-flash-image
- gemini-3-flash-preview
- gemini-3-pro-preview
- google-genai-skd
- local-storage
- lucide-react
- react
- recharts
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.