Portfolio / AI automation systems
ambitionOS Studio
A long-form YouTube studio where Gemini decoded the motion language, Claude Code built the engine, and the unattended line runs on a local model — nine videos produced, each QC'd to −16 LUFS loudness.
Built and run by Joel Wickremasinghe
running in production
9
long-form videos (4:26–8:18) produced by the pipeline in 16 days, Jun 28 – Jul 13 2026 — 6 uploaded with video IDs on record
measured · output tree + upload records
Problem
What needed to exist
Long-form video is where automation usually falls apart: motion design, pacing, captions, loudness, and packaging each demand judgment, and stitching them by hand caps output at whatever one editor can survive.
The interesting question was whether two AI systems could split the work the way a studio does — one decoding what good motion looks like, the other engineering a pipeline that reproduces it deterministically.
What we built
The system
The two-model workflow is on disk, not a slide. Gemini analyzed a reference edit and decoded its motion system into a 27-preset library (PiP, frame, and overhost presets with rotation and rhythm rules), then authored two pipeline PRDs. Claude Code triaged those PRDs in an adopt/reject table and built the result: a 6,034-line beat-composition engine governed by four JSON Schema contracts.
The engine is deliberately LLM-free at runtime — it must reproduce a frozen golden baseline (the shipped 332-second cut, 23 cues) within 35 milliseconds on every merge. Scripts come from a local gemma4:26b, so the unattended cron line produces complete private drafts with zero cloud-LLM spend. HyperFrames renders the karaoke captions and overlay plates from HTML.
Every episode passes automated QC (loudness, A/V drift, black-frame and caption-coverage checks) and then a human approval gate on a local review server. Uploads are browser-automated with per-field screenshot verification — title, description, thumbnail, tags, and the AI-content disclosure confirmed from pixels, not return codes.
Live surface
Where it publishes
live channel
@Ambition_OS
The YouTube channel the studio produces for
Links checked 1 August 2026. Screenshots are static captures — the live site is the source of truth.
Architecture
ambitionOS long-form pipeline — as implemented
Stack
Built with
- Python 3.13
- Google Gemini (motion decoding + PRDs)
- Claude Code (engine construction)
- Ollama · gemma4:26b
- HyperFrames (HTML → video)
- HeyGen avatar + voice
- ffmpeg · two-pass loudnorm
- JSON Schema contracts
- faster-whisper
- Pillow + rembg
- Chrome DevTools Protocol
Outcome
Numbers, with provenance
9
finished long-form videos in 16 days, verified on disk with durations
measured · ffprobe over output tree
6,034
lines of engine code built by Claude Code under the schema-contract program
measured · line count, engine modules
27
motion presets Gemini decoded from the reference edit
measured · motion-presets.json
35 ms
reproduction tolerance against the frozen golden baseline (332.218 s, 23 cues) on every merge
measured · golden acceptance record
5/5
automated QC on the latest episode: −16.00 LUFS, 17 ms A/V drift, 16/16 beats captioned
measured · episode build state
$0
cloud-LLM spend on the unattended cron line — scripts run on a local model
architecture · pipeline source
no analytics export exists on disk yet; upload records only
Every figure above is read from the system of record it describes. Gaps are marked, not filled in.
Also in this system
Supporting detail
Carousel automation, judged by a machine first
The Instagram line rendered 28 slides for a 4-carousel launch week, and an autonomous generate → critique → refine loop has produced further carousels with judge scores up to 0.94 before any human looks. The reels publish adapter is coded and unit-tested against mocks — we say so, because it hasn't faced the live API yet.
AI, disclosed
The presenter is an AI avatar and every upload carries the altered-content disclosure. The channel's premise is showing what AI systems can do — hiding the AI would be off-brand and against policy.
Tools rejected on principle
Remotion was evaluated and rejected in writing: its spring() easing violates the studio's motion law (power3.out only — no bounce, no overshoot). Saying no to a good tool for a documented reason is what a design system means.
Want a video pipeline instead of a video backlog?
Nine videos in sixteen days, every one loudness-normalized and captioned — six uploaded with their video IDs on record. We build production lines like this around your content — and hand you the engine.