Skip to content
IBM - 1st Place

Eyeline — Autonomous On-Set Continuity Copilot

Autonomous multimodal continuity copilot for film script supervisors: catches prop, wardrobe, and blocking breaks in the 2-minute on-set window, backed by Gemini 3.8 Flash adjudication and Veo 3.1.

Core trick

Compares two camera takes pixel-by-pixel to isolate differences, then sends only flagged regions to a Gemini model to judge intentional versus accidental continuity breaks.

Tags

Built with

gemini-3.8-flashgoogle-cloudgoogle-veoibm-bobopencvvertex-ai

Description

1. Inspiration: The 2-Minute On-Set Window On any professional film production, a script supervisor sits beside the director with a physical binder, Polaroid/iPad reference photos, and stopwatches, tracking hundreds of micro-details across coverage: Did the actor pick up the glass with their left hand or right? How much liquid was left in the mug at line 4? Was the jacket lapel flipped before the reverse-shot coverage? Between "Cut!" and "Moving on!", the script supervisor has a narrow 2-minute window while lighting and cameras reset. If a continuity defect escapes that window and the production wraps, the standing set is struck. A pickup day costs $18,000–$30,000 in crew labour alone for a lean 25–35 person crew (needacrew, 2026), and an average studio day runs to ~$500,000 (Careers in Film). Eyeline moves verification into the 2-minute window between takes, while the set is still standing. Eyeline was built to solve this exact bottleneck: an autonomous, real-time continuity copilot that ingests camera takes side-by-side, deterministically isolates physical pixel discrepancies in sub-100ms, adjudicates intentional creative choices vs. accidental defects with Gemini 3.8 Flash, and generates synthetic B-roll cutaway pickups with Google Cloud Veo 3.1 if an unresolved defect is caught post-strike. 2. What Eyeline Does: The Strict 3-Pillar Architecture Eyeline operates under a bounded 3-pillar ceiling engineered specifically to comply with hackathon Rule 7.B (strictly Google Cloud Gemini & Veo on Vertex AI, zero third-party off-the-shelf object detectors like YOLO or SAM): 🏛️ Pillar 1: Deterministic Alignment & Delta Isolation (Classical CV) Zero Black-Box Detection : Uses classical computer vision under permissive licenses ( opencv-python-headless , scikit-image ). Exposure & Geometry Normalization : Converts frames to YCrCb space for histogram and illumination equalization; extracts ORB features with RANSAC homography estimation to register camera perspectives. Delta Masking & Contiguity Clustering : Employs multi-channel maximum difference masking and morphologic opening to isolate physical candidate regions while suppressing border edge-warp artifacts. Runs in ~25–85ms on CPU. 🧠 Pillar 2: Multimodal Continuity Adjudication (Google ADK & Gemini 3.8 Flash) The Discriminative Filter : Classical difference masks are easily tripped by intentional variations (camera pans, focal length zooms, dramatic key light dims, actor performance timing). Agentic Adjudication : Orchestrated via Google ADK ( google.adk.agents.Agent ) and Vertex AI gemini-3.8-flash . Receives high-resolution cropped candidate patches alongside take metadata, scene beat descriptions, and camera logs. Empirical Impact : On our 16 paired negative control setups, Gemini retracted 4 out of 7 classical false alarms with 0 regressions , dropping the control false alarm rate from 43.8% down to 18.8% while retaining 100% of defect detections (15/16 recall). 🎬 Pillar 3: Generative Emergency Pickup Tool (Google Cloud Veo 3.1) Post-Strike Safety Net : If an unscripted continuity break is discovered in the editing room after the physical set has been dismantled, Eyeline activates Pillar 3. Veo 3.1 Synthesis : Generates 4.0-to-6.0-second broadcast-ready macro insert B-roll (e.g., wall clocks, establishing props, environmental inserts) tailored to the scene's color temperature and lighting. Mandatory Disclosure Watermark : Every frame is burned with a visible, tamper-resistant SYNTHETIC CONTINUITY INSERT * VEO 3.1 watermark badge, providing ethical compliance and editorial clarity. 3. How We Built It & IBM Bob Provenance Substantive modular components of Eyeline were authored under the IBM Partner Track using IBM Bob in headless execution mode. Transcripts for all 8 development tasks are permanently preserved in .bob-transcripts/ as verifiable proof of development provenance: Task # Subsystem Cost Cap Actual Spend Provenance Transcript 1 Visual Diff UI Shell & Fixture Player 3.0 1.61 Bobcoins .bob-transcripts/task1-ui.json 2 Ground-Truth Schema & Pydantic Loader 2.0 1.56 Bobcoins .bob-transcripts/task2-schema.json 3 Classical CV Alignment & Diff Engine 4.0 2.03 Bobcoins .bob-transcripts/task3-vision.json 4 Pillar 2 Multimodal Adjudicator & Runner 3.5 2.46 Bobcoins .bob-transcripts/task4-adjudicator.json 5 Empirical Evaluation & Scoring Harness 2.0 1.61 Bobcoins .bob-transcripts/task5-scorer.json 6 Pillar 3 Veo Generative Cutaway Generator 4.0 2.14 Bobcoins .bob-transcripts/task6-veo.json 7 Benchmark Evaluation Runner CLI 2.5 1.55 Bobcoins .bob-transcripts/task7-runner.json 8 Anti-Circularity Forcing Functions 3.0 1.88 Bobcoins .bob-transcripts/task8-forcing-functions.json TOTAL 24.0 14.84 Bobcoins 35.16 Bobcoins Remaining 4. Empirical Evaluation & Honest Scientific Metrics We adhere to a strict Zero-Hallucination Policy : all benchmark numbers are generated directly from physical media evaluation via bench/run_benchmark.py and bench/sync_state.py . The 32-Pair Benchmark Dataset Balanced Protocol : 16 Defect Take Pairs + 16 Negative Control Pairs across 4 distinct scene templates (Diner, Office, Kitchen, Interrogation Room). Physical Media : 64 rendered H.264 MP4 video clips (CRF 18) with realistic motion, grain, and lighting shifts. Negative Control Rigor : Mandatory control pairs with intentional artistic changes (1.5-stop lighting dims, camera angle pans, focal zooms, dialogue pauses, color LUT grades) to measure discriminative power and prevent threshold gaming. Measured Empirical Scoreboard Metric Measured Value Formula Interpretation Defect Detection Recall 15 / 16 = 93.8% $TP / P$ 15 of 16 seeded physical defects caught. Spatial Localisation 6 / 16 = 37.5% $IoU \ge 0.3$ Classical CV isolates exact pixel-delta sliver. Control FPR (Pillar 1 CV) 7 / 16 = 43.8% $FP / C$ Classical delta isolation on intentional camera/lighting changes. Control FPR (Gemini 3.8 Adjudicated) 3 / 16 = 18.8% $FP_{\text{adj}} / C$ -25.0 pp reduction (4 false alarms retracted, 0 regressions). False Passes (Escapes) 1 / 16 $FN = P - TP$ Escaped defect: pair_007 (hair/makeup line). Statistical Disclosure (McNemar Paired Test) Across the paired 16 negative controls evaluated before and after Gemini 3.8 Flash adjudication: 4 controls retracted, 0 newly tripped (one-sided exact McNemar $p = 0.0625$, $n=16$). The direction is unambiguous: Gemini fixed 4 false alarms and broke none. At $n=16$, the empirical 95% confidence interval is $[4.0\%, 45.6\%]$. Spatial Localisation ($IoU \ge 0.3$) Explained In 10 of 16 defect pairs, the detector candidate bounding box is 93.1% to 100% contained inside the ground-truth region ( Inter / Pred_Area $\approx 1.0$). The standard IoU metric falls below 0.3 because ground-truth boxes annotate the entire semantic entity (e.g. full actor body for blocking or full face for makeup), whereas classical CV isolates the exact displaced edge or delta sliver ($\text{Area} {\text{delta}} \ll \text{Area} {\text{entity}}$). 5. Challenges We Overcame RANSAC Homography on Negative Controls : Camera angle pans and focal length zooms naturally produce perspective warp errors along frame boundaries. We engineered border-suppression margins and multi-band difference thresholds to prevent edge shear from creating artificial candidate clusters. Rule 7.B Permitted Model Ceiling : Because off-the-shelf object detectors (YOLO, GroundingDINO, SAM) are strictly barred, we relied entirely on classical computer vision for initial sub-100ms candidate bounding box generation, handing off cropped candidate regions to Gemini 3.8 Flash for semantic adjudication. Veo 3.1 Duration & Ingestion Handshake : The Veo 3.1 API enforces even duration constraints ( duration_seconds in (4, 6, 8) ). We authored a resilient SDK wrapper that downloads generated MP4 streams and burns the disclosure watermark frame-by-frame using OpenCV and ffmpeg. 6. Zero-Credential Offline Guarantee Judges can inspect and test Eyeline with zero API keys and zero cloud configuration : git clone https://github.com/helenkwok/eyeline.git cd eyeline # 1. Validate the 32-pair ground-truth benchmark python3 -m bench.loader # 2. Run the classical CV detector across all 64 real video clips python3 -m bench.run_benchmark # 3. Launch the On-Set Review Station & Judge Index python3 -m http.server 8080 -d ui/ # Open http://localhost:8080/ in your browser # Open http://localhost:8080/judge.html for the receipts and live presets 7. Links & Live Deployment Live Google Cloud Run Review Station : https://eyeline-akewulk3vq-uc.a.run.app/ Live Judge Portal (30-Second Path) : https://eyeline-akewulk3vq-uc.a.run.app/judge.html GitHub Repository : helenkwok/eyeline YouTube Demo Video (1080p Walkthrough) : https://youtu.be/T6W_apEthdA Docker Image : eyeline:latest (built on nginx:alpine for Google Cloud Run) Provenance Transcripts : Preserved in .bob-transcripts/ (Tasks 1–8)
helenkwok/eyeline★ 00 forksPythonApache-2.0Created Sep 8, 2026 · last push Sep 9, 2026

