Copied from GitHub at build time. Images are left out. Open the repo
Inkline
Engraved 3D launch films, storyboarded and built for your script.
Paste a script or brief into Claude Code. Inkline:
- storyboards it the way a director would: a story, a protagonist, a motif, designed cuts;
- builds that film's own 3D subjects in an engraved, two-ink style;
- scores it with original music and foley;
- renders it and checks the motion.
Every film shares the style, and none shares the content.
Built with Remotion, Three.js and Claude Code. Free to use under the MIT licence; see Licences below for the parts that have their own terms.
Showcase
Velmora: "Two journeys, one cup" (a fictional coffee brand's café launch, 37 s). A man walking to work and a coffee bean travelling from the hills cross the city before sunrise and meet in one cup. Every subject was built for this script: coffee hills, a ripening cherry, a blue-hour street, a drum roaster, a hand grinder, a gooseneck pour-over, latte art, the café. The score is lo-fi jazz with foley timed to the picture.
The storyboard, in real frames · Watch the film
Start from zero, with Claude Code (easiest)
-
Open this repo in Claude Code, on the web (claude.ai/code), desktop or CLI. The setup hook installs everything on the first start (about 1 minute). You should see
inkline ready: …. -
Optional: check the install. Ask Claude to run
bash tools/selftest.sh, or run it yourself. You should seePASS(about 2 minutes). -
Paste your brief:
Make a film from this script using the inkline-film skill. Brand: <name>. Logo: <path to a white-on-transparent PNG, or "none">. Audience: <who it's for>. Must remember: <the one thing>. <your script> -
Approve the storyboard. Claude shows the logline, the concept, the protagonist and arc, and a table of every shot (picture, words, sound, how it cuts in). Say what to change.
-
Approve the real-frame board. Claude builds the film's scenes and sends one rendered frame per shot. Check the objects, the words and the framing, then say "go".
-
Get the film. Claude renders it, checks it for freezes and sends the MP4. It also writes a showcase folder with a GIF and the storyboard in real frames.
A new film's scenes are built for it, so expect a few hours of Claude's work for a 30–40 second film, plus about an hour of rendering.
Start from zero, by hand
You need Node.js 22.18+, Python 3 with numpy and pillow, and ffmpeg.
git clone https://github.com/vikasbanjare/inkline-Motion-Graphic && cd inkline-Motion-Graphic
bash scripts/setup.sh # installs packages, finds a browser, checks python and ffmpeg
bash tools/selftest.sh # PASS = ready (plans both examples, renders one still of each)
python3 -I tools/plan.py specs/coffee.plan.json # check the plan, snap cuts to the beat, write the score
bash tools/stills.sh public/films/velmora/props.json out/board 100,180,330,590,790 # real frames
bash tools/render.sh public/films/velmora/props.json out/velmora.mp4 # render, add the score, check the motion
python3 -I tools/showcase.py specs/coffee.plan.json out/velmora.mp4 # film, GIF and storyboard in showcase/
npx remotion studio previews any film in the browser (composition Story).
How a film is made
| Step | What | Where |
|---|---|---|
| 1. Storyboard | Logline, concept device, motif, protagonist, arc, beat sheet, shot grammar, designed joins, sound plan | .claude/skills/inkline-film/reference/storyboarding.md |
| 2. Style | What every film copies: the engraving, inks, paper, foil, type, camera rhythm, transitions | reference/style-bible.md |
| 3. Subjects | The film's own scenes, from lathe, extrude, tube, leaf, blob, a walking person, and 2D foil line work | src/build/, src/films/<slug>/ |
| 4. Plan | Shots, timing, themes, words, energy and foley | specs/<slug>.plan.json, tools/plan.py |
| 5. Sound | Music by genre (lo-fi jazz, cinematic, modern pop, ambient), foley tied to the picture, mixed and mastered | reference/sound-design.md, tools/sound.py |
| 6. Board | One real frame per shot, approved before the render | tools/stills.sh |
| 7. Render and QA | 120-frame chunks, the score muxed in, a check for freezes, and an every-frame check for pops and camera lurches | tools/render.sh, tools/motion_qa.py, tools/jerk_qa.py |
| 7b. Match a reference (optional) | Frame-matched comparison and look metrics against a film you admire | tools/ref_compare.py, reference/lessons.md |
| 8. Showcase | The film, a GIF, and the storyboard in real frames | tools/showcase.py, showcase/<slug>/ |
Openers (each film opens its own way): bloom (a drop blooms open), letters (the world seen through a
word), blinds (foil bars turn open), focus (a rack focus out of a bright blur), lines (pen lines race in).
Transitions: iris, match (one shape becomes the next), cut (a scale step on the beat), wipe (a
foil-edged diagonal), print (the world becomes the print on an object), split (a foil strip opens), dive,
lens (the iris closes on the hero, hard cut, a new iris opens) and sweep (a lens edge sweeps across).
Ready-made kit worlds (src/kit/worlds/; a film uses one only when it is exactly the right picture):
- garden, globe, orbit, table, city, hall and deep;
- type (a statement in words);
- object (a card, ticket, banknote or screen);
- stage (a phone);
- lockup (your logo).
specs/kit-tour.plan.json shows them all.
Your logo
Put your logo in public/brand/ as a white logo on a transparent PNG, and set "logo" in the plan's
brand. With no logo file, the name is set in plain type. Use only a logo you have the right to use; never
another company's logo or name.
The original card template
src/film/Film.tsx (composition Film) is the first film this repo made: a fixed 30-second card ad. Only its
words, its number and the logo change: cp specs/example.json specs/mine.json, edit, then
python3 -I tools/film.py specs/mine.json. Use it only when you want exactly that film.
Licences and credits
- Code in this repo: MIT (see
LICENSE). - Remotion has its own licence. It is free for individuals and for companies of up to 3 people; larger companies need a company licence. Check remotion.dev/license before using this for client work.
- 3D models: Khronos glTF sample assets, CC0 and CC-BY 4.0. Credit the CC-BY authors when you publish a
film. The list is in
public/models/CREDITS.md. - Fonts: Newsreader and Lexend, SIL Open Font License (
public/fonts/OFL-LICENSES.txt). - Map data: Natural Earth via
world-atlas(public domain). - Music and SFX: synthesized by
tools/sound.pyandtools/score_to_picture.py. Every note and sound is generated in code, so you can use them freely.
Your claims are your responsibility. Put only true, approved claims in a film. Label sample or spec work as such.