|
|
| Original |
Megadrago (Palermo; creators and directors Nicolò Cuccì and Salvo Di Paola) with Lucky Red, 2025, an adult animated TV series for Prime Video · blender.org user story |
| Agent-readiness today |
Partial. The series’ signature tricks are unusually agent-friendly because they are rigs and data, not hand drawing: UV Warp tile swaps for cut-outs, stepped keys with holds, a GN-built mouth, EEVEE, and VSE editorial. What needs tooling or a human: Rigify generation and fitting (operator- and context-driven), facial acting, comedy timing, and the art of the puppets. |
| Difficulty |
4. Six episodes, about 100 minutes, made by about 20 people. A single 30-second scene is a credible stretch goal. |
| First slice |
A 10-second, black-and-white “comedy club” beat: a box-headed cut-out puppet whose face swaps between 5 expression tiles through a UV Warp modifier, a rubber-hose arm on bendy bones, everything keyed stepped on twos/threes, rendered in EEVEE and cut into 3 shots in the VSE. |
- Series: 6 episodes, about 100 minutes in total. Italy’s first adult animated series made in Blender, premiered on Prime Video on 3 June 2025 and presented at Blender Conference 2025. It follows an art director trying to save a failing comedy club.
- Look: “primarily black and white”, with one episode in colour (user story). The series mixes 3D, stop-motion-style puppetry, paper cut-outs and 2D.
- Characters (named in the source):
- Claudia (protagonist): Rigify with bendy bones for rubber-hose arms, and shape keys plus bones for the face.
- Leonardo da Vinci: “five texture tiles mapped onto simple box geometry”, driven by UV Warp.
- Output rate: “40 seconds per week” at peak.
- Team and stack: about 20 people, Blender 3.6 LTS, EEVEE, the VSE for editorial, Kitsu (tasks), Flamenco (render management), SVN (versioning).
| Stage |
Fact (user story) |
Interpretation |
| S04 GN |
Mouth = “curve connected to bones, with the gradient achieved procedurally through geometry nodes” |
The mouth shape is driven by bones, and its look is computed rather than painted per frame |
| S05 Rigging |
UV Warp is “foundation for multiple characters, allowing us to create paper cutout-style animations”; Rigify plus bendy bones; shape keys combined with “traditional rigging” |
Cut-out = swap texture regions instead of deforming geometry |
| S07 Animation |
“stepped mode with holds” only, no spline animation; timing on “twos, threes, fours” |
Fakes stop-motion cadence. Animators choose the step per action. |
| S12 GP |
Grease Pencil for “3D previews with 2D animated characters” (previz) |
GP as a sketching layer, not the final look |
| S09 |
EEVEE NPR; layout set lighting intent before the stop-motion integration |
Fast renders made 40 s/week feasible |
| S11 |
Blender VSE for editing |
Editorial stays inside Blender |
| Stage |
Agent approach |
Inputs (free) |
Tooling |
| S02/S03 |
Expression atlas generated as pixels: a 5×1 image atlas (eyes and mouth drawn as filled ellipses and arcs) written via image.pixels, black ink on paper colour, plus a paper-grain noise. Or use human-drawn tiles if the owner supplies them. |
CC0 paper textures (Poly Haven / ambientCG) |
bridge |
| S05 cut-out |
UV Warp as the expression switch: a box head with UVs covering one tile; UVWarpModifier offset U = tile_index / 5. An integer “expression” custom property drives the offset through a driver. |
— |
modifiers, drivers |
| S05 body |
Armature as data. Arms as one bone each with bbone_segments = 8 and ease in/out keyed, giving the rubber hose. Rigify: enable the add-on, build a meta-rig and generate (pose.rigify_generate; context needs are untested) for the full version only. |
— |
bridge |
| S04 mouth |
A GN group: a 3-point curve whose middle point follows a bone (Object Info), Curve to Mesh with a profile, and a gradient attribute from curve parameter → material |
— |
GN |
| S07 |
Stepped animation as data: keys written straight into F-curves with interpolation = 'CONSTANT'; holds chosen per action (2s for gags, 3–4s for settles); expression index keyed the same way |
a beat sheet (dialogue timing) |
bridge |
| S09 |
EEVEE, Standard view transform; B/W via a desaturating grade (comp Hue/Sat at 0); a spotlight “comedy club” key with a hard shadow |
— |
EEVEE |
| S11 |
VSE as data: sequence_editor.strips.new_scene or new_movie per shot, with cut points from the beat sheet; title card as a text strip |
— |
VSE API (new_scene, new_movie, new_effect present in 5.2.2) |
Build order
- Write the beat sheet and assertions (section 5).
- Generate the atlas, then the head with UV Warp and the expression driver.
- Body armature with bendy-bone arms, then the GN mouth.
- Keys from the beat sheet, stepped.
- Three camera angles = three scenes or three cameras with markers.
- Render the shots, assemble them in the VSE, render the edit.
- Works today with the live bridge:
- The
UVWarpModifier type, image pixel writes, drivers.
- F-curves with
CONSTANT interpolation, bendy-bone properties.
- GN curve groups, EEVEE.
- VSE strip creation (
StripsTopLevel.new_scene / new_movie / new_effect, confirmed on 5.2.2 headless).
- Declared modifiers plus render plus screenshot, as proven by demo 001.
- Painful today:
- Rigify generation is an operator that expects an active meta-rig in Pose mode. It is mode-gated (L-001) and context-gated (L-004). Fitting a meta-rig to a mesh is placement by eye (L-009). Rigify is not enabled in a factory boot (probed), which is another hidden-default trap (L-011).
- Hand-keyed stepped animation is fine as data, but there is no “result” back. Verifying holds means re-reading F-curves (L-003).
- Scripted edits leave no undo (L-008). When the owner says “make that gag hold one frame longer”, the agent re-writes the keys instead of stepping back.
- Not feasible today:
- Comic performance: acting choices, the take, the timing of a punchline.
- Lip-sync to Italian dialogue at production quality without a phoneme-to-tile mapping. Feasible with an external aligner, but not built.
- Puppet and character design in the show’s style.
For the first slice: 10 s at 24 fps, 3 shots.
| Layer |
Check |
Threshold |
| 1 Validity |
Head and body meshes: manifold, normals out, UVs present (demo 001 checks) |
0 failures |
| 1 Validity |
Atlas: correct size and no transparent holes in tile regions |
5 tiles; α = 1 over ≥ 99% of tile pixels |
| 2 Spec |
Every animated F-curve uses stepped keys |
100% of keyframes CONSTANT |
| 2 Spec |
Hold lengths (frame gaps between consecutive keys on body channels) |
every gap ∈ {2, 3, 4} frames, except deliberate holds ≥ 6 |
| 2 Spec |
Expression swaps: the UV Warp offset only ever lands on a tile boundary |
offset ∈ {0, 0.2, 0.4, 0.6, 0.8} ± 1e-6 at every frame |
| 2 Spec |
Rubber-hose arm: bendy bones with no kinks |
bbone_segments ≥ 6; max angle between adjacent segments ≤ 35° |
| 2 Spec |
B/W |
max per-pixel chroma (HSV saturation) ≤ 0.02 on all final frames |
| 2 Spec |
Edit |
exactly 3 strips; cuts at beat-sheet frames ± 0; total 240 frames |
| 3 Reference |
Stepped motion actually reads as stepped: the frame-to-frame pixel difference is zero on hold frames |
≥ 90% of in-hold frame pairs have mean abs diff < 0.5/255 in the character mask |
| 4 Downstream |
Animator-friendliness: one “expression” integer property drives the face; no keys sit directly on the modifier; the rig is posable with no errors at extreme arm poses |
1 control; 0 direct keys; bendy arm length change ≤ 5% at ±150° |
| 5 Appearance (warning) |
Vision model: “reads as paper cut-out / stop-motion puppet, black and white comedy” |
warn if below 3 of 5 |
| 6 Taste (owner) |
Is the beat funny? Does the timing land? |
owner |
- Comedy. Timing a punchline, choosing when to hold. The tooling can enforce “on twos”, but not “funny”.
- Puppet and tile design. Five expressions that read instantly are a drawing skill. Procedural ellipses are placeholders.
- Acting and lip-sync choices for dialogue-driven scenes.
- Direction across 6 episodes: tone, the colour-episode decision, edit rhythm.
- First slice (live demo, ~1 day): on screen in the owner’s Blender:
- A paper-textured box head appears on a stick-figure body with long noodle arms.
- The face changes instantly as the agent sets
expression = 0…4 (neutral, smug, shocked, sad, laughing) through the UV Warp tiles.
- Scrubbing the timeline, the puppet moves in stop-motion jerks, on twos for the gag and threes for the settle. The arm bends in a smooth rubber-hose curve.
- Rendered view goes black-and-white under a single spotlight.
- The VSE shows 3 strips cut on the beats, and a 10-second MP4 plays back with the check report.
- Full reproduction (a 30 s scene):
- Agent: about 30–60 hours, including a Rigify-based character and a lip-sync mapping.
- Compute: minutes per shot of EEVEE.
- Human: 10–20 hours of direction, design and acting passes.
- The series: 100 minutes at the original’s 40 s/week peak with 20 people. Agents could absorb rig setup, stepped-key cleanup, render wrangling and conform, not authorship.
- Whether
pose.rigify_generate runs through the bridge without GUI context is untested.
- The source is a single user story. Episode-level breakdowns, the exact UV Warp setups and the GN mouth graph are not public, so the agent’s versions are reconstructions.
- Stepped renders mask in-between errors that would show on spline playback. That is intended, but it can hide rig bugs.
- “Prime Video original” and the 3 June 2025 date come from the index (Wikipedia via search), not from the fetched user story.
- blender.org: Creating “Il Baracchino” (fetched 2026-10-07: ~20 people, 6 eps / 100 min, 3.6 LTS, EEVEE, VSE, UV Warp, Leonardo’s 5 tiles, Rigify + bendy bones, GN mouth, stepped twos/threes/fours, 40 s/week, Kitsu/Flamenco/SVN, GP previz, B/W with one colour episode)
- Wikipedia: Il Baracchino (via the index, verified via search)
- Local probes (headless 5.2.2, factory startup):
UVWarpModifier present; VSE StripsTopLevel has new_scene, new_movie, new_effect; Rigify not enabled by default
docs/discovery/ledger.md L-001, L-003, L-004, L-008, L-009, L-011; RFC 0001 R6; bridge: tools/live/bl.py, snap.py, demo 001 report