JI.
Back to Work
GENERATIVE VIDEO / SIMULATION / VFX

SYNTHETIC SURVEILLANCE

AMBIENT.AI

AI-generated CCTV footage, built to demo and stress-test behavioral security-detection models.

Every generated camera feed tiled as a security video wall
Overview

Simulated CCTV incident reels for Ambient.ai’s behavioral-detection platform. One threat actor, five cameras, one escalating breach, a precursor at every stage. Every frame AI-generated.

Ambient.ai's software watches existing cameras and flags behaviour before an incident: a badge-reader tailgate, someone testing a fence line. Nobody can stage that on a real site.

One client spreadsheet ran the job: a row per camera with scenario, casting and notes, plus two tabs of five-camera incidents noting what to catch at each stage.

8
Industries
47
Scenes in the client's sheet
5
Cameras per escalating breach
42
Finished clips delivered
Corporate Campus: Escalation

The flagship “Planned Breach”: one threat actor, five cameras, vehicle gate to executive suite.

Corporate Campus

The wider camera network across the corporate campus.

Education: Escalation

“The Campus Intrusion”: street-side recon, a weak fence junction, and transit toward an occupied wing.

Education

The surrounding campus cameras.

Museum

Galleries, exhibit storage, and after-hours interiors for cultural institutions.

Data Center

Server floors and the interior infrastructure that surrounds them.

Manufacturing

Factory floors, raw-materials storage, and loading docks.

Energy & Utilities

Control rooms, access gates, and hardened perimeters for critical infrastructure.

Healthcare

Hospital-site cameras: entrance, pharmacy access corridors, parking structure, and restricted clinical areas.

Financial

Banking-hall, ATM, and lot environments.

How It Was Made

Every reel is synthetic: no cameras, no actors, no one at risk. Generative AI run like a film set.

Three client review rounds shaped the pipeline. Stills are cheap, video is not.

Round 1

Angles

Three stills per camera. The client picks where it is bolted and what it sees.

Round 2

People and action

Who walks through, what they wear and carry, the moment of the event. One look across all five cameras.

Round 3

Extend and lock

The approved frame goes to video at full length, camera ID and timecode burned in.

Scene matrix spreadsheet: every scenario by industry and location, three prompts each

Ideation. Every scene starts in the spreadsheet by industry and location, several prompt variations each.

Automation. A Python script runs every row through Google's Gemini 3 Pro Image (Preview). Hundreds of variations, one render queue.

Contact sheet: Corporate badge-controlled turnstile, Stage 2 options
Contact sheet: Education weak fence junction, Stage 2 options

Selection. Contact sheets compare framing, lighting and the surveillance read. The strongest plate locks before motion.

Node graph: prompts to image generation, Nano Banana retouch, Kling video out

Refinement. A node graph retouches artifacts and holds wardrobe, environment and camera character across a sequence.

Image-to-video iteration tree (V1, Fix Arms, Walking Direction, Box Fix) to a green-lit final

Animation. Image-to-video from the locked frame. Each branch re-rolls one problem (arms, walk direction, a drifting box) until a take reads clean.

Composite, Mask, Rotoscope

Generations rarely came out clean. Usable parts cut from several takes, artifacts masked, subjects rotoscoped so they read at the top of frame.

The Pipeline, Packaged

After delivery the scripts became one portable pipeline: sheet in; contact sheets, selects, DVR chrome and camera wall out. Live mode renders a new scene in under twenty seconds.

Six stages, four of them code, one Python file each. Orange cards mark the two calls a person makes.

01 · Generate

Sheet to stills

Builds each prompt from the sheet. Camera placement lives in code, one mount per kind of location, so one fix reaches all 47 scenes.

02 · Review

Contact sheets

One sheet per industry, a row per scene, a tick box per option. The client answers with a letter.

03 · Select

A person picks

Framing, lighting, whether it reads as a real camera. The taste call stays with a person.

04 · Package

Selects and a brief

The picks by scene, each with a one-page brief: the client's requirements verbatim, the choice and why, an animator checklist.

05 · Animate

Directed takes

Image-to-video, many takes per scene, each re-roll fixing one problem. A person picks the take.

06 · Finish

Chrome and the wall

Camera ID, site, scene, date and a running clock burned in, then every feed tiled into a wall, still and loop.

Three generated options for one tailgating scene, A, B, C

Options. Three angles for one tailgating scene, one row. The middle one went to video.

Corporate campus contact sheet, three options per scene, shipped rows marked

Review. Rows that went to video are marked from the finished clips on disk, so the sheet stays true.

Finish. DVR chrome burned in after the fact, plus REC and LIVE, per clip or per folder.

The five-camera Planned Breach as one strip under one DVR clock

One clock. All five Planned Breach cameras share one continuous timecode: one night on one system.

Security operations video wall: forty-one generated feeds on one grid

The wall. Forty-one cameras on a seven-column grid, a still and a loop.

Run It Live: A Fictional Brief

The client's material is confidential, so the pipeline ships with a stand-in: Northlight Security, a made-up video-analytics company, same brief shape and columns.

Three industries, four cameras each, plus a three-stage incident: one intruder from yard fence to cage store, each stage noting what to flag. Live mode ran the whole sheet in under sixteen minutes, straight to contact sheets.

Nothing was retouched or re-rolled. One intruder description repeats at every camera, so the dark jacket and backpack carry from fence to cage. One stage-two option drifts to a blue hoodie; review catches it.

15
Scenes in the test sheet
45
Stills, three per scene
~21 s
Per still, live mode
0
Failed generations
Northlight contact sheet: three-stage warehouse incident, three options per stage

The incident. Three options per stage, one intruder throughout, a tick box under each row.

Northlight contact sheet: logistics warehouse, four cameras
Northlight contact sheet: retail store, four cameras
Northlight contact sheet: hotel, four cameras

Three industries. Warehouse, retail and hotel, one sheet each. A new industry is a few more rows.

The Models Behind It

One model per stage, so swapping one never touches the others.

Stills

Gemini 3 Pro Image

Every base frame. Live mode: an image every fifteen to twenty seconds. Batch: a whole sheet as one job.

Retouch

Nano Banana

Node-graph edits: a hand fixed, one person's jacket and bag held across five cameras, a sign cleaned so it reads.

Motion

Kling 3.0 Pro, through Runway

Image-to-video from the locked still. Many takes per scene, each re-roll targeting one problem.

Finish

After Effects

Compositing across takes, masks over artifacts, rotoscoped subjects. The finishing pass.

Pipeline

Python and ffmpeg

Reads the sheet, writes contact sheets and selects, burns in DVR chrome, tiles the wall. Any Mac; only the generate step needs a key.

Where a Person Stays in the Loop

Two calls belong to a person: which frame, which take. Both could shrink.

A vision model could pre-sort each contact sheet against the brief's rules: camera above head height, faces visible, legible signage, event in frame. A person still picks.

Same for takes. The brief says what to detect at each stage; check each take against that, and a person watches the survivors.

More Projects