-
-
FastMCP server terminal running mcp-clickhouse on port 8766.
-
Render deployment dashboard showing BACKLOT live service status.
-
Itemized $210,850 USD budget approval modal dialog.
-
Budget page listing itemized production expenses totaling $210,850 USD
-
BACKLOT screenplay input interface for script submission.
-
BACKLOT stripboard showing daily shooting schedules color-coded by time and location.
-
Production package summary scorecard with task completion status and token metrics.
-
Resources view displaying assigned crew members and shoot location details.
-
Idle agent pipeline list before BACKLOT execution starts.
-
BACKLOT production pipeline overview and shooting board.
-
Scene breakdown cards with flagged production risks.
-
BACKLOT execution timeline with 1st-AD Scheduler active.
-
Risk map categorizing flagged hazards for overtime, weather, permits, and continuity.
-
Re-plan loop timeline triggered by schedule and risk flags.
-
Budget Agent calculating studio costs with raw log output.
Inspiration
Film pre-production is a chain of interconnected decisions involving specialized roles: script breakdown, scheduling, budgeting, risk analysis, resource planning, and final approval.
I was inspired by a straightforward question:
What if an AI production crew could handle this complex workflow together instead of asking a single AI assistant to do everything?
I wanted to build a system that could create a production plan, challenge its own decisions, detect problems, dynamically re-plan, demonstrate where its numbers came from, and know precisely when a human should make the final call.
That idea became BACKLOT.
What it does
BACKLOT is an agentic AI production crew that transforms a screenplay into a production-ready plan through a structured workflow:
$$\text{Screenplay} \rightarrow \text{Breakdown} \rightarrow \text{Schedule} \rightarrow \text{Budget} \rightarrow \text{Risk Review} \rightarrow \text{Re-plan} \rightarrow \text{Human Approval} \rightarrow \text{Resources} \rightarrow \text{Production Package}$$
Each agent performs a specialized role:
- Script Supervisor: Breaks down the screenplay into granular elements.
- 1st AD Scheduler: Generates a deterministic shooting schedule.
- Budget Agent: Calculates costs using grounded production data via MCP.
- Risk Agent: Critically evaluates the plan and requests a re-plan if necessary.
- Approval Gate: Puts final budget decisions directly in the producer's hands.
- Resource Agent: Proposes specific production resources following approval.
- Package Assembler: Compiles the complete, final production package.
The core highlight of the architecture is the Risk $\rightarrow$ Re-plan loop. When a serious issue is detected, BACKLOT updates the relevant constraints and executes another planning cycle. To prevent infinite loops, the system features fixed-point detection and a hard limit on planning passes.
How we built it
I built BACKLOT using Gemini and the Google Agent Development Kit (ADK), orchestrated by a custom coordinator.
LLMs are used strategically where qualitative reasoning adds value. Components like the Scheduler, Approval Gate, and Package Assembler run on deterministic logic, while Gemini handles tasks requiring nuanced understanding—such as screenplay analysis, risk assessment, budgeting, and resource selection.
Key Architectural Highlights
- Typed Communication: Agents pass strictly typed Pydantic artifacts rather than bloated conversation transcripts.
- Data Integration: The Budget and Resource agents interface with external data using the Model Context Protocol (MCP) via an mcp-clickhouse server integration. Granular tool filtering controls database permissions per agent.
- Structured Provenance: Values grounded in external data carry source records, while ungrounded values are explicitly flagged rather than presented as absolute facts.
- Full-Stack Implementation: Built with Python, FastAPI, and Uvicorn on the backend, a responsive HTML/CSS/JS frontend, fully containerized via Docker, and deployed publicly.
Challenges we ran into
Building BACKLOT as a solo developer required tackling challenges across every layer of the stack:
- Bounded Autonomous Behavior: To avoid erratic re-planning or endless retries, I combined deterministic scheduling, constrained delta adjustments, fixed-point detection, and capped LLM invocations.
- Schema and Structured Output Errors: Optional fields in the Risk Agent’s output schema initially broke constrained generation within ADK. I diagnosed the schema issue, refactored the design, and introduced regression tests to guarantee output stability.
- MCP Dependency Conflicts: A version mismatch between Google ADK and
mcp-clickhousewas resolved by isolating the MCP server into its own environment and process, establishing clean security and runtime boundaries. - Deployment Constraints: Operating without paid cloud credits, I deployed the public demo on Render's free tier. I designed a dual-mode data system: a lightweight dataset-backed mode for the free public demo and the full ClickHouse/MCP pipeline for local/resource-rich environments.
Accomplishments that we're proud of
I am proud that BACKLOT is an architectural system, not just a set of chained prompts:
- Specialized Agent Roles: True task separation across discrete agents.
- Hybrid Architecture: Deterministic constraint solving paired with generative reasoning.
- Adversarial Evaluation: A dedicated Risk Agent empowered to reject unsafe or unviable plans.
- Self-Correction: A diagnosis-driven, bounded re-planning loop.
- Human-in-the-Loop: An explicit approval gate prior to resource allocation.
- Grounded Transparency: MCP-backed data access with explicit uncertainty markers for missing information.
- Software Rigor: Typed Pydantic contracts and automated unit/integration tests spanning schemas, control flow, grounding, and UI rendering.
Core Design Principle: An AI system should always be able to explain what it knows, what it doesn't know, and why it arrived at a decision.
What we learned
Building BACKLOT was a transformational learning experience.
Prior to this project, I had never built a full-scale application using Gemini or agentic frameworks. I gained hands-on expertise in structuring multi-agent orchestration, handling structured output schemas, and managing production API integrations.
More importantly, it taught me engineering resilience. Debugging multi-agent race conditions, schema misconfigurations, and dependency conflicts reinforced the value of methodical root-cause analysis over quick fixes. I learned how to carefully balance AI reasoning with deterministic control to build predictable, trustworthy software.
What's next for BACKLOT
- Enhanced Operations: Expand into active production planning, including real-world calendars, actor/location availability, and equipment constraints.
- Third-Party Integrations: Connect directly with standard industry production-management software.
- Multimodal Intelligence: Evolve BACKLOT into a multimodal production crew capable of reasoning across visual storyboards, audio cues, script text, and financial ledgers—while keeping human creators in total control.

Log in or sign up for Devpost to join the conversation.