I gave Opus 5.5 one Peppa Pig frame; it made a 13-second cartoon in JavaScript Claude Opus 5.5, running in Claude Code, produced a 13-second 1080p30 animated cartoon with sound from a single paused Peppa Pig frame and four prompts in roughly 90 minutes, generating zero images or video with a model — every frame is drawn by 645 lines of JavaScript the model wrote for KitCut's sketch engine. The model measured the source frame rather than tracing it, fitting the fence at a period of 65.6 px and slope 0.76 and solving the water color to #419eb4 at 0.71 alpha, and it caught its own errors by rendering stills, including a rabbit ear crossing the little pig's arm band (moved 16 px) and a final frame that faded to blank paper. The 13-second film rendered in 29 seconds, and the author notes the cast was deliberately changed to the author's own characters rather than the show's. Claude Opus 5.5 in Claude Code. Four prompts, roughly an hour and a half. No image model, no video model. Watch it with sound 13 s https://cdn.jsdelivr.net/gh/kitcut-hq/kitcut@main/docs/cartoon-from-a-still/pool.mp4 · download the MP4 https://github.com/kitcut-hq/kitcut/blob/main/docs/cartoon-from-a-still/pool.mp4 · the 645 lines of JavaScript that draw it https://github.com/kitcut-hq/kitcut/blob/main/docs/cartoon-from-a-still/film.js Nothing in that clip is a generated image. Every frame is drawn by a program the model wrote: the pigs, the rabbits, the splashes, even the tune. This is how it went, including the part where it said no. I paused "Swimming with Peppa" on YouTube at 1:41. One frame: three pigs in a pool, three rabbits on the deck. No model sheets, no layers, no second angle. I asked Claude Code to redraw that frame with KitCut's sketch engine. The engine is the JavaScript in this repo's sketch/ https://github.com/kitcut-hq/kitcut/blob/main/sketch folder: a canvas where every frame is a pure function of t . The model does not paint pixels. It writes the code that paints them. The pool came back right. The fence, the deck, the ladder, the tree. In the water: three bears. On the deck: three cats. Its note in the project journal: The cast is deliberately our own: the show's characters are somebody else's and were not redrawn. Keep it that way. Polite, correct, and not what I asked for. I told it the still was my own and asked again: the scene and the characters, each one looking where it looks in the frame. Left: the frame. Right: code. It did not trace anything. It measured. From its own notes: - It cut the frame into gridded 4x crops and read every outline, eye and pupil off them. Over the session it opened 42 pictures: crops of the frame, then its own renders laid beside them. - The fence is fitted, not eyeballed: period 65.6 px, slope 0.76. The first measurement, taken near the tree, drifted 24 px by the left edge, so it did it again. - The water is one colour at one alpha, solved from three things visible both above and below the surface a swimsuit, a dress, an arm band : 419eb4 at 0.71. That told it the "blue stripe" on the big pig is not a stripe. It is her skin, under water. That was the prompt, plus "10 sec". Thirteen minutes later I had a 1080p film with sound. Nobody was redrawn to move. An arm is a group swung about its shoulder. A jump is a crouch, an arc under constant gravity, and a plunge that settles into a bob. The music is a tune it wrote out note by note for pizzicato strings. Each splash is synthesised, and it lands on the frame the rabbit does because sound and picture read the same clock. It got things wrong and caught them itself, by rendering stills and looking at them. One rabbit landed with an ear across the little pig's arm band moved 16 px . The last frame faded to blank paper fixed . Extend by 3 seconds. Show a macro on the pig and rabbit kids splashing at each other already in the pool. Make the transition organic but the camera is different. I did not say how. It decided the small rabbit should throw water at the lens. A ball of water grows until it is the whole frame, the shot changes underneath, the water runs down off the glass, and we are close on the four children. Then it left itself this: A full-frame wipe that is one flat colour reads as a broken frame even for four frames. So the water over the lens has bubbles in it. | Prompts | 4 | | Time | roughly 90 minutes, first prompt to final file | | The film | 645 lines of JavaScript https://github.com/kitcut-hq/kitcut/blob/main/docs/cartoon-from-a-still/film.js | | Pictures or video generated by a model | 0 | | Render | 29 seconds for 13 s at 1080p30 | It is not an episode. It is thirteen seconds in one location, in a style made of flat shapes, which is the kindest case there is. Nobody talks. The motion is poses and arcs, not acting. But I gave a coding agent one screenshot and four short prompts, and it gave back a cartoon with a camera move and a soundtrack, as source code I can open and edit. I did not expect that to work. To try it on your own drawing: the engine is sketch/ https://github.com/kitcut-hq/kitcut/blob/main/sketch , the skill that drives it from Claude Code is .claude/skills/video-sketch https://github.com/kitcut-hq/kitcut/blob/main/.claude/skills/video-sketch , and a 12-second starter film is in config/sketch/example/ https://github.com/kitcut-hq/kitcut/blob/main/config/sketch/example . Peppa Pig and its characters belong to Hasbro. This is an unofficial experiment, not affiliated with or endorsed by them, and the clip is here only to show what the tool did. If you own it and want it gone: hello@kitcut.ai mailto:hello@kitcut.ai .