@docyrus/animaguru 0.22.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.
Files changed (34) hide show
  1. package/NOTICE.md +25 -1
  2. package/README.md +7 -3
  3. package/dist/animaguru.js +166 -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-data-physicalization/SKILL.md +34 -0
  10. package/skills/animaguru-data-physicalization/references/recipe.md +27 -0
  11. package/skills/animaguru-exploded-teardown/SKILL.md +34 -0
  12. package/skills/animaguru-exploded-teardown/references/recipe.md +27 -0
  13. package/skills/animaguru-lidar-survey/SKILL.md +34 -0
  14. package/skills/animaguru-lidar-survey/references/recipe.md +26 -0
  15. package/skills/animaguru-machine-anatomy/LICENSE +21 -0
  16. package/skills/animaguru-machine-anatomy/SKILL.md +42 -0
  17. package/skills/animaguru-machine-anatomy/references/craft.md +97 -0
  18. package/skills/animaguru-machine-anatomy/references/recipe.md +52 -0
  19. package/skills/animaguru-microscope-story/SKILL.md +34 -0
  20. package/skills/animaguru-microscope-story/references/recipe.md +26 -0
  21. package/skills/animaguru-satellite-briefing/SKILL.md +34 -0
  22. package/skills/animaguru-satellite-briefing/references/recipe.md +27 -0
  23. package/skills/animaguru-white-model-projection/SKILL.md +34 -0
  24. package/skills/animaguru-white-model-projection/references/recipe.md +27 -0
  25. package/templates/video/README.md +1 -1
  26. package/templates/video/VIDEO-STYLE-NOTICES.txt +25 -1
  27. package/templates/video/shared/locales/en/style-studies.json +73 -0
  28. package/templates/video/src/kit/anatomy/LICENSE +21 -0
  29. package/templates/video/src/kit/anatomy/iso-kit.ts +842 -0
  30. package/templates/video/src/kit/anatomy/palette.ts +41 -0
  31. package/templates/video/src/kit/anatomy/pixi.ts +43 -0
  32. package/templates/video/src/studies/anatomy-plotter.ts +179 -0
  33. package/templates/video/src/studies/scenes.ts +171 -0
  34. package/templates/video/style-source-provenance.json +7 -2
