Remotion · ACE-Step · Kokoro TTS · Flux.1-schnell · TypeScript · Apple Silicon
Puptown Pals
An animated kids' channel where the whole studio is a build pipeline.
Puptown Pals is a cozy backyard world with a fixed cast — a puppy, a squirrel, a turtle, and a bluebird — plus a voice-only narrator. Each character is a layered SVG puppet rig with separate head, eyes, mouth shapes, limbs, and tail, animated in Remotion through shared primitives like bounce, sway, blink, and audio-synced mouth flap. Because the rigs are vector rather than generated per frame, characters are pixel-identical across every episode and scale cleanly to 4K.
- Remotion (React video)
- TypeScript
- ACE-Step 1.5 (music)
- Kokoro-82M (TTS)
- Flux.1-schnell (concept art)
- Layered SVG rigs
- Apple Silicon (MLX / MPS)
Origin
How it started
The obvious way to build an AI kids channel is to generate everything every time, publish constantly, and hope volume wins. That approach is precisely what YouTube's inauthentic-content policy now demonetizes, and the resulting characters visibly change shape between videos. I went the other direction: do the character work once, properly, as rigs — then let the pipeline compose episodes around assets that cannot drift.
Features
What it does
Fixed cast as vector puppet rigs
Each character was concept-arted, chosen, then rebuilt as a layered SVG with separate head, open and closed eyes, four mouth states, body, near and far arms, legs, and a tail, shell, or wing. Animation drives the layers, so the character is identical in episode one and episode fifty.
Everyone does it their own way
The narrator invites the child to clap, stomp, or wiggle, and each animal does its own species version — the puppy wags, the bluebird flaps, the squirrel swishes, the turtle bobs or hides. Animals without hands doing 'clap your hands' breaks the fiction; making that contrast the joke is the format's signature.
Toddler-readable design rules
Big heads, huge eyes, thick dark outlines, saturated flat color, and silhouettes distinct enough that each character is recognizable as a black shape at thumbnail size. Constraints written down once and enforced across every asset.
License-audited toolchain
Every model and asset had to be free, automatable on Apple Silicon, and explicitly cleared for commercial use. That eliminated most of the well-known options — a long list of tools were rejected outright for non-commercial weights or terms of service risk, and each rejection is logged so it doesn't get revisited.
Under the hood
Engineering
The license audit was the hard part
Choosing tools took longer than wiring them together. Music generation had to permit commercial output, not merely ship permissive weights; several popular text-to-speech models carry non-commercial licenses; one common option risks the channel at the terms-of-service level. The surviving stack — ACE-Step for sung vocals, Kokoro for narration, Flux.1-schnell for concept art, Remotion for assembly — is the intersection of 'good enough' and 'actually allowed', with every rejection written down and reasoned.
Deterministic assembly over generative rendering
Episodes are React components rendered by Remotion, not videos generated frame by frame. Timing, captions, and mouth flap sync to the audio track programmatically; the same composition renders identically every time. Generative models are used to make assets once, never to produce final frames — which is what keeps characters consistent and renders cheap.
Public-domain melodies, original arrangements
Song selection is a legal exercise before it is a creative one. Verified public-domain melodies are safe; several nursery standards are not, whether from a disputed lyric copyright or a specific arrangement that is very much owned. The pipeline prefers original songs and public-domain classics in our own arrangements, and every asset added later is license-verified and logged before use.