Inspiration

Pet creators rarely have a shortage of footage. They have the opposite problem: thousands of clips, spread across years and folders, whose most meaningful patterns are hard to remember. Ordinary AI brainstorming starts with a prompt and invents ideas that may not exist in the archive. We wanted the creator's own library—not a blank text box—to be the source of truth.

What it does

Dodo Story Discovery is an AI Story Discovery / Producer Agent for pet creators. It connects to an existing catalog of 7,476 video records and uses a bounded set of 14 packaged storyboard contact sheets for the hackathon MVP.

The workflow has two collaborating roles. The Librarian Agent inspects the storyboard evidence and metadata, recording only observable facts, useful story signals, and defensible source ranges. The Producer Agent combines that evidence ledger with the creator's goal, preferred tone, target duration, and prior feedback. It returns grounded story options, concise voiceover, and a shot plan in which every scene cites a real asset ID and exact in/out time.

The creator remains in control. They can approve, request revision, or reject a story and add a note. That decision is stored in Firestore and supplied to the Producer on the next run, so the partner learns how the creator wants the archive shaped without silently publishing anything.

How we built it

The React/Vite interface and Node server run together on Google Cloud Run. The server calls Gemini 3.5 Flash through Vertex AI with the Google GenAI SDK. One model call acts as the Librarian and produces the evidence ledger; a second call acts as the Producer and makes editorial decisions from that ledger. Firestore stores persistent creator feedback. The repository includes a Dockerfile, reproducible setup instructions, architecture diagram, and deployment evidence.

The public judging URL reports the active provider, model, Google agent framework, workflow, and memory service at /api/health. On August 30 we verified the deployed workflow end-to-end: live Gemini analyzed the 14 storyboards, incorporated a saved Firestore preference, and generated two multi-clip stories with voiceover-backed shot plans.

Challenges we ran into

The hardest problem was grounding. A fluent story is not useful if its payoff does not exist in the source footage. We therefore separated observation from interpretation, validate asset IDs against the catalog, clamp time ranges to real clip durations, and reject generated stories that do not contain at least three scenes and two evidence assets.

We also had to be precise about scale. The connected catalog contains 7,476 records, while this affordable MVP analyzes 14 packaged contact sheets per run. The interface states both numbers explicitly instead of implying that every source binary is reprocessed on every click.

Accomplishments that we're proud of

  • The product starts from an existing library, with no upload-first detour.
  • Every proposed VO line is reviewable beside its exact source clip and time range.
  • The Librarian/Producer split makes the agent workflow visible and auditable.
  • Firestore turns one-off generation into an ongoing creator partnership.
  • The deployed version uses real Gemini 3.5 output; fallback content is clearly labeled if the model is unavailable.

What we learned

For creator tools, collaboration is less about generating more text and more about preserving evidence, uncertainty, and editorial control. A useful producer should be able to say why a story is supported, where each shot comes from, and what it learned from the creator's last decision.

What's next

After the hackathon, the Librarian can incrementally process new footage through Pub/Sub, store richer long-term behavior timelines, and retrieve across the full archive. The Producer can then compare patterns over months while preserving the same evidence contract and human approval step.

Built with

Gemini 3.5 Flash, Vertex AI, Google GenAI SDK, Google Cloud Run, Firestore, React, Vite, Node.js.

Links

Built With

  • firestore
  • gemini-3.5-flash
  • google-cloud-run
  • google-genai-sdk
  • node.js
  • react
  • vertex-ai
  • vite
Share this project:

Updates