<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shantanu</title>
    <description>The latest articles on DEV Community by Shantanu (@shantanudevx01).</description>
    <link>https://dev.to/shantanudevx01</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4103230%2F5a2fbc0e-ce85-4473-81b5-727891f3e0a8.png</url>
      <title>DEV Community: Shantanu</title>
      <link>https://dev.to/shantanudevx01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shantanudevx01"/>
    <language>en</language>
    <item>
      <title>How I Built an Autonomous Event Media Director with Google Cloud &amp; GEAP — Solo in 7 Days</title>
      <dc:creator>Shantanu</dc:creator>
      <pubDate>Mon, 31 Aug 2026 20:06:40 +0000</pubDate>
      <link>https://dev.to/shantanudevx01/how-i-built-an-autonomous-event-media-director-with-google-cloud-geap-solo-in-7-days-3kl1</link>
      <guid>https://dev.to/shantanudevx01/how-i-built-an-autonomous-event-media-director-with-google-cloud-geap-solo-in-7-days-3kl1</guid>
      <description>&lt;p&gt;&lt;em&gt;I created this piece of content for the purposes of entering the All Things Agentic Hackathon (#AllThingsAgenticHackathon).&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5,000 Wedding Photos, Five Agents, Zero Chat Windows — and When Coverage Is Missing, the Agents Task the Humans
&lt;/h2&gt;




&lt;h2&gt;
  
  
  1. The Friction: The Group Chat Graveyard
&lt;/h2&gt;

&lt;p&gt;Every major event suffers the same failure mode: photos scattered across hundreds of phones, a lossy group chat dump, weeks of &lt;em&gt;"can someone send me that one photo?"&lt;/em&gt;, and the hosts waiting months for official edits.&lt;/p&gt;

&lt;p&gt;More cloud storage never solved this because the bottleneck is &lt;strong&gt;direction and routing, not capacity&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At a 500-guest wedding, thousands of photos are captured, yet intimate moments — like the groom's mother during the vows — are often missed entirely because nobody is coordinating 500 amateur photographers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Showrunner&lt;/strong&gt; flips the paradigm using the &lt;strong&gt;Gemini Enterprise Agent Platform (GEAP)&lt;/strong&gt;: guests scan a QR code, an autonomous agent fleet classifies, protects, and routes media in real time, and &lt;strong&gt;when coverage gaps emerge, the control plane issues live photo bounties to guests' phones.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Architecture: Data Plane vs. Goal-Driven Control Plane
&lt;/h2&gt;

&lt;p&gt;The architecture splits high-throughput ingestion from goal-seeking reasoning, secured by continuous governance policies.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────────────────────────────────────────────────────────┐
│                             SHOWRUNNER ARCHITECTURE                              │
├─────────────────────────┬──────────────────────────────┬─────────────────────────┤
│    DATA PLANE (Push)    │     CONTROL PLANE (Goal)     │     GOVERNANCE RAIL     │
│                         │                              │                         │
│ Phones ➔ Direct GCS     │ Cloud Scheduler (2-min tick) │ GEAP Model Armor        │
│ ➔ Eventarc Intake      │ ➔ Per-Event Lease Engine    │ • recompute_visibility  │
│ ➔ Cloud Tasks Queues   │ ➔ Story Director (GEAP/ADK) │ • Consent Ring Policy   │
│ ➔ Perception Workers:  │ ➔ Reel Director (GEAP/ADK)   │ • Deny-All Face Vaults  │
│   • Curator (Gemini)   │ ➔ Beat-Snapped Render Engine │                         │
│   • Face (InsightONNX) │                              │                         │
│   • Safety (Guardian)  │                              │                         │
├─────────────────────────┴──────────────────────────────┴─────────────────────────┤
│                        FIRESTORE (System of Record)                              │
│                + GEAP MEMORY BANK (Advisory Narrative Memory)                    │
└──────────────────────────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The Photo Pipeline — p50 ≈ 5s to Kiosk-Ready
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Direct Ingestion:&lt;/strong&gt;&lt;br&gt;
Client devices upload raw bytes straight to Cloud Storage via signed URLs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Eventarc &amp;amp; Intake:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;GCS object.finalized&lt;/code&gt; triggers image processing, EXIF stripping, WebP derivation, and rate-limited Cloud Tasks dispatch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Perception Workers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Curator Worker (&lt;code&gt;gemini-3.5-flash-lite&lt;/code&gt;)&lt;/strong&gt; — Evaluates aesthetic quality, tags moments, and runs Bayesian stage posterior fusion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Face Worker (InsightFace ONNX)&lt;/strong&gt; — Extracts 512-d embeddings for VIP cosine matching and cluster indexing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safety Worker (The Guardian)&lt;/strong&gt; — Two-tier gate combining Cloud Vision SafeSearch with a Gemini-powered dignity evaluation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Deterministic Gate:&lt;/strong&gt;&lt;br&gt;
An atomic &lt;code&gt;recompute_visibility&lt;/code&gt; policy evaluates consent rings and aesthetic thresholds before routing to public kiosks or private guest albums.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. The 2-Minute Director Loop (ADK + &lt;code&gt;gemini-3.7-flash&lt;/code&gt;)
&lt;/h2&gt;

&lt;p&gt;Rather than passively waiting for user prompts, the &lt;strong&gt;Story Director&lt;/strong&gt; executes on an autonomous cadence powered by Google's &lt;strong&gt;Agent Development Kit (ADK)&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Settle &amp;amp; Expire
&lt;/h3&gt;

&lt;p&gt;Validates completed photo bounties transactionally and flags timed-out tasks as permanent coverage gaps.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Stage Arming
&lt;/h3&gt;

&lt;p&gt;Automatically arms mandatory shot lists when a new event stage begins.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Ledger Computation
&lt;/h3&gt;

&lt;p&gt;Computes an &lt;strong&gt;O(1) coverage matrix&lt;/strong&gt; across VIPs and active timeline moments.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Reason &amp;amp; Plan
&lt;/h3&gt;

&lt;p&gt;A GEAP &lt;code&gt;LlmAgent&lt;/code&gt; using &lt;code&gt;gemini-3.7-flash&lt;/code&gt; reasons over the ledger state and returns a structured &lt;code&gt;DirectorPlan&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Act
&lt;/h3&gt;

&lt;p&gt;The system enforces hard guardrails — &lt;strong&gt;≤ 2 bounties/tick&lt;/strong&gt; and &lt;strong&gt;point clamping &lt;code&gt;[50, 300]&lt;/code&gt;&lt;/strong&gt; — before pushing live bounty notifications to guest devices.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Memory Architecture: GEAP Memory Bank &amp;amp; Isolation
&lt;/h2&gt;

&lt;p&gt;Managing multi-day event state requires strict separation between deterministic transactions and soft context.&lt;/p&gt;

&lt;h3&gt;
  
  
  System of Record — Firestore
&lt;/h3&gt;

&lt;p&gt;Tracks strict operational state, media records, and a rolling 10-tick history.&lt;/p&gt;

&lt;p&gt;Overflow ticks are compacted via deterministic arithmetic string parsing rather than LLM summarization, guaranteeing &lt;strong&gt;zero context drift&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  GEAP Memory Bank — Long-Term Narrative Memory
&lt;/h3&gt;

&lt;p&gt;Stores advisory narrative context across sessions, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Host stylistic preferences: &lt;code&gt;{eventId}:host&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;World context: &lt;code&gt;{eventId}:world&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Stage diary memos: &lt;code&gt;{eventId}:diary:{stageId}&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Memory Bank enriches planning prompts &lt;strong&gt;without ever directly gating point payouts or visibility decisions&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Private Biometric Vaults
&lt;/h3&gt;

&lt;p&gt;Face embeddings and private taste profiles reside in isolated subcollections guarded by &lt;strong&gt;deny-all security rules&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Agent Fleet Breakdown
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;Engine&lt;/th&gt;
&lt;th&gt;Why It's an Agent&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Curator&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Perception&lt;/td&gt;
&lt;td&gt;&lt;code&gt;gemini-3.5-flash-lite&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Evaluates emotional/cultural context against dynamic glossaries.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Guardian&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Governance&lt;/td&gt;
&lt;td&gt;Vision API + Gemini&lt;/td&gt;
&lt;td&gt;Makes contextual dignity decisions, e.g. ritual tears vs. distress.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Face Indexer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ML Worker&lt;/td&gt;
&lt;td&gt;InsightFace ONNX&lt;/td&gt;
&lt;td&gt;Deterministic 512-d embeddings. Strictly an ML worker, not an LLM agent.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Story Director&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Orchestration&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gemini-3.7-flash&lt;/code&gt; (ADK)&lt;/td&gt;
&lt;td&gt;Goal-seeking planner operating a closed observe-reason-act loop.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Reel Director&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Creative Production&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gemini-3.7-flash&lt;/code&gt; + Critic&lt;/td&gt;
&lt;td&gt;Generates Edit Decision Lists (EDLs) and self-corrects video pacing.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  6. Multi-Model Ecosystem
&lt;/h2&gt;

&lt;p&gt;Showrunner leverages specialized Google AI models across the production pipeline:&lt;/p&gt;

&lt;h3&gt;
  
  
  Lyria 3 — Dynamic Soundtracks
&lt;/h3&gt;

&lt;p&gt;Generates tailored music tracks based on the narrative brief.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;librosa&lt;/code&gt; extracts downbeat timestamps to snap video cuts to the rhythm.&lt;/p&gt;

&lt;h3&gt;
  
  
  Veo 3.1 — Cinematic Openers
&lt;/h3&gt;

&lt;p&gt;Synthesizes vertical &lt;strong&gt;9:16&lt;/strong&gt; cinematic establishing sequences for recap reels.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gemma 4 — Private Taste Memos
&lt;/h3&gt;

&lt;p&gt;Runs lightweight inference every 15 interactions to build explainable preference profiles for personalized guest delivery.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Created for the All Things Agentic Hackathon (#AllThingsAgenticHackathon).&lt;/em&gt;&lt;/p&gt;

</description>
      <category>allthingsagentichackathon</category>
      <category>googlecloud</category>
      <category>gemini</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
