Dev.to AI ๐Ÿค– Ai ๐Ÿ‘ 0 ๐Ÿ“– 3 min read

We built an AI documentary engine that refuses to make things up

It is 1 AM, the essay is due at 9, and you have three tabs open: a YouTube documentary, a Wikipedia page, and a chatbot. All three tell you the same story in the same confident voice. Nobody tells you that the people who

We built an AI documentary engine that refuses to make things up

It is 1 AM, the essay is due at 9, and you have three tabs open: a YouTube documentary, a Wikipedia page, and a chatbot. All three tell you the same story in the same confident voice. Nobody tells you that the people who were there remembered it differently, or that two sources say opposite things.

At HackPrinceton Fall '26, our team of three built Vantage to fix that. You type any event, and it becomes an interactive documentary told from different perspectives, where every line traces back to a real source.

Try it: vantageo.us ยท GitHub

Why we built it

Before building, we surveyed six people at the hackathon. Small sample, but clear signal: all six wanted sources they could open and check, and not one trusted today's content to tell them when sources disagree. That shaped everything.

What it does

  • Perspectives: pick whose eyes to see an event through (the Titanic's crew, third class, the investigators), each with its own narrator voice.
  • Real sources: every claim links to the document it came from.
  • Disagreements, shown: officers testified the Titanic sank in one piece; survivors said she broke in two. Vantage shows both, side by side.
  • Numbers that are computed, not guessed: speed, distance, the moon on a given night, all via Wolfram|Alpha, with a link to the query.
  • A study map after each story: causes, key people, turning points, consequences, and where sources disagree.
  • Four languages, with narration and captions set separately.
  • Off the laptop: continue the story over iMessage, or call a phone number and ask out loud.

Vantage in action

How it works

Grounding first. Every scene is written only from retrieved source passages (ChromaDB). If the sources are silent, the narrator says the record is thin. When we asked about "Rose," it told us there is no Rose in the passenger lists.

Agents that check each other. We used LangChain deepagents: a Director plans each scene and delegates to a Researcher (searches the sources from several perspectives), a Narrator, and a Fact-Checker that runs verify_claim on each claim and looks for contradictions. Here is a real run from our logs. Gemini had hit its limit, so Vantage built the sources from Wikipedia and Grok, then the sub-agents searched from three perspectives, verified three claims, and checked two sources against each other:

Real deepagents trace: Wikipedia and Grok sources, then searches from 3 perspectives, 3 claim checks, and a contradiction check in 58.7s

That is too slow for viewers, so we kept a fast path for playback and treat deep mode as the verified path.

Any topic, even when an API runs out. Gemini with Google Search does live research. When our free quota ran out overnight, Vantage fell back to building a source library from Wikipedia (an LLM turns questions and typos into the right article), while Grok searches the web in the background for primary documents and eyewitness accounts. Every new topic kept working.

Let the right tool do the math. For computable questions, a fast model rewrites the question into one precise Wolfram|Alpha query, and the answer becomes a cited source. The model chooses the question; Wolfram computes the answer.

Same brain, three surfaces. The website (React + Vite, on Vercel), an iMessage agent on Photon, and a phone line: an ElevenLabs voice agent on a Photon number over SIP, calling our FastAPI backend through a webhook. A phone call uses the same sources as the website.

Text the code from the website and the same story continues on iMessage, with questions answered from the sources

What broke (and what we learned)

  • Number ranges confused the calculator. "21-23 knots" was read as 21 minus 23, giving a negative speed. Lesson: clean inputs before handing them to a tool.
  • Free tunnels change address on every restart, which broke the website and the phone agent until we updated both. A stable URL is worth setting up early.
  • Deep agents are slow. Our frontend gave up after 45 seconds while the agents were still verifying. We learned to design for two speeds.
  • The AI really wants to fill gaps. Grounding took more prompt rewrites than any other feature, and it is the reason anyone should trust the output.

The biggest lesson: the best use of AI for us was not having it answer everything. It was having it ask the right question, then handing that question to a tool built for the job.

What's next

Running the Fact-Checker on every scene in the background, a citation export for students, a classroom mode for teachers, and a phone agent that remembers your call when you move to text.

Built by Kashish Khatri, Ria Vadhavkar, and Bhawna Teerth at HackPrinceton Fall '26.

๐Ÿ“ฐ Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes โ€” full credit and traffic to the original publisher.