Skip to content

Releases: ANVEAI/motion-pack

v0.6.0: styles, any-folder install, prompt gallery

Choose a tag to compare

@ANVEAI ANVEAI released this 21 Oct 19:16

motion-pack v0.6.0: ten visual styles (four hero scenes with their own film craft), a films-first README in English and Chinese, a prompt gallery, and mp init so the pack runs from any folder.

A format says what happens when; a style now says what it looks and sounds like. The catalog grows to 1163 components (10 styles and 14 format films join it).

The ten styles at a glance

style tier what it is demo on the release
soft-clay hero stop-motion clay on templates/style-scene: a figure on 2s, squash and stretch, a soft key and a warm lamp 13.5 s, 16:9 + 9:16
documentary-grain hero observational 16 mm at night: handheld drift, rack focus, a mono lower third, an archival card, gate and grain 13.5 s, 16:9 + 9:16
neon-night hero rain on glass: neon rim light, passing light streaks, a slow push-in, bloom, a synthwave bed 13.5 s, 16:9 + 9:16
paper-cut hero a cut-paper diorama: layered planes with drop shadows, boil on twelves, page-peel cuts 13.5 s, 16:9 + 9:16
editorial-print starter skin serif headlines on warm newsprint, one red, a halftone tooth (on templates/ad) 10.2 s, 16:9
swiss-grid starter skin black sans on white, one signal red, hard cuts on the beat 10.2 s, 16:9
chrome-product starter skin graphite stage, silver type, an ice-blue glint 10.2 s, 16:9
blueprint starter skin mono type on drafting blue, signal yellow, outlines that fill in 10.2 s, 16:9
retro-crt starter skin phosphor green mono type, an amber accent, scanlines, tape wobble, chiptune 10.2 s, 16:9
kinetic-poster starter skin giant black type slammed on signal yellow, one cobalt, whips on the beat 10.2 s, 16:9

A hero style is a scene with its own film craft (camera, timing, light), encoded as numbers that lint.style.craft checks. A starter skin recolours and retypes an existing template (palette, type, transitions, overlays, sound) and is labelled starter everywhere.

Counts at this tag (tools/count.py)

v0.5.0 v0.6.0
catalog components 1132 1163
genre templates (+ part demos) 24 (+ 12) 25 (+ 12): style-scene is new
three.js objects 44 50
playbook rules / mp lint checks 338 / 64 338 / 69 (the style checks)
formats / styles / gallery prompts 14 / - / - 14 / 10 (4 hero, 6 starter) / 29
sound effects / music pieces 356 / 69 356 / 69 (unchanged since v0.4.0)

New: the STYLE layer (playbook/styles/)

  • 10 named styles built only from existing parts: editorial-print, swiss-grid, neon-night, paper-cut, chrome-product, documentary-grain, blueprint, retro-crt, soft-clay, kinetic-poster. Each one has:
    • a copy-ready prompt of 150-250 characters (and a Chinese one);
    • a palette measured by skills/frame-design/scripts/contrast.py, type and presets, a motion personality and camera grammar;
    • one transition per REASON plus banned ones, an overlay stack, a bed and role sounds;
    • 4-8 signature features, each a mp lint check or a review item; formats; recipes whose ids resolve; a demo.
  • Commands: mp styles [<id>] [--zh]; mp plan <format> --style <id> (and mp brief --style) writes plan.style and lays the style into project.json; mp lint runs lint.style.palette, .type, .transitions and .sound and lists the review features.
  • Demos: one 10 s, 16:9 film per style (the ad format on a placeholder subject, rendered through the render lock at CRF 18, 0 FAIL in mp lint). All ten are rendered. The small previews are in media/styles/; the full demos go to the release assets (motion-pack-style-<id>-v0.6.0.mp4).
  • templates/ad: a 10 s cut, an all-type mode (plates: false, a kicker tab on frame 0), fonts, muted and on-accent colours, upper case, and a reveal name fitted to one line. Default builds are unchanged.

