No animation software, no editing: Claude Code with Opus 5.5 draws every frame in Python, generates the sound and exports a finished Reel. Lukas tests one copied prompt and two of his own, including a chalkboard animation that is supposed to loop seamlessly.
The first test is deliberately borrowed: Lukas copies Ole Lehmann's prompt for a tiny factory that manufactures sunsets into Claude Code, word for word. The result is a 20-second Reel in paper-cut style with sound effects, very close to Ole's original. No image or video generation model is involved: Claude writes Python code that draws every frame, generates the sound in code as well and joins both with ffmpeg.
Then it gets personal: a pixel art dungeon where a fairy, standing in for an AI agent, handles the tedious tasks, and a chalkboard with a stick figure that is supposed to loop. Both prompts follow the structure of the first. Along the way Claude checks its own stills, finds mistakes like characters that are too small or a gray smudge instead of a cloud, and fixes them before exporting.
Each run took between half an hour and an hour. Not everything is perfect: the chalkboard loop has about half a second of still frames at the loop point, and Claude cannot hear the sound, only measure it. For three Reels from one prompt each that is still strong. One of his next projects will test whether a faceless YouTube channel can be built on it.
| Test | Style and story | Fixed by Claude | My verdict |
|---|---|---|---|
| Sunset factory | Paper-cut, Ole's prompt unchanged: workers build a sunset, a jar of stars tips over | Characters too small, legs poking out of the crane cab, the factory floor barely darker at night | Very close to Ole's Reel |
| Pixel dungeon | 16 colors, scaled up 6x: a hero with blue hair, three slime monsters, a fairy as the AI agent | Sword hand over the face, a gray smudge instead of a cloud, a fairy glow that was too dense | My favorite |
| Chalkboard loop | A stick figure draws a bridge, a cable car and a boat, a chalk hand wipes it all away | A ghosted hand, bits of the bridge left after the wipe, a paddle through his head | Almost loops, a few milliseconds too many at start and end |
One still from each finished 1080x1920 clip, no retouching.



