Inspiration

Pre-production is where film budgets bleed silently. Before a single frame is shot, line producers, location managers, and indie filmmakers spend dozens of tedious hours cross-referencing script descriptions with physical spaces, hunting down municipal film board portals, calculating generator drops, and verifying night curfew bylaws.

While generative AI has flooded cinema with AI video and automated scriptwriting, almost no one is building tools for the gritty, operational logistics of physical production. Standard LLMs hallucinate non-existent venues, invent fake municipal offices, and provide outdated permit fees. We built CineScout to turn raw screenplay excerpts into actionable, verified, real-world production dossiers in seconds.

What it does

CineScout is an autonomous pre-production scouting agent that transforms creative writing into operational field logistics:

Scene & Spatial Intake: Analyzes screenplay excerpts (from standardized scene headings to messy, unformatted action lines) and extracts environmental parameters, lighting requirements, and technical hurdles.

Targeted Web Retrieval: Dispatches multi-query searches across any target metropolitan or regional market to find rentable filming spaces, film commission lead times, and municipal noise/drone bylaws.

Production Dossier Generation: Synthesizes the live findings into a structured four-part continuity binder:

Venues: At least 3 verified physical location candidates with suitability match percentages, spatial feature tags, and direct booking URLs.

Permits: Governing municipal boards, lead times (e.g., 3–5 business days), commercial fee estimates, and compliance links.

Logistics & Safety: Technical advisories regarding 3-phase power drops, drone airspace clearances, and night noise curfews paired with mitigation steps.

Sources & Telemetry: Full citation transparency with real-time status badges (PARALLEL LIVE, GEMINI LIVE, or SYNTHESIZED).

One-Click Export: Generates an immediate, downloadable Markdown (.md) briefing sheet ready for line producers and crew dispatch.

How we built it

Parallel Search SDK (parallel-web): Serves as the agent’s sensory web engine. Using fast spatial retrieval, the agent dynamically constructs queries with negative constraint filters (-school -diploma -course -academy) to bypass irrelevant web noise and extract grounded, real-time location and permit data.

Google Gemini (google-genai): Powers the core reasoning and schema synthesis engine. We architected a dual-model resilient pipeline:

Primary: gemini-3.7-flash for spatial extraction and complex JSON schema enforcement.

Failover Candidate: gemini-3.1-flash-lite automatically intercepts high-demand spikes (like 503 errors) to prevent session interruptions.

Hard Offline Synthesizer: An offline rule-based parser that handles network drops without crashing.

User Interface: Built with Streamlit, styled with a bespoke "Continuity Binder" aesthetic using hazard-stripe clapper-bars, distinct color-coded badge sheets (green for venues, red for permits, blue for logistics), and live telemetry indicators.

Challenges we ran into

Filtering Search Clutter: General search queries for filming locations frequently return film schools, acting academies, and tourism blogs. We resolved this by implementing strict negative keyword constraints in engine.py and sanitizing unstructured dialogue into clean spatial keywords.

Model 503 High-Demand Spikes: Live agent demos often fail under API rate limits. Designing a multi-model fallback loop that catches model exceptions and drops to gemini-3.1-flash-lite before finally falling back to the simulated dossier guaranteed the UI never breaks.

Strict Structured Output: Enforcing a multi-venue guarantee required refining prompt boundary conditions and JSON fence strippers to ensure the agent returns valid arrays even when live search results for remote regions are sparse.

Accomplishments that we're proud of

Zero Hallucination Grounding: Real venues and actual municipal authorities (such as the Environment Agency in Iceland or KFCB in Kenya) are grounded in live URLs returned via Parallel Search.

High-Stress Robustness: The agent seamlessly handles edge cases—from remote coastal environments like Reykjavik to unstructured scripts lacking sluglines—without breaking JSON structure.

Production-Grade UX: Moving away from generic dark-mode chat boxes in favor of an authentic physical binder aesthetic with live telemetry tracking.

What we learned

Real-time search tools for agents require tight prompt boundaries and aggressive query cleaning; sending raw screenplay dialogue into a search index dilutes search relevance rapidly.

Resiliency engineering (dual-model failover and graceful degradation) is just as critical as prompt design when building production-ready agent workflows.

What's next for CineScout

Call-Sheet & Crew Dispatch Generation: Expanding the dossier to automatically output industry-standard PDF call-sheets based on selected shoot dates and crew sizes.

Budget Estimator: Integrating local rate cards to compute approximate day-rates for location rentals and municipal permits.

Interactive Map Integration: Plotting candidate venues and municipal council boundaries onto interactive GIS mapping layers within the binder view.

Built With

  • gemini-3.5-flash
  • gemini-3.7-flash
  • parallel-sdk
  • pydantic
  • python-dotenv
  • streamlit
Share this project:

Updates

Submission history