New: four hero styles with their own film language

  • soft-clay, documentary-grain, neon-night and paper-cut are hero styles (tier: hero): each is a scene with its own craft, made with the new templates/style-scene (three.js objects kit) from one tiny shared story (a night reading room, a lamp, a book; the title is a placeholder), 13.5 s in 16:9 and 9:16:
    • soft-clay: stop motion on 2s, squash and stretch on the tap and the landing, a soft moonlight key and a warm lamp pool;
    • documentary-grain: handheld drift that settles, rack focus lamp -> book -> face, a mono lower third, a typed archival card, a film gate, grain and dips to black;
    • neon-night: the room through rain running down glass, passing light streaks, a slow push-in, magenta and cyan rim light, heavy bloom, light-leak cuts;
    • paper-cut: cut-paper layers at real depths with drop shadows, curtains and stars, boil on twelves, animation on 12s, page-peel cuts.
  • The craft is encoded, not just shown: each hero style carries craft numbers and a world; mp plan <format> --style <hero> --template style-scene writes them into the project, the template records them (plan.scene), and lint.style.craft checks them. All eight hero renders lint with 0 FAIL (mp lint --format character-spot).
  • New parts (ids, registry, README, catalog stills): objects/night-set, objects/lamp, objects/book, objects/rain-glass, objects/paper-layers, objects/page-peel, on objects/lib/scene-craft.js (stop motion, handheld, rack focus, rain, light streaks, paper boil, page peel, squash: pure functions of time, tools/tests/scene-craft.test.mjs).
  • The other six are starter skins (tier: starter), labelled so in mp styles, the catalog and the README. The README mosaic shows the four hero scenes.

New: works from any folder

  • skills/motion-pack/scripts/find-pack.sh finds the pack: MOTION_PACK_HOME, the clone the skill sits in, ~/.motion-pack/<version>, else mp init.
  • How mp init works (tools/pack_home.mjs):
    1. It downloads motion-pack-v<version>.tar.gz and SHA256SUMS from the GitHub release of that tag.
    2. It refuses a tarball that SHA256SUMS does not list or whose sha256 differs, and an archive with an absolute or .. member.
    3. It unpacks next to the target and renames into ~/.motion-pack/<version> only when every check passed. --force replaces an existing copy.
    4. MP_RELEASE_BASE points it at a mirror or a local folder.
  • The tarball is a git archive of the tag, so it holds no WAV masters: run python3 sfx/build_library.py and python3 music/build_music.py once inside the unpacked pack, or unzip the release's WAV zips there.
  • Release step: scripts/release-tarball.sh v0.6.0 makes the tarball and its SHA256SUMS line from the tag; attach both to the release.

New: prompt gallery and catalog tabs

  • docs/prompts.md: 29 format × style prompts (generated from playbook/prompts.json; CI checks that mp brief routes each to its format and that mp plan --style builds it).
  • The catalog opens on Styles and Films tabs, each item with its preview and a copy button for its prompt.
  • README.md now opens with moving films and a "copy this prompt" quick start; README.zh-CN.md translates the top and summarises the rest.

