@docyrus/animaguru 0.22.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/NOTICE.md +25 -1
  2. package/README.md +9 -3
  3. package/dist/animaguru.js +311 -3
  4. package/package.json +1 -1
  5. package/skills/animaguru-archive-light-table/SKILL.md +34 -0
  6. package/skills/animaguru-archive-light-table/references/recipe.md +26 -0
  7. package/skills/animaguru-briefing-board/SKILL.md +34 -0
  8. package/skills/animaguru-briefing-board/references/recipe.md +27 -0
  9. package/skills/animaguru-caption-news/SKILL.md +34 -0
  10. package/skills/animaguru-caption-news/references/recipe.md +26 -0
  11. package/skills/animaguru-city-symphony/SKILL.md +34 -0
  12. package/skills/animaguru-city-symphony/references/recipe.md +26 -0
  13. package/skills/animaguru-countdown/SKILL.md +34 -0
  14. package/skills/animaguru-countdown/references/recipe.md +26 -0
  15. package/skills/animaguru-data-physicalization/SKILL.md +34 -0
  16. package/skills/animaguru-data-physicalization/references/recipe.md +27 -0
  17. package/skills/animaguru-exploded-teardown/SKILL.md +34 -0
  18. package/skills/animaguru-exploded-teardown/references/recipe.md +27 -0
  19. package/skills/animaguru-kino-montage/SKILL.md +34 -0
  20. package/skills/animaguru-kino-montage/references/recipe.md +26 -0
  21. package/skills/animaguru-lidar-survey/SKILL.md +34 -0
  22. package/skills/animaguru-lidar-survey/references/recipe.md +26 -0
  23. package/skills/animaguru-machine-anatomy/LICENSE +21 -0
  24. package/skills/animaguru-machine-anatomy/SKILL.md +42 -0
  25. package/skills/animaguru-machine-anatomy/references/craft.md +97 -0
  26. package/skills/animaguru-machine-anatomy/references/recipe.md +52 -0
  27. package/skills/animaguru-microscope-story/SKILL.md +34 -0
  28. package/skills/animaguru-microscope-story/references/recipe.md +26 -0
  29. package/skills/animaguru-news-package/SKILL.md +34 -0
  30. package/skills/animaguru-news-package/references/recipe.md +26 -0
  31. package/skills/animaguru-newsreel/SKILL.md +34 -0
  32. package/skills/animaguru-newsreel/references/recipe.md +26 -0
  33. package/skills/animaguru-satellite-briefing/SKILL.md +34 -0
  34. package/skills/animaguru-satellite-briefing/references/recipe.md +27 -0
  35. package/skills/animaguru-telestrator/SKILL.md +34 -0
  36. package/skills/animaguru-telestrator/references/recipe.md +26 -0
  37. package/skills/animaguru-visual-investigation/SKILL.md +34 -0
  38. package/skills/animaguru-visual-investigation/references/recipe.md +26 -0
  39. package/skills/animaguru-white-model-projection/SKILL.md +34 -0
  40. package/skills/animaguru-white-model-projection/references/recipe.md +27 -0
  41. package/templates/video/README.md +1 -1
  42. package/templates/video/VIDEO-STYLE-NOTICES.txt +25 -1
  43. package/templates/video/shared/locales/en/style-studies.json +137 -0
  44. package/templates/video/src/kit/anatomy/LICENSE +21 -0
  45. package/templates/video/src/kit/anatomy/iso-kit.ts +842 -0
  46. package/templates/video/src/kit/anatomy/palette.ts +41 -0
  47. package/templates/video/src/kit/anatomy/pixi.ts +43 -0
  48. package/templates/video/src/studies/anatomy-plotter.ts +179 -0
  49. package/templates/video/src/studies/scenes.ts +379 -0
  50. package/templates/video/style-source-provenance.json +8 -2
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: animaguru-city-symphony
3
+ description: Build Time-lapse Symphony visuals and motion in an AnimaGuru PixiJS video workspace. Use when this visual style is chosen for an explainer, advertisement or general video.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Time-lapse Symphony
8
+
9
+ A city film cut like a piece of minimalist music: time-lapse turns traffic, crowds and clouds into rivers of light, the cuts get denser with the score's subdivisions, one thing slows almost to a stop, and the film ends on a hard cut to black on a downbeat. It is a documentary & broadcast style: real time-lapse, aerial, archive or photographic footage carries the film. Subject, audience, emotional tone and story come from the user's brief. This style supports Explainer, Advertisement and General Video.
10
+
11
+ ## Establish direction
12
+
13
+ Follow sibling `animaguru-video` for purpose → style → compact interview before new production. Reuse explicit choices and completed briefs; honor a requested interview skip. Share [the style gallery](https://animaguru.com/animation-styles#city-symphony). Fold missing visual questions into the shared interview:
14
+
15
+ - Which place, and which licence-clean time-lapse, aerial or archive footage should carry the film, and what is its one slowed, fragile moment?
16
+ - What is the score's tempo and arc (minimal repetition → acceleration → climax → hard stop → coda)?
17
+
18
+ ## Use real evidence
19
+
20
+ Ask the user for their own time-lapses, photographs, documents or data of the place first; otherwise find licence-clean sources (see the [production recipe](references/recipe.md)). Footage only: never generate images, never use colourised or "restored" archive copies, never a YouTube mirror without a passed review. Keep `production/FACTS.md` (every number from an official source, with its URL and quoted wording) and `production/CREDITS.md` (every asset's source, author and licence), delivered with the film.
21
+
22
+ ## Build the look and movement
23
+
24
+ Read `pixijs` and the relevant Filters, Container, Graphics or Text skills. Read `animaguru` before generating assets: generation can supply music or narration, never the city's own footage. Discover current models and estimates, respect the user's budget, and reuse completed media. Essential number cards and the closing quote belong in authored canvas content.
25
+
26
+ - Density follows the score: the cut grid (bars, beats, subdivisions) comes from one tempo function, never a hand-typed duration; the grid split (1×2 up to 4×4) is this style's split screen.
27
+ - Speed is the instrument: every sped-up shot reads as motion-blurred light, not stepped frames; one moment brakes into slow motion exactly where the music's arpeggios stop.
28
+ - One 35mm release-print grade and matte unify every source, archive included; number cards and the closing quote stay left-aligned, never centred or boxed.
29
+
30
+ Use the [production recipe](references/recipe.md) for sources, the bundled original study and port-specific decisions. It is a technique example, not a prescribed film. Keep motions a function of absolute seconds; separate drawing cadence from camera/light cadence when the material calls for it. Prepare assets locally, preserve async seeking and register actual resource/cue times. Keep essential type editable and localized.
31
+
32
+ ## Review and delivery
33
+
34
+ Inspect cut-to-beat alignment, grade consistency across day and night shots, text reading time against `readcheck`-style limits, and every number against `FACTS.md`. Check representative full-resolution frames, moving playback, desktop/mobile fit and cold seeks. Follow `animaguru-video` for production records, audio mixing and HTML5 delivery; export MP4 when requested. Describe the actual 2D/2.5D rendering method accurately. Physically rendered 3D remains deferred.
@@ -0,0 +1,26 @@
1
+ # Time-lapse Symphony production recipe
2
+
3
+ The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `city-symphony`. Its drawing commands are consumed by `src/studies/pixi-renderer.ts`; geometry and time sampling are shared with the gallery renderer. All copy lives in `shared/locales/en/style-studies.json`.
4
+
5
+ In an untouched starter, run `npm run example -- city-symphony`, then `npm run dev`. The command refuses to replace an authored film, retains starter backups in `production/example-backup/`, and writes an 8-second study with its own resource tracks. `npm run export:html` and `npm run export:mp4` use this installed film normally. To use the recipe inside an existing film, import `studyFrame()` and `StudyRenderer`, then compose the selected scene into the project's timeline instead of running the installer.
6
+
7
+ ## Evidence and sources
8
+
9
+ Wikimedia Commons (modern time-lapse, aerial and slow-motion footage under CC BY/CC0; the Carol M. Highsmith Archive for public-domain photographs; check the licence on each file page, and that a YouTube/Vimeo import carries a passed review, not merely a pending one), Library of Congress (archive film published in the US before 1931 is public domain; a "no known restrictions" statement alone is not enough), NASA (orbital night photography of cities, public domain), Internet Archive (scanned books marked NOT_IN_COPYRIGHT with a pre-1931 date for the closing quote), Natural Earth (public domain map geometry). Download into the film's `public/` or `production/` folders, log every request, and record each asset in `production/CREDITS.md` and each number, with its quoted wording, in `production/FACTS.md`.
10
+
11
+ ## Adaptation decisions
12
+
13
+ - Approximate frame-blended "light rivers" by accumulating a short trail of recent texture samples into a `RenderTexture` with decaying alpha, or by motion-blurring a sped-up `Sprite`/video texture; cap the blend window so clouds don't turn to mush.
14
+ - Drive every cut, slam and grid stage from one shared `bar(n, beat)` timing function, so density always matches the score's current subdivision rather than a typed shot length.
15
+ - Build the number card and the day-ring clock as `Graphics`/`Text`, locking digits one per sixteenth note; apply the release-print grade (S-curve, warm highlights, bloom above a luma threshold, grain) with a `ColorMatrixFilter` plus a small bloom pass, shared by every shot including archive film.
16
+
17
+ The study is silent, original procedural art with illustrative values, labelled as such; it demonstrates material, layout and motion, not evidence. Replace its stand-ins with the real time-lapse, aerial, archive or photographic footage described above, never with generated imagery. The gallery preview is a procedural city rendered in code, not a real skyline, labelled as such. Configure the subject, palette, scene sequence, duration and soundtrack from the brief.
18
+
19
+ Use `src/studies/timing.ts` for deterministic easing, seeded variation, measured stroke truncation and cue helpers. `window.animaguru.texts` exposes visible study text bounds for `npm run review`; text declarations alone do not count as visual proof. Inspect the actual frames as well.
20
+
21
+ ## Sources and attribution
22
+
23
+ Inspired by the following pinned references; source-specific 3D/media dependencies are not bundled. New study art and scene geometry are original. The workspace's `VIDEO-STYLE-NOTICES.txt` preserves the repository notices and clarifies third-party asset scope.
24
+
25
+ - [styles/city-symphony/STYLE.md](https://github.com/lemomo-ai/lemo-opuscar/blob/77ee8318df779b0736d7de0abe24387e51023735/styles/city-symphony/STYLE.md)
26
+ - [styles/city-symphony/demo/index.html](https://github.com/lemomo-ai/lemo-opuscar/blob/77ee8318df779b0736d7de0abe24387e51023735/styles/city-symphony/demo/index.html)
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: animaguru-countdown
3
+ description: Build Live Countdown Split-screen visuals and motion in an AnimaGuru PixiJS video workspace. Use when this visual style is chosen for an explainer, advertisement or general video.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Live Countdown Split-screen
8
+
9
+ Real-time footage of one event with a known zero: screen time equals event time, a clock ticks every second, and the screen splits into more cells as the moment nears, merging into one picture at zero. It is a documentary & broadcast style: real synced footage, documents and data carry the film. Subject, audience, emotional tone and story come from the user's brief. This style supports Explainer, Advertisement and General Video.
10
+
11
+ ## Establish direction
12
+
13
+ Follow sibling `animaguru-video` for purpose → style → compact interview before new production. Reuse explicit choices and completed briefs; honor a requested interview skip. Share [the style gallery](https://animaguru.com/animation-styles#countdown). Fold missing visual questions into the shared interview:
14
+
15
+ - Which event with a known zero, and how many synced camera angles, documents or data do you have?
16
+ - Which milestones should the control strip carry, and what should the clock count to after zero?
17
+
18
+ ## Use real evidence
19
+
20
+ Ask the user for their own footage, recordings, photos or data of the event first; otherwise find licence-clean sources (see the [production recipe](references/recipe.md)). Screen time equals event time: never cut, reorder or speed up the real stretch. Label footage honestly rather than faking sync ("same window · not frame-synced" instead of a forced alignment), and keep `production/FACTS.md` (every number, time, name and call, with source) and `production/CREDITS.md` (every asset's source, author and licence), delivered with the film.
21
+
22
+ ## Build the look and movement
23
+
24
+ Read `pixijs` and the relevant Container, Graphics, Text or Filters skills. Read `animaguru` before generating assets: generation can supply music or narration, never the event footage itself. Discover current models and estimates, respect the user's budget, and reuse completed media. Essential clock digits, checklists and labels belong in authored canvas content.
25
+
26
+ - The layout is the edit: cells open, close and resize on a real spoken call or event in the native audio, never on the music; cell count rises toward zero, then drops to one at the merge.
27
+ - Draw the clock in fixed-width digit slots so it never jitters; sync badges (synced, same-window, real-time) are part of the look's honesty, not an afterthought.
28
+ - At zero, every cell animates to its tile of the merged full-screen frame while chrome fades, then the clock inverts from counting down to counting up.
29
+
30
+ Use the [production recipe](references/recipe.md) for sources, the bundled original study and port-specific decisions. It is a technique example, not a prescribed film. Keep motions a function of absolute seconds; separate drawing cadence from camera/light cadence when the material calls for it. Prepare assets locally, preserve async seeking and register actual resource/cue times. Keep essential type editable and localized.
31
+
32
+ ## Review and delivery
33
+
34
+ Inspect sync accuracy at zero, clock digit stability under re-layout, sync-badge honesty on every unsynced cell, and every milestone and number against `FACTS.md`. Check representative full-resolution frames, moving playback, desktop/mobile fit and cold seeks. Follow `animaguru-video` for production records, audio mixing and HTML5 delivery; export MP4 when requested. Describe the actual 2D/2.5D rendering method accurately. Physically rendered 3D remains deferred.
@@ -0,0 +1,26 @@
1
+ # Live Countdown Split-screen production recipe
2
+
3
+ The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `countdown`. Its drawing commands are consumed by `src/studies/pixi-renderer.ts`; geometry and time sampling are shared with the gallery renderer. All copy lives in `shared/locales/en/style-studies.json`.
4
+
5
+ In an untouched starter, run `npm run example -- countdown`, then `npm run dev`. The command refuses to replace an authored film, retains starter backups in `production/example-backup/`, and writes an 8-second study with its own resource tracks. `npm run export:html` and `npm run export:mp4` use this installed film normally. To use the recipe inside an existing film, import `studyFrame()` and `StudyRenderer`, then compose the selected scene into the project's timeline instead of running the installer.
6
+
7
+ ## Evidence and sources
8
+
9
+ NASA (images.nasa.gov, svs.gsfc.nasa.gov — U.S. federal government works, public domain; check each item for third-party material and never imply endorsement), other U.S. federal agencies (NOAA, National Archives, DoD DVIDS), Internet Archive (only items whose record shows public domain, pre-1931 U.S. publication or CC0/CC BY; skip YouTube mirrors), Wikimedia Commons (CC0, public domain or CC BY only), Library of Congress (read each rights statement). Download only the seconds needed, log every request, and record each asset in `production/CREDITS.md` and each claim, time and call in `production/FACTS.md`.
10
+
11
+ ## Adaptation decisions
12
+
13
+ - Model each camera as a `Sprite` or video texture inside its own `Container`, whose rectangle is driven by layout keyframes (grid, merge, cut, swap) interpolated with an `easeInOutCubic`, never a hand-typed per-shot duration.
14
+ - Draw the fixed-slot clock as individual `Text` or `BitmapText` glyphs in equal-width cells, swapped on the whole second so digits never jitter; drive the sub-second bar and ticks from the same clock state.
15
+ - Build the zero merge by animating every cell's rectangle to its tile of one full-screen frame while chip and border graphics fade in the transition's first half, then flip the clock's colour and header state from counting down to counting up.
16
+
17
+ The study is silent, original procedural art with illustrative values, labelled as such; it demonstrates material, layout and motion, not evidence. Replace its stand-ins with the real synced footage, documents and data described above, never with generated imagery. The gallery preview uses illustrative camera cells with no real launch or event behind them, labelled as such. Configure the subject, palette, scene sequence, duration and soundtrack from the brief.
18
+
19
+ Use `src/studies/timing.ts` for deterministic easing, seeded variation, measured stroke truncation and cue helpers. `window.animaguru.texts` exposes visible study text bounds for `npm run review`; text declarations alone do not count as visual proof. Inspect the actual frames as well.
20
+
21
+ ## Sources and attribution
22
+
23
+ Inspired by the following pinned references; source-specific 3D/media dependencies are not bundled. New study art and scene geometry are original. The workspace's `VIDEO-STYLE-NOTICES.txt` preserves the repository notices and clarifies third-party asset scope.
24
+
25
+ - [styles/countdown/STYLE.md](https://github.com/lemomo-ai/lemo-opuscar/blob/77ee8318df779b0736d7de0abe24387e51023735/styles/countdown/STYLE.md)
26
+ - [styles/countdown/demo/index.html](https://github.com/lemomo-ai/lemo-opuscar/blob/77ee8318df779b0736d7de0abe24387e51023735/styles/countdown/demo/index.html)
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: animaguru-data-physicalization
3
+ description: Build Data Physicalization visuals and motion in an AnimaGuru PixiJS video workspace. Use when this visual style is chosen for an explainer, advertisement or general video.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Data Physicalization
8
+
9
+ Statistics built as countable objects on a crafted base, lit like a studio product shot and read at the edge of one unit. It is an evidence style: real data, imagery or scans carry the film. Subject, audience, emotional tone and story come from the user's brief. This style supports Explainer, Advertisement and General Video.
10
+
11
+ ## Establish direction
12
+
13
+ Follow sibling `animaguru-video` for purpose → style → compact interview before new production. Reuse explicit choices and completed briefs; honor a requested interview skip. Share [the style gallery](https://animaguru.com/animation-styles#data-physicalization). Fold missing visual questions into the shared interview:
14
+
15
+ - Which real series and unit (one piece equals how much), and which comparison or crossover should land?
16
+ - Which materials and base suit the brand: metal, acrylic, wood, stone or coins?
17
+
18
+ ## Use real evidence
19
+
20
+ Ask the user for their own data, scans, files or rights first; otherwise find licence-clean sources (see the [production recipe](references/recipe.md)). Never stand a generated image in for the evidence, and never invent a number. Keep `production/FACTS.md` (each on-screen or spoken claim, its source URL and quoted wording, or the measurement method) and `production/CREDITS.md` (every asset's source, author and licence), and deliver both with the film. CC BY-SA, ODbL, "no known restrictions" or non-commercial terms are not CC0: name them to the user and ask before using them.
21
+
22
+ ## Build the look and movement
23
+
24
+ Read `pixijs` and the relevant Graphics, Text, Container, Assets, Mesh or Filters skills. Read `animaguru` before generating assets: generation can supply music, narration or a title background, never the evidence itself. Discover current models and estimates, respect the user's budget, and reuse completed media. Essential text and exact numerical geometry belong in authored canvas content.
25
+
26
+ - The unit is an object: one plate, block or coin equals one stated quantity, said once on screen, and every tenth piece is a heavier ruler material. Heights are exact counts, rounded by one unit at most.
27
+ - Growth is assembly: pieces land one by one with weight, an ease-out and an unwinding yaw, and counters roll with the landed pieces, never with time. Reveal the chart once as a made installation.
28
+ - Use studio light and real matter: a warm low key, a cool rim and long soft shadows. Material, not paint, separates series, and one accent marks the reading or verdict that matters.
29
+
30
+ Use the [production recipe](references/recipe.md) for sources, the bundled original study and port-specific decisions. It is a technique example, not a prescribed film. Keep motions a function of absolute seconds; separate drawing cadence from camera/light cadence when the material calls for it. Prepare assets locally, preserve async seeking and register actual resource/cue times. Keep essential type editable and localized.
31
+
32
+ ## Review and delivery
33
+
34
+ Inspect counts against the data file, series separation at thumbnail size, readings kept inside the frame, a verdict that waits until its readings have been still, and the source line in frame. Check representative full-resolution frames, moving playback, desktop/mobile fit and cold seeks. Follow `animaguru-video` for production records, audio mixing and HTML5 delivery; export MP4 when requested. Describe the actual 2D/2.5D rendering method accurately. Physically rendered 3D remains deferred.
@@ -0,0 +1,27 @@
1
+ # Data Physicalization production recipe
2
+
3
+ The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `data-physicalization`. Its drawing commands are consumed by `src/studies/pixi-renderer.ts`; geometry and time sampling are shared with the gallery renderer. All copy lives in `shared/locales/en/style-studies.json`.
4
+
5
+ In an untouched starter, run `npm run example -- data-physicalization`, then `npm run dev`. The command refuses to replace an authored film, retains starter backups in `production/example-backup/`, and writes an 8-second study with its own resource tracks. `npm run export:html` and `npm run export:mp4` use this installed film normally. To use the recipe inside an existing film, import `studyFrame()` and `StudyRenderer`, then compose the selected scene into the project's timeline instead of running the installer.
6
+
7
+ ## Evidence and sources
8
+
9
+ Our World in Data (credit OWID and the original source), World Bank Open Data and Eurostat (CC BY 4.0), US Census, BLS and EIA (public domain), national statistics offices, or the user's own reports with the document they come from. Textures and HDRIs from Poly Haven or ambientCG (CC0). Download into the film's `public/` or `production/` folders, log every request, and record each asset in `production/CREDITS.md` and each claim in `production/FACTS.md`. Burn a readable credit into the frame where the medium calls for one.
10
+
11
+ ## Adaptation decisions
12
+
13
+ - Lay out the stacks from one table of values and the unit. Draw each piece as a small shaded box (`Graphics` faces in painter's order, or one shaded piece sprite per material reused with per-piece tint and offset), back to front.
14
+ - Bake the base (for example a walnut slab with inlaid ticks and labels) into a texture, cast shadows as blurred sprites along one light vector, and soften far layers with a `BlurFilter` for depth of field.
15
+ - Pin readings to projected piece corners with a leader, a material swatch and a paper plate, and keep them inside a safe box while the camera tracks.
16
+
17
+ The study is silent, original procedural art with illustrative values, labelled as such; it demonstrates material, light, layout and motion, not evidence. Replace its stand-ins with the real data, imagery or scans described above, never with generated imagery. The gallery preview is rendered in code with illustrative values. Configure the subject, palette, scene sequence, duration and soundtrack from the brief.
18
+
19
+ Use `src/studies/timing.ts` for deterministic easing, seeded variation, measured stroke truncation and cue helpers. `window.animaguru.texts` exposes visible study text bounds for `npm run review`; text declarations alone do not count as visual proof. Inspect the actual frames as well.
20
+
21
+ ## Sources and attribution
22
+
23
+ Inspired by the following pinned references; source-specific 3D/media dependencies are not bundled. New study art and scene geometry are original. The workspace's `VIDEO-STYLE-NOTICES.txt` preserves the repository notices and clarifies third-party asset scope.
24
+
25
+ - [styles/data-physical/STYLE.md](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/data-physical/STYLE.md)
26
+ - [styles/data-physical/demo/set.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/data-physical/demo/set.js)
27
+ - [styles/data-physical/demo/film.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/data-physical/demo/film.js)
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: animaguru-exploded-teardown
3
+ description: Build Exploded Teardown visuals and motion in an AnimaGuru PixiJS video workspace. Use when this visual style is chosen for an explainer, advertisement or general video.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Exploded Teardown
8
+
9
+ A product taken apart on one axis under studio light, every part named with the numbers in its own files, then closed and dimensioned. It is an evidence style: real data, imagery or scans carry the film. Subject, audience, emotional tone and story come from the user's brief. This style supports Explainer, Advertisement and General Video.
10
+
11
+ ## Establish direction
12
+
13
+ Follow sibling `animaguru-video` for purpose → style → compact interview before new production. Reuse explicit choices and completed briefs; honor a requested interview skip. Share [the style gallery](https://animaguru.com/animation-styles#exploded-teardown). Fold missing visual questions into the shared interview:
14
+
15
+ - Which product and revision, and do you have its CAD, PCB layout, bill of materials and spec sheet?
16
+ - Which parts deserve a stop, and which real motion or light should it perform?
17
+
18
+ ## Use real evidence
19
+
20
+ Ask the user for their own data, scans, files or rights first; otherwise find licence-clean sources (see the [production recipe](references/recipe.md)). Never stand a generated image in for the evidence, and never invent a number. Keep `production/FACTS.md` (each on-screen or spoken claim, its source URL and quoted wording, or the measurement method) and `production/CREDITS.md` (every asset's source, author and licence), and deliver both with the film. CC BY-SA, ODbL, "no known restrictions" or non-commercial terms are not CC0: name them to the user and ask before using them.
21
+
22
+ ## Build the look and movement
23
+
24
+ Read `pixijs` and the relevant Graphics, Text, Container, Assets, Mesh or Filters skills. Read `animaguru` before generating assets: generation can supply music, narration or a title background, never the evidence itself. Discover current models and estimates, respect the user's budget, and reuse completed media. Essential text and exact numerical geometry belong in authored canvas content.
25
+
26
+ - Geometry, positions and counts come from the product's own files. Without files, build only from published dimensions, say that it is a model, and show no number you could not source.
27
+ - Separate layers on one axis, top first, with even gaps and a long settle; repeated parts lift in a wave. Labels sit in a fixed column (index, name, one spec line); close bottom first and draw dimensions in the object's own perspective.
28
+ - Keep the frame dark and neutral so the product is the brightest thing, use one accent for measured lines and indices, and show plain package tops instead of brand marks.
29
+
30
+ Use the [production recipe](references/recipe.md) for sources, the bundled original study and port-specific decisions. It is a technique example, not a prescribed film. Keep motions a function of absolute seconds; separate drawing cadence from camera/light cadence when the material calls for it. Prepare assets locally, preserve async seeking and register actual resource/cue times. Keep essential type editable and localized.
31
+
32
+ ## Review and delivery
33
+
34
+ Inspect label reading time at each stop, leader anchors through the orbit, revision consistency between files, dark plastics against the ground and every number against `FACTS.md`. Check representative full-resolution frames, moving playback, desktop/mobile fit and cold seeks. Follow `animaguru-video` for production records, audio mixing and HTML5 delivery; export MP4 when requested. Describe the actual 2D/2.5D rendering method accurately. Physically rendered 3D remains deferred.
@@ -0,0 +1,27 @@
1
+ # Exploded Teardown production recipe
2
+
3
+ The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `exploded-teardown`. Its drawing commands are consumed by `src/studies/pixi-renderer.ts`; geometry and time sampling are shared with the gallery renderer. All copy lives in `shared/locales/en/style-studies.json`.
4
+
5
+ In an untouched starter, run `npm run example -- exploded-teardown`, then `npm run dev`. The command refuses to replace an authored film, retains starter backups in `production/example-backup/`, and writes an 8-second study with its own resource tracks. `npm run export:html` and `npm run export:mp4` use this installed film normally. To use the recipe inside an existing film, import `studyFrame()` and `StudyRenderer`, then compose the selected scene into the project's timeline instead of running the installer.
6
+
7
+ ## Evidence and sources
8
+
9
+ The user's own CAD, layout files and BOM first. For a public product, open hardware (GitHub, the OSHWA list, Hackaday.io) with its original CAD, and component datasheets from the maker. CC0, public domain, CC BY and MIT are fine with credit; CERN-OHL, CC BY-SA and GPL hardware: name the terms and ask first. Download into the film's `public/` or `production/` folders, log every request, and record each asset in `production/CREDITS.md` and each claim in `production/FACTS.md`. Burn a readable credit into the frame where the medium calls for one.
10
+
11
+ ## Adaptation decisions
12
+
13
+ - Convert the CAD offline to simple extruded outlines per layer (outline, holes, heights). Draw each layer's faces with `Graphics` from one camera, layer by layer along the lift axis, and map the board artwork onto the board's top face with a `PerspectiveMesh`.
14
+ - Paint the board texture once from the layout (copper, pads, silkscreen). Emitters are additive sprites that switch on while the layers are apart.
15
+ - Project labels and dimension lines with `Graphics` and `Text` every frame, and interpolate camera keys monotonically so a macro hold really holds.
16
+
17
+ The study is silent, original procedural art with illustrative values, labelled as such; it demonstrates material, light, layout and motion, not evidence. Replace its stand-ins with the real data, imagery or scans described above, never with generated imagery. The gallery preview is rendered in code from an original model whose dimensions it labels. Configure the subject, palette, scene sequence, duration and soundtrack from the brief.
18
+
19
+ Use `src/studies/timing.ts` for deterministic easing, seeded variation, measured stroke truncation and cue helpers. `window.animaguru.texts` exposes visible study text bounds for `npm run review`; text declarations alone do not count as visual proof. Inspect the actual frames as well.
20
+
21
+ ## Sources and attribution
22
+
23
+ Inspired by the following pinned references; source-specific 3D/media dependencies are not bundled. New study art and scene geometry are original. The workspace's `VIDEO-STYLE-NOTICES.txt` preserves the repository notices and clarifies third-party asset scope.
24
+
25
+ - [styles/teardown/STYLE.md](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/teardown/STYLE.md)
26
+ - [styles/teardown/demo/src/main.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/teardown/demo/src/main.js)
27
+ - [styles/teardown/demo/src/overlay.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/teardown/demo/src/overlay.js)
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: animaguru-kino-montage
3
+ description: Build Constructivist Montage visuals and motion in an AnimaGuru PixiJS video workspace. Use when this visual style is chosen for an explainer, advertisement or general video.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Constructivist Montage
8
+
9
+ Real archive footage, photographs and documents, printed as one ink-and-paper poster with a single red, cut on a machine beat: diagonal bands carry the type, windows hold the film, people are scissored out of photographs and stacked into structures. It is a documentary & broadcast style: real footage, photographs and documents carry the film. Subject, audience, emotional tone and story come from the user's brief. This style supports Explainer, Advertisement and General Video.
10
+
11
+ ## Establish direction
12
+
13
+ Follow sibling `animaguru-video` for purpose → style → compact interview before new production. Reuse explicit choices and completed briefs; honor a requested interview skip. Share [the style gallery](https://animaguru.com/animation-styles#kino-montage). Fold missing visual questions into the shared interview:
14
+
15
+ - Which archive footage, photographs and documents (with rights) tell this story, and what is the signature build (a tower, a bridge span, a crowd forming a word)?
16
+ - What is the axis angle and tempo for the diagonal bands and the beat grid?
17
+
18
+ ## Use real evidence
19
+
20
+ Ask the user for their own film, video, photographs, scans or data first; otherwise find licence-clean sources (see the [production recipe](references/recipe.md)). Never stand a generated image in for archive material, and never invent a number. Keep `production/FACTS.md` (every number, date and claim, with its source and quoted wording) and `production/CREDITS.md` (every asset's source, author and licence), delivered with the film. CC BY-SA or "no known restrictions" are not usable without the user's explicit agreement.
21
+
22
+ ## Build the look and movement
23
+
24
+ Read `pixijs` and the relevant Filters, Graphics, Text or Container skills. Read `animaguru` before generating assets: generation can supply music or narration, never the archive imagery itself. Discover current models and estimates, respect the user's budget, and reuse completed media. Essential counters, headings and marked facts belong in authored canvas content.
25
+
26
+ - Four elements only — bands, windows, cut-outs, type blocks — share one ink-to-paper print grade; red is the only colour, laid on top, and never sits on red.
27
+ - Cuts conflict in direction, value or geometry on a beat grid that can halve per section; nothing holds longer than a second without something moving.
28
+ - The signature photomontage tower (or equivalent build) climbs one unit per beat with the count; a document's own drawings can be "lifted off the page" and restood to scale as a chart.
29
+
30
+ Use the [production recipe](references/recipe.md) for sources, the bundled original study and port-specific decisions. It is a technique example, not a prescribed film. Keep motions a function of absolute seconds; separate drawing cadence from camera/light cadence when the material calls for it. Prepare assets locally, preserve async seeking and register actual resource/cue times. Keep essential type editable and localized.
31
+
32
+ ## Review and delivery
33
+
34
+ Inspect the print grade's consistency per clip, red never sitting on red, counter-to-caption agreement, type clear of window edges, and every number against `FACTS.md`. Check representative full-resolution frames, moving playback, desktop/mobile fit and cold seeks. Follow `animaguru-video` for production records, audio mixing and HTML5 delivery; export MP4 when requested. Describe the actual 2D/2.5D rendering method accurately. Physically rendered 3D remains deferred.
@@ -0,0 +1,26 @@
1
+ # Constructivist Montage production recipe
2
+
3
+ The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `kino-montage`. Its drawing commands are consumed by `src/studies/pixi-renderer.ts`; geometry and time sampling are shared with the gallery renderer. All copy lives in `shared/locales/en/style-studies.json`.
4
+
5
+ In an untouched starter, run `npm run example -- kino-montage`, then `npm run dev`. The command refuses to replace an authored film, retains starter backups in `production/example-backup/`, and writes an 8-second study with its own resource tracks. `npm run export:html` and `npm run export:mp4` use this installed film normally. To use the recipe inside an existing film, import `studyFrame()` and `StudyRenderer`, then compose the selected scene into the project's timeline instead of running the installer.
6
+
7
+ ## Evidence and sources
8
+
9
+ Internet Archive (read each item's `licenseurl`; for pre-1978 US film, check the title and end cards for a copyright notice — published 1930 or earlier is public domain by date), Wikimedia Commons (public domain, CC0 or CC BY, credited in full; not CC BY-SA), U.S. National Archives, Library of Congress, NASA and other federal agencies (federal works are public domain; check each item's rights statement), open-access museums such as the Met, Rijksmuseum and Smithsonian (CC0 where the object page says so), university and city library digitised ephemera (read the rights statement; "copyright status undetermined" is not usable). Download into the film's `public/` or `production/` folders, log every request, and record each asset's seconds used in `production/CREDITS.md` and every number, date and claim in `production/FACTS.md`.
10
+
11
+ ## Adaptation decisions
12
+
13
+ - Composite each window as a masked `Container` (a rectangle or a sheared parallelogram) holding a graded `Sprite` or video texture; apply the duotone ink-to-paper grade with one `ColorMatrixFilter` shared by every window, photograph and document.
14
+ - Stand in for the segmentation-and-paper-border cut-out technique with flat `Graphics` silhouettes carrying a paper-coloured outline stroke; the signature tower stacks them with a simple eased camera climb tied to the floor counter.
15
+ - Drive every slam, wipe and flash from one beat-grid timing function (a `bar(n, beat)`-equivalent in `timing.ts`), shared by the diagonal bands, the type blocks and the cuts, so the whole poster cuts on the same grid.
16
+
17
+ The study is silent, original procedural art with illustrative values, labelled as such; it demonstrates material, layout and motion, not evidence. Replace its stand-ins with the real footage, photographs and documents described above, never with generated imagery. The gallery preview uses illustrative silhouettes, not real archive photographs, labelled as such. Configure the subject, palette, scene sequence, duration and soundtrack from the brief.
18
+
19
+ Use `src/studies/timing.ts` for deterministic easing, seeded variation, measured stroke truncation and cue helpers. `window.animaguru.texts` exposes visible study text bounds for `npm run review`; text declarations alone do not count as visual proof. Inspect the actual frames as well.
20
+
21
+ ## Sources and attribution
22
+
23
+ Inspired by the following pinned references; source-specific 3D/media dependencies are not bundled. New study art and scene geometry are original. The workspace's `VIDEO-STYLE-NOTICES.txt` preserves the repository notices and clarifies third-party asset scope.
24
+
25
+ - [styles/kino-montage/STYLE.md](https://github.com/lemomo-ai/lemo-opuscar/blob/77ee8318df779b0736d7de0abe24387e51023735/styles/kino-montage/STYLE.md)
26
+ - [styles/kino-montage/demo/index.html](https://github.com/lemomo-ai/lemo-opuscar/blob/77ee8318df779b0736d7de0abe24387e51023735/styles/kino-montage/demo/index.html)
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: animaguru-lidar-survey
3
+ description: Build LiDAR Survey visuals and motion in an AnimaGuru PixiJS video workspace. Use when this visual style is chosen for an explainer, advertisement or general video.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # LiDAR Survey
8
+
9
+ Measured point clouds flown through in the dark, peeled by a cutting plane and condensed into a raking-lit surface with traced features. It is an evidence style: real data, imagery or scans carry the film. Subject, audience, emotional tone and story come from the user's brief. This style supports Explainer, Advertisement and General Video.
10
+
11
+ ## Establish direction
12
+
13
+ Follow sibling `animaguru-video` for purpose → style → compact interview before new production. Reuse explicit choices and completed briefs; honor a requested interview skip. Share [the style gallery](https://animaguru.com/animation-styles#lidar-survey). Fold missing visual questions into the shared interview:
14
+
15
+ - Which place and dataset (or the user's own scan), and which feature should the survey reveal?
16
+ - Which classes should be peeled or kept, and which one reading should land?
17
+
18
+ ## Use real evidence
19
+
20
+ Ask the user for their own data, scans, files or rights first; otherwise find licence-clean sources (see the [production recipe](references/recipe.md)). Never stand a generated image in for the evidence, and never invent a number. Keep `production/FACTS.md` (each on-screen or spoken claim, its source URL and quoted wording, or the measurement method) and `production/CREDITS.md` (every asset's source, author and licence), and deliver both with the film. CC BY-SA, ODbL, "no known restrictions" or non-commercial terms are not CC0: name them to the user and ask before using them.
21
+
22
+ ## Build the look and movement
23
+
24
+ Read `pixijs` and the relevant Graphics, Text, Container, Assets, Mesh or Filters skills. Read `animaguru` before generating assets: generation can supply music, narration or a title background, never the evidence itself. Discover current models and estimates, respect the user's budget, and reuse completed media. Essential text and exact numerical geometry belong in authored canvas content.
25
+
26
+ - Every point is a real return at its measured position: colour by height above ground or by class, value by intensity, never moved into a shape. Points appear behind a front or by height, never by a random fade.
27
+ - Peel with a cutting plane by height above ground, then condense the remaining ground into a raking-lit surface. Exaggerate micro relief only with an on-screen note, and measure on undistorted data.
28
+ - Keep the background near black, fronts a cool near-white and one amber accent for traced features and the reading. Traced features are interpretation: say "traced".
29
+
30
+ Use the [production recipe](references/recipe.md) for sources, the bundled original study and port-specific decisions. It is a technique example, not a prescribed film. Keep motions a function of absolute seconds; separate drawing cadence from camera/light cadence when the material calls for it. Prepare assets locally, preserve async seeking and register actual resource/cue times. Keep essential type editable and localized.
31
+
32
+ ## Review and delivery
33
+
34
+ Inspect point sizes and fog at distance, registration between points and surface at the front, the exaggeration note, privacy cropping and the reading against `FACTS.md`. Check representative full-resolution frames, moving playback, desktop/mobile fit and cold seeks. Follow `animaguru-video` for production records, audio mixing and HTML5 delivery; export MP4 when requested. Describe the actual 2D/2.5D rendering method accurately. Physically rendered 3D remains deferred.
@@ -0,0 +1,26 @@
1
+ # LiDAR Survey production recipe
2
+
3
+ The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `lidar-survey`. Its drawing commands are consumed by `src/studies/pixi-renderer.ts`; geometry and time sampling are shared with the gallery renderer. All copy lives in `shared/locales/en/style-studies.json`.
4
+
5
+ In an untouched starter, run `npm run example -- lidar-survey`, then `npm run dev`. The command refuses to replace an authored film, retains starter backups in `production/example-backup/`, and writes an 8-second study with its own resource tracks. `npm run export:html` and `npm run export:mp4` use this installed film normally. To use the recipe inside an existing film, import `studyFrame()` and `StudyRenderer`, then compose the selected scene into the project's timeline instead of running the installer.
6
+
7
+ ## Evidence and sources
8
+
9
+ USGS 3DEP (Entwine Point Tiles), OpenTopography (licence per collection), AHN (Netherlands, CC0), England's Environment Agency LiDAR (OGL), IGN LiDAR HD, PNOA-LiDAR, NLS Finland and LINZ (CC BY 4.0); read each portal's terms and fetch subsets by box. Ask for the user's own scans when the film is about their asset. Download into the film's `public/` or `production/` folders, log every request, and record each asset in `production/CREDITS.md` and each claim in `production/FACTS.md`. Burn a readable credit into the frame where the medium calls for one.
10
+
11
+ ## Adaptation decisions
12
+
13
+ - Quantise the cloud offline (positions, height above ground, class, intensity) into a binary asset. Project points each frame on the CPU or in a vertex shader and draw them with a `ParticleContainer` or a custom point `Mesh` sized in world units, with distance fog.
14
+ - Bake the bare-earth surface into a hillshaded, contour-lined texture from the ground model (raking light at 20–35°) and reveal it behind the front with a mask while the points ahead of it remain.
15
+ - Draw traced features, the ruler and readings with `Graphics` through the same projection. Keep the camera on one C1 spline of target, distance, heading and pitch so it never stops.
16
+
17
+ The study is silent, original procedural art with illustrative values, labelled as such; it demonstrates material, light, layout and motion, not evidence. Replace its stand-ins with the real data, imagery or scans described above, never with generated imagery. The gallery preview is a procedural cloud drawn in code, labelled on screen as not a real survey. Configure the subject, palette, scene sequence, duration and soundtrack from the brief.
18
+
19
+ Use `src/studies/timing.ts` for deterministic easing, seeded variation, measured stroke truncation and cue helpers. `window.animaguru.texts` exposes visible study text bounds for `npm run review`; text declarations alone do not count as visual proof. Inspect the actual frames as well.
20
+
21
+ ## Sources and attribution
22
+
23
+ Inspired by the following pinned references; source-specific 3D/media dependencies are not bundled. New study art and scene geometry are original. The workspace's `VIDEO-STYLE-NOTICES.txt` preserves the repository notices and clarifies third-party asset scope.
24
+
25
+ - [styles/lidar-survey/STYLE.md](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/lidar-survey/STYLE.md)
26
+ - [styles/lidar-survey/demo/film.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/lidar-survey/demo/film.js)
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ryan
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: animaguru-machine-anatomy
3
+ description: Build Machine Anatomy visuals and motion in an AnimaGuru PixiJS video workspace, explaining an idea as a crafted isometric machine of many small shaded parts in a framed figure card with a live readout. Use when this visual style is chosen for an explainer, advertisement or general video.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Machine Anatomy
8
+
9
+ Explain an idea by building it as a real, working object. A cache that skips repeated work becomes a pin-tumbler lock that turns only when every pin matches; one service shared by many customers becomes a gantry whose single head visits every well. Viewers understand the idea because they recognise the machine. Dozens of small, precise, four-tone solids sit in a framed figure card with a title and a live readout, and every number on screen comes from the model that moves the parts. Subject, audience, tone and story come from the user's brief. This style supports Explainer, Advertisement and General Video. It is adapted from the open-source Anatomy skill (MIT).
10
+
11
+ ## Establish direction
12
+
13
+ Follow sibling `animaguru-video` for purpose → style → compact interview before new production. Reuse explicit choices and completed briefs; honor a requested interview skip. Share [the style gallery](https://animaguru.com/animation-styles#machine-anatomy). Fold missing visual questions into the shared interview:
14
+
15
+ - Which idea, product or process should the machine embody, and which real numbers (sizes, counts, rates, thresholds, prices) must the readout show?
16
+ - Light paper or dark plate? Monochrome with one lit accent, or one brand colour where colour carries meaning?
17
+ - One figure the camera explores, or a short series (Fig 1, Fig 2…) at one scale?
18
+
19
+ ## Invent the machine
20
+
21
+ Write the concept and the parts list before any geometry; most of the quality is decided here.
22
+
23
+ 1. **Truth first.** Collect the true numbers and behaviour. Write them as one small pure model, a function of absolute seconds, that drives the motion, the readout and the captions.
24
+ 2. **Invent the object.** Choose a machine, instrument, tool or piece of furniture whose working maps one-to-one onto the idea, and say in one sentence what moves and what that motion means. Never boxes, arrows and labels; never a traced reference image.
25
+ 3. **Parts list.** At least 40 parts, grouped: base (plate, feet, groove, corner screws, label plate, ruler strip), structure (posts, rails, frame bars, end stops), mechanism (carriage, bushings, springs, plunger, needle), controls (knurled knob, thumb screw) and the subject, the one lit part. Each part rests on another part and has a job.
26
+ 4. **Plan the world.** World units with x and y on the floor and z up; plans as rounded rectangles. Camera azimuth 45° (35–60° to show the long side) and elevation 30° (higher to look into something open). Fit the projection to the full travel of every moving part so nothing leaves the card.
27
+
28
+ Read [craft](references/craft.md) before designing: tones, painter's order, part recipes, exploded views, faces and screens, and the faults that make a figure read as a diagram.
29
+
30
+ ## Build the look and movement
31
+
32
+ Read `pixijs` and the relevant Graphics and Container skills. The workspace bundles the Anatomy geometry kit in `src/kit/anatomy/` (root `runtime/kit/anatomy/` in a multi-animation workspace): `iso-kit.ts` for the camera, solids and parts, `palette.ts` for light and dark tones, and `pixi.ts` with `drawSolid`, `drawLine` and `drawDots`. The [production recipe](references/recipe.md) covers the API, the bundled study and what is not bundled.
33
+
34
+ - Build static geometry once; rebuild only what moves or changes shape. Paint back to front, bottom to top: sort repeated parts with `depthOf`, split anything that wraps another part into back and front halves, and draw each moving part in the slot where it physically sits for its whole travel.
35
+ - Let the kit shade: four side tones by facing plus a lighter top. Base `lo`, structure `mid`, subject `hi`, and exactly one `lit` part, the one the viewer should watch now. Colour only where colour is the subject.
36
+ - Every line ends on something: a face, another line or a terminal dot. No leader lines, balloons, dimension arrows or floating labels in the drawing. Words go in the card corners (Fig n, title, hint, readout) or the caption, plus at most one tiny engraved label.
37
+ - Motion is calm and true: eased travel, critically damped or real springs, one event at a time and holds long enough to read the readout. Keep every position a function of absolute seconds so seeking is exact. A camera push may reveal a mechanism, then settles.
38
+ - Essential type stays editable and localized. AnimaGuru-generated media can supply a backdrop, a product inset or sound; the machine itself is authored geometry.
39
+
40
+ ## Review and delivery
41
+
42
+ Zoom in like a critic. Save frames at 2–4× over every junction (feet, rails, carriages, collars, the subject) in each resting pose and mid-move. Nothing passes through anything, no line stops in mid-air, the painter's order holds through every frame of the motion, the readout matches the parts, and the figure still reads at phone size. Then ask whether it is instantly a real object, rich in small parts with volume, with no bare face or empty corner, and add the real parts that are missing. Check representative full-resolution frames, moving playback, desktop/mobile fit and cold seeks. Follow `animaguru-video` for production records, audio mixing and HTML5 delivery; export MP4 when requested. Describe the method accurately as projected 2.5D solids; physically rendered 3D remains deferred.
@@ -0,0 +1,97 @@
1
+ # Machine Anatomy craft
2
+
3
+ What makes a figure read as a crafted object rather than a diagram, condensed from the Anatomy skill's craft guide and adapted for film. `K` is the bundled kit (`import * as K from "./kit/anatomy/iso-kit"`) and `P` its projection.
4
+
5
+ ## What crafted means
6
+
7
+ 1. **A real object you could build.** The viewer names it at a glance: a test rig, a dial gauge, a chest of drawers, a gantry plotter, a lock. It is invented for the subject, never traced.
8
+ 2. **Many small, precise parts.** A single figure has 30–60 solids; a hero subject can carry far more. Density comes from structure (feet, rails, stops, bushings, knobs, screws), not texture. Every part rests on another, aligns to its neighbours and has a job.
9
+ 3. **Volume.** Real thickness, four shaded sides, lighter tops, bevels that catch light and a soft halo under the base.
10
+ 4. **Calm.** Thin lines, a restrained palette, one lit accent and motion slow enough to follow.
11
+ 5. **Truth.** The readout shows correct, live numbers and the motion follows the model: real sizes, thresholds and spring behaviour.
12
+
13
+ | Idea | Machine |
14
+ |---|---|
15
+ | One shared resource serving many requests | A gantry plotter: one head visiting 16 wells |
16
+ | Work skipped when nothing changed | A pin-tumbler lock: when every pin matches, the plug turns |
17
+ | Items of different sizes | A chest of drawers, each as deep as its item |
18
+ | A queue with limited capacity | A coin chute with a fixed number of slots and a gate |
19
+ | A rate limit | A token hopper refilled by a metered wheel |
20
+ | Settings that interact | A test rig with springs, a probe and a dial gauge |
21
+
22
+ ## Faults that get figures rejected
23
+
24
+ - **Abstract stacks.** Floating plates or tiles standing for "layers" read as nothing. Make them drawers, trays in a rack, plates on guide pillars or cards in a holder.
25
+ - **One big plain slab.** Break it into a base, a carriage and parts; add a groove, screws, a ruler and a label plate.
26
+ - **Diagram furniture.** Leader lines, numbered balloons, dimension arrows, hatching, dashed hidden edges and floating labels belong in the caption.
27
+ - **Lines that stop in mid-air.** Connectors that end short of a part, creases that stop before a corner, ticks floating on a bare face.
28
+ - **Wireframes.** See-through boxes whose back edges show. Every solid is filled in paper colour and hides what is behind it.
29
+ - **Colour everywhere.** Monochrome unless colour is the subject. A fluid is a tint of the figure's own inks, not a new saturated colour.
30
+ - **Words in the drawing.** At most one tiny engraved label on a face.
31
+ - **Snapping motion.** Parts that jump to a new value. Ease or spring everything.
32
+ - **Things through things.** A cable through a duct, a rod sunk into a block, a part that passes through its neighbour mid-move. Parts meet flush, tangent or rim-on-surface.
33
+ - **Textures that stop.** Ribs, rows of bolts, seams and ticks end on a real edge or fade out; they never stop mid-surface.
34
+ - **Fixing one frame by eye.** Re-ordering a part until one frame looks right breaks another. Decide order from geometry, then check every pose.
35
+
36
+ ## Part recipes
37
+
38
+ Draw each recipe's solids in the order listed. Heights in world units, z up.
39
+
40
+ - **Base plate on feet.** `haloOf(PLATE, -17, 12, P)` blurred under everything; feet at `corners(PLATE, 22)`, sorted by `depthOf`, each a `cylinder` flange (tone `lo`) under a `cylinder` foot (`mid`); `slabOf(PLATE, -12, 12, P, 8, 1.6)` (`mid`); groove `planOutline(insetPlan(PLATE, 5), 0, P)` (`faint`); corner screws at `corners(PLATE, 10)`, a `ring` (`lo`) with a dot.
41
+ - **Ruler strip and label plate.** A 0.6-high strip slab (`lo`, no crease) with `topTicks(from, to, 4, 5, edge, 0.6, [2, 3.6], P)`, minor `lo`, major `mid`, rooted on the strip's edge. Label plate: a 0.8-high slab, an inset outline (`faint`), three rule lines of different lengths standing for print, and two screw dots.
42
+ - **Seams on a box.** `sideSeam(plan, z, P, steps)` wraps the visible corners and ends on the silhouette; pass the slab's own `steps` and draw it before the outline. A line on one face runs edge to edge.
43
+ - **Rails, end stops and a carriage.** Long thin slabs (`mid`, bevel 0.4–0.5) with screw dots; taller stops at both ends; a carriage slab with bushings at its corners, rivets along its front edge and a knurled handle.
44
+ - **Post, collar and clamp.** A `cylinder` collar under a slimmer post (no crease), faint `sideArc` seam rings, a clamp block with a thumb screw (neck slab, cylinder, `knurl`).
45
+ - **Knurled knob with a pointer.** `cylinder` (`mid`), `knurl` (`lo`) and a `lineOnTop` pointer (`hi`).
46
+ - **Coil spring round a rod.** `coil(from, to, [y, z], r, turns, "x", P)` returns `back` and `front`: draw `back` (`lo`), then the rod, then `front` (`mid`). Rebuild it each frame when it compresses.
47
+ - **Dial gauge, face up.** A puck `cylinder` (`hi`), knurled bezel band, bezel `ring`, `radialTicks` (minor `lo`, major `mid`), a crown on the side and a needle `lineOnTop` (`lit`) rebuilt each frame.
48
+ - **Drawer.** Case slab, a thin front slab with a pull (two posts and a bar) and a label holder; open it by moving along its axis, drawing the box behind the front.
49
+ - **Screws and rivets.** Dots 0.4–0.55 units across, `mid`, with a `ring` at plate corners.
50
+
51
+ ## Tones
52
+
53
+ | Element | Tone |
54
+ |---|---|
55
+ | Base, feet, floors | `lo` |
56
+ | Structure: posts, rails, frame, carriage, case | `mid` |
57
+ | The subject | `hi` |
58
+ | The part to watch now | `lit` (one only) |
59
+ | Grooves, inset outlines, floor grids | `faint` |
60
+ | Minor ticks / major ticks / zero mark | `lo` / `mid` / `hi` |
61
+ | Creases | `faint`, or `lo` on `hi` parts |
62
+
63
+ The lit accent can move through a film: when the story's focus moves from the carriage to the gauge, hand the lit tone over with the beat.
64
+
65
+ ## Painter's order
66
+
67
+ - Base first, then everything resting on it. Within a level, sort by `depthOf(centre, P)`, far before near.
68
+ - Split wrapping parts: a spring round a rod, a frame round a carriage. Draw the back half, the inner part, then the front half.
69
+ - A moving part keeps its slot in the order for its whole travel. If it could pass in front of and behind the same neighbour, split the neighbour or limit the travel so the order never changes.
70
+ - A vertical part passing through a horizontal one (a post through a clamp) is drawn in two segments, below and above.
71
+ - Parts higher up cover the tops of the parts they rest on: a beam is drawn after the posts under it, a head after the beam it runs on.
72
+
73
+ ## Camera and composition
74
+
75
+ - Default azimuth 45°, elevation 30°. Turn the azimuth (35–60°) so the face that carries the mechanism faces the viewer; raise the elevation to look into trays, wells and open boxes.
76
+ - Fit with `fitProjection` to every extreme point, including the far ends of every moving part's travel.
77
+ - The object fills about 55–65% of the card, centred, clear of the corner labels. A series keeps one scale.
78
+ - Check a phone-size frame: if small parts disappear, reframe closer rather than thickening every line.
79
+
80
+ ## Themes
81
+
82
+ `ANATOMY_PALETTES` holds both token sets. Light (paper) is the default and the reference look. Paper equals the card colour, so fills hide what is behind without showing as patches; the four shades sit about 3% apart; lines run from `faint` to `hi`, with `lit` black on light and white on dark. A cavity (the inside of a box, a well, a recess) gets darker shades as a physical ground. Anything that fades by opacity on paper gets a saturated colour so it does not turn grey.
83
+
84
+ ## Exploded views
85
+
86
+ An exploded view earns its place when the parts are the explanation. Choose the assemblies the real thing comes apart into, move each along its real direction far enough to clear its neighbours, stagger them so nothing passes through anything in any frame, and keep every part attached to its own assembly. Re-sort depth at each frame if assemblies cross, and hold the apart pose long enough to read.
87
+
88
+ ## Faces and screens
89
+
90
+ A display, a dial face or engraved text is drawn in the plane of its face (`sideMatrix` or `topMatrix`), clipped to its window, with the recess walls drawn. Text the machine displays is part of the object: fit its widest string in the window with a margin. Content seen through an opening is clipped by the opening and by its own plane.
91
+
92
+ ## Motion
93
+
94
+ - Ease toward targets with exponential follow or critically damped springs; real springs only where the subject is springy, with stiffness and damping from the model.
95
+ - Read the readout from where the parts are, not from their targets, and take a phase word and its number from the same instant.
96
+ - One clear event at a time, then a hold. An 8-second figure usually carries one mechanism cycle or one sweep through its states.
97
+ - Under a fast cut or social pacing, keep the mechanism readable: shorter holds, never skipped steps.