1930s Rubber Hose Cartoon — Style Prompt

Black-and-white hand-inked cartoons where every object is alive and swings to a hot jazz band. References (grammar only): early Fleischer Studios shorts (c. 1930–33) for "the whole world dances", surreal transformation, the bouncing-ball singalong and ink-and-pen framing devices; Cuphead for how a modern team finishes the look and scores it with a big band. Never use an existing cartoon character, name or silhouette, and never copy designs, melodies or logos. Avoid the "cup-head on a human body with a straw" design: if your hero is an object, the whole object is the body.

1. Essence, and what it is not

Hand-inked black-and-white animation from the early sound era: characters with rubber-hose limbs (equal-width tubes, no elbows, no knees), white four-finger gloves, pie eyes (black oval pupils with a wedge cut out), huge round shoes, and bodies that squash and stretch like balloons. The backgrounds are soft grey watercolour paintings; the characters are flat white, grey and ink. Everything (furniture, machines, plants, the walls) breathes in time with the music. The film looks like a worn 35 mm print projected in a 4:3 gate: flicker, scratches, dust, gate weave, vignette.

Not a 1950s flat cartoon (no limited animation, no colour, no graphic backgrounds), not a silent film (the synchronised music is the engine), not a "retro filter" over modern animation (no joints, no rendered shading).

2. Materials & rendering

3. Colour logic

4. Type & subtitles

5. Motion quality

6. Camera grammar

A theatre camera: mostly locked, moving only to follow a runner or to land a gag. Opening and ending come from the topic.

Move What it expresses Can serve
Stage-wide, locked, eye level A proscenium: the set is a stage and everyone on it performs introducing a place; a group number; a routine
Hard cut to a face close-up The reaction is the joke a surprise; a taste; a realisation
Trucking pan beside a runner, eased start and stop Pursuit, momentum a chase; a race; a delivery
Medium follow shot (character ≈ 1/4–1/3 of the frame height) Every step is a note Mickey-moused climbing, dancing, working
Tilt with a fall or a rise Gravity as rhythm a tumble; a rocket; a lift
Slightly high angle, one unbroken shot The hazard and the answer in one frame a danger; a stretch; a rescue
Tabletop pan (flat characters in front of a model set turning in depth) The world is a real place a street; a carousel; a factory floor
Pull-back from a close-up to a packed medium-full One feeling spreads to everyone a celebration; a crowd joining in
Iris in / iris out (grabbable by a character) The film is an object a beginning; an ending; a scene change with a gag

Framing: faces must read, so no far-wide shot for a gag or a musical moment. The destination prop enters frame before the gag lands. Arcs and leaps stay inside the gate at the current zoom. Transitions: iris, a hard cut on a beat, a title card rolling up like a window shade; no dissolves.

7. Sound palette

8. Native moves

A menu: use the ones your story needs.

9. Pitfalls of the medium

10. Engine

In demo/: toon.js (constant-width ink, line boil, affine stack), film.js (gate and film damage, reusable as is), chars.js (rigs, pie eyes, gloves, shoes), cast.js (breathing props), bg.js (cached watercolour backgrounds), ui.js (title lettering, title-card subtitles), mix.py (foley, radio chain, optical ageing), music/score.py (big band via core/audio/sampler.py). File map and commands: DEMO.md.

11. Variation space

You decide the location (or several), the cast, the structure, the opening, the ending, the camera path, the tempo and the band's line-up. All far from our demo:


How our demo was made (story, shots, score, end card, build): DEMO.md. Read it after your treatment exists.