opus 5.5 video guide: Animate a Crayon Picture-Book Story About a Moon That Cannot Sleep
Explore LemoLab’s sleepless-moon crayon story through drawing, wash reveals, stepped character poses, and the final picture-book reveal.
Start here: open EveryGen AI Opus for animated bedtime books.
Watch The Moon Can’t Sleep, the original crayon film. The supplied release lasts 52.010 seconds: a girl climbs to the rooftop to comfort a sleepless moon with a lullaby, before the story returns to a book on a table. LemoLab’s production statement attributes its films to Claude Opus 5.5 writing code. We have not verified those sessions or run this reproduction; commands need a separate local terminal.

Author-film frame. Credit: LemoLab, not EveryGen AI.
1. Understand the material and story
Read the crayon-and-wax style specification. Pressure-dependent strokes, hatching, and watercolor resist create the look. Drawing advances the story: the ladder appears, the wash reveals white-crayon stars, and the page becomes a physical book. Drawings step at 12 fps while camera and wash movement run at 24 fps; intentional repeated poses are not automatically dropped frames.
Preserve the author MP4. Inspect chars.js, world.js, film.js, gl.js, and end.js in styles/crayon-book/demo/. Compare proportions, climbing contact, sleep poses, and the book reveal. Attribute the reconstruction rather than claiming its story.
2. Prepare a separate workspace
Conditional setup—not an execution report: prepare Git, Node 20+, FFmpeg/ffprobe, and Python 3.11–3.13 or uv. Keep the commit and lockfile; install the music tier for modeled instruments.
git clone https://github.com/lemomo-ai/lemo-opuscar.git moon-study
cd moon-study
export LEMO_OPUSCAR_HOME="$PWD"
sh plugin/skills/lemo-opuscar/scripts/setup.sh deps voice music
sh tools/fetch.sh instruments vsco2ce
sh tools/fetch.sh instruments vcsl
D=styles/crayon-book/demo
mkdir -p evidence
git rev-parse HEAD > evidence/commit.txt
Confirm fonts, samples, and voice model exist; resolve missing dependencies without substituting characters or soundtracks.
3. Paste this new reproduction prompt
This is a newly written brief, not the author’s original prompt.
Reproduce The Moon Can't Sleep as an attributed study of the supplied film.
First inspect the commit, lockfiles, crayon-book STYLE.md, DEMO.md, CREDITS,
core APIs, demo/build.sh, and actual assets. Report missing inputs before coding.
Preserve the girl, sleepless moon, rooftop lullaby, sleeping resolution, and
return to the tabletop book. Do not substitute characters or generated footage.
Explain the dependency and scene plan, then wait for approval. Check the source's
52-second, 24-fps picture against the release's approximately 52.010-second
container; do not add frames just to match container decimals. Preserve credits.
Keep page-anchored paper texture, wax resist, character visibility, intentional
two-frame drawing steps, and continuous camera movement. Derive state from
absolute render(t) and fixed seeds. Test arbitrary and reverse seeks.
Use the existing script, score, narration, and supported build commands.
Listen to regenerated speech and reconcile timing before final acceptance.
Check ladder contact, wash coverage, caption holds, and the full book ending.
Save real frame checks, model/provider/effort/session records, prompts, and diffs.
No publishing, invented original prompts, or claims that unrun checks passed.

Original-film frame; inspect motion separately for contact and timing.
4. Build, inspect, and correct
After approval, the script rebuilds speech, events, score, mix, subtitles, and video: 24 fps, two workers, and the crayon-specific mux.
node core/render/still.mjs "$D" 0.5 --q 'test=model&page=girl' --out evidence/girl
sh "$D/build.sh"
node core/render/still.mjs "$D" 0.5 10 22 32 43 51.5 --out evidence/review
OUT=styles/crayon-book/crayon-book.mp4
ffprobe -v error -count_frames -show_streams -show_format -of json "$OUT"
ffmpeg -v error -i "$OUT" -f null -
If the girl disappears beneath the wash, inspect compositing order. If texture swims, check its page-space anchor. For an observed defect, request:
Correct only the documented contact, wash, or ending problem. Preserve source
characters and timing. Repair anchors or layer order rather than hiding errors
with cuts. Show the diff and new adjacent frames; replay the passage with sound.
5. Accept the complete film, not just its metadata
The documented 52-second picture implies 1,248 frames at 24 fps. Check video and audio durations separately; do not stretch them to force the release’s container decimal. Watch and listen through the final page and musical decay. Check glyphs, camera continuity, and narration.

Original frame from The Moon Can’t Sleep. Credit: LemoLab.
Keep source, lockfiles, input provenance, prompts, actual session records, edits, checks, and MP4. MIT covers Lemo’s code; the moon film’s asset credits separately identify OFL fonts, CC0 samples, voice components, and the original score. Preserve their notices.
EveryGen AI