luckiest-co 1.0.41 → 1.0.43
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/skills/video-studio/ATTRIBUTION.md +3 -0
- package/skills/video-studio/CHANGELOG.md +16 -0
- package/skills/video-studio/LICENSE-huashu-art-motion +21 -0
- package/skills/video-studio/LICENSE-logo-design +21 -0
- package/skills/video-studio/LICENSE-mg-styles-15 +21 -0
- package/skills/video-studio/SKILL.md +16 -10
- package/skills/video-studio/references/interview.md +39 -2
- package/skills/video-studio/references/step-2b-storyboard.md +6 -0
- package/skills/video-studio/references/step-3-compose.md +13 -0
- package/skills/video-studio/references/step-4-deliver.md +5 -0
- package/skills/video-studio/references/storyboard.md +1 -0
- package/skills/video-studio/references/styles/3d-render.md +39 -0
- package/skills/video-studio/references/styles/anime-light.md +55 -0
- package/skills/video-studio/references/styles/aurora-glass.md +40 -0
- package/skills/video-studio/references/styles/bauhaus.md +52 -0
- package/skills/video-studio/references/styles/cel-boil.md +41 -0
- package/skills/video-studio/references/styles/chiaroscuro.md +53 -0
- package/skills/video-studio/references/styles/collage.md +46 -0
- package/skills/video-studio/references/styles/comic-pop.md +49 -0
- package/skills/video-studio/references/styles/constructivist.md +54 -0
- package/skills/video-studio/references/styles/cubist.md +49 -0
- package/skills/video-studio/references/styles/cut-paper.md +57 -0
- package/skills/video-studio/references/styles/era-styles.md +29 -0
- package/skills/video-studio/references/styles/finance-chart.md +60 -0
- package/skills/video-studio/references/styles/flat-vector.md +41 -0
- package/skills/video-studio/references/styles/grain-flat-illustration.md +48 -0
- package/skills/video-studio/references/styles/hud.md +41 -0
- package/skills/video-studio/references/styles/impressionist.md +48 -0
- package/skills/video-studio/references/styles/ink-wash.md +49 -0
- package/skills/video-studio/references/styles/isometric.md +40 -0
- package/skills/video-studio/references/styles/keynote-ui.md +59 -0
- package/skills/video-studio/references/styles/kinetic-type.md +58 -0
- package/skills/video-studio/references/styles/line-art.md +47 -0
- package/skills/video-studio/references/styles/liquid.md +46 -0
- package/skills/video-studio/references/styles/math-explainer.md +58 -0
- package/skills/video-studio/references/styles/morph.md +45 -0
- package/skills/video-studio/references/styles/mosaic.md +52 -0
- package/skills/video-studio/references/styles/newsroom-collage.md +60 -0
- package/skills/video-studio/references/styles/pixel.md +46 -0
- package/skills/video-studio/references/styles/pointillist.md +49 -0
- package/skills/video-studio/references/styles/presenter-explainer.md +57 -0
- package/skills/video-studio/references/styles/retro-cgi.md +52 -0
- package/skills/video-studio/references/styles/science-explainer.md +59 -0
- package/skills/video-studio/references/styles/sticker-explainer.md +40 -0
- package/skills/video-studio/references/styles/storytime.md +60 -0
- package/skills/video-studio/references/styles/swirl-brushwork.md +53 -0
- package/skills/video-studio/references/styles/synthwave.md +47 -0
- package/skills/video-studio/references/styles/variety-show.md +40 -0
- package/skills/video-studio/references/styles/watercolor-anime.md +50 -0
- package/skills/video-studio/references/styles/whiteboard.md +60 -0
- package/skills/video-studio/references/styles.md +117 -0
- package/skills/video-studio/scripts/qa.mjs +40 -0
- package/skills/video-studio/scripts/qa.test.mjs +23 -1
- package/skills/video-studio/scripts/storyboard.schema.json +2 -0
- package/skills/video-studio-art-director/ATTRIBUTION.md +3 -0
- package/skills/video-studio-art-director/CHANGELOG.md +14 -0
- package/skills/video-studio-art-director/LICENSE-logo-design +21 -0
- package/skills/video-studio-art-director/SKILL.md +120 -11
- package/skills/video-studio-art-director/references/palettes.md +22 -0
- package/skills/video-studio-director/CHANGELOG.md +6 -0
- package/skills/video-studio-director/SKILL.md +21 -5
- package/skills/video-studio-director/references/jury.md +63 -0
- package/skills/video-studio-motion/CHANGELOG.md +4 -0
- package/skills/video-studio-motion/SKILL.md +34 -5
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Ink Wash (sumi-e)
|
|
2
|
+
|
|
3
|
+
- id: `ink-wash`
|
|
4
|
+
- Source: huashu-art-motion `17_ink.md` (MIT)
|
|
5
|
+
- Best for: tea, wellness, craft, East Asian brands, poetic intros, minimal luxury, philosophy content
|
|
6
|
+
- Not for: loud kinetic ads, high-saturation product shots, busy UI
|
|
7
|
+
- Triggers: ink wash, sumi-e, chinese painting, calligraphy, brush, shuimo, qi baishi, bada shanren, zen, rice paper
|
|
8
|
+
- Tone cell: calm-sharp
|
|
9
|
+
- Clock: smooth 30/60 fps
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
Paper is the base and ink is only added. Rice paper `#efe6d0` with noise grain and about 2,600 short fibers, a vignette up to alpha 0.22 at the edges. Ink is one near-black `[16,14,12]` used in five tones: scorched 0.9, thick 0.8, heavy 0.6, light 0.35, clear 0.15. Accent pigments used sparingly: ochre `#c47a3c`, blue-gray `#6f8aa0`, yellow `#e2aa34`, a single red for the seal `#c4281e` and tiny vermilion touches (`#d8553f`). Lots of empty space. Whites are carved out of washes with `destination-out`, not painted white.
|
|
13
|
+
|
|
14
|
+
## Motion
|
|
15
|
+
- Opening: the picture writes itself stroke by stroke over about 0.45 s (`reveal = smoothstep(d, d+l, lt/0.45)`), offset so frame 0 already has ink.
|
|
16
|
+
- Ink bleed: halo blur grows over time, so wash edges keep spreading.
|
|
17
|
+
- Branches sway `sin(2.9t)*0.11`, leaves flip `sin(7t+g)*0.2`, mist bands (paper-colored blurred ellipses) slide 150-270 px/s.
|
|
18
|
+
- A bird crosses at 420 px/s, wings 8 beats per second.
|
|
19
|
+
- Seal stamps down from 1.5x to 1x with multiply.
|
|
20
|
+
- Transition family: strokes write in, ink blooms across the paper.
|
|
21
|
+
|
|
22
|
+
## Signature features (judged against these)
|
|
23
|
+
- Brush strokes with pressure taper and dry-brush gaps (flying white).
|
|
24
|
+
- Washes with soft spreading edges.
|
|
25
|
+
- Five ink tones, not flat black.
|
|
26
|
+
- Large negative space.
|
|
27
|
+
- A red seal in the corner.
|
|
28
|
+
- Whites by carving, not by paint.
|
|
29
|
+
- Only 2-3 spots of color.
|
|
30
|
+
|
|
31
|
+
## 10-second beat seed
|
|
32
|
+
- 0-1.2s: strokes write in.
|
|
33
|
+
- 1.2-6s: wash blooms spread, branch sways, mist slides.
|
|
34
|
+
- 6-7s (hero): single bold stroke or bird crossing, seal lands.
|
|
35
|
+
- 8.8-10s: hold with mist moving slowly.
|
|
36
|
+
|
|
37
|
+
## Sound
|
|
38
|
+
Guzheng or sparse bamboo flute, 60-72 BPM, occasional low drum. One plucked note per stroke.
|
|
39
|
+
|
|
40
|
+
## Build it in HyperFrames
|
|
41
|
+
Canvas 2D, cache the static strokes after they finish writing.
|
|
42
|
+
- Resample brush paths to 4 px arc length (so dry-brush noise frequency is constant). Pressure profile `smoothstep(0,head,q)*(1-0.7*smoothstep(1-tail,1,q))`.
|
|
43
|
+
- Each bristle is one continuous polyline with butt caps, broken where `noise(k*1.9, i*0.09)` is below `dry*q^1.2*0.95+0.05`. Segment-by-segment strokes leave knots.
|
|
44
|
+
- Washes: draw shape on scratch canvas, multiply twice (outer halo blur, inner body blur), grow 0 to 1 over lt.
|
|
45
|
+
|
|
46
|
+
## Watch out
|
|
47
|
+
- Current weak spot: figures are not loose enough (review 6/10). Use few strokes and let the wash do the form.
|
|
48
|
+
- Multiply washes are transparent, so lines show through the shapes. Underpaint paper color inside each silhouette first.
|
|
49
|
+
- A pure white first frame fails as a cover. Start with some ink already down.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Isometric Miniature World
|
|
2
|
+
|
|
3
|
+
- id: `isometric`
|
|
4
|
+
- Source: mg-styles-15 `prompts/03-isometric.md` (MIT, Vincentwei1021)
|
|
5
|
+
- Best for: tech architecture animation, app feature demos, data campus, smart-city or cloud infrastructure explainers
|
|
6
|
+
- Not for: character drama, organic subjects, anything needing perspective depth
|
|
7
|
+
- Triggers: isometric, 2.5D, iso, miniature city, low poly diorama, architecture diagram animation, tech campus, Dribbble hero, School of Motion
|
|
8
|
+
- Tone cell: kinetic-soft
|
|
9
|
+
- Clock: smooth 30 fps
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
True isometric projection: orthographic, 35.264 degree elevation, 45 degree azimuth, no vanishing point, lines everywhere to scale. Pastel studio palette: lavender ground, mint, peach, sky blue, white. Soft shadows and ambient occlusion so it reads as a premium hero render. Title text lies ON the iso plane, skewed into iso space. Floating island in a pastel void for the end.
|
|
13
|
+
|
|
14
|
+
## Motion
|
|
15
|
+
Ground tiles flip or drop in as a wave from the centre, tiny bounce each. Buildings grow: base lands, walls scaleY from 0 with overshoot, roof cap 2-3 frames later. Trees pop, windows light in sequence. Life layer: cars loop roads, a train, drones carrying packets, glowing data streams pulse between buildings, a wind turbine spins. Camera is a parallel slide only, no rotation, with 1 : 0.8 : 0.6 parallax between foreground, middle, back layers. Pull-back to reveal the whole island.
|
|
16
|
+
|
|
17
|
+
## Signature features (judged against these)
|
|
18
|
+
- Orthographic 30 degree iso angle, no perspective convergence.
|
|
19
|
+
- Miniature scene with many small readable objects.
|
|
20
|
+
- Building growth: base first, walls scaleY with overshoot, roof 2-3 frames late.
|
|
21
|
+
- Tiles arrive as a radial wave from the centre.
|
|
22
|
+
- Camera moves by parallel translation only, parallax 1 : 0.8 : 0.6.
|
|
23
|
+
- Pastel palette, soft shadow and AO.
|
|
24
|
+
- Moving objects stay on the iso grid at 2:1 pixel slope.
|
|
25
|
+
- Title set in iso space.
|
|
26
|
+
|
|
27
|
+
## 10-second beat seed
|
|
28
|
+
- 0-2s: tile wave from centre; hook is the first ripple at frame 0.
|
|
29
|
+
- 2-5s: buildings grow, trees pop, windows light.
|
|
30
|
+
- 5-8s (hero at 60-75%): cars, train, drones, data streams, turbine; parallel camera slide.
|
|
31
|
+
- 8-10s: pull back to the floating island, title on the plane, hold with idling motion.
|
|
32
|
+
|
|
33
|
+
## Sound
|
|
34
|
+
Bright plucky tech melody (FM marimba or pluck). Soft click or pop on each tile and building landing. Airy whoosh on the pull-back.
|
|
35
|
+
|
|
36
|
+
## Build it in HyperFrames
|
|
37
|
+
Three.js with OrthographicCamera at the true iso angle, soft shadows and a cheap AO (baked or SSAO), stepped per frame from t. Alternative: SVG faces built with the SSR matrix (scale Y 86.6%, skew 30 degrees, rotate 30 degrees) for top, left and right faces, z-ordered by screen y. Text as a CSS-transformed element or a plane in the scene.
|
|
38
|
+
|
|
39
|
+
## Watch out
|
|
40
|
+
Any perspective camera breaks the style. Z-sorting errors in the SVG route. Do not rotate the camera. Keep object count high enough to feel dense but each one readable.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Product Keynote Screens
|
|
2
|
+
|
|
3
|
+
- id: `keynote-ui`
|
|
4
|
+
- Source: huashu-art-motion `references/动画语法/t2_keynote_ui.md` (MIT)
|
|
5
|
+
- Best for: product or feature launches, release notes, "three new features", pricing and spec reveals, UI walkthrough steps. 30-90s, voiceover made of nouns and numbers.
|
|
6
|
+
- Not for: explaining how something works (use a morphing style), data trends, bad news or serious events, topics with no product or object to enlarge.
|
|
7
|
+
- Triggers: apple keynote, apple event, product launch video, linear, stripe, openai launch, release video, feature announcement, glass card, ui walkthrough, screen recording explainer
|
|
8
|
+
- Tone cell: calm-sharp
|
|
9
|
+
- Clock: smooth 30/60 fps
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
- Start from the real thing: a screenshot, screen recording or product photo goes full frame (at least 80% of width, 90% on vertical) and is pushed in to the part being discussed. Do not crop key UI.
|
|
13
|
+
- Background near-black: `#050508`, or `#08090a` with text `#f7f8f8`. Take the product's own brand color for accents, not a default purple-blue.
|
|
14
|
+
- Text: primary `#f5f5f7`, secondary white at 60%, eyebrow `#a7a7b4` with +6px tracking.
|
|
15
|
+
- Type: Inter (or a similar neutral grotesque). Headings weight 600, large sizes tightened to -0.02em to -0.03em at 64px and up.
|
|
16
|
+
- Optional wrappers, pick two at most per video: blurred color blobs, frosted glass cards, gradient text, blur-in text, floating. All five together reads as an AI template.
|
|
17
|
+
- Glass card, if used: blur 40px, 7.5% white fill, 14% top light band, 1.5px gradient border, shadow blur 70-80 with y +30-40 at alpha 0.5. Radius 36px, inner radius = outer minus padding (22px). Glass needs colorful content behind it.
|
|
18
|
+
- Shapes: rounded rectangles, capsules, thin round-cap line icons.
|
|
19
|
+
|
|
20
|
+
## Motion
|
|
21
|
+
- Springs are the main tool, defined by duration and bounce. Default bounce 0, entrances 0.15 to 0.3, never above 0.4. Card entrance duration 0.75s, small bubble 0.5s.
|
|
22
|
+
- Non-spring curves: `cubic-bezier(.25,.1,.25,1)` for text reveals, `cubic-bezier(.4,0,.6,1)` for nav moves at 0.32s, Stripe-like `(.2,1,.2,1)` under 500ms.
|
|
23
|
+
- Text enters: blur 18-26px to 0, rise 16-40px, opacity 0 to 1, 0.7-1.0s. Eyebrow, name, subtitle stagger 0.2-0.4s. Do this only on some screens.
|
|
24
|
+
- Card entrance (no screenshot): from 170px below, rotate about 31 degrees around Y facing outward, scale 0.9 to 1, 0.1s stagger.
|
|
25
|
+
- Camera: still after settle. Slow push about 0.9s to the area being discussed, 0.7s to move to the next area. Fast push 0.28s only for a reveal or comparison. Number or big word slams in 0.17s (1.55 to 0.94 to 1.0).
|
|
26
|
+
- Count-up: 0.9s, ease-out-expo, tabular digits, counted once only.
|
|
27
|
+
|
|
28
|
+
## Signature features (judged against these)
|
|
29
|
+
- One idea per screen: one noun, one number, or one screenshot.
|
|
30
|
+
- Real screenshot or product is the hero at 80% width or more and gets zoomed to a detail.
|
|
31
|
+
- Large headings visibly tightened, no loose tracking at 64px+.
|
|
32
|
+
- Spring bounce 0 to 0.3, never wobbly.
|
|
33
|
+
- Numbers settle on the exact spoken moment and are counted once.
|
|
34
|
+
- After a settle nothing floats and nothing creeps. Next motion happens at the next noun.
|
|
35
|
+
- Layout changes every screen (title, screenshot zoom, big number, comparison), no title-three-cards loop.
|
|
36
|
+
- Accent color comes from the product, not a default blue-violet.
|
|
37
|
+
|
|
38
|
+
## Beat pattern (30-60s)
|
|
39
|
+
- 0-3s: product on screen first, name rises 0.2-0.3s before the voice says it.
|
|
40
|
+
- Next 15-25s: screenshot beats. Full-frame, push to detail on the spoken noun, glide to the next area, pull back out.
|
|
41
|
+
- 50-70%: hero reveal. Two timings or two screenshots compared, then the ratio slams in over the screenshot, dimmed.
|
|
42
|
+
- Insert one empty or quiet screen after a dense run.
|
|
43
|
+
- Last 3-5s: closing name or single line, hold 0.6s or more.
|
|
44
|
+
|
|
45
|
+
## Sound
|
|
46
|
+
Clean minimal electronic or soft piano, 90-110 BPM or no beat. Soft click on text landing, low thud on a slam, subtle whoosh on a blur push.
|
|
47
|
+
|
|
48
|
+
## Build it in HyperFrames
|
|
49
|
+
- CSS plus canvas. Screenshot is an image layer with a camera transform (translate and scale) driven by a keyframe table.
|
|
50
|
+
- Blur and spring are pure functions of t. Never read a clock. Seed any grain.
|
|
51
|
+
- Blur push transition: old scene scales to 0.92 with 24px blur and fades, new scene arrives from 1.06 with blur to 1.0, 0.55s. Put a 1.08x heavily blurred copy of the old scene underneath so the edges never show black.
|
|
52
|
+
- Shared-element expand: selected card grows from its rect to full screen with spring duration 0.55 and bounce 0. The new content is opaque on frame one.
|
|
53
|
+
|
|
54
|
+
## Watch out
|
|
55
|
+
- Glass over a flat dark color is just a grey rectangle.
|
|
56
|
+
- Springs too bouncy, or several groups moving at once.
|
|
57
|
+
- Floating cards and constant slow push were old habits in the source and should not be copied.
|
|
58
|
+
- A count that restarts from 0 after a card expands, or a second copy of the same text during the expand.
|
|
59
|
+
- Bright good-news mood used on serious subject matter.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Beat-Locked Kinetic Type
|
|
2
|
+
|
|
3
|
+
- id: `kinetic-type`
|
|
4
|
+
- Source: huashu-art-motion `references/动画语法/y5_kinetic_type.md` (MIT)
|
|
5
|
+
- Best for: list openers ("3 stages", "5 reasons"), chapter cards, quotes, one-number-per-shot reveals, intros and conclusions where the structure is the message. 15-45s of type per segment, mixed with evidence shots in longer films.
|
|
6
|
+
- Not for: stories and emotion (no face to relate to), long explanatory voiceover on a screen of words, lists over 5 items, anything that is all type for more than 30-60s.
|
|
7
|
+
- Triggers: kinetic typography, lyric video, text animation, saul bass, typographic video, animated quote, title sequence, big word slam, text reveal, after effects type
|
|
8
|
+
- Tone cell: kinetic-sharp
|
|
9
|
+
- Clock: smooth 30/60 fps, with all landings on a beat grid (for example 120 BPM)
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
- One main word per screen, left-aligned in the left third to half (or mirrored), helper line right under it, a small label top left with a progress track, and an evidence object on the other side (code card, chat bubble, checklist). At least 130px margin.
|
|
13
|
+
- Type scale about 3.4 : 1 : 0.4. Demo: main word 340px (heavy black weight), helper line 96px (heavy), label 40px (bold, 6px tracking). The main word is two words or four characters at most so it reads in 0.3s. Helper line 14 characters or fewer.
|
|
14
|
+
- Each chapter has its own full-screen background color, so color is the chapter number. Demo set: yellow `#FFD23F`, coral `#FF5A36`, navy `#14213D`, off-white `#F4EFE6`, plus ink `#111111` and white. One accent per screen (for example coral circle, yellow highlighter, blue bubble `#3A86FF`, green check `#2BB673`).
|
|
15
|
+
- Shapes: rounded rectangles (card r=26, bubble r=30, keycap r=22), circles for numbers, slanted highlighter blocks (slope 0.18). Dot grid background at 64px spacing, 6-10% opacity. No outlined or shadowed type. Only soft card shadows (8-18%).
|
|
16
|
+
- Giant stage numeral at 900px, 5-13% opacity, bottom right behind everything.
|
|
17
|
+
|
|
18
|
+
## Motion
|
|
19
|
+
- Main word slam: scale 1.7 to 1, opacity 0 to 1 in the first 0.06s, under-damped spring `1 - e^(-10t) cos(2 pi 2.2 t)`, about 8% overshoot, settles in 0.35s. Title first word also rotates -8 to 0 degrees.
|
|
20
|
+
- Helper line and label rise from a mask under the baseline: from +1.2 text height to 0, expo-out, 0.30-0.35s.
|
|
21
|
+
- Icons, numbers, bubbles, keycaps pop with back-out s=2.6-3.0 (17-20% overshoot), 0.30-0.42s.
|
|
22
|
+
- Cards slide in from 700px sideways or 260px below, 3.4 degree rotation to zero, expo-out 0.40s.
|
|
23
|
+
- Typing 26 characters per second with a 2 Hz cursor. Code completion shows grey text instantly, then turns solid on the Tab press (keycap squash 14%).
|
|
24
|
+
- Highlighter wipes left to right in expo-out 0.30s, 1-3 eighth notes after the word lands. Key word scales to 1.35 on the emphasis beat and stays.
|
|
25
|
+
- Exit faster than entry: expo-in 0.18s, stagger 0.03s, shrink to 0.6, drop 60px, fade.
|
|
26
|
+
- Stagger words by one eighth note (0.25s at 120 BPM).
|
|
27
|
+
- Continuous layer is only camera drift (5px sine, 7s and 2.7s periods, +-0.5 degrees), a beat pulse (1.2% scale on each quarter, decay e^(-25t) about 0.12s), and the dot grid sliding 36px/s. Words never drift or breathe after they land.
|
|
28
|
+
|
|
29
|
+
## Signature features (judged against these)
|
|
30
|
+
- Main word at least 3:1 against the helper line, one thing entering at a time.
|
|
31
|
+
- Chapter color changes per screen and one accent color on it.
|
|
32
|
+
- Main word slams on a strong beat, small items on eighths.
|
|
33
|
+
- Entry slower than exit, exit under 0.2s.
|
|
34
|
+
- After landing the type is still. Motion lives in camera, beat pulse and background.
|
|
35
|
+
- Every landing is on a beat number or a spoken word. Picture early, never late (at most 1 frame ahead of voice).
|
|
36
|
+
- Never more than 3 same-layout pages in a row, evidence object or number slam breaks them.
|
|
37
|
+
- Transition reveal frame lands on the bar line.
|
|
38
|
+
|
|
39
|
+
## Beat pattern (30-60s)
|
|
40
|
+
- Use one bar per screen. Per bar: beat 1 main word slams (plus giant numeral), beat 1.5 evidence object, beat 2 helper line rises, beat 3 evidence action, beat 3.5 key word grows with highlighter, beat 4 rest or exit.
|
|
41
|
+
- 120 BPM gives 2s per bar. A 4-bar demo is 8.5s, a 30-60s piece uses 15-30 bars and groups them into chapters.
|
|
42
|
+
- Open with a number slam or a title. Hero moment at 60-75% is the final chapter or a zoom-through transition. Finish with a last-beat hit and hold 0.5s.
|
|
43
|
+
- Hold time: main word of 2 characters at least 0.5s, helper line of 7-8 characters at least 1.0s.
|
|
44
|
+
|
|
45
|
+
## Sound
|
|
46
|
+
Beat-driven: kick every beat, clap on 2 and 4, hat on offbeats, bass root note per bar at 105-128 BPM (demo 120). Boom on a main word, pop on small items, click on typing, rising pop on checks, riser 0.3s before each transition.
|
|
47
|
+
|
|
48
|
+
## Build it in HyperFrames
|
|
49
|
+
- Canvas 2D or CSS. Define `beat(n)` and write every cue in beats, not seconds. Segment start = bar line minus reveal point x transition length.
|
|
50
|
+
- Transitions: zoom into a shape (first 55% expo-in to 30x, last 45% expo-out, the shape color becomes the next background), three slanted color bands sweeping with 12% stagger (0.5s), and push (0.35s expo in-out, count its "arrival" at about 90% displacement, p near 0.58, not at p=1).
|
|
51
|
+
- Progress track is drawn from the global timeline as a fixed overlay, not inside each page.
|
|
52
|
+
|
|
53
|
+
## Watch out
|
|
54
|
+
- All text the same size and moving together.
|
|
55
|
+
- Type that keeps drifting while being read.
|
|
56
|
+
- Animation that lands off the beat grid, or aimed at the transition's first frame instead of the reveal frame. Each stray landing loosens the whole piece.
|
|
57
|
+
- Dense four-pages-in-a-row of the same layout becomes a slideshow.
|
|
58
|
+
- Real lyric videos land about once per beat. Eighth-note density works for a short opener only.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Continuous Line Art
|
|
2
|
+
|
|
3
|
+
- id: `line-art`
|
|
4
|
+
- Source: mg-styles-15 `prompts/02-line-art.md` (MIT, Vincentwei1021)
|
|
5
|
+
- Best for: luxury, finance, architecture and design-studio brand films, logo animation, monogram reveals
|
|
6
|
+
- Not for: loud, playful, data-dense or colorful content
|
|
7
|
+
- Triggers: line art, one line, single line, continuous line, draw-on, stroke animation, outline, minimal luxury, monoline, logo reveal, architecture film
|
|
8
|
+
- Tone cell: calm-sharp
|
|
9
|
+
- Clock: smooth 30 fps
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
Midnight ground #0B1320 or near-black. One champagne-gold line #E9D7A5, constant 3px (2-4px range) for the whole film, round caps. Softly glowing pen tip leads the draw. Lots of negative space. Optional second color, never more. Thin letter-spaced serif wordmark (for example an invented "ATELIER LINEA"). Older segments dim to about 35% as the camera moves on.
|
|
13
|
+
|
|
14
|
+
## Motion
|
|
15
|
+
Draw-on by stroke-dashoffset from 100% to 0. Draw speed eases into corners with cubic-bezier(0.65,0,0.35,1), slightly slower at turns. One-stroke narrative: the tail of each figure is the start of the next (seed, sapling, branches become building structure, skyline, horizon lifts and loops into a monogram). Virtual camera follows the pen tip with drift and push, then dollies out at the end to reveal the full drawing as a poster. Line-to-fill moment: the logo fills with gold from its anchor point. Wordmark fades up last.
|
|
16
|
+
|
|
17
|
+
## Signature features (judged against these)
|
|
18
|
+
- Single monochrome (or two-color) line is the only form language.
|
|
19
|
+
- Line width constant across the film (2-4px), round caps.
|
|
20
|
+
- Continuous path, each figure grows out of the previous one.
|
|
21
|
+
- Draw speed decelerates at corners.
|
|
22
|
+
- Glowing pen tip visible and leading the stroke.
|
|
23
|
+
- Camera follows the tip, final dolly-out reveals the full composition.
|
|
24
|
+
- Line-to-fill conversion on the logo.
|
|
25
|
+
- Old lines dim to about 35%.
|
|
26
|
+
|
|
27
|
+
## 10-second beat seed
|
|
28
|
+
- 0-1.2s: tip appears and draws a seed, line already moving.
|
|
29
|
+
- 1.2-6s: sapling, branches into building, skyline, horizon; camera tracking.
|
|
30
|
+
- 6-7.5s (hero at 60-75%): horizon lifts into monogram, gold fill sweeps in from anchor.
|
|
31
|
+
- 7.5-8.8s: dolly out to the composed poster, wordmark fades up.
|
|
32
|
+
- 8.8-10s: hold with a slow tip glint or breathing glow.
|
|
33
|
+
|
|
34
|
+
## Sound
|
|
35
|
+
Minimal felt piano with a soft string swell. Pen-on-paper whisper whose loudness follows tip speed. Delicate chime on the fill.
|
|
36
|
+
|
|
37
|
+
## Build it in HyperFrames
|
|
38
|
+
Inline SVG paths pre-joined into one path, animated with stroke-dasharray = length and stroke-dashoffset as a function of t (use getTotalLength). Camera is a transform on a parent group, computed from the path point at t (getPointAtLength) with smoothing. Glow with an SVG blur filter on a duplicate stroke. Fill via a clip or mask expanding from the anchor.
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Logo construction
|
|
42
|
+
Rule from logo-design (MIT, kaankiziltug): the entrance is built from the mark's own construction, and the resolve frame equals the master logo. Before animating, write the mark's construction in one line in `plan.md` (its primitives, strokes or modules, and the order they would be drawn). The resolve frame is the real logo file (`brand/logo.svg` or the SVG the user supplied), never a styled stand-in or an invented wordmark: render the last frame and the logo SVG at the same size and position, and any visible difference is a Block. Sting length 1 to 3 seconds, easing from this card.
|
|
43
|
+
- Construction: the pen draws the logo's strokes in its construction order, at the logo's own stroke width when it is a line mark. For a filled mark, draw its outline, then the line-to-fill sweep fills it from the anchor.
|
|
44
|
+
- Resolve: after the fill, the frame is the logo SVG exactly: the glow on the tip and the dimmed older lines are gone by the hold.
|
|
45
|
+
|
|
46
|
+
## Watch out
|
|
47
|
+
Shimmer on thin lines at 3px: render at 2x supersample. Do not vary line width. Keep the path truly continuous or the idea breaks. Avoid camera jitter from raw tip positions.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Liquid Metaball Motion
|
|
2
|
+
|
|
3
|
+
- id: `liquid`
|
|
4
|
+
- Source: mg-styles-15 `prompts/07-liquid.md` (MIT, Vincentwei1021)
|
|
5
|
+
- Best for: music video packaging, food and drink ads, logo genesis, transition packs
|
|
6
|
+
- Not for: precise technical content, minimal corporate, long text
|
|
7
|
+
- Triggers: liquid, fluid, metaball, goo, gooey, paint splash, drip, melt, blob, ink flood, liquid transition, logo reveal
|
|
8
|
+
- Tone cell: kinetic-soft
|
|
9
|
+
- Clock: smooth 30 fps
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
Deep plum ground. Glossy candy liquid going hot orange to pink to violet, with specular highlights and fresnel rim so it reads as thick 3D liquid, not flat blobs. Organic curves, never straight lines. Wordmark (invented, for example "FLUX") formed from the liquid, blended with metaballs.
|
|
13
|
+
|
|
14
|
+
## Motion
|
|
15
|
+
Flung, never uniform: cubic-bezier(0.22,1,0.36,1). Droplets fall and splash, flat squash on landing. Blobs fuse with stretched necks that snap, both ends rebound 2-3 frames. Secondary droplets follow the main body 2-3 frames late. A big liquid wave floods the frame as the transition, with a wavy front carrying 3-5 phase-offset bulges. Liquid coalesces into the wordmark. Last drip falls from the logo and ripples.
|
|
16
|
+
|
|
17
|
+
## Signature features (judged against these)
|
|
18
|
+
- Metaball fusion with visible stretched necks and snap.
|
|
19
|
+
- Wavy flood transition with 3-5 phase-offset bulges.
|
|
20
|
+
- Secondary droplets lag the body by 2-3 frames.
|
|
21
|
+
- Rebound of 2-3 frames at the snap.
|
|
22
|
+
- Fake 3D lighting: specular and fresnel rim, not flat fills.
|
|
23
|
+
- Ease is fast-out slow-in, never constant speed.
|
|
24
|
+
- Wordmark formed from liquid, final drip and ripple.
|
|
25
|
+
|
|
26
|
+
## 10-second beat seed
|
|
27
|
+
- 0-2s: droplets fall and splash.
|
|
28
|
+
- 2-4s: blobs merge with stretched necks, snap, rebound.
|
|
29
|
+
- 4-6s: flood wave crosses the frame.
|
|
30
|
+
- 6-8.5s (hero at 60-75%): liquid coalesces into the wordmark.
|
|
31
|
+
- 8.5-10s: last drip, ripple, hold.
|
|
32
|
+
|
|
33
|
+
## Sound
|
|
34
|
+
Bubbly gloops, pour, splash and drip, deep bass swell under a glossy synth bed.
|
|
35
|
+
|
|
36
|
+
## Build it in HyperFrames
|
|
37
|
+
WebGL2 fragment shader: sum of 2D SDF circles with smooth-min (polynomial k about 0.2 of radius), normals from the field gradient for fake 3D lighting, text as an SDF texture blended with the same field. Positions come from closed-form springs and splines of t. Cheaper fallback: SVG blur 20px+ then an feColorMatrix alpha threshold for the goo, add highlights as a second pass.
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## Logo construction
|
|
41
|
+
Rule from logo-design (MIT, kaankiziltug): the entrance is built from the mark's own construction, and the resolve frame equals the master logo. Before animating, write the mark's construction in one line in `plan.md` (its primitives, strokes or modules, and the order they would be drawn). The resolve frame is the real logo file (`brand/logo.svg` or the SVG the user supplied), never a styled stand-in or an invented wordmark: render the last frame and the logo SVG at the same size and position, and any visible difference is a Block. Sting length 1 to 3 seconds, easing from this card.
|
|
42
|
+
- Construction: the liquid gathers into the mark's primitives one by one (largest first), with the necks snapping at the joins the mark actually has.
|
|
43
|
+
- Resolve: the metaball field converges onto the logo's SDF in the last 0.3s, the specular and rim lighting fade out, and the hold frame is the flat logo SVG in brand colors. Liquid-styled lettering is never the resolve.
|
|
44
|
+
|
|
45
|
+
## Watch out
|
|
46
|
+
Flat blob look if lighting is skipped. Necks that never snap read as jelly. Banding in gradients: add 2-3% noise. Keep wave front phase offsets seeded, not random per frame.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Morphing Math Explainer
|
|
2
|
+
|
|
3
|
+
- id: `math-explainer`
|
|
4
|
+
- Source: huashu-art-motion `references/动画语法/t1_3b1b.md` (MIT)
|
|
5
|
+
- Best for: explaining a mechanism step by step (neural net, matrix, gradient descent, probability, algorithm flow), 30-120s with a voiceover made of action sentences.
|
|
6
|
+
- Not for: product launches, brand or mood films, real data trends, opinion or story voiceover, anything under 8s.
|
|
7
|
+
- Triggers: 3blue1brown, 3b1b, manim, math explainer, linear algebra, neural network explainer, gradient descent, black background math, transform animation, equation morph
|
|
8
|
+
- Tone cell: calm-sharp
|
|
9
|
+
- Clock: smooth 30/60 fps
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
- Background pure black `#000000`. Do not use a navy gradient or bloom. The "glow" comes from saturated thin lines on black, with saturation pushed about 1.5x.
|
|
13
|
+
- Palette: blue `#58C4DD`, red `#FC6255`, yellow `#FFFF00`, teal `#5CD0B3`, green `#83C167`, greys `#DDD/#888/#444`. Max 4 semantic colors per video.
|
|
14
|
+
- Color is the concept name. Example: yellow = activation or signal, blue = positive weight, red = negative weight. A symbol in the formula and its object on screen share the color, and it never changes mid-video.
|
|
15
|
+
- Type: serif math face (Computer Modern or CMU Serif look) for formulas, a serif for labels. Title 58px, formula 64px at 1080p.
|
|
16
|
+
- Strokes: default 4px, axes and network edges 2px, grid 2px with 1px sub-grid at 25% opacity. Neuron: white 2px outline, fill opacity equals its value.
|
|
17
|
+
- One main subject per screen, centered or symmetric. Title and formula pinned to the top eighth, never moving with the camera.
|
|
18
|
+
|
|
19
|
+
## Motion
|
|
20
|
+
- Default easing is the quintic smooth curve 6t^5 - 15t^4 + 10t^3. Linear only for write-on strokes, constant rotation, and signal flashes.
|
|
21
|
+
- Rhythm: one animation runs 1-3s, then the frame holds about 1s. One concept lasts 8-20s.
|
|
22
|
+
- Lagged groups: lag ratio 0.1 for small sets, 0.01 for 100 items (about 1.1s total), 0.006 for 160 edges.
|
|
23
|
+
- Write-on: outline strokes first, then fill fades in over the last 60%. Under 15 glyphs takes 1s, more takes 2s.
|
|
24
|
+
- Transform: resample both shapes to the same point count, align start points, interpolate linearly point by point plus color. Square grid to circles, weights flying to one neuron.
|
|
25
|
+
- Signal: copy the edge, color it yellow at 1.5x width, reveal a moving window along it, stagger rows by 0.04s.
|
|
26
|
+
- Camera: still while waiting. It moves only to look at the next object, one smooth push of about 1s. One fast push (0.28s, 18-32% in) at most once or twice, only when a conclusion lands.
|
|
27
|
+
|
|
28
|
+
## Signature features (judged against these)
|
|
29
|
+
- Black `#000000` background with no gradient and no bloom.
|
|
30
|
+
- Each shot states "what becomes what", and the first frame already shows an object, not a title.
|
|
31
|
+
- No more than 2 text points on screen at once, and none appears as a bullet list.
|
|
32
|
+
- One color per concept, 4 semantic colors or fewer, formula symbols matching object colors.
|
|
33
|
+
- Concepts connect by morph, not by cut. The last frame of one shot equals the first frame of the next.
|
|
34
|
+
- Holds are truly still: no slow drift, breathing, or floating.
|
|
35
|
+
- Each animation matches a verb in the voiceover, then waits about 1s.
|
|
36
|
+
- A number counts up with the fill, never before the picture shows it.
|
|
37
|
+
|
|
38
|
+
## Beat pattern (30-60s)
|
|
39
|
+
- 0-3s: first frame is the object (grid, curve, pixels). Question title writes on after it appears.
|
|
40
|
+
- Every 8-15s: one concept. Voice says the verb, one Transform plays, then 1s hold.
|
|
41
|
+
- Middle: color legend appears the first time a color means something, and stays.
|
|
42
|
+
- 60-75%: hero moment. Camera pushes through or into the key object (for example the one neuron that matters), preceded by a 0.3s yellow outline.
|
|
43
|
+
- Last 6-8s: result settles, number counts to its final value, hold 0.6s or more. Legend remains to the end.
|
|
44
|
+
|
|
45
|
+
## Sound
|
|
46
|
+
Soft ambient pad or sparse piano, no beat. Quiet pen or tick on write-on, low pop on Transform landing. Voiceover leads, music 15-20 dB below.
|
|
47
|
+
|
|
48
|
+
## Build it in HyperFrames
|
|
49
|
+
- Canvas 2D or SVG. Every frame is a pure function of t. Write-on is a dash-offset driven by progress.
|
|
50
|
+
- Morph with arrays of points: sample each shape to N points, lerp by smooth(p). Seed any layout noise.
|
|
51
|
+
- Camera is a keyframe table (hold, push, hold). Zoom through an opening with log interpolation: zoom = Z^e, with Z at least 1100 / object radius so the opening covers the screen.
|
|
52
|
+
- Lay out the formula once with per-token colors, then replace tokens by name between formulas.
|
|
53
|
+
|
|
54
|
+
## Watch out
|
|
55
|
+
- Adding glow or a navy gradient turns it into a "tech slide".
|
|
56
|
+
- Using ease or linear everywhere and packing animations too fast. 8 seconds with 5 concepts is the upper limit, real use should be 2-3x slower.
|
|
57
|
+
- Color meaning changing mid-video, or more than 4 colors.
|
|
58
|
+
- Logic errors: connecting an output neuron to pixels when it connects to the hidden layer. Check the diagram against the claim.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Shape Morph Chain
|
|
2
|
+
|
|
3
|
+
- id: `morph`
|
|
4
|
+
- Source: mg-styles-15 `prompts/08-morph.md` (MIT, Vincentwei1021)
|
|
5
|
+
- Best for: keynote-grade storytelling, icon sequences, feature walkthroughs, brand reveal built from meaningful symbols
|
|
6
|
+
- Not for: character acting, texture-heavy looks, hard-cut montage
|
|
7
|
+
- Triggers: morph, morphing, shape transition, icon morph, shape shifting, one shape becomes another, Apple keynote, visual storytelling, flubber
|
|
8
|
+
- Tone cell: calm-sharp
|
|
9
|
+
- Clock: smooth 30 fps
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
One hero shape, flat clean icons. Background color fields change with each morph via clean color-block wipes. Palette of 4-6 brand colors, one per beat. Invented logo and wordmark at the end (for example "morphe"). Centred, generous negative space.
|
|
13
|
+
|
|
14
|
+
## Motion
|
|
15
|
+
Chain of 6-8 meaningful icons on the beat, for example cup, circle, sun, sunset over sea, gull, paper plane, location pin, heart, logo. Each A to B goes through a simple intermediate (circle or capsule): A to circle then circle to B, 8-12 frames each. Rotation plus 10-15% squash and stretch through the morph. Sub-parts morph in sync (steam becomes sun rays becomes waves). Ease cubic-bezier(0.7,0,0.3,1), fastest in the middle, 3-frame cushions at start and end.
|
|
16
|
+
|
|
17
|
+
## Signature features (judged against these)
|
|
18
|
+
- Continuous outline with no jump cut between shapes.
|
|
19
|
+
- Every complex morph bridges through a circle or capsule.
|
|
20
|
+
- No knotting or tangling at any mid-point still.
|
|
21
|
+
- 10-15% squash and stretch plus slight rotation during morphs.
|
|
22
|
+
- Sub-parts morph in sync with the hero.
|
|
23
|
+
- Color-field wipe with each morph.
|
|
24
|
+
- Each morph lands on a beat.
|
|
25
|
+
|
|
26
|
+
## 10-second beat seed
|
|
27
|
+
- 0-1s: first icon pops in, hold 3 frames, begin morph (hook on frame 0).
|
|
28
|
+
- 1-6s: 5-6 morphs on the beat, each with a color wipe.
|
|
29
|
+
- 6-8s (hero at 60-75%): the most surprising morph (paper plane to pin to heart) with synced sub-parts.
|
|
30
|
+
- 8-10s: shape becomes the brand logo, wordmark fades in, hold with micro-motion.
|
|
31
|
+
|
|
32
|
+
## Sound
|
|
33
|
+
Rhythmic plucky arpeggio. A pitched whoosh per morph landing on the beat.
|
|
34
|
+
|
|
35
|
+
## Build it in HyperFrames
|
|
36
|
+
SVG with GSAP MorphSVGPlugin if licensed, otherwise flubber or a custom resampler: resample both paths to the same N points (about 200), rotate the start index to minimise total vertex distance, then lerp with the easing curve. All as a pure function of t. Always render mid-point stills for every morph and inspect for knots.
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Logo construction
|
|
40
|
+
Rule from logo-design (MIT, kaankiziltug): the entrance is built from the mark's own construction, and the resolve frame equals the master logo. Before animating, write the mark's construction in one line in `plan.md` (its primitives, strokes or modules, and the order they would be drawn). The resolve frame is the real logo file (`brand/logo.svg` or the SVG the user supplied), never a styled stand-in or an invented wordmark: render the last frame and the logo SVG at the same size and position, and any visible difference is a Block. Sting length 1 to 3 seconds, easing from this card.
|
|
41
|
+
- Construction: the chain's last morph lands on the logo's own primitives, in the order the mark is built (outer shape first, then cuts and counters). The bridge circle or capsule before the logo is the mark's largest primitive when it has one.
|
|
42
|
+
- Resolve: the final morph target is the logo's path itself, resampled from the SVG, not a hand-traced copy. Swap to the untouched SVG on the hold frame; the swap must be invisible.
|
|
43
|
+
|
|
44
|
+
## Watch out
|
|
45
|
+
Mismatched vertex counts and starting points cause knots. Skipping the intermediate circle on complex pairs. Mechanical look when squash and rotation are missing. Make beat times come from a single cue sheet.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Stone Mosaic
|
|
2
|
+
|
|
3
|
+
- id: `mosaic`
|
|
4
|
+
- Source: huashu-art-motion `04_roman.md` (MIT)
|
|
5
|
+
- Best for: heritage, food, travel, history, floor-tile and craft brands, bold logos and badges (narrow use)
|
|
6
|
+
- Not for: faces in close-up at small tile sizes, fast-motion UI, fine text
|
|
7
|
+
- Triggers: mosaic, roman mosaic, pompeii, tesserae, tile, byzantine, ancient floor, stone tiles
|
|
8
|
+
- Tone cell: calm-sharp
|
|
9
|
+
- Clock: smooth 30/60 fps (stones fixed, color flows through them)
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
Hundreds of small stone tiles placed along outlines, with grout between them.
|
|
13
|
+
- Wall `#e4ddcd`, halo ring `#f5f1e8` (a 44-50 px halo around every figure), outline `#46322a`, red frame `#a8322a` with `#7c221d` line, gold `#d0a23c`, grout rgb(112,103,92) with noise.
|
|
14
|
+
- Tile size by region: wall 12 px, halo 11, figures 10, face 5-6 (small), hair 8, border strip 7.6, text 7, ground 13. Color jitter +/-4 to 8%, 9% warm tiles (+12,+4,-8), 7% cool.
|
|
15
|
+
- Each tile is a rotated square with half-widths `s/2*(1.08-1.28)` each, rotation +/-0.06 rad. Grout appears along the bisector between neighbors (gap 0.75-1.25 px).
|
|
16
|
+
- Edge shading: within 2.2 px of the edge, light direction (-0.6,-0.8) gives +/-16% light or dark; dome term `-5%*D1^2`; 3% pixel grain.
|
|
17
|
+
- Lettering: monospace thick-stroke letters about 2 tiles wide per stroke.
|
|
18
|
+
|
|
19
|
+
## Motion
|
|
20
|
+
- Layout is computed once. Each frame, colors from a flat drawing flow through the fixed stones.
|
|
21
|
+
- Border band as a conveyor: a pre-baked 2,106 px stone strip (26 repeats of an 81 px pattern) translated by phase `15*lt + 81*easeInOut(...)`, so the stones travel with the pattern.
|
|
22
|
+
- Smoke or small props drift (55 px/s cloud band, 12 ember squares on parabolas); a small tile-sprite (emblema) carries moving objects.
|
|
23
|
+
- Transition family: mosaic tiles flip over and spread outward from a point.
|
|
24
|
+
|
|
25
|
+
## Signature features (judged against these)
|
|
26
|
+
- Tiles laid along outline contours (distance-field iso-lines), then filled in staggered rows.
|
|
27
|
+
- Visible grout formed by the bisector between irregular stones.
|
|
28
|
+
- Halo of lighter tiles around every figure.
|
|
29
|
+
- Smaller tiles on faces and focal details, larger on background.
|
|
30
|
+
- Color flows across fixed tiles (the tiles never move except in the border conveyor).
|
|
31
|
+
- Props smaller than 3 tiles wide are sprites with their own small tiles.
|
|
32
|
+
|
|
33
|
+
## 10-second beat seed
|
|
34
|
+
- 0-1.2s: tile border drifts, central picture assembles.
|
|
35
|
+
- 1.2-6s: color moves through the stones, smoke and sparks.
|
|
36
|
+
- 6-7.5s (hero): focal object flips tile by tile into the key message.
|
|
37
|
+
- 8.8-10s: hold, border continues.
|
|
38
|
+
|
|
39
|
+
## Sound
|
|
40
|
+
Lyre and frame drum, 80-100 BPM, stone click foley per tile flip.
|
|
41
|
+
|
|
42
|
+
## Build it in HyperFrames
|
|
43
|
+
Canvas 2D with typed arrays; build once at init (about 200 ms).
|
|
44
|
+
- Distance transform (Felzenszwalb-Huttenlocher) on a structure map, then walk iso-contours placing stones spaced at the tile size using a spatial hash with minimum spacing 0.8 x size; fill remaining gaps with staggered rows.
|
|
45
|
+
- Per pixel store tile id and shade; per frame sample the flat drawing at each tile center and write color x shade. Draw to an offscreen canvas then `drawImage` (direct `putImageData` ignores scaling and transitions).
|
|
46
|
+
|
|
47
|
+
## Watch out
|
|
48
|
+
- Current weak spot: facial detail gets lost at small tile sizes.
|
|
49
|
+
- Hand, cup and face crowd together at 6-8.5 px tiles. Use bigger gestures or sprite inserts.
|
|
50
|
+
- Slow pattern shifts under one tile width get quantized away if only colors change. Move the stones too or move far.
|
|
51
|
+
- Do not use a special small tile size in one region only; it shows as a patch when still.
|
|
52
|
+
- Thin serif letters break into wrong letters at 7-9 px tiles.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Evidence Desk Collage
|
|
2
|
+
|
|
3
|
+
- id: `newsroom-collage`
|
|
4
|
+
- Source: huashu-art-motion `references/动画语法/y2_vox.md` (MIT)
|
|
5
|
+
- Best for: news, history, politics and "how did this happen" explainers built on real material (clippings, screenshots, photos, maps, quotes). Journalist-style argument with evidence. 45-180s.
|
|
6
|
+
- Not for: pure concept or mechanism with nothing real to show (it becomes fake archive), derivations, character-driven comedy.
|
|
7
|
+
- Triggers: vox, johnny harris, explainer journalism, news explainer, documentary collage, paper desk, red string, highlighter, investigation board, map explainer, archive footage collage
|
|
8
|
+
- Tone cell: calm-sharp
|
|
9
|
+
- Clock: on twos (elements step at 12 fps, camera smooth 24-60 fps)
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
- Three-color system: near-black `#171716`, paper white `#E0DCDA` to `#EEEDED`, one red in two steps (bright `#B65255` for lines, dark `#93403C` for fills). Highlighter yellow `#DACF08` for emphasis only. Old map paper `#E4DCCF`, parchment `#CFB195`. No pure white, no pure black.
|
|
13
|
+
- Used in the demo: desk `#e4ddcf`, clue red `#b8433f` (slightly brighter for 1080p legibility), highlighter `rgba(218,207,8,.9)` with multiply blend, a large black card `#1b1b1a` on the desk for one shot.
|
|
14
|
+
- Real material is the main picture: screenshots, original text, photos fill the frame or close to it, then push to the sentence being read. A shot where material is under 60% of the frame width, more than twice in a row, is the "photo frame" layout.
|
|
15
|
+
- Photos are grayscale with a 45 degree halftone, white border, two semi-transparent tape pieces. Clippings have torn, yellowed edges and a serif headline. Labels are black bars with bold white text. Index cards have ruled lines.
|
|
16
|
+
- Paper texture is static. No per-frame grain. Shadows are weak (blur 10, offset (3, 6), alpha 0.28).
|
|
17
|
+
- Intentionally imperfect so it reads as editorial, not advertising.
|
|
18
|
+
- People can appear as cut-out stickers with a white border and shadow.
|
|
19
|
+
|
|
20
|
+
## Motion
|
|
21
|
+
- Two frame rates. Camera runs smooth. Elements (map color growth, red line tracing, typing, hand-drawn circles, pop-ins) step at 12 fps. Use `step(t - at, 12)` so the first frame is exactly at the cue.
|
|
22
|
+
- Camera easing from 13 measured moves: median 1.29s, range 0.71-1.96s, none linear. Seven are symmetric sine in-out for long hops, six are fast-start long-tail near `cubic-bezier(.33,0,.2,1)` for reveals and tracking.
|
|
23
|
+
- Defaults: push 0.6-1.5s, pull-out about 1s, follow a clue 1.3-1.8s, find next card 0.5-0.9s, fast push 0.28s only for a reveal.
|
|
24
|
+
- Archive photos and clippings appear on the cut, no bounce. Only when following a timeline does the next card slide in from off-screen with a 5-15 degree tilt, flatten, about 0.8s.
|
|
25
|
+
- Pen work: red underline 0.5-1s, red oval about 1s in one stroke (not closed, slightly crossing), highlighter 1.5-3s per line following the spoken words, typing about 13 characters per second.
|
|
26
|
+
- When the camera is parked and a card has internal animation, the camera holds. Static cards use a push to the line being read, not a slow drift.
|
|
27
|
+
|
|
28
|
+
## Signature features (judged against these)
|
|
29
|
+
- Real material fills the frame and is pushed in to the exact sentence.
|
|
30
|
+
- Black, paper white, one red, plus a muted highlighter, no big yellow fields.
|
|
31
|
+
- Camera glides while elements step at 12 fps.
|
|
32
|
+
- No tear-off paper transition and no per-frame grain.
|
|
33
|
+
- Reveal actions rotate (cut-in, push, glide, highlighter, red line, stamp), never the same sequence more than 3 times.
|
|
34
|
+
- Text to read is on the topmost layer and drawn last.
|
|
35
|
+
- Highlighter timing follows the speaker, not the music.
|
|
36
|
+
- The same event is acted out only once. After a zoom, it is not replayed.
|
|
37
|
+
|
|
38
|
+
## Beat pattern (30-60s)
|
|
39
|
+
- 0-4s: the source document or photo is on screen, camera framed on the claim.
|
|
40
|
+
- 4-20s: slow tier holds each card 3-7s using internal motion (highlighter, typed label, red circle). Fast tier (1.4-1.8s) is image cuts only.
|
|
41
|
+
- 50-70%: follow a red string from the key line to a second piece of evidence. The camera chases for 1.1-1.8s with short motion blur.
|
|
42
|
+
- Then a push into the photo and a hard cut to the sharper scan of the same image.
|
|
43
|
+
- Last 6-8s: pull out to the whole desk (0.85s long tail), then a closing line typed on black, hold 1s.
|
|
44
|
+
|
|
45
|
+
## Sound
|
|
46
|
+
Understated documentary bed, minimal pulse, change music about every 20s. Paper slide, marker squeak, soft typewriter ticks. Voice is the lead.
|
|
47
|
+
|
|
48
|
+
## Build it in HyperFrames
|
|
49
|
+
- Canvas 2D or SVG. Cache each paper, photo and clipping as a sprite. Seeded paper texture tiles seamlessly (sample on a torus) with fibers.
|
|
50
|
+
- Halftone: convert grayscale to a 45 degree dot grid as one path. Torn edges via noise.
|
|
51
|
+
- Hand-drawn lines: resample and add low-frequency noise, reveal by length.
|
|
52
|
+
- Camera framing: compute the rect that contains the target plus margin. Do not hand-type coordinates. Push no further than keeps the red circle in frame.
|
|
53
|
+
- Short motion blur on fast moves by stacking 7 samples along the velocity vector.
|
|
54
|
+
|
|
55
|
+
## Watch out
|
|
56
|
+
- Everything moving smooth at 60 fps looks like a corporate film. Everything at 12 fps makes the camera dizzy.
|
|
57
|
+
- Template-style tricks (tear-off transitions, every image bouncing in, jittering paper) are not part of this look.
|
|
58
|
+
- Cards stacked so two labels read together as a false sentence ("exceeded" beside "acquired"). Read the visible text in order.
|
|
59
|
+
- A photo, clip or later card covering the text that is being read.
|
|
60
|
+
- The source marks a highlighter that starts outside the visible frame. Move the camera first.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Pixel Art 8-bit
|
|
2
|
+
|
|
3
|
+
- id: `pixel`
|
|
4
|
+
- Source: mg-styles-15 `prompts/20-pixel.md` (MIT, Vincentwei1021)
|
|
5
|
+
- Best for: game trailers and attract screens, 8-bit music videos, nostalgic brand marketing, indie game promos
|
|
6
|
+
- Not for: smooth premium brand films, photoreal, long text
|
|
7
|
+
- Triggers: pixel art, 8-bit, 16-bit, retro game, sprite, chiptune, side scroller, CRT, dithering, PICO-8, Aseprite, Minecraft, Terraria
|
|
8
|
+
- Tone cell: kinetic-sharp
|
|
9
|
+
- Clock: stepped 10-12 fps for sprites (30 fps timeline for scrolling)
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
Internal resolution 320x180 scaled x6 to 1920x1080 with nearest-neighbour. Limited palette (PICO-8-like 16-32 colors), dithered sky gradient. 3-4 parallax layers (sky, far mountains, mid forest or city, near ground tiles). Sprites hand-authored 16x16 to 24x24 as pixel arrays. Chunky pixel logo (for example "PIXEL QUEST"), pixel font dialogue box. Optional CRT pass: scanlines, slight barrel, phosphor glow, without blurring pixels into mush.
|
|
13
|
+
|
|
14
|
+
## Motion
|
|
15
|
+
Strictly integer pixel positions and stepped timing, no smooth easing on sprites. Run cycle 6-8 frames at about 10-12 fps. Coin sparkle, slime bop, chest opens with a light burst. Parallax layers move by whole pixels at different speeds. Palette shifts day to sunset. Dialogue types out character by character. Logo drops in with a shine sweep.
|
|
16
|
+
|
|
17
|
+
## Signature features (judged against these)
|
|
18
|
+
- Hard pixel edges via nearest-neighbour, no anti-aliasing.
|
|
19
|
+
- Limited palette (8-32 colors) with dither.
|
|
20
|
+
- Sprite animation at 8-12 fps, steps() timing.
|
|
21
|
+
- Integer-pixel positions only, including parallax.
|
|
22
|
+
- 3-4 parallax layers at different whole-pixel speeds.
|
|
23
|
+
- Typewriter dialogue box in a pixel font.
|
|
24
|
+
- CRT scanlines that keep pixels crisp.
|
|
25
|
+
|
|
26
|
+
## 10-second beat seed
|
|
27
|
+
- 0-1.2s: sky and hero already running, coin sparkle.
|
|
28
|
+
- 1.2-4s: run, jump, bop a slime, parallax scrolling.
|
|
29
|
+
- 4-7s (hero at 60-75%): palette shifts to sunset, chest opens with a light burst.
|
|
30
|
+
- 7-8.5s: dialogue typed out.
|
|
31
|
+
- 8.5-10s: pixel logo drops in with shine sweep, held with blink.
|
|
32
|
+
|
|
33
|
+
## Sound
|
|
34
|
+
Chiptune: pulse lead, triangle bass, noise drums, plus jump, coin and chest SFX.
|
|
35
|
+
|
|
36
|
+
## Build it in HyperFrames
|
|
37
|
+
Canvas 2D at 320x180 with imageSmoothingEnabled = false, then drawImage upscaled x6 (or CSS image-rendering: pixelated). Sprite frame = floor(t*10) mod N. Parallax offset = floor(t * speed). Palette as an array of hex values, palette shift by lerping and re-quantising. Ordered-dither (Bayer 4x4) for gradients. CRT pass applied after upscale.
|
|
38
|
+
|
|
39
|
+
## Watch out
|
|
40
|
+
Fractional positions cause shimmer. Never use a smooth scale or rotation on sprites. Scanlines that are too heavy hide the art. Pixel CJK fonts must be OFL.
|
|
41
|
+
|
|
42
|
+
## Art-history variant (huashu-art-motion `14_8bit`)
|
|
43
|
+
- Draw the whole scene on a 240x135 canvas (1 low pixel = 8 screen pixels), scale up once with image smoothing off. Gradients become a 3-tone checkerboard dither band (sky `#0856ef #47c4f8 #aae9fb`).
|
|
44
|
+
- Sprites: rasterize each part on its own layer, drop alpha under 110, quantize to a 14-color palette, give each part its own 1px black outline. Draw small props directly at low resolution, never scaled down from smooth paths.
|
|
45
|
+
- HUD text at full resolution in Press Start 2P (OFL) with an 8px drop shadow; icons as 8x8 bitmaps.
|
|
46
|
+
- Motion stepped: 4-pose loops at 15 fps, integer pixel shakes `[0,1,0,-1]`, coin pop as a half sine of 9px, 1px cloud moves every 2 frames. Transition in: pixel blocks scale up then down.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Pointillist Dots
|
|
2
|
+
|
|
3
|
+
- id: `pointillist`
|
|
4
|
+
- Source: huashu-art-motion `29_seurat.md` (MIT)
|
|
5
|
+
- Best for: calm brand films, art and culture content, premium reveals, color theory explainers
|
|
6
|
+
- Not for: fast action, small text, flat vector UI
|
|
7
|
+
- Triggers: pointillism, seurat, signac, dots, optical color mixing, stipple painting, divisionism
|
|
8
|
+
- Tone cell: calm-soft
|
|
9
|
+
- Clock: on twos (dot recolor at 6 fps, light shimmer)
|
|
10
|
+
|
|
11
|
+
## Look
|
|
12
|
+
The picture is built from equal-size dots placed on a hex grid (pitch 10, row spacing 8.66, radius 4.5, +/-1.2 px static jitter, about 24,000 dots). Only 21 pure palette colors exist; mixed tones come from placing two neighbors side by side in proportion.
|
|
13
|
+
- 14 saturated: `#1a2058 #2a3a9a #3f6fd0 #6aaee6 #1f6a52 #2f9a5a #a8c83a #f2cf3a #f08a2a #e0432a #c0306a #7a4aa8 #f8f4e8 #e8b48a`
|
|
14
|
+
- 7 pale (mixed with white): `#f6e49a #f6c48a #cfe08a #b0cff0 #f2b8c8 #c99a4a #9a7ac8`
|
|
15
|
+
A blurred, slightly desaturated copy of the flat painting sits under the dots as ground color. A dark blue 28 px border, also dotted, frames the picture. Compose for the subject; leave open flat areas so the dots read.
|
|
16
|
+
|
|
17
|
+
## Motion
|
|
18
|
+
- Water or sky dots re-roll their hash at 6 fps to make light shimmer.
|
|
19
|
+
- 7% of dots swap to their pair color at 6 fps (4 fps and 3% read as frozen).
|
|
20
|
+
- One small element drifts (a boat 40 px/s, a butterfly on `sin(2.6t)*120` with wing beat `|sin(20t)|`).
|
|
21
|
+
- Transition family: the old image crystallizes into dots (grid pitch 14, radius grows to 6.4), dots recolor top-left first with a 1.35x pop, then the new image develops underneath.
|
|
22
|
+
|
|
23
|
+
## Signature features (judged against these)
|
|
24
|
+
- Uniform dots, no strokes, no outlines.
|
|
25
|
+
- 21-color palette, tones created by optical mixing.
|
|
26
|
+
- About 8% complementary-color dots (blue/orange, green/red-violet, yellow/violet).
|
|
27
|
+
- Light bleed: where brightness differs by more than 45 across 14 px, add white on the bright side and deep blue on the dark side.
|
|
28
|
+
- Visible deep-blue dotted border.
|
|
29
|
+
- Gentle motion, adjacent-frame difference around 0.45 mean.
|
|
30
|
+
|
|
31
|
+
## 10-second beat seed
|
|
32
|
+
- 0-1.2s: dots crystallize from empty paper into the scene.
|
|
33
|
+
- 1.2-6s: slow shimmer, one drifting element.
|
|
34
|
+
- 6-7s (hero): dots pop to the new palette pair, title resolves.
|
|
35
|
+
- 8.8-10s: hold, shimmer continues.
|
|
36
|
+
|
|
37
|
+
## Sound
|
|
38
|
+
Soft marimba or vibraphone ticks, 90-100 BPM. One tick per dot-pop wave.
|
|
39
|
+
|
|
40
|
+
## Build it in HyperFrames
|
|
41
|
+
Canvas 2D or WebGL. Draw a flat painting, sample color at each grid dot, pick a pair from the palette.
|
|
42
|
+
- Project the target color onto the line between two palette colors to get a ratio, clamp to 0.2-0.8, add a penalty `0.004*|Pi-Pj|^2` against distant pairs, and decide per dot with `hash(i,j) < w`.
|
|
43
|
+
- Add +/-20 hash jitter to the target before picking, otherwise the pair boundary forms vertical bands.
|
|
44
|
+
- Batch dots into one Path2D per color, fill once per color; cache pair choices by 15-bit quantized color.
|
|
45
|
+
|
|
46
|
+
## Watch out
|
|
47
|
+
- Current weak spot: reads static, and the grid can look too regular. Add the shimmer and a moving element.
|
|
48
|
+
- A single preferred pure color without a penalty slices gradients into stripes.
|
|
49
|
+
- Without pale colors in the palette, bright walls break into white, skin and blue snow noise.
|