Inspiration

Kids (and adults) meet rumors every day — "soda dissolves your bones", "goldfish have a 3-second memory". Telling them "check the sources" doesn't work, because fact-checking feels like homework. But courtroom games like Ace Attorney make people love hunting for contradictions in testimony. So we asked: what if the testimony was a real rumor, and the evidence was the real web?

What it does

  • You bring a rumor (pick one or type anything).
  • An AI investigator searches the live web with Tavily and turns real sources into evidence cards (each with a big icon, a kid-friendly one-liner, reliability, and a link to the original page).
  • Your rival — a student debater played by NVIDIA Nemotron — testifies. Exactly one statement hides a flaw: an overgeneralization, a misread source, "some" vs "all", a wrong cause…
  • You Press for details and Present the card that breaks the statement. Or Argue in your own words, and Nemotron judges whether your reasoning really holds.
  • Lose a point and your rival concedes and switches tactics for a second testimony.
  • At the end, a "What's actually true" card gives the verdict (TRUE … FALSE / UNPROVEN), key points each linked to its evidence, and a media-literacy lesson.
  • You can play either side (prosecution = "it's true", defense = "it's false"), in English or Japanese.

How we built it

  • Nebius Token Factory (OpenAI-compatible API), three NVIDIA Nemotron 3 models routed by job:
    • Nemotron 3 Nano — safety check + search planning (3–4 queries incl. one in the rumor's own language), and quick rulings when a player presents a non-intended card.
    • Nemotron 3 Super — evidence clerk: reads the Tavily results and writes structured evidence cards; also judges free-text "Argue" reasoning (valid / weak / invalid, e.g. anecdote ≠ proof).
    • Nemotron 3 Ultra — writes the rival's testimony with exactly one fair, evidence-checkable flaw, and the final verdict.
  • Tavily Search API — search_depth: advanced, parallel queries (fact-check, official/scientific, rumor origin, native language), deduped by URL and ranked by score. Every card keeps its URL; any URL the model invents is dropped server-side.
  • Round 2 is grounded in round 1: the server sends the previous testimony back, and rejects (and regenerates) testimony that reuses the same angle, flaw type or wording (bigram similarity check).
  • Node.js server with zero dependencies, vanilla JS/DOM visual-novel engine, WebAudio + recorded BGM, BudouX for natural Japanese line breaks.
  • Cost guard: disk cache, prefetching, per-IP rate limits and persistent daily/monthly caps on new live cases.

Challenges we ran into

  • Reasoning tokens: Nemotron 3 thinks before answering; with tight max_tokens the content came back empty. We disable thinking via chat_template_kwargs for structured calls and auto-retry with a larger budget.
  • Fair puzzles from live data: an AI that writes a "lie" must make it breakable by exactly one real card — and still accept a different card if it truly contradicts the statement. We combined an intended answer with a Nano judge for alternatives.
  • Spoken, kid-sized lines: early outputs read like academic papers and overflowed the text box. We added length limits per line type and client-side pagination.
  • Making round 2 feel human instead of a replay of round 1.

Accomplishments that we're proud of

  • Any rumor becomes a playable case in about a minute, grounded in real, clickable sources.
  • The game teaches how claims go wrong (overgeneralization, misread sources, anecdote as proof), not just whether they are true.
  • Fully bilingual, with original characters, music and voices.

What we learned

Model routing matters: Nano for many cheap decisions, Super for faithful extraction over long context, Ultra where creative reasoning has to stay consistent with evidence. And search quality decides game quality — Tavily's advanced depth plus multi-angle queries made the difference between vague cards and decisive ones.

What's next

Classroom mode (a teacher picks the rumor, the class plays both sides), more languages, and a shareable "case file" link after each trial.

Built With

Share this project:

Updates

Submission history