Tasty WebGPU signal-level analog video emulation. The video effects are a consequence of NTSC signal, not an effect drawn on the picture.
Live app!
TLDR go here! https://videoskillet.com/
The signal path
This is the thing to click. The map sits at the top of the sidebar, and nearly every control in the app is behind one of its boxes — click a stage and that stage's controls open underneath it.

Details in How it works, fault by fault in Features.
Features
- True composite signal emulation in WebGPU compute shaders. This is the headline feature!
- Dirty video mix or genlocked (clean) video mixing of two sources
- Video feedback effects including hardware mixer, camera-pointed-at-tv style feedback
- Lots of 'faults' like loose cable, bad receiver, inverted polarity, bad ground
- Audio-reactive: from the 'mic'/system/loopback, or a file
- All settings can be modulated (e.g. with LFO)
- MIDI controller support via WebMIDI — map different knobs to settings
- Easy-to-use "randomize" buttons, and settings 'morph' over N seconds for smooth transitions
- Has the spirit of video toaster inside of it, being related to kitchen appliances
- Mix your own videos,webcam, static,NTSC color bars,or random archive.org/wiki commons videos
- Supports live youtube mixing, but you have to download our command line tool with yt-dlp
- Also renders videos entirely offline via command line
- ...much more
and it works on mobile! tested on Google Pixel with Chrome
Run
pnpm install
pnpm dev
Fun bonus: a server on your own machine adds a Video URL… source that works
with yt-dlp and lets you video mix with YouTube — or anything else yt-dlp can
fetch — on the fly. pnpm dev has it, and so does videoskillet serve from the
released binary, which needs no clone.
Docs
- Main docs website
- Getting started
- User guide
- Features
- Effects — every control, generated
- CLI — the offline renderer, which takes a link and a file and
writes ProRes 4444, and
videoskillet serve, which hosts the app on your own machine - Drive it by URL — the query string is a complete remote control, and every control's key lists what the rest of the docs leave out. Published at videoskillet.com/llms.txt for anything scripting the app.
- AI usage — building and driving it with agents
- MIDI
- Comparison with other tools
- FAQ — how it works, what runs it, installing it
Note: this project is extensively vibecoded. The initial signal-path design was one-shotted by Fable, which nailed the "signal level" idea behind the glitches.
I also had a hard time coming up with a name for this project. I hope you enjoy. This app is inspired by my old 2010s-era experiments alligator clipping analog video cables together and posting tumblr gifs.
Cool demos
-
Chaos black and white feedback https://videoskillet.com/app/?p=Nj.FJADAMACAuQDNVAImAIAUALIARaQAwoUAIABANQDApQBAHgARAniAQECCVQk5gMAqAEAqAYAgJ9JA8gB&mod=&srcb=tv+static
-
I can't believe it's not analog butter https://videoskillet.com/app/?p=3t.GKwxE4gDRYQDAMQfANADAqwiFZADALgDAJg1AAwAkAMAtAQAfAXQbwC0AiRACAQirGwroAE&mod=&srcb=none
-
Rainborb https://videoskillet.com/app/?p=zD.GNADE4QCRYQDAJgfANYEAvAlAOQBFNwBAdAFL0AIBCKcvgE&mod=&srcb=none
-
Ridiculous rainbow https://videoskillet.com/app/?p=T2.GKAEE4QCRYQDAMQfAJ8FAowfFYwDAfAMAWAA8AIARAZgJEAIBCKcvgErYA&mod=&srcb=none
-
Collecting dust https://videoskillet.com/app/?p=R2.cqQCAKAfAHoAOgAoAKggACwAYABEABAAmAEQ0AIAoAMw-AIArAICjBAEBEjgLgCoAQ&mod=&srcb=vhs+static
-
Fuzzy color bars feedback https://videoskillet.com/app/?p=1w.cqQCAKAfAHoAOgAoAKggACwAYABEABAAmAEQ0AIA1AIwsAEIBA&mod=&srcb=vhs+static
-
Scrambled channel https://videoskillet.com/app/#preset=scrambledChannel&iurl=https://upload.wikimedia.org/wikipedia/commons/f/f9/%D7%A7%D7%98%D7%9C%D7%95%D7%92_1984_-_1.jpg
Send me more stuff you come up with
