@docyrus/animaguru 0.20.0 → 0.23.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.
- package/NOTICE.md +25 -1
- package/README.md +32 -3
- package/dist/animaguru.js +430 -253
- package/package.json +1 -1
- package/skills/animaguru/SKILL.md +1 -1
- package/skills/animaguru-archive-light-table/SKILL.md +34 -0
- package/skills/animaguru-archive-light-table/references/recipe.md +26 -0
- package/skills/animaguru-briefing-board/SKILL.md +34 -0
- package/skills/animaguru-briefing-board/references/recipe.md +27 -0
- package/skills/animaguru-data-physicalization/SKILL.md +34 -0
- package/skills/animaguru-data-physicalization/references/recipe.md +27 -0
- package/skills/animaguru-exploded-teardown/SKILL.md +34 -0
- package/skills/animaguru-exploded-teardown/references/recipe.md +27 -0
- package/skills/animaguru-lidar-survey/SKILL.md +34 -0
- package/skills/animaguru-lidar-survey/references/recipe.md +26 -0
- package/skills/animaguru-machine-anatomy/LICENSE +21 -0
- package/skills/animaguru-machine-anatomy/SKILL.md +42 -0
- package/skills/animaguru-machine-anatomy/references/craft.md +97 -0
- package/skills/animaguru-machine-anatomy/references/recipe.md +52 -0
- package/skills/animaguru-microscope-story/SKILL.md +34 -0
- package/skills/animaguru-microscope-story/references/recipe.md +26 -0
- package/skills/animaguru-satellite-briefing/SKILL.md +34 -0
- package/skills/animaguru-satellite-briefing/references/recipe.md +27 -0
- package/skills/animaguru-white-model-projection/SKILL.md +34 -0
- package/skills/animaguru-white-model-projection/references/recipe.md +27 -0
- package/templates/video/README.md +1 -1
- package/templates/video/VIDEO-STYLE-NOTICES.txt +25 -1
- package/templates/video/shared/locales/en/style-studies.json +73 -0
- package/templates/video/src/kit/anatomy/LICENSE +21 -0
- package/templates/video/src/kit/anatomy/iso-kit.ts +842 -0
- package/templates/video/src/kit/anatomy/palette.ts +41 -0
- package/templates/video/src/kit/anatomy/pixi.ts +43 -0
- package/templates/video/src/player.ts +20 -0
- package/templates/video/src/studies/anatomy-plotter.ts +179 -0
- package/templates/video/src/studies/scenes.ts +171 -0
- package/templates/video/src/style.css +19 -3
- package/templates/video/style-source-provenance.json +7 -2
package/package.json
CHANGED
|
@@ -61,7 +61,7 @@ animaguru assets generate PROJECT_ID --type speech --name "Welcome" \
|
|
|
61
61
|
--prompt "Welcome, traveler." --voice Kore --delivery "Warm and welcoming" --yes
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
Images use the staff-managed route automatically. Use `--model` to select a model for video, music, speech or sound effects; discover the choices with `catalog` and the server's configured subset with `assets list`. Asset defaults are per type, independently of sprite project defaults. Image backgrounds are retained unless `--transparent` is supplied. CLI 0.17.0 adds `--references`, `--mask` and the 16:9 and 9:16 image shapes. `--references SHA,SHA` (up to four) makes an image follow this project's saved images, uploads or sprite art. To keep a recurring character consistent, generate a character sheet once and reference its `file` SHA in every later image; refer to references in the prompt as Image 1, Image 2 and so on, and say what to take from each. `--aspect-ratio` is 1:1, 3:2, 2:3, 16:9 or 9:16; use 16:9 or 9:16 for video scenes. `--mask x,y,width,height[;…]` (up to eight rectangles, in fractions of Image 1 from the top left) edits only those parts of Image 1, the first reference, and keeps the rest and Image 1's shape. Look at the image before choosing the rectangles. Videos require an image asset's `file` SHA from `assets list`, or a character's `art` SHA from `projects get`, in the same project. Validate video options against the selected model's `videoProfiles` in `catalog`; omitted video settings use five seconds and that provider's first resolution/mode. MiniMax H3 Max and H3 Max Turbo (`fal/minimax-h3-max`, `fal/minimax-h3-max-turbo`) also take `--workflow text-to-video` (with `--aspect-ratio`) and `--workflow extend-video` (with `--source VIDEO_SHA`, 2K resolution, `--extend-output`, and up to three comma-separated `--audio-references`). From images, they accept `--end-reference` with or without `--reference` and a `--soundtrack AUDIO_SHA`. All workflows take `--prompt-expansion` and `--seed`. These need CLI 0.8.0 or newer. CLI 0.18.0 adds H3 Max's (not Turbo's) `--workflow reference-to-video` (keep a character across clips from up to nine `--references`, three `--reference-videos` and three `--audio-references`, named Image 1, Video 1, Audio 1 in the prompt; optional `--reference`, `--end-reference`, `--middle-reference` with `--middle-seconds`), `lip-sync` (the face in `--reference` says `--soundtrack` speech of 5 s–15 min; no `--prompt`; `--transcribe`), `camera-controls` (`--camera "time,azimuth,elevation,distance;…"`, 2–12 keyframes around `--reference`; without a prompt only the camera moves), `insert-video` (a 5–13 s scene inside `--source` from `--insert-at` to `--resume-at`, guided by `--references`/`--reference-videos`), `recast` (people in `--references` replace those in `--source`; pass `--subject-consent` only after each person agreed), `relight` (`--source` relit from a `--lighting` sphere image; no prompt), `3d-to-video` (a 3D render `--source` into footage, from `--references` or `--generated-references`) and `style` (`--style vhs|retro-toon-70s|low-poly|hand-drawn|16bit-pixel`, `--damage` for VHS, 768p, 5–15 whole seconds). Lip-sync, recast, relight and 3d-to-video take their input's length; their dry runs, like reference-to-video's and insert-video's, are server estimates because the price depends on the files. H3 takes fractional `--seconds` (6.5). For Gemini speech, `--prompt` is spoken verbatim and `--delivery` is a separate instruction. Music uses Lyria; the Gemini TTS models are for speech.
|
|
64
|
+
Images use the staff-managed route automatically. Use `--model` to select a model for video, music, speech or sound effects; discover the choices with `catalog` and the server's configured subset with `assets list`. Asset defaults are per type, independently of sprite project defaults. Image backgrounds are retained unless `--transparent` is supplied. CLI 0.17.0 adds `--references`, `--mask` and the 16:9 and 9:16 image shapes. `--references SHA,SHA` (up to four) makes an image follow this project's saved images, uploads or sprite art. To keep a recurring character consistent, generate a character sheet once and reference its `file` SHA in every later image; refer to references in the prompt as Image 1, Image 2 and so on, and say what to take from each. `--aspect-ratio` is 1:1, 3:2, 2:3, 16:9 or 9:16; use 16:9 or 9:16 for video scenes. `--mask x,y,width,height[;…]` (up to eight rectangles, in fractions of Image 1 from the top left) edits only those parts of Image 1, the first reference, and keeps the rest and Image 1's shape. Look at the image before choosing the rectangles. Videos require an image asset's `file` SHA from `assets list`, or a character's `art` SHA from `projects get`, in the same project. Validate video options against the selected model's `videoProfiles` in `catalog`; omitted video settings use five seconds and that provider's first resolution/mode. MiniMax H3 Max and H3 Max Turbo (`fal/minimax-h3-max`, `fal/minimax-h3-max-turbo`) also take `--workflow text-to-video` (with `--aspect-ratio`) and `--workflow extend-video` (with `--source VIDEO_SHA`, 2K resolution, `--extend-output`, and up to three comma-separated `--audio-references`). From images, they accept `--end-reference` with or without `--reference` and a `--soundtrack AUDIO_SHA`. All workflows take `--prompt-expansion` and `--seed`. These need CLI 0.8.0 or newer. CLI 0.18.0 adds H3 Max's (not Turbo's) `--workflow reference-to-video` (keep a character across clips from up to nine `--references`, three `--reference-videos` and three `--audio-references`, named Image 1, Video 1, Audio 1 in the prompt; optional `--reference`, `--end-reference`, `--middle-reference` with `--middle-seconds`), `lip-sync` (the face in `--reference` says `--soundtrack` speech of 5 s–15 min; no `--prompt`; `--transcribe`), `camera-controls` (`--camera "time,azimuth,elevation,distance;…"`, 2–12 keyframes around `--reference`; without a prompt only the camera moves), `insert-video` (a 5–13 s scene inside `--source` from `--insert-at` to `--resume-at`, guided by `--references`/`--reference-videos`), `recast` (people in `--references` replace those in `--source`; pass `--subject-consent` only after each person agreed), `relight` (`--source` relit from a `--lighting` sphere image; no prompt), `3d-to-video` (a 3D render `--source` into footage, from `--references` or `--generated-references`) and `style` (`--style vhs|retro-toon-70s|low-poly|hand-drawn|16bit-pixel`, `--damage` for VHS, 768p, 5–15 whole seconds). Lip-sync, recast, relight and 3d-to-video take their input's length; their dry runs, like reference-to-video's and insert-video's, are server estimates because the price depends on the files. H3 takes fractional `--seconds` (6.5). CLI 0.21.0 adds FLUX 3 Max (`fal/flux-3-max`): image-to-video (with an optional `--end-reference`) and text-to-video for 5–20 whole seconds at 720p or 1080p with its own sound and no `--soundtrack`, and `--workflow keyframes-to-video`, which passes through 1–10 `--keyframes "SECONDS,SHA;…"` images, each reached at its second within `--seconds`. It always reasons about the prompt: `--prompt-expansion quality` thoroughly, other values lightly. For Gemini speech, `--prompt` is spoken verbatim and `--delivery` is a separate instruction. Music uses Lyria; the Gemini TTS models are for speech.
|
|
65
65
|
|
|
66
66
|
For ElevenLabs speech, choose `eleven_v4` or `eleven_v4_turbo`, pass an ElevenLabs voice ID with `--voice` (George is the default), and put audio tags in `--prompt` rather than using `--delivery`. For sound effects, use `--type sfx`; the only model is `eleven_text_to_sound_v2`. SFX supports `--seconds` from 0.5 to 30 (default 5), `--loop`, and `--prompt-influence` from 0 to 1 (default 0.3). These additions require CLI 0.5.0 or newer; check `catalog` before using them with an installed CLI.
|
|
67
67
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: animaguru-archive-light-table
|
|
3
|
+
description: Build Archive Light Table 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
|
+
# Archive Light Table
|
|
8
|
+
|
|
9
|
+
Archive photographs and documents on a backlit table, where a loupe turns a negative positive and catalogue records sit beside the objects. 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#archive-light-table). Fold missing visual questions into the shared interview:
|
|
14
|
+
|
|
15
|
+
- Which archive objects, with catalogue numbers, and do you have rights to the brand's own archive?
|
|
16
|
+
- Which object gets the loupe, and what should change inside the lens?
|
|
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 objects are real scans at their true proportions with their real damage; every identifier, date and title comes from the holder's record, quoted when you can.
|
|
27
|
+
- Light comes from below: film and glass transmit it and paper glows warm at its edges. The loupe is the camera's door, where a negative develops, a line lights up or a photograph opens into depth.
|
|
28
|
+
- Use no vintage filter: the age is in the objects, not the grade. One signal colour marks anchors, readings and the verdict.
|
|
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 lens interior (under about 1.5 screen pixels per scan pixel), reading holds for labels on a moving table, shear in the photograph space and every identifier against its record. 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
|
+
# Archive Light Table production recipe
|
|
2
|
+
|
|
3
|
+
The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `archive-light-table`. 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 -- archive-light-table`, 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 Library of Congress (check each item's rights statement), Smithsonian Open Access and the Rijksmuseum (CC0), NARA, the NASA Image and Video Library (generally not copyrighted) and Europeana (rights per item). "No known restrictions" and CC BY-SA are not CC0: name the terms and ask first. For brand history, ask for the user's scans, archive numbers and right to use them. 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 the objects as sprites at true size on one table `Container` over a near-white emissive backdrop; a negative is its positive scan through a transmission curve in a small filter.
|
|
14
|
+
- The loupe renders a magnified copy of the table inside a circular mask, with a `DisplacementFilter` for the pincushion and slight per-channel offsets for fringes. The develop front is a growing radial mask between the negative and positive copies.
|
|
15
|
+
- Into the photograph: grow the lens mask past the frame while the view inside widens to the whole picture, then give it depth with two or three cut layers and a small dolly, small enough that fills stay hidden.
|
|
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 three public-domain NASA Ames scans; their negatives are simulated from the positive scans, as the frame says. 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/archive-lighttable/STYLE.md](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/archive-lighttable/STYLE.md)
|
|
26
|
+
- [styles/archive-lighttable/demo/film.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/archive-lighttable/demo/film.js)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: animaguru-briefing-board
|
|
3
|
+
description: Build Engineering Briefing Board 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
|
+
# Engineering Briefing Board
|
|
8
|
+
|
|
9
|
+
A filmed whiteboard wall where printed cards land with weight and marker ink in fixed colours measures every option against one limit. 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#briefing-board). Fold missing visual questions into the shared interview:
|
|
14
|
+
|
|
15
|
+
- Which decision, options and limit should the wall test, and in what real units?
|
|
16
|
+
- Do you have licensable photos of the real objects, or should they be marker sketches and printed cards?
|
|
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
|
+
- Design the final wall as a poster first, then plan every shot as a crop of it; keep one zone (the verdict or a secondary layer) unseen until the long pull-back.
|
|
27
|
+
- Ink means one thing per colour: graphite for names and rules, blue for measurement, red only for the decision. Draw at hand speed, letter glyph by glyph and erase rejected ideas to faint ghosts.
|
|
28
|
+
- Real things land as cut-out photographs, licensed or the user's own, under one light vector and one grade. With no licensable photo, draw the object as a marker sketch instead of generating one.
|
|
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 reading holds for every word the camera passes, judgement frames that show item, limit and verdict together, photo upsampling and the share of the wall visible before the reveal. 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
|
+
# Engineering Briefing Board production recipe
|
|
2
|
+
|
|
3
|
+
The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `briefing-board`. 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 -- briefing-board`, 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 (read each file page's licence and author), national libraries and archives (check each item's rights statement), agency media pages and Flickr Commons; for the user's own product, site or people, ask for their photos. Every number comes from a cited spec, a measurement or the user's documents. 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
|
+
- Build the wall as one large `Container` in board pixels with layers by height (board, prints, props, tray). A camera container moves, scales and rolls it; raised layers get a slightly larger scale, which gives parallax.
|
|
14
|
+
- Bake the enamel, erased ghosts and frame into one texture. Draw ink with `Graphics` strokes revealed by measured length (`strokePoints`), lettering by slicing glyphs, and a slow reflection band as a blurred sprite.
|
|
15
|
+
- Prints are sprites with a blurred shadow offset along one light vector; they land with an ease-out and one small bounce while the shadow tightens. Magnets pop, tags swing on damped springs, and the stamp scales down with a camera jolt.
|
|
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 drawn in code with marker sketches and 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/briefing-board/STYLE.md](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/briefing-board/STYLE.md)
|
|
26
|
+
- [styles/briefing-board/demo/kit/board.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/briefing-board/demo/kit/board.js)
|
|
27
|
+
- [styles/briefing-board/demo/kit/README.md](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/briefing-board/demo/kit/README.md)
|
|
@@ -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-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.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Machine Anatomy production recipe
|
|
2
|
+
|
|
3
|
+
The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `machine-anatomy`: one dispensing head on a gantry fills a 4 × 4 tray of wells in a serpentine pass while the card's readout counts the well and the millilitres dispensed. The figure is built in `src/studies/anatomy-plotter.ts` with the bundled kit; the gallery preview renders the same module at a larger size. Its drawing commands are consumed by `src/studies/pixi-renderer.ts`. All study copy lives in `shared/locales/en/style-studies.json`.
|
|
4
|
+
|
|
5
|
+
In an untouched starter, run `npm run example -- machine-anatomy`, 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 `plotterFrame()` or the kit directly and compose the figure into the project's timeline instead of running the installer.
|
|
6
|
+
|
|
7
|
+
## The kit
|
|
8
|
+
|
|
9
|
+
`src/kit/anatomy/iso-kit.ts` is the core of the Anatomy kit, vendored unchanged with its MIT `LICENSE` beside it. World points are `[x, y, z]` with z up; paths come back as SVG `d` strings in screen pixels.
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { Graphics } from "pixi.js";
|
|
13
|
+
import * as K from "./kit/anatomy/iso-kit"; // "../../../runtime/kit/anatomy/iso-kit" from animations/NAME/src/
|
|
14
|
+
import { drawDots, drawLine, drawSolid } from "./kit/anatomy/pixi";
|
|
15
|
+
|
|
16
|
+
const PLATE = { x: -120, y: -70, w: 240, d: 140, r: 8 };
|
|
17
|
+
const P = K.fitProjection(K.boxCorners(PLATE, -16, 90), 1280, 620, { pad: 24, azimuth: 45 });
|
|
18
|
+
const base = new Graphics();
|
|
19
|
+
drawSolid(base, K.slabOf(PLATE, -12, 12, P, 8, 1.6), { tone: "mid", width: 1.2 });
|
|
20
|
+
drawLine(base, K.planOutline(K.insetPlan(PLATE, 5), 0, P), { tone: "faint", width: 1 });
|
|
21
|
+
drawDots(base, K.pointsAt(K.corners(PLATE, 10).map(([x, y]): K.Point3 => [x, y, 0]), P), { size: 1.1 });
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
| Need | Kit calls |
|
|
25
|
+
|---|---|
|
|
26
|
+
| Camera and depth | `fitProjection`, `boxCorners`, `iso`, `depthOf`, `screenRise`, `axisVector`, `towardViewer` |
|
|
27
|
+
| Solids | `slabOf(plan, z, h, P, steps, bevel)`, `cylinder(cx, cy, r, z, h, P, steps, bevel)`, `extrude(ring, z, h, P, { convex })`, `insetPlan`, `corners` |
|
|
28
|
+
| Lines on faces | `planOutline`, `ring`, `onTop`, `lineOnTop`, `segment`, `rise`, `sideSeam`, `sideArc`, `sideRing` |
|
|
29
|
+
| Parts | `topTicks`, `sideTicks`, `radialTicks` (rulers and dials), `knurl`, `coil` (back and front halves), `dotGrid`, `haloOf` |
|
|
30
|
+
| Faces | `topMatrix`, `sideMatrix` map flat local coordinates onto a top or side face, for a screen, a dial face or engraved text |
|
|
31
|
+
|
|
32
|
+
`drawSolid` paints like the kit's `solidSvg`: paper fill, four side shades, top, crease and bevel, then the outline; a `lit` solid gets the white face and the lit edge. Widths are screen pixels: about 1 px at 1280 wide and 1.5 px at 1920, a little heavier for the lit part. For the soft shadow under the base, fill `haloOf(...)` into its own Graphics with a `BlurFilter` and the palette's `halo` colour at `haloOpacity`. Move a rigid part by rebuilding it at its new position, or by translating a Graphics built at rest by `axisVector(P, [dx, dy, dz])`; rebuild a part whose shape changes (a compressing coil, a turning needle). The kit's SVG and HTML helpers (`solidSvg`, `figureSvg`, `plateHtml`, `ISO_CSS`) remain available for stills and overlays but are not needed in Pixi.
|
|
33
|
+
|
|
34
|
+
Not bundled: the upstream lathe (turned parts on any axis), tube (pipes and cables), geometry audit, WebGL and 3D modules. Draw round parts on vertical axes with `cylinder`, keep cables and pipes few, short and clear of the subject, and prove order and clearance with 4× frames instead of the audit.
|
|
35
|
+
|
|
36
|
+
## Adaptation decisions
|
|
37
|
+
|
|
38
|
+
- An interactive figure becomes timed choreography. Its idle tour is the film's timeline, pointer input becomes scripted beats, and the readout is computed each frame from the same model and schedule as the parts.
|
|
39
|
+
- The card corners (Fig n, title, hint, readout) and the caption are editable, localized text. At 1280 wide, 14–16 px monospace reads; keep the drawing itself free of words.
|
|
40
|
+
- A series of figures shares one camera, one scale and one palette. Cut or crossfade between figures, or push into one mechanism and settle.
|
|
41
|
+
- Light paper is the default; for a dark plate use `ANATOMY_PALETTES.dark` everywhere and never mix theme tones.
|
|
42
|
+
|
|
43
|
+
The study is silent, original procedural art built to demonstrate construction, tones, order and motion. It makes no product claims. Configure an original machine, numbers, palette, scene sequence, duration and soundtrack from the brief. Use `src/studies/timing.ts` for deterministic easing, springs and cue helpers. `window.animaguru.texts` exposes visible study text bounds for `npm run review`; inspect the actual frames as well.
|
|
44
|
+
|
|
45
|
+
## Sources and attribution
|
|
46
|
+
|
|
47
|
+
Adapted from [Anatomy](https://github.com/wheresryan22/anatomy) by Ryan ([@wheresryan22](https://x.com/wheresryan22)), MIT, pinned at commit `1482e8469b0a9e0d8cc18ea2740a01423d29ae80`. `iso-kit.ts` is a verbatim copy; the craft and workflow guidance is condensed and adapted for film. The study figure, its gallery preview, the palette module and the PixiJS adapter are original AnimaGuru work. The workspace's `VIDEO-STYLE-NOTICES.txt` and `src/kit/anatomy/LICENSE` preserve the notice.
|
|
48
|
+
|
|
49
|
+
- [SKILL.md](https://github.com/wheresryan22/anatomy/blob/1482e8469b0a9e0d8cc18ea2740a01423d29ae80/SKILL.md)
|
|
50
|
+
- [references/craft.md](https://github.com/wheresryan22/anatomy/blob/1482e8469b0a9e0d8cc18ea2740a01423d29ae80/references/craft.md)
|
|
51
|
+
- [references/motion.md](https://github.com/wheresryan22/anatomy/blob/1482e8469b0a9e0d8cc18ea2740a01423d29ae80/references/motion.md)
|
|
52
|
+
- [kit/iso-kit.ts](https://github.com/wheresryan22/anatomy/blob/1482e8469b0a9e0d8cc18ea2740a01423d29ae80/kit/iso-kit.ts)
|