@@ -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)
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: animaguru-microscope-story
3
+ description: Build Microscope Story 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
+ # Microscope Story
8
+
9
+ One continuous dive from a slide on the bench to a single cell, with focus breaths, true scale bars and readings counted from the image. 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#microscope-story). Fold missing visual questions into the shared interview:
14
+
15
+ - Which specimen, stain or modality, and do you have your own scans (SVS, NDPI, MRXS, or SEM TIFFs with a scale)?
16
+ - What should be measured or counted, and should the film end on a cell or climb back out?
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 specimen is a real, licence-clean micrograph or whole-slide scan; nothing on it is drawn, retouched or generated, and two different samples never zoom into each other.
27
+ - Scale is the camera: one log-space dive through registered pyramid levels, a focus breath at every real objective change and a focal-plane sweep on landing. The scale bar, field of view and magnification come from the file's pixel size.
28
+ - Readings are measured: describe what was measured, never diagnose. One accent, away from the stain's hues, marks the counted pixels and the reading.
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 upsampling at the deepest level, seams between levels, scale-bar values against the pixel size, counted shares against the mask and raw counts, and frosted panels over stain and glass. 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
+ # Microscope Story production recipe
2
+
3
+ The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `microscope-story`. 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 -- microscope-story`, 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
+ OpenSlide test data (check each file's licence line), NCI Imaging Data Commons (licence per collection), the Cell Image Library, Wellcome Collection, Wikimedia Commons filtered by licence, and NIH or CDC galleries; prefer files whose metadata carries the pixel size. Not usable: NC images, journal figures, AI images. 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
+ - Export pyramid levels as textures registered in one world frame (level-0 pixels). Draw the finest level that is not upsampled and cross-blend the next one; the camera is a similarity transform interpolated as a log spiral about the target point.
14
+ - Focus breaths use a `BlurFilter` whose strength follows the objective events; the focal sweep blends sharp and blurred copies through a tilted gradient mask.
15
+ - Count pixels offline from the plate and a stated threshold, reveal the counted mask behind a scan front as a tinted sprite, and build frosted panels from a blurred, darkened copy under a mask.
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 specimen drawn in code, labelled on screen as not a real slide. 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/microscope/STYLE.md](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/microscope/STYLE.md)
26
+ - [styles/microscope/demo/film.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/microscope/demo/film.js)
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: animaguru-satellite-briefing
3
+ description: Build Satellite Briefing 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
+ # Satellite Briefing
8
+
9
+ Satellite imagery graded to an analyst's grey, with thin measured hairlines, dated passes and one reading per screen in one continuous zoom. 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#satellite-briefing). Fold missing visual questions into the shared interview:
14
+
15
+ - Which place, dates and claim should the imagery test, and do you have your own survey or GIS layers?
16
+ - Where should true colour return, and which single reading matters most?
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
+ - Use licence-clean, georeferenced imagery of the real place or the user's own layers; the ground is a photograph, the hairlines are what the analyst measured.
27
+ - Stack plates by resolution in one world frame and zoom in log space; grade the analysis layer to a cool grey with a shoulder so white stays reserved for marks and the accent for the one reading.
28
+ - Draw outlines, range lines and reticles through the same ground-to-screen function as the imagery; time changes are scan passes, never dissolves, and readings count up and land.
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 plate seams and upsampling at each altitude, grey-grade clipping, mark registration through every camera move, the burned-in imagery credit 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
+ # Satellite Briefing production recipe
2
+
3
+ The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `satellite-briefing`. 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 -- satellite-briefing`, 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 Landsat (1972 on, worldwide), USGS NAIP (US, about 1 m), NASA Blue Marble, MODIS and VIIRS through NASA GIBS, and Copernicus Sentinel with its credit line ("Contains modified Copernicus Sentinel data [year]"); outlines from Natural Earth. Search by bounding box and date in the Planetary Computer STAC or USGS EarthExplorer and log every request. Not usable: Google, Bing, Esri, Mapbox, Planet or Maxar imagery, news photos or generated imagery. 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
+ - Load each plate as a texture inside one world `Container`, nested by resolution with feathered alpha masks. Scale the container in log space for the dive and cross-blend plates where their texel size meets the screen pixel. An oblique orbit can use `PerspectiveMesh` corners or a small shader; describe it as a 2.5D view unless a shader does the ray–sphere work.
14
+ - Apply the analyst grade with a `ColorMatrixFilter` or a small custom filter driven by one uniform. Keep marks in a separate, unfiltered layer drawn with `Graphics` from projected ground coordinates every frame.
15
+ - Put dated plates on one grid and reveal the newer plate behind a soft moving gradient mask; each outline prints behind the same mask edge, and earlier outlines stay as dashed history.
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 procedural terrain drawn in code, labelled on screen as not a real place. 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/satellite-briefing/STYLE.md](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/satellite-briefing/STYLE.md)
26
+ - [styles/satellite-briefing/demo/engine.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/satellite-briefing/demo/engine.js)
27
+ - [styles/satellite-briefing/demo/overlay.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/satellite-briefing/demo/overlay.js)
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: animaguru-white-model-projection
3
+ description: Build White Model Projection 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
+ # White Model Projection
8
+
9
+ A white massing model in a dark room, where projected light paints data onto the buildings one layer at a time. 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#white-model-projection). Fold missing visual questions into the shared interview:
14
+
15
+ - Which place, scale and layers (age, height, zoning, sun), and do you have the place's own building data?
16
+ - Which building or set should be picked out at the end?
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 model is real geometry from open data or the user's plans, extruded at a stated scale. It is never coloured in the material: data arrives as projected light that brightens surfaces facing the projector and stops at the edge of the throw.
27
+ - Bring one layer at a time, each with its own gesture of light: buildings switching on by decade, a level climbing every facade, a real sun's shadows. House lights cut fast and return slowly.
28
+ - Every number comes from the same buildings that are on the table. Readouts sit in the left third, pins rise from roofs, and each layer uses one hue family.
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 that colour lands only on lit white surfaces, readout legibility over the model, pin anchors through the camera move, and every number against the data file. 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
+ # White Model Projection production recipe
2
+
3
+ The workspace includes an executable original study in `src/studies/scenes.ts`, selected with `white-model-projection`. 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 -- white-model-projection`, 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
+ 3DBAG (Netherlands, CC BY 4.0), PLATEAU (Japan), city open-data portals (footprints with heights or floors, zoning, plans) or the user's own plans and surveys. OpenStreetMap and Overture are ODbL: name the terms and ask first. Compute the sun from the place's latitude and a real date (NOAA/Meeus). 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
+ - Precompute footprints and heights in model units. Draw extruded blocks as `Graphics` faces in painter's order from one camera, or render a set of white-model plates offline with matching per-building masks for heavy scenes; describe the method as 2.5D.
14
+ - Colour each visible face from its normal and the projector direction: white × house light, plus layer colour × (0.42 + 0.58 × facing) × throw mask. A layer is per-building state, not a texture.
15
+ - A rising level is a per-face clip at the current height with a soft bright crest; decades switch on per building with a short flash. Pins and readouts are `Graphics` and `Text` through the same projection.
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 illustrative district. 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/white-model/STYLE.md](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/white-model/STYLE.md)
26
+ - [styles/white-model/demo/studio.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/white-model/demo/studio.js)
27
+ - [styles/white-model/demo/overlay.js](https://github.com/lemomo-ai/lemo-opuscar/blob/b5e8ef93930b6d828f352055a689320f138237b1/styles/white-model/demo/overlay.js)
@@ -102,7 +102,7 @@ The installed style skills cover visual treatment and motion technique across su
102
102
 
103
103
  ## Original studies and production review
104
104
 
105
- Browse `animaguru.templates.json` for all 31 styles and purpose workflows. The expanded 20 styles include a runnable original study; use `npm run example -- blueprint-drafting` in an untouched starter. The command backs up the starter, refuses to replace an authored film, and connects the study to the normal player, timeline and HTML5/MP4 exporters. To compose studies in an existing film, import their scene and renderer instead.
105
+ Browse `animaguru.templates.json` for all 40 styles and purpose workflows. The 29 expanded, evidence and Machine Anatomy styles include a runnable original study; use `npm run example -- blueprint-drafting` in an untouched starter. Evidence-style studies use illustrative values, labelled as such; a production film replaces them with real data, imagery or scans. The command backs up the starter, refuses to replace an authored film, and connects the study to the normal player, timeline and HTML5/MP4 exporters. To compose studies in an existing film, import their scene and renderer instead.
106
106
 
107
107
  `npm run review` starts a local browser review session. Open the printed URL; it saves representative JPEG frames, actual text bounds, reading-hold notes and repeated-seek comparisons in `production/review/`. The numerical report complements frame inspection and full-speed listening. Optional media trim/time mapping and cue helpers are in `src/studies/`. All procedural example art is original; source inspirations and MIT notices are recorded in `VIDEO-STYLE-NOTICES.txt`.
108
108
 
@@ -1,6 +1,6 @@
1
1
  Video style sources and notices
2
2
 
3
- The executable studies and preview art are original AnimaGuru procedural 2D/2.5D work. Material/motion guidance was adapted from the pinned repositories below. No external creator video, sample music or demo font is bundled. Third-party demo assets retain their own licenses.
3
+ The executable studies and preview art are original AnimaGuru procedural 2D/2.5D work. Material/motion guidance was adapted from the pinned repositories below. The Machine Anatomy geometry kit (src/kit/anatomy/iso-kit.ts) is a verbatim copy from anatomy; its MIT notice is also in src/kit/anatomy/LICENSE. No external creator video, sample music or demo font is bundled. Third-party demo assets retain their own licenses.
4
4
 
5
5
  lemo-opuscar
6
6
  MIT License
@@ -52,3 +52,27 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
52
52
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
53
53
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
54
54
  SOFTWARE.
55
+
56
+
57
+ anatomy
58
+ MIT License
59
+
60
+ Copyright (c) 2026 Ryan
61
+
62
+ Permission is hereby granted, free of charge, to any person obtaining a copy
63
+ of this software and associated documentation files (the "Software"), to deal
64
+ in the Software without restriction, including without limitation the rights
65
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
66
+ copies of the Software, and to permit persons to whom the Software is
67
+ furnished to do so, subject to the following conditions:
68
+
69
+ The above copyright notice and this permission notice shall be included in all
70
+ copies or substantial portions of the Software.
71
+
72
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
73
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
74
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
75
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
76
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
77
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
78
+ SOFTWARE.
@@ -60,6 +60,15 @@
60
60
  "Assemble the relationship"
61
61
  ]
62
62
  },
63
+ "machine-anatomy": {
64
+ "name": "Machine Anatomy",
65
+ "lines": [
66
+ "One head serves every well.",
67
+ "Illustrative mechanism · original study",
68
+ "Watch the lit nozzle"
69
+ ],
70
+ "readout": "well {well} / {count} · {ml} ml"
71
+ },
63
72
  "holographic-scan": {
64
73
  "name": "Holographic Scan",
65
74
  "lines": [
@@ -163,6 +172,70 @@
163
172
  "Original analytic field",
164
173
  "Follow the rhythm"
165
174
  ]
175
+ },
176
+ "satellite-briefing": {
177
+ "name": "Satellite Briefing",
178
+ "lines": [
179
+ "Measure the ground from orbit.",
180
+ "Illustrative terrain",
181
+ "One pass, one shoreline"
182
+ ]
183
+ },
184
+ "briefing-board": {
185
+ "name": "Engineering Briefing Board",
186
+ "lines": [
187
+ "Measure every option on one wall.",
188
+ "Illustrative values",
189
+ "Red marks the decision"
190
+ ]
191
+ },
192
+ "lidar-survey": {
193
+ "name": "LiDAR Survey",
194
+ "lines": [
195
+ "Peel the canopy, keep the ground.",
196
+ "Illustrative point cloud",
197
+ "Points become a surface"
198
+ ]
199
+ },
200
+ "white-model-projection": {
201
+ "name": "White Model Projection",
202
+ "lines": [
203
+ "Light the data onto the model.",
204
+ "Illustrative massing",
205
+ "One layer of light at a time"
206
+ ]
207
+ },
208
+ "data-physicalization": {
209
+ "name": "Data Physicalization",
210
+ "lines": [
211
+ "One plate, one unit.",
212
+ "Illustrative values",
213
+ "Growth is assembly"
214
+ ]
215
+ },
216
+ "exploded-teardown": {
217
+ "name": "Exploded Teardown",
218
+ "lines": [
219
+ "Every part, named and measured.",
220
+ "Illustrative model",
221
+ "Apart on one axis"
222
+ ]
223
+ },
224
+ "microscope-story": {
225
+ "name": "Microscope Story",
226
+ "lines": [
227
+ "From the slide to one cell.",
228
+ "Illustrative specimen",
229
+ "Count what you can measure"
230
+ ]
231
+ },
232
+ "archive-light-table": {
233
+ "name": "Archive Light Table",
234
+ "lines": [
235
+ "Look closer at the record.",
236
+ "Illustrative objects",
237
+ "The loupe turns it positive"
238
+ ]
166
239
  }
167
240
  }
168
241
  }
@@ -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.