Pipeline fixes

  • eyes reads two-colour lines (plan fgAlt); ears keeps a planned quiet before the final sting.
  • The turn-window check no longer divides the percent range by 100 twice.
  • mp lint no longer reuses eyes / ears reports of an older render at the same path (keyed on the render's sha256).
  • mp brief ignores negated phrases and meta lines, weights the goal and audience over words like film or hype, and counts a named format; a fictional brief with the same traps is a regression fixture (launch-film, not trailer).
  • tools/count.py --write no longer undoes the README table when README.md also carries inline markers.

Known gaps

  • Only four styles are scenes. The six starter skins restyle templates/ad and do not change camera, timing or light; they are labelled starter.
  • The hero scenes tell one story. templates/style-scene stages the shared night-reading-room story with a placeholder title; your own subject needs your own plates or objects.
  • Six release demos are upload copies. documentary-grain (16:9 and 9:16), paper-cut (16:9 and 9:16), editorial-print and retro-crt were re-encoded to fit the 25 MB asset limit (two-pass x264 at 12-14 Mbps, the audio copied). The CRF-18 masters are larger and not attached, and grain and paper texture soften in the copies. The other demos are the masters.
  • Lint warnings on the demos (0 FAIL, but WARN):
    • The encode warnings (keyframe interval, BT.709 tags) appear on 11 of the 14 lint reports, so they come from the mp render encode defaults.
    • Most hero renders also warn on frame-0 motion, the first change by frame 6, a new thing every 2-4 s, and the riser and hit timing.
    • Scores: 92.8-96.2 for the hero renders, 96.3-100 for the starter demos.
  • Carried over from v0.5.0: 134 of the 338 rules are prose-only; bass entry is checked from the plan only; refstudy counts 0 cuts across soft transitions; most genre templates are not tuned against a playbook block.
  • mp init needs v0.6.0 or later: earlier releases have no tarball. It downloads about 160 MB.

Install

/plugin marketplace add ANVEAI/motion-pack
/plugin install motion-pack@anve
mp init        # from any folder: fetches this release's tarball into ~/.motion-pack/0.6.0, checked against SHA256SUMS

Assets

file contents
motion-pack-v0.6.0.tar.gz git archive of the v0.6.0 tag, the file mp init downloads (listed in SHA256SUMS)
motion-pack-style-<id>-v0.6.0.mp4 (14) the style demos: the four hero scenes at 16:9 and 9:16 (13.5 s), the six starter skins at 16:9 (10.2...
Read more

v0.5.0: the playbook

Choose a tag to compare

@ANVEAI ANVEAI released this 21 Oct 10:20

motion-pack v0.5.0: the playbook. Every learning as a graded rule, 14 formats, and mp brief / plan / lint / study to use them.

Everything the pack has learned from studied films and its own renders is now one machine-readable playbook, and the mp CLI uses it from the brief to the final check. The catalog stays at 1132 components and 24 genre templates (tools/count.py).

New: the playbook (playbook/)

  • 338 graded, atomic rules in playbook/rules/.
    • By how they are kept: 119 enforced by 64 mp lint checks, 22 written into the plan by mp plan, 63 carried by a pack part, and 134 still prose-only.
    • By grade: 54 measured-A, 67 measured, 79 craft, 128 house, 10 inferred.
  • 14 formats in playbook/formats/: launch-film, proof-clip, saas-feature-drop, hardware-teaser, trailer, beat-edit, explainer, chat-skit, screen-life, character-spot, talking-head, short-film, documentary and ad. Each one has:
    • beats as fractions of the runtime;
    • a sound shape: quiet open, bass entry, silence under the name, tail;
    • hooks, end shapes and a post plan;
    • the recommended parts per beat;
    • 2-5 brand-free measured exemplars.
  • tools/playbook_build.py validates the rules and formats against their schemas and generates playbook/README.md. CI runs it with --check.
  • The evidence moved: the research notes are now in docs/evidence/ (with INDEX.md: the rules that cite each note). docs/research/README.md redirects there.
  • The skill is a router: skills/motion-pack/SKILL.md is now a 139-line router through the playbook, with the detail in its references.

How to use it

mp formats                                      # the 14 formats, one line each
mp brief "one-line idea" --goal launch          # picks the format, writes research-pack.md, then the plan
mp plan launch-film --length 35 --aspect 16:9   # a plan.json skeleton with the format's defaults and TODOs
mp new saas-launch ~/Movies/film --project project.json   # a project folder outside the pack, with the playbook block
mp render --aspect 16:9                         # (in the project folder) renders, then remuxes the master (see Fixed)
mp lint renders/saas-launch-16x9.mp4       # which rules the film kept and which it broke (eyes + ears measured)
mp study renders/saas-launch-16x9.mp4 --ours   # gaps against the format's closest exemplar, with the direction to move
mp rules --gaps                                 # the prose-only rules: the backlog

In mp lint, a failed house or measured-A rule is a FAIL, a failed measured or craft rule is a WARN, and an inferred rule is information only. The playbook block that mp plan writes into project.json is applied by templates/_shared/playbook.mjs (from cues.mjs). It plans the quiet open, the bass entry on the reveal, the silence under the name, the tail, the end hold and the first sound, and lists every change in plan.playbook.applied.

Fixed: quiet renders (the v0.4.0 weak spot)

  • The cause was not the true-peak guard. v0.4.0 blamed HyperFrames' true-peak guard for data-story and explainer-diagram rendering 7.4 and 8.7 dB under their -14 LUFS mixes. That was wrong: their AAC probes read -5.3 and -2.0 dBTP, under the -1 dBTP guard. HyperFrames' own audio stage, which assembles the track during the render, lowered it.
  • The fix: mp render now remuxes the template's own master under the rendered picture (tools/mp-audio.mjs). It does this only when the page plays one master and every video is muted. The old explainer-diagram render, remuxed, reads -14.1 LUFS-I.
  • The limiter: every master now ends in a 4x-oversampled true-peak limiter (music/mixer.py master_for_delivery). Its ceiling is lowered until the AAC probes read ≤ -1.1 dBTP. film-scene, whose mix stopped at -17.49 LUFS on the peak ceiling, re-mixes at -14.02 LUFS-I / -1.50 dBTP.
  • The checks: lint.sound.master_limiter and lint.sound.renderer_lowering enforce both. The tests are music/tests/test_master_delivery.py and tools/tests/test_mp_audio.py.

Three proof films, scored by mp lint before and after

Each film was rendered at 16:9 from a neutral mp brief with fictional placeholder brands, then linted with eyes and ears measured.

format (template) before after delivered loudness after
launch-film (saas-launch, 35 s) 77.7, 11 FAIL (the v0.4.0 template) 90.3, 0 FAIL -14.09 LUFS-I / -2.06 dBTP
proof-clip (proof-film, clip cut) no v0.4.0 render exists; the stock plan scored 100 on the plan alone 97.2, 0 FAIL -14.05 / -2.86
explainer (explainer-diagram) 82.3, 7 FAIL (the v0.4.0 template, rendered at -22.75 LUFS) 93.9, 0 FAIL -14.06 / -1.04

The three films are attached below.

Known gaps

  • 134 of the 338 rules are prose-only: no check, plan default or part keeps them yet (mp rules --gaps).
  • Bass entry is checked from the plan only (plan.audio.bass_entry_s). Ears has no low-band curve over time yet, so a render that moves the bass is not caught.
  • refstudy counts 0 cuts across soft transitions. A film whose scenes change through dissolves or slides reads 0 cuts per minute, as the launch-film proof did.
  • 5 of 24 templates read plan.playbook: saas-launch, proof-film and explainer-diagram are tested against it (tools/tests/playbook-apply.test.mjs) and proved by the films above. data-story and process-howto build through the same explainer path. The other 19 have not been tuned or tested against a playbook block yet.
  • Unchanged since v0.4.0: the eyes and ears weak spots listed under v0.4.0, other than the quiet renders.

Install in Claude Code

/plugin marketplace add ANVEAI/motion-pack
/plugin install motion-pack@anve

Assets

file contents
motion-pack-sfx-wav-v0.5.0.zip, motion-pack-music-wav-v0.5.0.zip 356 sound effects and 69 music pieces (WAV, with the beds' marker sidecars). The sound library did not change since v0.4.0 (identical manifests), so these hold the same files as v0.4.0's zips. Unzip them at the repo root
skill-<name>-v0.5.0.zip (6) the six skills, for claude.ai's Upload skill. In claude.ai they plan the video; rendering, audio builds, ears and eyes need the repo, Python and ffmpeg (Claude Code in a clone)
launch-film-saas-launch-16x9.mp4, proof-clip-proof-film-16x9.mp4, explainer-explainer-diagram-16x9.mp4 the three proof films from the table above (1920x1080), made from neutral briefs with fictional placeholder brands
SHA256SUMS checksums

MIT code, CC0 sounds and music. By ANVE.

v0.4.0: genre templates, editable projects, delivery and accessibility

Choose a tag to compare

@ANVEAI ANVEAI released this 19 Oct 12:49

motion-pack v0.4.0: 24 genre templates, one editable project file, delivery and accessibility.

The catalog grows from 954 to 1132 components. Genre templates go from 7 to 24, plus 12 part demos. Every number in this section comes from tools/count.py or from a test or check named next to it.

New: eight lanes of work

  • SaaS: three templates (saas-launch, saas-feature-drop, saas-explainer), each with a 16:9 cut and a 9:16 re-layout. They come with 13 SaaS kit parts (an app window, a cursor journey, a command bar, an AI answer, pricing cards and more) and 12 synthesised UI sounds in a new saas_ui bundle. The demo screens show a fictional product with labelled placeholder data.
  • Hardware: three templates (hardware-reveal, hardware-teaser, spec-sheet). They add 14 three.js hardware objects, an exploded-view choreographer, the hw.* overlay parts, 15 hardware sounds plus a hardware_launch bundle, and Blender recipes that take your own GLB.
  • Film: three templates (trailer, title-sequence, short-film). They add 28 trailer sounds and a trailer bundle, genre trailer scores (thriller, sci-fi, horror, drama), a trailer cut planner, 8 film looks with LUTs, and 15 film overlay parts.
  • Human: five templates for footage you record yourself (tutorial, vlog-personal, podcast-clip, founder-story, course-lesson), with 15 overlay parts. No person, voice or recording is ever generated. A missing input renders as a labelled placeholder, and a pull quote must be a verbatim run of the transcript or the build stops.
  • Research and structure: patterns/ holds 20 beat sheets (section timing as a share of runtime, average shot length, text ceilings, the CTA window) and 13 hook archetypes with frame-0 rules. tools/structure_check.py scores a plan against them (26 tests, 15 mutants). The sourced, graded evidence is in docs/research/.
  • Editable projects and the mp CLI: one project file (templates/_shared/project.schema.json) sets brand, text, media, voice, music, length, platforms and aspects for every genre template. tools/mp does list, new, set, build, render, check, brand and doctor. docs/EDIT-WITHOUT-CODE.md walks a non-coder through it.
  • Delivery and accessibility: captions (SRT, WebVTT, IMSC1.1 TTML or burned in, with SDH), audio-description scripts, an accessibility lint (tools/a11y_check.py: flashes, caption contrast, size, reading time, colour-blind safety), 14 platform delivery presets (tools/deliver.py) and a Lottie export of kinetic type and draw-on icons. Guide: docs/DELIVERY-AND-ACCESSIBILITY.md.
  • Explainer and data: three templates (explainer-diagram, data-story, process-howto). They add 11 diagram, chart, map and process parts, a number formatter (international, Indian lakh / crore, European, SI), a deterministic graph layout, and data honesty gates: a dataset with no source, a chart with no unit or a bar chart that does not start at zero stops the build. The gates check the form of the evidence, not its truth.

New parts from the reference rounds (r78 and round 8)

  • ui.glassPanel, ui.rimLight, ui.reviewLayer, ui.approvalSlider, type.sentenceAcrossShots, layout.textWall, layout.pillWall, device.lockScreen and background.skyClouds. The same round adds an ab-replay before / after audio-swap story shape, an ears/ab_replay check, and the demo-r78 part demo.
  • caption.soundOnPill, a frosted "Sound on" pill for muted autoplay, and ui.stateChip, a persistent corner chip that flips on planned frames. Each comes with its sound cues (68 checks in type/tests/chips.test.mjs).

Fixed: every aspect renders at its own size

  • In the 16-17 Oct test renders, four templates wrote a 1920x1080 file named -9x16, and vlog-personal wrote a 1080x1920 file named -16x9. Every genre template now builds the aspect mp asks for, whether through a project file or --aspect. tools/tests/aspect-builds.test.mjs runs 100 checks over every template and aspect.
  • The wrong-size guard: mp render now ffprobes every file. A file whose size does not match its aspect fails, and is kept as .WRONG-SIZE.mp4. mp check runs the same test on every file in renders/.

Counts at this tag (tools/count.py)

module v0.3.0 v0.4.0
catalog components 954 1132
genre templates (+ part demos) 7 (+ 11) 24 (+ 12)
sound effects (families, bundles) 301 (26, 15) 356 (28, 18)
music beds / style presets 41 / 33 45 / 37
layers (looks, LUTs) 139 (45, 49) 159 (53, 57)
type parts 217 287
three.js objects 30 44
cut patterns 48 49
ears checks 10 11

Best demos

Three renders from the 19 Oct run pass loudness and frame size and read well on their contact sheets. They are attached to the v0.4.0 release (not committed):

  • ad-9x16.mp4 (1080x1920, 15 s): the ad template driven by examples/project.example.json. Eyes and ears report no fails.
  • character-spot-16x9.mp4 (1920x1080, 16 s): the wordless character-spot. Eyes and ears report no fails.
  • short-film-16x9.mp4 (1920x1080, 53.6 s): short-film, with the film-scene three.js plate in its stage slot. It passes loudness and ears; eyes flag black frames, banding and readability on its dark placeholder plates.

Known weak spots (read before you rely on a template)

On 19 Oct every genre template was rendered through mp render at both aspects, 44 files in all, and checked with mp check (eyes, ears, loudness and frame size). The renders use the templates' own placeholder plates. Every file is the right size. 38 of the 44 pass loudness (-14 LUFS ± 0.5, true peak ≤ -1 dBTP).

  • Quiet renders, not fixed in this release. data-story comes out at -21.46 LUFS, explainer-diagram at -22.75 and film-scene at -17.55, at both aspects.
    • In data-story and explainer-diagram the mix WAV is at -14.0 LUFS. The HyperFrames render then lowers the whole track by 7.3 and 8.6 dB, because its true-peak guard reads the encoded audio as over -1 dBTP (its log says "Audio lowered by ... dB").
    • The film-scene mix itself stops at -17.49 LUFS, because the mixer reaches its -2.0 dBTP ceiling first and has no limiter.
    • Neither is a gain or target setting, so this release leaves them alone. A workaround: limit the master at 4x oversampling, keep the rendered picture and remux the audio yourself, then measure the MP4 with ffmpeg -af ebur128, not the WAV.
  • ears: founder-story fails the sync check at both aspects. Its caption row also overlaps the "Founder name" lower third and the speaker tag. film-scene fails ears sync as well as loudness.
  • eyes, banding: nearly every dark template fails the banding check. Add grain or lower the CRF.
  • eyes, frame 0: hardware-teaser, saas-feature-drop 16:9, title-sequence, hardware-reveal, process-howto, data-story and explainer-diagram.
  • Label collisions seen on the sheets:
    • spec-sheet 9:16: the "AI COMPUTE" label sits under "120 TOPS" at 19.2 s.
    • hardware-reveal: "Machined from one block" sits over the watermark at 9.2 s, and the port labels overlap at 34.8 s.
    • character-spot 9:16: the end title touches the left edge at 15.4 s.
    • data-story: the footer repeats its demo-data line at 60 s.
  • eyes, readability and safe zones: saas-feature-drop headlines sit at 76-92 px, under the 96 px floor for wide frames. Placeholder tags, captions or titles sit outside the safe area in 20 of the 44 renders, among them vlog-personal, tutorial, founder-story, the trailers and the 16:9 ad.
  • Structure scores: hardware-reveal scores 72, because its 6-8 s shots run long against the 1.5-3.5 s pattern. short-film reads 0 on pace, because its placeholder plates have no motion events. title-sequence at length=60 holds after 34 s with the 10 demo names.
  • Not heard by a person: the new sounds were measured by sfx/qa.py and music/qa.py (0 fails), not auditioned.

On main after the v0.4.0 tag

  • MP3 previews for the 55 new sounds and 4 genre trailer beds, and the catalog now points at them. Without them the Pages build of the catalog failed, because the WAV masters are not in git.
  • This changelog section: the 19 Oct render results, the best demos and the weak spots above.

Install in Claude Code

/plugin marketplace add ANVEAI/motion-pack
/plugin install motion-pack@anve

Assets

file contents
motion-pack-sfx-wav-v0.4.0.zip, motion-pack-music-wav-v0.4.0.zip 356 sound effects and 69 music pieces (WAV, with the beds' marker sidecars), rebuilt from this tag's scripts. Unzip them at the repo root. They match this tag only; on a later commit, run python3 sfx/build_library.py and python3 music/build_music.py
skill-<name>-v0.4.0.zip (6) the six skills, for claude.ai's Upload skill. In claude.ai they plan the video; rendering, audio builds, ears and eyes need the repo, Python and ffmpeg (Claude Code in a clone)
ad-9x16.mp4, character-spot-16x9.mp4, short-film-16x9.mp4 the three best demo renders of 19 Oct (see Best demos), made with placeholder plates and fictional content
SHA256SUMS checksums

MIT code, CC0 sounds and music. By ANVE.

motion-pack v0.3.0: storyboard before the build, eyes after it

Choose a tag to compare

@ANVEAI ANVEAI released this 15 Oct 10:40

motion-pack v0.3.0: storyboard before the build, eyes after it. The pack already listened to its own videos; now it also plans them on paper first, and looks at what it made.

Storyboard sheet made by storyboard/board.py from the example shot list

New

  • storyboard/: a storyboard and animatic, made before any frame is built.
    • python3 storyboard/board.py shotlist.json --design design.json draws a sheet (PNG, HTML, PDF). Each panel shows one shot: its scale, camera move, the on-screen text at its real size, the safe zone, the sound intent, the transition with its reason, and the honesty label.
    • The same command makes a timed animatic MP4. The panels are cut to the shot durations, with real sounds mastered to -14 LUFS.
    • It runs 7 checks: the story-script linter, reading speed, safe zone, label hold, panel count, animatic duration to the frame, and loudness.
    • "Storyboard approved" is now production gate 3 in the motion-pack skill.
  • eyes/: automated looking, the visual twin of ears/.
    • python3 eyes/look.py video.mp4 [--plan plan.json] runs 9 checks on a delivered MP4: frame 0, black and frozen frames, WCAG flash rate, banding, safe zones, text size / time / contrast, pacing, composition and encode. Each check comes with timestamps and a fix.
    • It feeds tools/critic_pack.sh and the critic rubric. Eyes checks now gate the animatic and the full pass.
  • Proof that the checks catch real bugs.
    • Storyboard and eyes ship mutation proofs that run in CI: every check fails when the code under test is broken (110 mutants for eyes).
  • Fixed: tools/chrome.mjs --check now compares real paths. Through a symlinked folder it used to skip its own check, so a missing Chrome or puppeteer-core showed up later as an unrelated ffmpeg error.

Install in Claude Code

/plugin marketplace add ANVEAI/motion-pack
/plugin install motion-pack@anve

Assets

file contents
motion-pack-sfx-wav-v0.3.0.zip, motion-pack-music-wav-v0.3.0.zip 301 sound effects and 65 music pieces (WAV); unzip at the repo root. The sound library is unchanged since v0.2.0, and these zips match this tag's manifests
skill-<name>-v0.3.0.zip (6) the six skills, for claude.ai's Upload skill. In claude.ai they plan the video; rendering, audio builds, ears and eyes need the repo, Python and ffmpeg (Claude Code in a clone)
storyboard-example.png the sheet above, from storyboard/examples/every-draft
SHA256SUMS checksums

MIT code, CC0 sounds. By ANVE.

motion-pack v0.2.0: it listens to its own videos

Choose a tag to compare

@ANVEAI ANVEAI released this 15 Oct 09:14

motion-pack v0.2.0: the pack can now listen to its own videos. It also learned from 31 more reference films and grew from 802 to 954 catalog components.

The film attached to this release (motion-pack-v0.2.0-film-16x9.mp4, 57 s) is a making-of of itself. An agent wrote, designed, animated, checked and drafted the post for it with this pack, and each chapter shows that film's real file: its script, its palette with measured contrast, the parts, its own listening report and its post draft.

New since v0.1.0

  • ears/: automated listening for a delivered MP4 or WAV. It runs 10 checks: loudness, clipping, tone, speech, sync scored by edit mode (music, VO or continuous), structure with planned quiet judged as shape, repetition, stereo, reference comparison and an optional mood check. Each finding comes with a timestamp and a fix.
  • cloud/: optional Google Cloud audio, on your project and your bill. Lyria music beds, Gemini Live voiceover with a word-for-word check, and a Gemini mood judge. Nothing in the pack needs it.
  • Rounds 4 to 6 of reference study (31 films):
    • problem-and-pivot story shapes (cuts/story6.py, templates/demo-r6-pivot);
    • six new editor-graphics parts and the auroraRibbon background;
    • the proof-film template.
  • More parts: 50 transitions, 301 synthesised sounds, 65 music pieces, 217 kinetic-type presets and graphics, 33 camera moves, 30 three.js objects, 12 Blender recipes. Browse the catalog.
  • Honesty and safety gates:
    • a claim containing a digit needs a source, and make.mjs exits 2 when one is missing;
    • unmotivated transitions are refused;
    • every part is sanitised against 0, -1, NaN, Infinity, 1e9 and 1e-6 params and fuzzed in CI (155 parts, 55,620 renders);
    • a cross-process hash gate checks for determinism;
    • a hashed denylist keeps third-party names out of the pack.
  • claude.ai: each skill also ships as a zip below. In claude.ai the skills plan a video (script, shot list, design, cue sheet, post copy). Rendering, audio builds and the listening checks need the repo's code, Python and ffmpeg on a computer, so they run in Claude Code (or any agent with a shell) inside a clone.

Install in Claude Code

/plugin marketplace add ANVEAI/motion-pack
/plugin install motion-pack@anve

Assets on this release

file contents
motion-pack-sfx-wav-v0.2.0.zip 301 sound effects, WAV 48 kHz / 24-bit; unzip at the repo root (lands in sfx/library/)
motion-pack-music-wav-v0.2.0.zip 65 music pieces (41 beds, 10 stingers, 14 sonic logos) + beat-grid sidecars; lands in music/library/
skill-<name>-v0.2.0.zip (6) the six skills, for claude.ai's Upload skill
motion-pack-v0.2.0-film-16x9.mp4, -9x16.mp4 the making-of film (57 s, about −14 LUFS)
SHA256SUMS checksums

The WAV zips match this tag only: they were rebuilt from the v0.2.0 scripts and checked against its manifests. On a later commit, run python3 sfx/build_library.py and python3 music/build_music.py instead; both rebuild bit for bit. The v0.1.0 renders and demo-audio zips stay on v0.1.0.

Honest notes

  • The film's sound was measured on the delivered files; no person has listened to it yet.
  • "31 reference films" counts rounds 4 to 6 only.
  • The film's music is composed by the pack itself; no generated footage, images or voices are in it.

MIT code, CC0 sounds. By ANVE.

motion-pack v0.1.0: video parts + six AI skills

Choose a tag to compare

@ANVEAI ANVEAI released this 13 Oct 10:43
motion-pack-film.mp4

The 46-second showcase film. An agent made every frame with this pack: Blender 3D, GL transitions, kinetic type, synthesised music and sound.

The first public release of motion-pack: open-source video parts plus six AI skills that take an agent from a prompt to a finished, beat-synced video. Every frame is a pure function of time.

What's in the repo

  • Parts:

    • 47 transitions, 31 cut patterns, 288 synthesised sound effects, 64 music pieces;
    • 124 finishing layers, 145 kinetic-type presets, 45 camera moves, 25 three.js objects;
    • 5 genre templates and 7 Blender recipes;
    • a build-time physics baker.

    That's 802 catalog entries in all: browse them.

  • Skills: story-script, frame-design, motion-pack, spec-to-loop, motion-stack, social-video.

  • The lab: 20 popular motion repos tested for frame-exact rendering (66 variants). Results and contact sheets are in lab/.

Install in Claude Code

/plugin marketplace add ANVEAI/motion-pack
/plugin install motion-pack@anve

Assets on this release (full-size media, too heavy for git; each one also regenerates bit for bit from the repo's scripts):

file contents
motion-pack-sfx-wav-v0.1.0.zip 288 sound effects, WAV 48 kHz / 24-bit
motion-pack-music-wav-v0.1.0.zip 64 music pieces (WAV) + 40 beat-grid sidecars
motion-pack-renders-fullres-v0.1.0.zip 193 full-size renders and contact sheets
motion-pack-demo-audio-v0.1.0.zip demo master, stems and reports
SHA256SUMS checksums for the four zips

Unzip the WAV packs at the repo root; they land in sfx/library/ and music/library/.

Licences:

  • MIT for code and skills;
  • CC0 1.0 for the media the pack generates (no credit line needed);
  • OFL 1.1 for the fonts.

The ANVE name and logo are not covered.