All three prompts follow the same structure. Replace the square brackets with your story, the rest can stay as it is.
Create a 20-second [style] animation of [main character and setting].
[The story in four to six short sentences: setup, obstacle, twist, ending.]
Use a charming [style] with [colors, characters]. Smooth movement, expressive characters. Make the story understandable without sound. Add gentle sound effects: [which sound for which action]. No narration or opening title.
Create the animation entirely with code, set up any rendering tools you need, and export the finished MP4 with audio at 1080x1920 in vertical 9:16 format for Instagram Reels with a high bitrate. Compose the scenes for a vertical screen and keep the main action centered, away from the top and bottom edges. Check the animation and fix visible problems before exporting.
[Optional for a loop: Verify that the first and last frame match exactly.]
Yes, but not with an image or video generation model. Claude writes Python code that draws every frame, generates the sound in code as well, and joins both into an MP4 with ffmpeg. In this test that produced three finished 20-second Reels at 1080x1920 with sound.
Opus 5.5 in Claude Code with the effort set to extra high. Max was not needed, and high would probably have been enough. Lukas mentions a run with Sonnet 5.5 as a possible further test.
Between half an hour and an hour per 20-second clip in this test. A good half of that goes into setting up, planning and writing the code, the rest into test frames, fixes, sound and export. Runs two and three did not start from zero: Claude had kept notes on the setup from the first run. Once the script exists, a new render after a change takes about two minutes.
For the chalkboard loop the context stood at about 434,000 tokens at the end. That is the size of the conversation at the end, not the total usage, because Claude rereads the conversation so far at every step. The 600 frames are rendered by a Python script on your own machine, which uses no tokens. Tokens go into writing the code, looking at test frames and making fixes.
Yes. It renders test frames straight from the script, zooms in and fixes what is off, such as characters that are too small or chalk left behind after the wipe. At the end it also checks frames from the finished MP4. It cannot hear the sound, it only measures levels and frequencies, so the mix still needs your ears.
Almost. The first and last frames are identical, so there is no visible cut. Around the loop point, though, about half a second of still frames remains, which you notice when it plays on repeat. Lukas would trim a few milliseconds or start the loop at the door.
This page currently uses an editorial chapter summary. The subtitle files are prepared separately for YouTube.
Nobody animated these clips by hand. Each one came from a single prompt in Claude Code running Opus 5.5. Lukas copied the first prompt exactly, then swapped style and story twice: pixel art, and a chalkboard drawing that loops. What surprised him most is the range that comes out of one prompt each. The video shows every prompt and every result.
The tests run in Claude Code with Opus 5.5 and the effort set to extra high. For this kind of task Lukas considers that the best setting. Max is not needed, and high would probably have been enough, he just wanted to make sure the setting was not what held the test back.
The first prompt comes from Ole Lehmann, who showed the result in his Reel from September 24, and goes in unchanged: a 20-second animation of a tiny factory where workers roll a sun along a conveyor belt, paint the sky and lift the sun into place with a crane, until a knocked-over jar of stars turns everything into night. The most important part sits at the end: the animation has to be made entirely with code, Claude sets up its own rendering tools and exports a finished MP4 at 1080x1920 for Instagram Reels. To start, Claude checks what is already on the machine: Python, ffmpeg and graphics libraries.
Claude renders test frames at the key moments of the story and puts them together into contact sheets. Its first verdict is self-critical: the paper-cut style works, but the characters and the jar of stars are too small in the wide shot to read on a phone. Before fixing anything it checks the second half, then it zooms into single frames and later measures the audio levels. The result is a 20-second Reel with sound, no narration and no title card, drawn with the Python library skia-python: hand-cut edges, a generated paper texture, soft shadows and puppet characters with jointed limbs.
The Reel plays full screen with sound. Lukas' verdict: it worked, with exactly the prompt from Ole's Reel. The story is the same, the details differ. That is normal: the same prompt gives a slightly different result on every run, sometimes better, sometimes worse.
For the second test Lukas keeps the structure of the first prompt and swaps style and story: pixel art in 16 colors, a small hero with blue hair, three friendly slime monsters with an envelope, an invoice and a calendar. The hero fights the first one and gets tired, then a fairy appears and handles the rest. The fairy stands for an AI agent that takes the tedious work off your hands. This prompt is far more detailed than the first, down to resolution, frame rate and the waveforms of the chiptune sounds.
This run takes a while. Again Claude checks frame by frame and names concrete problems: the poof at the end turns into a dirty gray dither cloud, and the fairy's glow is too dense. It fixes both before exporting. The sound is brought to -14 LUFS, a common loudness target for social video.
Every story beat lands, down to the hero shrugging before he lies down in a hammock while the fairy keeps clearing slimes in the background. For Lukas this is the favorite and an absolute banger: 20 seconds, fully animated, with sound effects, from text alone. One possible next test: the same prompts with GPT-6.
The third prompt tests two things at once: a completely different style and a seamless loop. A little stick figure solves every obstacle by drawing the solution himself: a bridge, a cable car, a boat. At the top, a drawn hand with a sponge wipes the board clean, and the figure draws himself a new door and disappears. Lukas sees chalkboard styles like this as interesting for faceless YouTube channels with explainer videos, for example.
This run took the longest, about an hour, possibly also because Claude had some hiccups that day. The token display is the surprise: at the end the context stood at about 434,000 tokens. That is because Claude mostly writes and runs Python scripts, so the actual rendering happens outside the AI. As a possible further test Lukas mentions running the same prompts with Sonnet 5.5, released on September 28, once the tools and the prompt are set up in a project.
The clip first plays through once. One thing strikes Lukas as odd: the wiping hand is a chalk drawing too, a real hand would have been funnier. That is what the prompt asked for, though. Then he switches the loop on: the transition almost works, but Lukas would trim a few milliseconds at the start and the end or let the loop run from door to door. Claude itself reports about half a second of still frames around the loop point.
Lukas would still refine the loop, but he already finds it pretty good, and he is impressed by what Claude builds with code alone. One of his next larger projects: testing whether a faceless YouTube channel can be built on Claude Code animations alone. He will probably show his content studio, which publishes his content to Instagram, TikTok and other channels, in one of the next videos.
I work 1:1 with freelancers, consultants, coaches and small teams on practical AI workflows, automation and custom tools.
Book a free strategy call