README excerpt

# Eyeline: Autonomous On-Set Continuity Copilot

> **Eyeline catches physical continuity breaks while the set is still standing, so a break costs one more take instead of a pickup day — $18,000–$30,000 in crew labour alone for a lean 25–35 person crew (needacrew, 2026), up to ~$500,000 for a studio day (Careers in Film).**

Built for the **Agentic Cinema Hackathon** (**IBM Partner Track**) combining **IBM Bob**, **Google ADK (`google-adk`)**, **Google Cloud Agent Builder**, **Gemini 3.8 Flash**, and **Google Cloud Veo 3.1**.

[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
[![Devpost](https://img.shields.io/badge/Devpost-Submission_Page-003E54.svg?logo=devpost&logoColor=white)](https://devpost.com/software/eyeline-autonomous-on-set-continuity-copilot)
[![YouTube Demo](https://img.shields.io/badge/YouTube-2--Min_Demo-FF0000.svg?logo=youtube&logoColor=white)](https://youtu.be/T6W_apEthdA)
[![Live Cloud Run](https://img.shields.io/badge/Live_Demo-Cloud_Run-34A853.svg)](https://eyeline-akewulk3vq-uc.a.run.app/)
[![Judge Portal](https://img.shields.io/badge/Judge_Portal-Live_Receipts-F59E0B.svg)](https://eyeline-akewulk3vq-uc.a.run.app/judge.html)
[![Models](https://img.shields.io/badge/Models-Gemini_3.8_Flash_%2B_Veo_3.1-4285F4.svg)](docs/ARCHITECTURE.md)
[![IBM Bob Provenance](https://img.shields.io/badge/IBM_Bob-14.84_Coins_Spent-052FAD.svg)](.bob-transcripts/)

---

## 🌐 Live Zero-Install Deployment (Google Cloud Run)

Hackathon judges can immed

Team