Creative Work
That Runs Itself
AI pipelines, creative tools and solo products
Systems that turn a brief into finished video, images and campaign assets. Four of the projects below were built for paying clients, and every number on this page was counted from the project files.
For teams that need more output than headcount.
Two human sign-offs before generation
The brand sits inside the editor
33 migrations in 33 days
The real pack, composited back
Zero cameras, four hours
Cinematography as lookup tables
Five backends, expressions intact
A DJ sampler on the YouTube player
Built in a day, graded A–D
Marketplaces ranked by minutes off route
400 reviews beats 50,000
110 polls, 7 real readings Pipelines, Tools & Solo Products
Production pipelines built for clients, creative tools built for myself, and solo products built to find out whether an idea holds up. Every card opens a full case study.
Reel Generator
The homepage reel, cut live in the browser from this site's work and set to Ed's own music
VIOLET Studio
VIOLET's brand intelligence inside a real multi-track timeline — no API key in the browser at all
LANTERN
An animal and a premise in, a narrated episode out — two human approvals before the expensive step
VIOLET
Type a brand, get on-brand creative — a vision model scores it and rewrites the prompt when it fails
SIMP
A DJ instrument built on the YouTube player itself
Sizzle Video Pipeline
Spreadsheet-driven AI storyboards with real pack fidelity
Norton Neo
A :30 spot from drawn keyframes and AI interpolation
Rapid Response Pipeline
Breach news in, branded carousel videos out — 24 feeds, 289 videos, zero keyframes by hand
ae-nano-flex
AI generation docked inside After Effects, five backends
GenAI Brand Manager
A creative engagement productized into a dashboard
QUARRY
Five estate-sale sites scraped, every photo read by Claude, every find graded on profit-per-mile
DETOUR
Route-first shopping planner, zero scraping
TapScout
Voice-first local search re-ranked for actionability
CORONA
Solar data locked in a vendor app, recovered by replaying the app's own query
How the Builds Work
Four decisions that repeat across every project.

Get the data without the legal risk
Three projects, three different answers to the same platform-risk question: DETOUR probes public deep links, QUARRY runs a robots-aware client that hard-fails rather than pushes, and TapScout uses a licensed API with a field mask. The rule is written down before the code is.

Craft expertise as data
VIOLET's cinematography lookup tables, LANTERN's entire channel look in a single style file, a 3D product studio defined as config rather than a scene. Post-production judgement encoded once so a machine can apply it at scale — and so one edit re-grades an entire batch.
Models for judgement, rules for the rest
In Rapid Response, a model decides severity and writes the summary — everything downstream is rules: which icon, which comp, which cells the render reads. Naming that boundary is what makes a system safe to run unattended, because the deterministic half is reproducible forever.

Built before LLMs, rebuilt with them
A 200-line regex entity extractor, TapScout's heuristic ranking — domain understanding built first, now one prompt away. The before and after is the story.
Reusable Patterns
Each one started in a single project and now runs in several.
- 01
Art direction as one editable constant
A shared prompt suffix and negative prompt live in one place per project, so a single edit re-grades an entire batch instead of a hundred individual prompts.
- 02
Craft vocabulary as lookup tables
Roughly five hundred lines of cinematography language — lighting, f-stops, camera angles — keyed by industry and brand personality. Post-production expertise stored as data a program can read.
- 03
Capability-schema-driven UI
The interface renders itself from each provider's typed spec, so adding a model or a backend costs zero lines of interface code.
- 04
Generate integrations from the vendor's schema
A batch generator reads fal's OpenAPI spec for each endpoint and writes roughly sixty integrations itself. The same move works on any versioned API: when it drifts, re-run one command.
fal.ai integrations - 05
Deep links instead of scraping
A probe model plus a written "no scraping, ever" rule with the litigation actually cited. The constraint is specified up front, which turns a legal risk into a design input.
- 06
Graceful degradation by default
No API key returns a working mock, so anyone can clone the repo and run it. Fallbacks return the same shape as the real call, so nothing downstream needs to know which path it took.
- 07
Approval gates upstream of the expensive step
Two human sign-offs — one on timing, one on motion — enforced in code and placed before the costly generation runs, so a bad take is caught while it is still cheap.
- 08
Local for words, cloud for pixels
Text generation runs on local hardware; image, video and audio go to a hosted provider. A deliberate split that keeps iteration free and reserves spend for the parts that need it.
Six more patterns
- 09
Policy as prompt
A checked-in guardrails doc the coding agent has to restate its compliance against before it writes a line, mirrored by compliance notes in the code. It pairs with deep links: the same de-risking, applied to the tooling.
- 10
Constraint inversion
When a platform offers only seven playback rates, enumerate what is reachable, snap the target to the nearest one, and show the residual honestly rather than pretending the constraint is not there.
- 11
The job directory as the API contract
Providers write files into a job directory and the server rescans it. A plain shell script becomes a first-class backend, which collapses the integration surface to almost nothing.
- 12
One queue design, three substrates
Build the job, assign an ID, push, poll, collect from a directory — the same shape whether the queue underneath is Redis, an in-memory map or the provider's own. A house job-runner I converged on without ever factoring it out.
Redis · in-memory Map · fal queue - 13
Agent-driven development harness
A written spec, then numbered sprint prompts for the coding agent, then a bugfix log the agent writes back. The loop repeats across SIMP, VIOLET's docs and the QUARRY and DETOUR builds.
- 14
Spec-first product families
QUARRY, DETOUR and Clearing share a geo core and one brand system, with DETOUR feeding QUARRY as a funnel. A fast-shipping wedge carved out of an ambitious platform, with the siblings kept visually kin.
The Stack, End to End
The working stack across these projects, and how each piece feeds the next — from training through generation to final delivery.
Client Projects Built With These Tools
The same techniques, applied inside client engagements — each with its own case study.
AR Filters for Entertainment Launches
Instagram and Facebook effects for HBO, Apple TV+, TNT, BBC America and Nickelodeon: face filters that react to a smile or a shout, world-tracked objects you can walk around, and a poster that comes alive when you scan it. Built in Spark AR Studio. Hover a phone to play.
Every Tool in the Lab
Have a Project in Mind? Let's Talk
Pipelines, tools and automation for creative teams. Tell me what you're trying to make.