Selected work

2026IndependentSlopSoup TV on YouTube

A television network that runs itself

SlopSoup TV is a 24-hour pixel-art channel run end to end by software: writing, casting, voices, music, scheduling and the live broadcast. It is my test bed for long-running AI systems that have to stay up, stay on budget and stay in tune.

Outcome
Live on YouTube around the clock, on a fixed published schedule, with a daily spend cap and a free mode that runs at $0
Role
Sole engineer, writer of the show bibles, and the person on call
Stack
Python · Hugging Face Inference Providers · llama.cpp · Breeze-TTS · Kokoro · ACE-Step · Fibo · Chromium · x264 · HLS · RTMPS · ZeroGPU
Links
on air, on a fixed published grid
24/7
on air, on a fixed published grid
shows with their own bibles and critics
20
shows with their own bibles and critics
test files, including a simulated 24-hour playout
111
test files, including a simulated 24-hour playout
real-time encode on a 16-vCPU Space
1.0×
real-time encode on a 16-vCPU Space
A pixel-art courtroom scene from Small Claims Court on SlopSoup TV

Why build it

Most generative AI demos make one thing once. A broadcast has to make something new every hour, forever, without anyone checking it first. That makes it the hardest test of a content pipeline I could think of, and the most fun to watch fail and fix.

How it works

The schedule is a published grid: twenty shows, each with fixed weekly slots, so a viewer can find Small Claims Court at 13:15 every day. Every hour opens with the News Desk, and Launch Watch breaks in before real rocket launches.

On air

Network time

SlopSoup TV

Heat this hour
0 / 10
Fresh airtime budget
1,300 min a day
Speech farm
0.75× real time beside the encoder
Visit SlopSoup TV
The real SlopSoup II grid in America/New York time: 21 shows, each in fixed weekly slots, with the News Desk at the top of every hour. Drag across the day to see what airs.

Each episode moves through premise, outline, script and shot list, and every stage has its own critic that can send it back. A continuity log and season arcs keep stories coherent across weeks. A novelty ledger built on embeddings and Bloom filters stops the writers repeating themselves, and a heat dial sets how edgy the writing may get by hour.

Voices come from a farm of Breeze-TTS servers sized to the machine. Music comes from ACE-Step, art from Fibo on ZeroGPU, all directed through structured prompts. The browser renders the show while the server directs it, about 40 seconds of timed cues ahead. Xvfb, Chromium and x264 make an HLS stream that relays to YouTube over RTMPS.

Reliability

The parts that make it run unattended are ordinary engineering. Writer models route through tiers of providers with automatic failover and a daily dollar cap. Pinned providers answer in 3 to 8 seconds against about 30 with automatic routing. If YouTube drops the connection, the pusher redials within seconds. Playout snapshots every 10 seconds so a restart resumes where it left off. A voice governor pauses speech synthesis whenever the encoder falls behind real time. Deterministic checks and a standards judge model review every script, and a control room shows the queue, the audit log and kill switches. Free mode runs the whole network on local models at no cost.

What it taught me

The same lessons apply to an enterprise content pipeline: critics at every stage, budgets enforced in code, graceful degradation, and a human control room with an off switch.

esc

↑↓ to move ↵ to open tab to ask the model

Specimen

No. 250,001

Planted
Season
Seed
Branches

I have planted more than 250,000 trees, most of them by hand on restoration crews. This one is yours.

STL, 70 mm tall on a 32 mm base. Every branch is at least 1.6 mm thick and within 45° of vertical, so it is designed to print upright without supports.