dsh-drawai 0.3.4 → 0.4.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 (533) hide show
  1. package/LICENSE +4142 -0
  2. package/README.md +43 -10
  3. package/lib/audio-media.js +147 -0
  4. package/lib/audio-service.js +66 -0
  5. package/lib/canvas-format.js +134 -0
  6. package/lib/client.js +5075 -181
  7. package/lib/comfyui-default-workflow.mjs +1825 -0
  8. package/lib/comfyui-workflow.mjs +426 -0
  9. package/lib/document-commands.js +12 -0
  10. package/lib/document-core.js +29 -0
  11. package/lib/drawing-tasks.js +26 -0
  12. package/lib/imagegen.mjs +596 -0
  13. package/lib/index.js +1758 -129
  14. package/lib/media.js +26 -13
  15. package/lib/mgstyle-core.js +75 -0
  16. package/lib/motion/apply.js +180 -0
  17. package/lib/motion/asset-pack-lock.js +10 -0
  18. package/lib/motion/asset-pack.js +335 -0
  19. package/lib/motion/assets.js +290 -0
  20. package/lib/motion/audio.js +103 -0
  21. package/lib/motion/audiolevel.js +63 -0
  22. package/lib/motion/audiomix.js +144 -0
  23. package/lib/motion/beats.js +337 -0
  24. package/lib/motion/builtin-assets.js +62 -0
  25. package/lib/motion/canvas-spec.js +442 -0
  26. package/lib/motion/capture.js +95 -0
  27. package/lib/motion/cards.js +80 -0
  28. package/lib/motion/collect.js +447 -0
  29. package/lib/motion/delivery.js +112 -0
  30. package/lib/motion/edge-speech.py +90 -0
  31. package/lib/motion/entry.jsx +73 -0
  32. package/lib/motion/export.js +200 -0
  33. package/lib/motion/ffmpeg.js +42 -0
  34. package/lib/motion/fonts.js +71 -0
  35. package/lib/motion/jobs.js +113 -0
  36. package/lib/motion/json.js +4 -0
  37. package/lib/motion/media-catalog.js +59 -0
  38. package/lib/motion/mgstyles/BRIEF-TEMPLATE.md +63 -0
  39. package/lib/motion/mgstyles/briefs/01-flat-vector.md +104 -0
  40. package/lib/motion/mgstyles/briefs/02-line-art.md +97 -0
  41. package/lib/motion/mgstyles/briefs/03-isometric.md +108 -0
  42. package/lib/motion/mgstyles/briefs/05-cel-boil.md +145 -0
  43. package/lib/motion/mgstyles/briefs/06-collage.md +149 -0
  44. package/lib/motion/mgstyles/briefs/07-liquid.md +106 -0
  45. package/lib/motion/mgstyles/briefs/08-morph.md +111 -0
  46. package/lib/motion/mgstyles/briefs/09-bauhaus.md +150 -0
  47. package/lib/motion/mgstyles/briefs/10-synthwave.md +151 -0
  48. package/lib/motion/mgstyles/briefs/12-aurora-glass.md +147 -0
  49. package/lib/motion/mgstyles/briefs/18-hanazi.md +140 -0
  50. package/lib/motion/mgstyles/briefs/19-paperclip.md +156 -0
  51. package/lib/motion/mgstyles/briefs/20-pixel.md +118 -0
  52. package/lib/motion/mgstyles/briefs/22-hud.md +118 -0
  53. package/lib/motion/mgstyles/catalog.d/01-flat-vector.json +34 -0
  54. package/lib/motion/mgstyles/catalog.d/02-line-art.json +34 -0
  55. package/lib/motion/mgstyles/catalog.d/03-isometric.json +35 -0
  56. package/lib/motion/mgstyles/catalog.d/05-cel-boil.json +28 -0
  57. package/lib/motion/mgstyles/catalog.d/06-collage.json +28 -0
  58. package/lib/motion/mgstyles/catalog.d/07-liquid.json +28 -0
  59. package/lib/motion/mgstyles/catalog.d/08-morph.json +28 -0
  60. package/lib/motion/mgstyles/catalog.d/09-bauhaus.json +28 -0
  61. package/lib/motion/mgstyles/catalog.d/10-synthwave.json +28 -0
  62. package/lib/motion/mgstyles/catalog.d/12-aurora-glass.json +28 -0
  63. package/lib/motion/mgstyles/catalog.d/18-hanazi.json +28 -0
  64. package/lib/motion/mgstyles/catalog.d/19-paperclip.json +28 -0
  65. package/lib/motion/mgstyles/catalog.d/20-pixel.json +28 -0
  66. package/lib/motion/mgstyles/catalog.d/22-hud.json +28 -0
  67. package/lib/motion/mgstyles/catalog.json +1356 -0
  68. package/lib/motion/mgstyles/upstream/README.md +147 -0
  69. package/lib/motion/mgstyles/upstream/README.zh-CN.md +147 -0
  70. package/lib/motion/mgstyles/upstream/demos/01-flat-vector/cues.json +1 -0
  71. package/lib/motion/mgstyles/upstream/demos/01-flat-vector/index.html +712 -0
  72. package/lib/motion/mgstyles/upstream/demos/02-line-art/cues.json +331 -0
  73. package/lib/motion/mgstyles/upstream/demos/02-line-art/film.js +676 -0
  74. package/lib/motion/mgstyles/upstream/demos/02-line-art/index.html +18 -0
  75. package/lib/motion/mgstyles/upstream/demos/02-line-art/tools/dump_timing.mjs +26 -0
  76. package/lib/motion/mgstyles/upstream/demos/03-isometric/cues.json +109 -0
  77. package/lib/motion/mgstyles/upstream/demos/03-isometric/index.html +25 -0
  78. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/anim.js +82 -0
  79. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/main.js +219 -0
  80. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/night5.js +180 -0
  81. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/render.js +202 -0
  82. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/title.js +167 -0
  83. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/title5.js +294 -0
  84. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/ui.js +141 -0
  85. package/lib/motion/mgstyles/upstream/demos/03-isometric/js/world.js +1399 -0
  86. package/lib/motion/mgstyles/upstream/demos/05-cel-boil/cues.json +157 -0
  87. package/lib/motion/mgstyles/upstream/demos/05-cel-boil/index.html +34 -0
  88. package/lib/motion/mgstyles/upstream/demos/05-cel-boil/js/engine.js +326 -0
  89. package/lib/motion/mgstyles/upstream/demos/05-cel-boil/js/scene.js +2036 -0
  90. package/lib/motion/mgstyles/upstream/demos/06-collage/assets/gen/layout.json +157 -0
  91. package/lib/motion/mgstyles/upstream/demos/06-collage/cues.json +80 -0
  92. package/lib/motion/mgstyles/upstream/demos/06-collage/index.html +889 -0
  93. package/lib/motion/mgstyles/upstream/demos/07-liquid/cues.json +100 -0
  94. package/lib/motion/mgstyles/upstream/demos/07-liquid/index.html +108 -0
  95. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/engine.js +153 -0
  96. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/links.js +64 -0
  97. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/lookdev.js +46 -0
  98. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/scene.js +963 -0
  99. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/shaders.js +647 -0
  100. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/textsdf.js +114 -0
  101. package/lib/motion/mgstyles/upstream/demos/07-liquid/js/type.js +50 -0
  102. package/lib/motion/mgstyles/upstream/demos/08-morph/cues.json +131 -0
  103. package/lib/motion/mgstyles/upstream/demos/08-morph/glyphs.json +1 -0
  104. package/lib/motion/mgstyles/upstream/demos/08-morph/index.html +901 -0
  105. package/lib/motion/mgstyles/upstream/demos/09-bauhaus/cues.json +270 -0
  106. package/lib/motion/mgstyles/upstream/demos/09-bauhaus/film.js +697 -0
  107. package/lib/motion/mgstyles/upstream/demos/09-bauhaus/index.html +12 -0
  108. package/lib/motion/mgstyles/upstream/demos/10-synthwave/cues.json +44 -0
  109. package/lib/motion/mgstyles/upstream/demos/10-synthwave/index.html +1028 -0
  110. package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/cues.json +67 -0
  111. package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/index.html +16 -0
  112. package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/main.js +967 -0
  113. package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/shaders.js +468 -0
  114. package/lib/motion/mgstyles/upstream/demos/18-hanazi/cues.json +117 -0
  115. package/lib/motion/mgstyles/upstream/demos/18-hanazi/index.html +541 -0
  116. package/lib/motion/mgstyles/upstream/demos/19-paperclip/assets/countries-110m.json +1 -0
  117. package/lib/motion/mgstyles/upstream/demos/19-paperclip/assets/stickers/meta.json +34 -0
  118. package/lib/motion/mgstyles/upstream/demos/19-paperclip/cues.json +285 -0
  119. package/lib/motion/mgstyles/upstream/demos/19-paperclip/index.html +599 -0
  120. package/lib/motion/mgstyles/upstream/demos/20-pixel/cues.json +42 -0
  121. package/lib/motion/mgstyles/upstream/demos/20-pixel/film.js +914 -0
  122. package/lib/motion/mgstyles/upstream/demos/20-pixel/index.html +18 -0
  123. package/lib/motion/mgstyles/upstream/demos/22-hud/cues.json +108 -0
  124. package/lib/motion/mgstyles/upstream/demos/22-hud/index.html +125 -0
  125. package/lib/motion/mgstyles/upstream/demos/22-hud/js/holo.js +275 -0
  126. package/lib/motion/mgstyles/upstream/demos/22-hud/js/hud.js +855 -0
  127. package/lib/motion/mgstyles/upstream/demos/22-hud/js/post.js +150 -0
  128. package/lib/motion/mgstyles/upstream/demos/22-hud/js/util.js +65 -0
  129. package/lib/motion/mgstyles/upstream/demos/22-hud/js/v5.js +142 -0
  130. package/lib/motion/mgstyles/upstream/harness/render.mjs +319 -0
  131. package/lib/motion/mgstyles/upstream/manifest.json +269 -0
  132. package/lib/motion/mgstyles/upstream/prompts/01-flat-vector.md +98 -0
  133. package/lib/motion/mgstyles/upstream/prompts/02-line-art.md +95 -0
  134. package/lib/motion/mgstyles/upstream/prompts/03-isometric.md +97 -0
  135. package/lib/motion/mgstyles/upstream/prompts/05-cel-boil.md +95 -0
  136. package/lib/motion/mgstyles/upstream/prompts/06-collage.md +95 -0
  137. package/lib/motion/mgstyles/upstream/prompts/07-liquid.md +98 -0
  138. package/lib/motion/mgstyles/upstream/prompts/08-morph.md +95 -0
  139. package/lib/motion/mgstyles/upstream/prompts/09-bauhaus.md +96 -0
  140. package/lib/motion/mgstyles/upstream/prompts/10-synthwave.md +95 -0
  141. package/lib/motion/mgstyles/upstream/prompts/12-aurora-glass.md +96 -0
  142. package/lib/motion/mgstyles/upstream/prompts/18-hanazi.md +95 -0
  143. package/lib/motion/mgstyles/upstream/prompts/19-paperclip.md +96 -0
  144. package/lib/motion/mgstyles/upstream/prompts/20-pixel.md +96 -0
  145. package/lib/motion/mgstyles/upstream/prompts/22-hud.md +95 -0
  146. package/lib/motion/mgstyles/upstream/rubric.md +51 -0
  147. package/lib/motion/mgstyles/upstream/template.md +36 -0
  148. package/lib/motion/pixelqa.js +198 -0
  149. package/lib/motion/preview.js +95 -0
  150. package/lib/motion/project.js +395 -0
  151. package/lib/motion/qa.js +290 -0
  152. package/lib/motion/reference-media.jsx +10 -0
  153. package/lib/motion/render-settings.js +112 -0
  154. package/lib/motion/render.js +159 -0
  155. package/lib/motion/scene-kit.js +183 -0
  156. package/lib/motion/sfx.js +232 -0
  157. package/lib/motion/shotcraft/ClipCard.tsx +204 -0
  158. package/lib/motion/shotcraft/catalog.json +2461 -0
  159. package/lib/motion/shotcraft/upstream/SKILL.md +286 -0
  160. package/lib/motion/shotcraft/upstream/assets/lib/Caption.tsx +54 -0
  161. package/lib/motion/shotcraft/upstream/assets/lib/ClipCard.tsx +200 -0
  162. package/lib/motion/shotcraft/upstream/assets/lib/DigitRoll.tsx +45 -0
  163. package/lib/motion/shotcraft/upstream/assets/lib/FlashCut.tsx +20 -0
  164. package/lib/motion/shotcraft/upstream/assets/lib/FlatPanel.tsx +65 -0
  165. package/lib/motion/shotcraft/upstream/assets/lib/PageCam.tsx +151 -0
  166. package/lib/motion/shotcraft/upstream/assets/lib/VerticalTicker.tsx +129 -0
  167. package/lib/motion/shotcraft/upstream/assets/lib/helpers/camera.tsx +75 -0
  168. package/lib/motion/shotcraft/upstream/assets/lib/helpers/motion.ts +40 -0
  169. package/lib/motion/shotcraft/upstream/assets/lib/helpers/rand.ts +11 -0
  170. package/lib/motion/shotcraft/upstream/assets/lib/helpers/shake.ts +10 -0
  171. package/lib/motion/shotcraft/upstream/assets/scripts/__pycache__/sfx-source.cpython-313.pyc +0 -0
  172. package/lib/motion/shotcraft/upstream/assets/scripts/build-readme-cover.mjs +49 -0
  173. package/lib/motion/shotcraft/upstream/assets/scripts/capture-template.mjs +210 -0
  174. package/lib/motion/shotcraft/upstream/assets/scripts/sfx-source.py +423 -0
  175. package/lib/motion/shotcraft/upstream/assets/scripts/smoke-render-demos.py +170 -0
  176. package/lib/motion/shotcraft/upstream/assets/scripts/test_sfx_source.py +157 -0
  177. package/lib/motion/shotcraft/upstream/demos/README.md +120 -0
  178. package/lib/motion/shotcraft/upstream/demos/_fixtures/Brand.tsx +112 -0
  179. package/lib/motion/shotcraft/upstream/demos/_fixtures/Fixtures.tsx +647 -0
  180. package/lib/motion/shotcraft/upstream/demos/_fixtures/Look.tsx +316 -0
  181. package/lib/motion/shotcraft/upstream/demos/_fixtures/Motion.tsx +82 -0
  182. package/lib/motion/shotcraft/upstream/demos/_fixtures/PageCam2D.tsx +115 -0
  183. package/lib/motion/shotcraft/upstream/demos/_fixtures/Polish.tsx +243 -0
  184. package/lib/motion/shotcraft/upstream/demos/_textures/live-layout.json +389 -0
  185. package/lib/motion/shotcraft/upstream/demos/camera/basic-3d-scene/Basic3DScene.tsx +250 -0
  186. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashImpactReal.tsx +305 -0
  187. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashZoomReal.tsx +246 -0
  188. package/lib/motion/shotcraft/upstream/demos/camera/cursor-flyover/CursorFlyover.tsx +390 -0
  189. package/lib/motion/shotcraft/upstream/demos/camera/depth-layer-moves/MultiplaneReal.tsx +138 -0
  190. package/lib/motion/shotcraft/upstream/demos/camera/graze-face-tour/GrazeFaceTour.tsx +542 -0
  191. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/OverheadTabletopDrop.tsx +315 -0
  192. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/TiltReveal.tsx +299 -0
  193. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/DroneDiveLanding.tsx +173 -0
  194. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/ExplodedView.tsx +348 -0
  195. package/lib/motion/shotcraft/upstream/demos/camera/steep-tilt-glide/SteepTiltGlide.tsx +366 -0
  196. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/BulletTimeFreezeOrbit.tsx +279 -0
  197. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/PullBackIsolation.tsx +184 -0
  198. package/lib/motion/shotcraft/upstream/demos/camera/terminal-3d/Terminal3D.tsx +390 -0
  199. package/lib/motion/shotcraft/upstream/demos/data/before-after-slider-scrub/BeforeAfterSliderScrub.tsx +155 -0
  200. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/AxisRescaleShockV2.tsx +303 -0
  201. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/OscilloscopeStreamV2.tsx +290 -0
  202. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/UnitDotSwarmRegroupV2.tsx +278 -0
  203. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/NeedleSweepSelftest.tsx +307 -0
  204. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/TapeScrollFixedPointer.tsx +215 -0
  205. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/BrakeReticleLock.tsx +299 -0
  206. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/ChangelogScrollBrake.tsx +232 -0
  207. package/lib/motion/shotcraft/upstream/demos/data/timeline-travel/TimelineTravel.tsx +290 -0
  208. package/lib/motion/shotcraft/upstream/demos/effects/assemble-then-type-flyin/AssembleThenTypeFlyin.tsx +273 -0
  209. package/lib/motion/shotcraft/upstream/demos/effects/aurora-bloom-bg-flip/AuroraBloomBgFlip.tsx +167 -0
  210. package/lib/motion/shotcraft/upstream/demos/effects/brand-frame-snap/BrandFrameSnap.tsx +536 -0
  211. package/lib/motion/shotcraft/upstream/demos/effects/fui-hud-moves/ReticleLockOn.tsx +164 -0
  212. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/FlylineArc.tsx +175 -0
  213. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/GlowOrbAmbient.tsx +197 -0
  214. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/OrbFlylineRelay.tsx +241 -0
  215. package/lib/motion/shotcraft/upstream/demos/effects/icon-performance-moves/AttentionBounce.tsx +279 -0
  216. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/AnimeImpact.tsx +230 -0
  217. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/HitCounter.tsx +345 -0
  218. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SheenSweepRetry.tsx +275 -0
  219. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SpotlightSweepReveal.tsx +229 -0
  220. package/lib/motion/shotcraft/upstream/demos/effects/radial-ripple-phone-chips/RadialRipplePhoneChips.tsx +312 -0
  221. package/lib/motion/shotcraft/upstream/demos/effects/riso-print-hits/RisoMisregistrationHit.tsx +222 -0
  222. package/lib/motion/shotcraft/upstream/demos/effects/scan-bracket-sweep/ScanBracketSweep.tsx +295 -0
  223. package/lib/motion/shotcraft/upstream/demos/effects/scanline-annotate-focus/ScanlineAnnotateFocus.tsx +329 -0
  224. package/lib/motion/shotcraft/upstream/demos/effects/scanline-assemble-flyin/ScanlineAssembleFlyin.tsx +315 -0
  225. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ImpactBurstKit.tsx +264 -0
  226. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/KanadaPerspectiveSnap.tsx +260 -0
  227. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ScoreSlam.tsx +263 -0
  228. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/CornerSpotlightReveal.tsx +123 -0
  229. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/GlowWakeSleepPanel.tsx +187 -0
  230. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/SlideSpotlightPan.tsx +175 -0
  231. package/lib/motion/shotcraft/upstream/demos/interaction/autolayout-gap-dial/AutolayoutGapDial.tsx +305 -0
  232. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/DiagramCascadeBuild.tsx +350 -0
  233. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/PanelToCanvasMaterialize.tsx +352 -0
  234. package/lib/motion/shotcraft/upstream/demos/interaction/chip-grid-single-select-blackout/ChipGridSingleSelectBlackout.tsx +218 -0
  235. package/lib/motion/shotcraft/upstream/demos/interaction/collab-cursor-moves/CursorCastEnsemble.tsx +297 -0
  236. package/lib/motion/shotcraft/upstream/demos/interaction/glass-pill-dictation-typing/GlassPillDictationTyping.tsx +157 -0
  237. package/lib/motion/shotcraft/upstream/demos/interaction/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx +218 -0
  238. package/lib/motion/shotcraft/upstream/demos/interaction/picker-carousel-feature-cycle/PickerCarouselFeatureCycle.tsx +202 -0
  239. package/lib/motion/shotcraft/upstream/demos/interaction/segmented-thumb-hero/SegmentedThumbHero.tsx +265 -0
  240. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/PaletteThemeRipple.tsx +457 -0
  241. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/ThemeSweepToggle.tsx +446 -0
  242. package/lib/motion/shotcraft/upstream/demos/interaction/type-and-filter/TypeAndFilter.tsx +249 -0
  243. package/lib/motion/shotcraft/upstream/demos/interaction/voice-waveform-live/VoiceWaveformLive.tsx +278 -0
  244. package/lib/motion/shotcraft/upstream/demos/opening/crane-rise-reveal/CraneRiseReveal.tsx +332 -0
  245. package/lib/motion/shotcraft/upstream/demos/opening/dataviz-landscape-open/DatavizLandscapeOpen.tsx +358 -0
  246. package/lib/motion/shotcraft/upstream/demos/opening/fracture/Fracture.tsx +201 -0
  247. package/lib/motion/shotcraft/upstream/demos/opening/icon-field-colorize/IconFieldColorize.tsx +200 -0
  248. package/lib/motion/shotcraft/upstream/demos/opening/letterspace-materialize/LetterspaceMaterialize.tsx +208 -0
  249. package/lib/motion/shotcraft/upstream/demos/opening/magician-card-flourish/MagicianCardFlourish.tsx +341 -0
  250. package/lib/motion/shotcraft/upstream/demos/opening/orbit-ring-title-open/OrbitRingTitleOpen.tsx +389 -0
  251. package/lib/motion/shotcraft/upstream/demos/opening/spotlight-hero-card/SpotlightHeroCard.tsx +293 -0
  252. package/lib/motion/shotcraft/upstream/demos/opening/stroke-segment-build/StrokeSegmentBuild.tsx +183 -0
  253. package/lib/motion/shotcraft/upstream/demos/opening/text-as-mask/TextAsMask.tsx +245 -0
  254. package/lib/motion/shotcraft/upstream/demos/outro/grain-dissolve/GrainDissolve.tsx +222 -0
  255. package/lib/motion/shotcraft/upstream/demos/outro/logo-shrink-wordmark-lockup/LogoShrinkWordmarkLockup.tsx +223 -0
  256. package/lib/motion/shotcraft/upstream/demos/outro/neon-triple-marquee/NeonTripleMarquee.tsx +217 -0
  257. package/lib/motion/shotcraft/upstream/demos/outro/outro-group-photo-launch/OutroGroupPhotoLaunch.tsx +343 -0
  258. package/lib/motion/shotcraft/upstream/demos/outro/ui-strip-away-outro/UiStripAwayOutro.tsx +357 -0
  259. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/IconFlipBloomLogo.tsx +187 -0
  260. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/InputMorphsIntoLogo.tsx +333 -0
  261. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-cut-moves/PaparazziFlash.tsx +274 -0
  262. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx +270 -0
  263. package/lib/motion/shotcraft/upstream/demos/rhythm/panel-grid-moves/ComicPanelSplit.tsx +430 -0
  264. package/lib/motion/shotcraft/upstream/demos/rhythm/quad-split-parallel-scenes/QuadSplitParallelScenes.tsx +252 -0
  265. package/lib/motion/shotcraft/upstream/demos/rhythm/rhythm-interrupt-moves/JumpCutPunchIn.tsx +106 -0
  266. package/lib/motion/shotcraft/upstream/demos/rhythm/sakuga-timing-shift/SakugaTimingShift.tsx +288 -0
  267. package/lib/motion/shotcraft/upstream/demos/rhythm/speed-ramp-freeze/FreezeAnnotateReal.tsx +362 -0
  268. package/lib/motion/shotcraft/upstream/demos/rhythm/trailer-grammar-moves/TrailerBumper.tsx +168 -0
  269. package/lib/motion/shotcraft/upstream/demos/transition/bottom-push-stack-wipe/BottomPushStackWipe.tsx +310 -0
  270. package/lib/motion/shotcraft/upstream/demos/transition/card-flip-reveal/CardFlipReveal.tsx +261 -0
  271. package/lib/motion/shotcraft/upstream/demos/transition/card-flock-tumble/CardFlockTumble.tsx +459 -0
  272. package/lib/motion/shotcraft/upstream/demos/transition/circle-match-iris/CircleMatchIris.tsx +294 -0
  273. package/lib/motion/shotcraft/upstream/demos/transition/gradient-transition/GradientTransition.tsx +161 -0
  274. package/lib/motion/shotcraft/upstream/demos/transition/line-carry-transition/LineCarryTransition.tsx +248 -0
  275. package/lib/motion/shotcraft/upstream/demos/transition/mosaic-reframe/MosaicReframe.tsx +359 -0
  276. package/lib/motion/shotcraft/upstream/demos/transition/page-turn-transitions/BarnDoorSplit.tsx +227 -0
  277. package/lib/motion/shotcraft/upstream/demos/transition/print-texture-transitions/InkBleedReveal.tsx +162 -0
  278. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/PortalWipeV2.tsx +248 -0
  279. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/WhipBrakeReal.tsx +186 -0
  280. package/lib/motion/shotcraft/upstream/demos/transition/tear-streak-transitions/GlitchDisplace.tsx +355 -0
  281. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/InvisibleCut.tsx +272 -0
  282. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/LightLeakBurn.tsx +262 -0
  283. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/VersusSlam.tsx +217 -0
  284. package/lib/motion/shotcraft/upstream/demos/transition/transition-travel/LetterformZoom.tsx +285 -0
  285. package/lib/motion/shotcraft/upstream/demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx +205 -0
  286. package/lib/motion/shotcraft/upstream/demos/transition/wipe-transitions/BlindsSlice.tsx +178 -0
  287. package/lib/motion/shotcraft/upstream/demos/typography/blur-slide/BlurSlide.tsx +147 -0
  288. package/lib/motion/shotcraft/upstream/demos/typography/brace-expand/BraceExpand.tsx +143 -0
  289. package/lib/motion/shotcraft/upstream/demos/typography/brand-ink-open/BrandInkOpen.tsx +134 -0
  290. package/lib/motion/shotcraft/upstream/demos/typography/countdown-arc-scatter/CountdownArcScatter.tsx +217 -0
  291. package/lib/motion/shotcraft/upstream/demos/typography/flying-words/FlyingWords.tsx +198 -0
  292. package/lib/motion/shotcraft/upstream/demos/typography/glitch-cycle/GlitchCycle.tsx +221 -0
  293. package/lib/motion/shotcraft/upstream/demos/typography/gradient-word-sweep/GradientWordSweep.tsx +312 -0
  294. package/lib/motion/shotcraft/upstream/demos/typography/lead-word-zoom-assemble/LeadWordZoomAssemble.tsx +261 -0
  295. package/lib/motion/shotcraft/upstream/demos/typography/marker-underline-title/MarkerUnderlineTitle.tsx +121 -0
  296. package/lib/motion/shotcraft/upstream/demos/typography/outline-word-fill/OutlineWordFill.tsx +153 -0
  297. package/lib/motion/shotcraft/upstream/demos/typography/paper-title-card/PaperTitleCard.tsx +179 -0
  298. package/lib/motion/shotcraft/upstream/demos/typography/pill-chip-slot-cycle-handled/PillChipSlotCycleHandled.tsx +140 -0
  299. package/lib/motion/shotcraft/upstream/demos/typography/pill-slot-cycle/PillSlotCycle.tsx +309 -0
  300. package/lib/motion/shotcraft/upstream/demos/typography/text-column-converge/TextColumnConverge.tsx +191 -0
  301. package/lib/motion/shotcraft/upstream/demos/typography/title-demote-to-label/TitleDemoteToLabel.tsx +292 -0
  302. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/LetterformDriftAssembly.tsx +135 -0
  303. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/SplitTextStagger.tsx +124 -0
  304. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/TextOnPath.tsx +255 -0
  305. package/lib/motion/shotcraft/upstream/demos/typography/type-entrance-moves/LetterDropPhysics.tsx +173 -0
  306. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/FontWeightPump.tsx +225 -0
  307. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/KaraokeFillSync.tsx +141 -0
  308. package/lib/motion/shotcraft/upstream/demos/typography/typewriter-moves/TypewriterErrorRetype.tsx +137 -0
  309. package/lib/motion/shotcraft/upstream/demos/typography/vertical-word-roll-blur-cycle/VerticalWordRollBlurCycle.tsx +147 -0
  310. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-filmstrip/WordRelayFilmstrip.tsx +409 -0
  311. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-geometry/WordRelayGeometry.tsx +280 -0
  312. package/lib/motion/shotcraft/upstream/demos/ui-entrance/avatar-bracket-carousel/AvatarBracketCarousel.tsx +271 -0
  313. package/lib/motion/shotcraft/upstream/demos/ui-entrance/bezier-source-converge-merge/BezierSourceConvergeMerge.tsx +385 -0
  314. package/lib/motion/shotcraft/upstream/demos/ui-entrance/card-stack/CardStack.tsx +312 -0
  315. package/lib/motion/shotcraft/upstream/demos/ui-entrance/carousel-3d/Carousel3D.tsx +303 -0
  316. package/lib/motion/shotcraft/upstream/demos/ui-entrance/clipcard-looping/ClipCardLooping.tsx +77 -0
  317. package/lib/motion/shotcraft/upstream/demos/ui-entrance/cloner-depth-echo/ClonerDepthEcho.tsx +311 -0
  318. package/lib/motion/shotcraft/upstream/demos/ui-entrance/deck-deal-flyin/DeckDealFlyin.tsx +307 -0
  319. package/lib/motion/shotcraft/upstream/demos/ui-entrance/doc-park-left-pill-deal/DocParkLeftPillDeal.tsx +349 -0
  320. package/lib/motion/shotcraft/upstream/demos/ui-entrance/document-typewriter-reveal/DocumentTypewriterReveal.tsx +255 -0
  321. package/lib/motion/shotcraft/upstream/demos/ui-entrance/draw-svg-trace/DrawSvgTrace.tsx +244 -0
  322. package/lib/motion/shotcraft/upstream/demos/ui-entrance/element-body-moves/ContactShadowLift.tsx +217 -0
  323. package/lib/motion/shotcraft/upstream/demos/ui-entrance/integration-hub-map/IntegrationHubMap.tsx +652 -0
  324. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-reveal/ListReveal.tsx +153 -0
  325. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-stack-press/ListStackPress.tsx +238 -0
  326. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-forerun/NeonFrameForerun.tsx +324 -0
  327. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx +354 -0
  328. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/PageWaterfallWall.tsx +101 -0
  329. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/VerticalTicker.tsx +129 -0
  330. package/lib/motion/shotcraft/upstream/demos/ui-entrance/product-card-progressive-assemble/ProductCardProgressiveAssemble.tsx +297 -0
  331. package/lib/motion/shotcraft/upstream/demos/ui-entrance/radial-wave/RadialWave.tsx +57 -0
  332. package/lib/motion/shotcraft/upstream/demos/ui-entrance/research-card-stack-scroll/ResearchCardStackScroll.tsx +155 -0
  333. package/lib/motion/shotcraft/upstream/demos/ui-entrance/row-embed/RowEmbed.tsx +175 -0
  334. package/lib/motion/shotcraft/upstream/demos/ui-entrance/value-stagger-gradient/ValueStaggerGradient.tsx +153 -0
  335. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/BentoLightUp.tsx +146 -0
  336. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/WireframeDrawOn.tsx +226 -0
  337. package/lib/motion/shotcraft/upstream/gallery/api/library.json +1 -0
  338. package/lib/motion/shotcraft/upstream/manifest.json +2715 -0
  339. package/lib/motion/shotcraft/upstream/references/aesthetic-rules.md +193 -0
  340. package/lib/motion/shotcraft/upstream/references/final-review.md +121 -0
  341. package/lib/motion/shotcraft/upstream/references/guided-free-creation.md +199 -0
  342. package/lib/motion/shotcraft/upstream/references/jianying-export.md +183 -0
  343. package/lib/motion/shotcraft/upstream/references/music-beat-sync.md +257 -0
  344. package/lib/motion/shotcraft/upstream/references/pipeline.md +382 -0
  345. package/lib/motion/shotcraft/upstream/references/publish-upload-post.md +111 -0
  346. package/lib/motion/shotcraft/upstream/references/sequences/promo-energy-arc.md +50 -0
  347. package/lib/motion/shotcraft/upstream/references/sfx-sourcing.md +95 -0
  348. package/lib/motion/shotcraft/upstream/references/shots/camera/basic-3d-scene.md +41 -0
  349. package/lib/motion/shotcraft/upstream/references/shots/camera/crash-zoom-punch.md +52 -0
  350. package/lib/motion/shotcraft/upstream/references/shots/camera/cursor-flyover.md +39 -0
  351. package/lib/motion/shotcraft/upstream/references/shots/camera/depth-layer-moves.md +39 -0
  352. package/lib/motion/shotcraft/upstream/references/shots/camera/graze-face-tour.md +57 -0
  353. package/lib/motion/shotcraft/upstream/references/shots/camera/overhead-camera-moves.md +51 -0
  354. package/lib/motion/shotcraft/upstream/references/shots/camera/space-camera-moves.md +46 -0
  355. package/lib/motion/shotcraft/upstream/references/shots/camera/steep-tilt-glide.md +52 -0
  356. package/lib/motion/shotcraft/upstream/references/shots/camera/tension-camera-moves.md +43 -0
  357. package/lib/motion/shotcraft/upstream/references/shots/camera/terminal-3d.md +42 -0
  358. package/lib/motion/shotcraft/upstream/references/shots/data/before-after-slider-scrub.md +48 -0
  359. package/lib/motion/shotcraft/upstream/references/shots/data/chart-live-moves.md +52 -0
  360. package/lib/motion/shotcraft/upstream/references/shots/data/gauge-readout-moves.md +45 -0
  361. package/lib/motion/shotcraft/upstream/references/shots/data/scroll-brake-moves.md +46 -0
  362. package/lib/motion/shotcraft/upstream/references/shots/data/timeline-travel.md +44 -0
  363. package/lib/motion/shotcraft/upstream/references/shots/effects/assemble-then-type-flyin.md +63 -0
  364. package/lib/motion/shotcraft/upstream/references/shots/effects/aurora-bloom-bg-flip.md +54 -0
  365. package/lib/motion/shotcraft/upstream/references/shots/effects/brand-frame-snap.md +58 -0
  366. package/lib/motion/shotcraft/upstream/references/shots/effects/fui-hud-moves.md +35 -0
  367. package/lib/motion/shotcraft/upstream/references/shots/effects/glow-flyline-moves.md +53 -0
  368. package/lib/motion/shotcraft/upstream/references/shots/effects/icon-performance-moves.md +42 -0
  369. package/lib/motion/shotcraft/upstream/references/shots/effects/impact-feedback.md +50 -0
  370. package/lib/motion/shotcraft/upstream/references/shots/effects/light-play-moves.md +46 -0
  371. package/lib/motion/shotcraft/upstream/references/shots/effects/radial-ripple-phone-chips.md +56 -0
  372. package/lib/motion/shotcraft/upstream/references/shots/effects/riso-print-hits.md +49 -0
  373. package/lib/motion/shotcraft/upstream/references/shots/effects/scan-bracket-sweep.md +50 -0
  374. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-annotate-focus.md +53 -0
  375. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-assemble-flyin.md +53 -0
  376. package/lib/motion/shotcraft/upstream/references/shots/effects/slam-entrance-moves.md +55 -0
  377. package/lib/motion/shotcraft/upstream/references/shots/effects/spotlight-sweep-moves.md +52 -0
  378. package/lib/motion/shotcraft/upstream/references/shots/interaction/autolayout-gap-dial.md +60 -0
  379. package/lib/motion/shotcraft/upstream/references/shots/interaction/canvas-materialize-moves.md +57 -0
  380. package/lib/motion/shotcraft/upstream/references/shots/interaction/chip-grid-single-select-blackout.md +51 -0
  381. package/lib/motion/shotcraft/upstream/references/shots/interaction/collab-cursor-moves.md +41 -0
  382. package/lib/motion/shotcraft/upstream/references/shots/interaction/glass-pill-dictation-typing.md +53 -0
  383. package/lib/motion/shotcraft/upstream/references/shots/interaction/hashtag-to-pill-materialize.md +60 -0
  384. package/lib/motion/shotcraft/upstream/references/shots/interaction/picker-carousel-feature-cycle.md +55 -0
  385. package/lib/motion/shotcraft/upstream/references/shots/interaction/segmented-thumb-hero.md +57 -0
  386. package/lib/motion/shotcraft/upstream/references/shots/interaction/theme-switch-moves.md +47 -0
  387. package/lib/motion/shotcraft/upstream/references/shots/interaction/type-and-filter.md +37 -0
  388. package/lib/motion/shotcraft/upstream/references/shots/interaction/voice-waveform-live.md +54 -0
  389. package/lib/motion/shotcraft/upstream/references/shots/opening/brand-ink-open.md +36 -0
  390. package/lib/motion/shotcraft/upstream/references/shots/opening/crane-rise-reveal.md +56 -0
  391. package/lib/motion/shotcraft/upstream/references/shots/opening/dataviz-landscape-open.md +56 -0
  392. package/lib/motion/shotcraft/upstream/references/shots/opening/fracture.md +40 -0
  393. package/lib/motion/shotcraft/upstream/references/shots/opening/icon-field-colorize.md +60 -0
  394. package/lib/motion/shotcraft/upstream/references/shots/opening/letterspace-materialize.md +57 -0
  395. package/lib/motion/shotcraft/upstream/references/shots/opening/magician-card-flourish.md +73 -0
  396. package/lib/motion/shotcraft/upstream/references/shots/opening/orbit-ring-title-open.md +87 -0
  397. package/lib/motion/shotcraft/upstream/references/shots/opening/spotlight-hero-card.md +55 -0
  398. package/lib/motion/shotcraft/upstream/references/shots/opening/stroke-segment-build.md +50 -0
  399. package/lib/motion/shotcraft/upstream/references/shots/opening/text-as-mask.md +59 -0
  400. package/lib/motion/shotcraft/upstream/references/shots/outro/grain-dissolve.md +38 -0
  401. package/lib/motion/shotcraft/upstream/references/shots/outro/logo-shrink-wordmark-lockup.md +38 -0
  402. package/lib/motion/shotcraft/upstream/references/shots/outro/neon-triple-marquee.md +59 -0
  403. package/lib/motion/shotcraft/upstream/references/shots/outro/outro-group-photo-launch.md +39 -0
  404. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-strip-away-outro.md +61 -0
  405. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-to-brand-morph.md +52 -0
  406. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-cut-moves.md +50 -0
  407. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-step-list-theme-cycle.md +66 -0
  408. package/lib/motion/shotcraft/upstream/references/shots/rhythm/panel-grid-moves.md +43 -0
  409. package/lib/motion/shotcraft/upstream/references/shots/rhythm/quad-split-parallel-scenes.md +38 -0
  410. package/lib/motion/shotcraft/upstream/references/shots/rhythm/rhythm-interrupt-moves.md +38 -0
  411. package/lib/motion/shotcraft/upstream/references/shots/rhythm/sakuga-timing-shift.md +56 -0
  412. package/lib/motion/shotcraft/upstream/references/shots/rhythm/speed-ramp-freeze.md +44 -0
  413. package/lib/motion/shotcraft/upstream/references/shots/rhythm/trailer-grammar-moves.md +38 -0
  414. package/lib/motion/shotcraft/upstream/references/shots/transition/bottom-push-stack-wipe.md +63 -0
  415. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flip-reveal.md +57 -0
  416. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flock-tumble.md +63 -0
  417. package/lib/motion/shotcraft/upstream/references/shots/transition/circle-match-iris.md +58 -0
  418. package/lib/motion/shotcraft/upstream/references/shots/transition/gradient-transition.md +45 -0
  419. package/lib/motion/shotcraft/upstream/references/shots/transition/line-carry-transition.md +55 -0
  420. package/lib/motion/shotcraft/upstream/references/shots/transition/mosaic-reframe.md +49 -0
  421. package/lib/motion/shotcraft/upstream/references/shots/transition/page-turn-transitions.md +42 -0
  422. package/lib/motion/shotcraft/upstream/references/shots/transition/print-texture-transitions.md +42 -0
  423. package/lib/motion/shotcraft/upstream/references/shots/transition/shot-transitions.md +45 -0
  424. package/lib/motion/shotcraft/upstream/references/shots/transition/tear-streak-transitions.md +48 -0
  425. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-hidden-cut.md +55 -0
  426. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-travel.md +43 -0
  427. package/lib/motion/shotcraft/upstream/references/shots/transition/white-flash-logo-simplify-cut.md +41 -0
  428. package/lib/motion/shotcraft/upstream/references/shots/transition/wipe-transitions.md +42 -0
  429. package/lib/motion/shotcraft/upstream/references/shots/typography/blur-slide.md +59 -0
  430. package/lib/motion/shotcraft/upstream/references/shots/typography/brace-expand.md +55 -0
  431. package/lib/motion/shotcraft/upstream/references/shots/typography/countdown-arc-scatter.md +65 -0
  432. package/lib/motion/shotcraft/upstream/references/shots/typography/document-typewriter-reveal.md +42 -0
  433. package/lib/motion/shotcraft/upstream/references/shots/typography/flying-words.md +64 -0
  434. package/lib/motion/shotcraft/upstream/references/shots/typography/glitch-cycle.md +64 -0
  435. package/lib/motion/shotcraft/upstream/references/shots/typography/gradient-word-sweep.md +54 -0
  436. package/lib/motion/shotcraft/upstream/references/shots/typography/lead-word-zoom-assemble.md +91 -0
  437. package/lib/motion/shotcraft/upstream/references/shots/typography/marker-underline-title.md +51 -0
  438. package/lib/motion/shotcraft/upstream/references/shots/typography/outline-word-fill.md +66 -0
  439. package/lib/motion/shotcraft/upstream/references/shots/typography/paper-title-card.md +38 -0
  440. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-chip-slot-cycle-handled.md +66 -0
  441. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-slot-cycle.md +58 -0
  442. package/lib/motion/shotcraft/upstream/references/shots/typography/text-column-converge.md +61 -0
  443. package/lib/motion/shotcraft/upstream/references/shots/typography/title-demote-to-label.md +64 -0
  444. package/lib/motion/shotcraft/upstream/references/shots/typography/type-assembly-moves.md +45 -0
  445. package/lib/motion/shotcraft/upstream/references/shots/typography/type-entrance-moves.md +41 -0
  446. package/lib/motion/shotcraft/upstream/references/shots/typography/type-rhythm-sync.md +51 -0
  447. package/lib/motion/shotcraft/upstream/references/shots/typography/typewriter-moves.md +42 -0
  448. package/lib/motion/shotcraft/upstream/references/shots/typography/vertical-word-roll-blur-cycle.md +63 -0
  449. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-filmstrip.md +57 -0
  450. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-geometry.md +75 -0
  451. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/avatar-bracket-carousel.md +59 -0
  452. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/bezier-source-converge-merge.md +67 -0
  453. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/card-stack.md +60 -0
  454. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/carousel-3d.md +66 -0
  455. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/cloner-depth-echo.md +40 -0
  456. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/deck-deal-flyin.md +45 -0
  457. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/doc-park-left-pill-deal.md +62 -0
  458. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/draw-svg-trace.md +55 -0
  459. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/element-body-moves.md +37 -0
  460. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/integration-hub-map.md +55 -0
  461. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-reveal.md +50 -0
  462. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-stack-press.md +43 -0
  463. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-forerun.md +55 -0
  464. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-orbit-drop.md +51 -0
  465. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/page-waterfall-wall.md +51 -0
  466. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/product-card-progressive-assemble.md +56 -0
  467. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/radial-wave.md +49 -0
  468. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/research-card-stack-scroll.md +57 -0
  469. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/row-embed.md +36 -0
  470. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/value-stagger-gradient.md +64 -0
  471. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/wall-reveal-moves.md +47 -0
  472. package/lib/motion/shotcraft/upstream/references/sound-design.md +170 -0
  473. package/lib/motion/shotcraft/upstream/references/workbench.md +157 -0
  474. package/lib/motion/shotcraft/upstream/template/TEMPLATE.md +103 -0
  475. package/lib/motion/shotcraft/upstream/template/THEMES.md +44 -0
  476. package/lib/motion/shotcraft/upstream/template/package.json +20 -0
  477. package/lib/motion/shotcraft/upstream/template/remotion.config.ts +6 -0
  478. package/lib/motion/shotcraft/upstream/template/src/Root.tsx +17 -0
  479. package/lib/motion/shotcraft/upstream/template/src/aifl/Caption.tsx +65 -0
  480. package/lib/motion/shotcraft/upstream/template/src/aifl/DigitRoll.tsx +48 -0
  481. package/lib/motion/shotcraft/upstream/template/src/aifl/FlashCut.tsx +24 -0
  482. package/lib/motion/shotcraft/upstream/template/src/aifl/Main.tsx +192 -0
  483. package/lib/motion/shotcraft/upstream/template/src/aifl/PaperTitleCard.tsx +111 -0
  484. package/lib/motion/shotcraft/upstream/template/src/aifl/live/PageCam.tsx +150 -0
  485. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneDetail.tsx +158 -0
  486. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneFlyIn.tsx +468 -0
  487. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOpen.tsx +552 -0
  488. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOutroLive.tsx +411 -0
  489. package/lib/motion/shotcraft/upstream/template/src/aifl/live/ScenePapers.tsx +200 -0
  490. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneWbr.tsx +324 -0
  491. package/lib/motion/shotcraft/upstream/template/src/aifl/live-layout.json +389 -0
  492. package/lib/motion/shotcraft/upstream/template/src/index.ts +4 -0
  493. package/lib/motion/shotcraft/upstream/template/src/themes/ThemedFilm.tsx +7 -0
  494. package/lib/motion/shotcraft/upstream/template/src/themes/manifest.tsx +68 -0
  495. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.json +1 -0
  496. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.ts +24 -0
  497. package/lib/motion/shotcraft/upstream/template/src/themes/palettes.json +74 -0
  498. package/lib/motion/shotcraft/upstream/template/src/themes/visual-theme.tsx +91 -0
  499. package/lib/motion/shotcraft/upstream/template/src/workbench.ts +213 -0
  500. package/lib/motion/shotcraft/upstream/template/tsconfig.json +15 -0
  501. package/lib/motion/spec.js +113 -0
  502. package/lib/motion/style-engine.js +153 -0
  503. package/lib/motion/style-frames.js +268 -0
  504. package/lib/motion/sync.js +214 -0
  505. package/lib/motion/theme.js +121 -0
  506. package/lib/motion/voice.js +417 -0
  507. package/lib/motion-agent-files.js +82 -0
  508. package/lib/motion-agent-protocol.js +66 -0
  509. package/lib/motion-agent-tools.js +196 -0
  510. package/lib/motion-agent.js +171 -0
  511. package/lib/motion-capture.js +92 -0
  512. package/lib/motion-core.js +238 -0
  513. package/lib/motion-film-review.js +71 -0
  514. package/lib/motion-library.js +210 -0
  515. package/lib/motion-planner.js +254 -0
  516. package/lib/motion-project.js +80 -0
  517. package/lib/motion-render-worker.js +145 -0
  518. package/lib/motion-session.js +32 -0
  519. package/lib/motion-source.js +49 -0
  520. package/lib/motion-tasks.js +452 -0
  521. package/lib/motion-vision.js +43 -0
  522. package/lib/mxfile.js +27 -7
  523. package/lib/routing/node-runtime.js +14 -0
  524. package/lib/routing/router.js +211 -0
  525. package/lib/routing/vendor/README.md +96 -0
  526. package/lib/routing/vendor/libavoid-routing.js +753 -0
  527. package/lib/routing/vendor/libavoid.min.js +59 -0
  528. package/lib/shotcard-core.js +39 -0
  529. package/lib/shotcard-reference.js +56 -0
  530. package/lib/style-kernel.js +37 -3
  531. package/lib/task-patches.js +26 -2
  532. package/lib/video-export.js +17 -2
  533. package/package.json +29 -4
@@ -0,0 +1,147 @@
1
+ <div align="center">
2
+
3
+ > **DrawAI 的 vendored 副本**:这份文档保持上游原样。其中 **04-3d-render(3D / CGI 软着陆)没有收录** —— 它的画面是 Blender 离线渲的,插件里没有能出同等质感的等价物,所以下面 `demos/04-3d-render` 那条链接在本仓库里是空的。其余 14 种与上游 commit 一致。
4
+
5
+ # 15 Motion Design Styles
6
+
7
+ **Fifteen styles, one 10-second film each, all made by Claude Opus 5.5 writing code.**<br>
8
+ **15 种 MG 动态设计风格,每种一支 10 秒成片,全部由 Claude Opus 5.5 写代码做出来。**
9
+
10
+ Every film comes with its style notes, its full prompt and its complete source.<br>
11
+ 每支片都附风格说明、完整提示词和全部源码。
12
+
13
+ <a href="https://vincentwei1021.github.io/mg-styles-15/"><img src="docs/readme/cover.webp" width="100%" alt="15 Motion Design Styles: all fifteen films playing side by side"></a>
14
+
15
+ [**▶ Watch all 15 films with sound · 在线观看**](https://vincentwei1021.github.io/mg-styles-15/)
16
+
17
+ **English** | [简体中文](README.zh-CN.md)
18
+
19
+ ![films](https://img.shields.io/badge/films-15-ff8a3d) ![length](https://img.shields.io/badge/length-10%20s%20each-555) ![made with](https://img.shields.io/badge/made%20with-Claude%20Opus%205.5-d97757) [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE) [![GitHub Pages](https://img.shields.io/badge/GitHub%20Pages-live-2ea44f)](https://vincentwei1021.github.io/mg-styles-15/)
20
+
21
+ </div>
22
+
23
+ > **中文用户请看这里:[完整中文说明 README.zh-CN.md](README.zh-CN.md)**<br>
24
+ > English readers: keep reading below.
25
+
26
+ ## What it is
27
+
28
+ Fifteen 10-second motion-design films, one style each, from frame-by-frame cel animation to a 9:16 variety-show edit. Claude Opus 5.5 made every film by writing code from a prompt: the picture, the animation, the music and the sound effects. This repository publishes all of it, so you can watch a style, read how it was made, copy its prompt and make a film of your own.
29
+
30
+ - **No image or video generation.** The picture is code: SVG, Canvas, WebGL and Three.js, with Blender for the 3D film. A few films use CC0 or public-domain photos.
31
+ - **The sound is code too.** Each film's `audio.py` synthesises its music and sound effects; the 15 soundtracks draw on 103 recorded instrument samples.
32
+ - **Everything is published.** The film, the style notes, the full prompt and the complete source, for all 15 styles.
33
+
34
+ ## How a film is made
35
+
36
+ <p align="center"><img src="docs/readme/flow-en.webp" width="100%" alt="How a film is made: one prompt per style, then Claude writes the film as a web page that can draw any moment, headless Chrome renders every frame, audio.py synthesises the music and effects on the same cues, ffmpeg muxes an exact 10-second MP4, and a second AI reviews it with rubric.md for two rounds of revision"></p>
37
+
38
+ Every film is a web page that draws the frame for any time you give it (`window.renderAt(t)`). The renderer captures each frame in headless Chrome, then ffmpeg joins the frames and the soundtrack. The 3D film is the one exception: Blender renders its picture, and a web page adds the type and grain. Each film went through two rounds of review and revision. Final scores from the AI jury run from 7.57 to 8.21 out of 10.
39
+
40
+ ## The 15 styles
41
+
42
+ Click a film to watch it with sound on the page.
43
+
44
+ <table>
45
+ <tr>
46
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#05-cel-boil"><img src="docs/readme/films/05-cel-boil.webp" width="100%" alt="Frame-by-Frame / Line Boil: HAND MADE"></a><br><b>01 · Frame-by-Frame / Line Boil</b><br><sub>HAND MADE</sub><br><sub><a href="prompts/05-cel-boil.md">Prompt</a> · <a href="demos/05-cel-boil">Source</a></sub></td>
47
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#03-isometric"><img src="docs/readme/films/03-isometric.webp" width="100%" alt="Isometric 2.5D: ISOPOLIS — Let the City Grow"></a><br><b>02 · Isometric 2.5D</b><br><sub>ISOPOLIS — Let the City Grow</sub><br><sub><a href="prompts/03-isometric.md">Prompt</a> · <a href="demos/03-isometric">Source</a></sub></td>
48
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#01-flat-vector"><img src="docs/readme/films/01-flat-vector.webp" width="100%" alt="Flat Vector: popwise — One Dot"></a><br><b>03 · Flat Vector</b><br><sub>popwise — One Dot</sub><br><sub><a href="prompts/01-flat-vector.md">Prompt</a> · <a href="demos/01-flat-vector">Source</a></sub></td>
49
+ </tr>
50
+ <tr>
51
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#02-line-art"><img src="docs/readme/films/02-line-art.webp" width="100%" alt="Line Art: ATELIER LINEA — One Line"></a><br><b>04 · Line Art</b><br><sub>ATELIER LINEA — One Line</sub><br><sub><a href="prompts/02-line-art.md">Prompt</a> · <a href="demos/02-line-art">Source</a></sub></td>
52
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#04-3d-render"><img src="docs/readme/films/04-3d-render.webp" width="100%" alt="3D Render: soft. — Soft Landing · C4D / Blender look"></a><br><b>05 · 3D Render</b><br><sub>soft. — Soft Landing · C4D / Blender look</sub><br><sub><a href="prompts/04-3d-render.md">Prompt</a> · <a href="demos/04-3d-render">Source</a></sub></td>
53
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#08-morph"><img src="docs/readme/films/08-morph.webp" width="100%" alt="Shape Morph: morphe. — One Shape, Every Story"></a><br><b>06 · Shape Morph</b><br><sub>morphe. — One Shape, Every Story</sub><br><sub><a href="prompts/08-morph.md">Prompt</a> · <a href="demos/08-morph">Source</a></sub></td>
54
+ </tr>
55
+ <tr>
56
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#19-paperclip"><img src="docs/readme/films/19-paperclip.webp" width="100%" alt="Sticker Explainer: How Many Elements Hide in a Phone?"></a><br><b>07 · Sticker Explainer</b><br><sub>How Many Elements Hide in a Phone?</sub><br><sub><a href="prompts/19-paperclip.md">Prompt</a> · <a href="demos/19-paperclip">Source</a></sub></td>
57
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#22-hud"><img src="docs/readme/films/22-hud.webp" width="100%" alt="Cyberpunk HUD / FUI: KESTREL-9 · Target Acquired"></a><br><b>08 · Cyberpunk HUD / FUI</b><br><sub>KESTREL-9 · Target Acquired</sub><br><sub><a href="prompts/22-hud.md">Prompt</a> · <a href="demos/22-hud">Source</a></sub></td>
58
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#06-collage"><img src="docs/readme/films/06-collage.webp" width="100%" alt="Collage / Cut-out: NOGGIN Quarterly"></a><br><b>09 · Collage / Cut-out</b><br><sub>NOGGIN Quarterly</sub><br><sub><a href="prompts/06-collage.md">Prompt</a> · <a href="demos/06-collage">Source</a></sub></td>
59
+ </tr>
60
+ <tr>
61
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#12-aurora-glass"><img src="docs/readme/films/12-aurora-glass.webp" width="100%" alt="Aurora & Glassmorphism: Aurora — Think in Light"></a><br><b>10 · Aurora &amp; Glassmorphism</b><br><sub>Aurora — Think in Light</sub><br><sub><a href="prompts/12-aurora-glass.md">Prompt</a> · <a href="demos/12-aurora-glass">Source</a></sub></td>
62
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#09-bauhaus"><img src="docs/readme/films/09-bauhaus.webp" width="100%" alt="Geometric Bauhaus: KONSTRUKTION · 20 Beats"></a><br><b>11 · Geometric Bauhaus</b><br><sub>KONSTRUKTION · 20 Beats</sub><br><sub><a href="prompts/09-bauhaus.md">Prompt</a> · <a href="demos/09-bauhaus">Source</a></sub></td>
63
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#10-synthwave"><img src="docs/readme/films/10-synthwave.webp" width="100%" alt="80s Synthwave / VHS: NEON DRIVE — Midnight 1986"></a><br><b>12 · 80s Synthwave / VHS</b><br><sub>NEON DRIVE — Midnight 1986</sub><br><sub><a href="prompts/10-synthwave.md">Prompt</a> · <a href="demos/10-synthwave">Source</a></sub></td>
64
+ </tr>
65
+ <tr>
66
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#20-pixel"><img src="docs/readme/films/20-pixel.webp" width="100%" alt="Pixel Art: PIXEL QUEST"></a><br><b>13 · Pixel Art</b><br><sub>PIXEL QUEST</sub><br><sub><a href="prompts/20-pixel.md">Prompt</a> · <a href="demos/20-pixel">Source</a></sub></td>
67
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#07-liquid"><img src="docs/readme/films/07-liquid.webp" width="100%" alt="Liquid Motion: drop. — It All Starts with a Drop"></a><br><b>14 · Liquid Motion</b><br><sub>drop. — It All Starts with a Drop</sub><br><sub><a href="prompts/07-liquid.md">Prompt</a> · <a href="demos/07-liquid">Source</a></sub></td>
68
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/#18-hanazi"><img src="docs/readme/films/18-hanazi.webp" width="100%" alt="Variety Captions: Miaowu Diary EP.07 · 9:16 vertical"></a><br><b>15 · Variety Captions</b><br><sub>Miaowu Diary EP.07 · 9:16 vertical</sub><br><sub><a href="prompts/18-hanazi.md">Prompt</a> · <a href="demos/18-hanazi">Source</a></sub></td>
69
+ </tr>
70
+ </table>
71
+
72
+ On the page, each style has its own section: the film, what the style is and how this film was made. Below it, one click opens the full prompt or a browser for every source file. The page switches between English and Chinese.
73
+
74
+ [![The showcase page: the Frame-by-Frame film next to its style notes, with the prompt open below](docs/screenshot-en.jpg)](https://vincentwei1021.github.io/mg-styles-15/)
75
+
76
+ ## Make a film from a prompt
77
+
78
+ 1. Open an AI assistant that can write code and run commands (for example Claude Code) in an empty folder. The machine needs Node, Chrome and ffmpeg; the suggested route for the 3D style uses Blender.
79
+ 2. Open any file in `prompts/` and send the whole prompt block.
80
+ 3. To make it your own: only `Creative seed` is a specific story. Replace its story, brand name, copy and colours with yours, or change `Output` to vertical 1080×1920 or another length. Keep `Signature features`: it is what makes the style recognisable at a glance.
81
+ 4. To push it further: once the film is done, have a second AI review it with [rubric.md](rubric.md) and paste the review back for another round. The original films went through make → review → revise twice.
82
+ 5. To write a new style: fill in the four sections of [template.md](template.md) (output spec, technical route, creative seed, signature features) and copy the shared parts as they are.
83
+
84
+ To save effort, you can also point the AI at this repository's `harness/render.mjs` for rendering and `lib/audio` for the soundtrack, instead of building both from scratch.
85
+
86
+ ## Run the source
87
+
88
+ | Needs | For | How |
89
+ |---|---|---|
90
+ | Node.js 22.12 or later | The renderer and the films' npm packages | [nodejs.org](https://nodejs.org), then `npm install` |
91
+ | Google Chrome | Capturing frames headlessly | Found in its default macOS location; elsewhere set `MG_CHROME=<path>` |
92
+ | ffmpeg | Joining picture and sound | `brew install ffmpeg` or `sudo apt install ffmpeg` |
93
+ | Python 3.11 or later | The soundtracks (`audio.py`) and the asset scripts | `pip install -r requirements.txt` |
94
+ | Blender | Only the 3D film | [demos/04-3d-render/README.md](demos/04-3d-render/README.md) |
95
+ | The fonts | Lettering that matches the films | Not in the repository; [assets/fonts/README.md](assets/fonts/README.md) lists them |
96
+
97
+ ```bash
98
+ # from the repository root
99
+ npm install
100
+ pip install -r requirements.txt
101
+ python3 demos/01-flat-vector/audio.py # soundtrack → demos/01-flat-vector/out/audio.wav
102
+ node harness/render.mjs demos/01-flat-vector # render every frame → demos/01-flat-vector/out/video.mp4
103
+ python3 -m http.server 8000 # preview: http://localhost:8000/harness/preview.html?demo=01-flat-vector
104
+ ```
105
+
106
+ - Serve from the repository root: the paths inside the films (`/assets/...`, `/node_modules/...`) are relative to it.
107
+ - The 3D film's picture is a Blender-rendered frame sequence; the steps are in [demos/04-3d-render/README.md](demos/04-3d-render/README.md).
108
+
109
+ ## What is in the repository
110
+
111
+ | Path | Contents |
112
+ |---|---|
113
+ | `index.html`, `site/` | The showcase page: each style's film, description, prompt and a source browser, in English and Chinese |
114
+ | `videos/` | The 15 films and their cover frames. 8 use the original streams as they are; the other 7 were 37–100 Mb/s, too heavy to stream on the web, and were re-encoded to H.264 under 28 Mb/s |
115
+ | `prompts/` | One complete prompt per style, with instructions (the instructions are in Chinese; the prompts are in English, with Chinese style notes) |
116
+ | `demos/<name>/` | Each film's source: the picture code (`index.html` and JS), the soundtrack script `audio.py`, the timing sheet `cues.json`, and the scripts that generated the film's own assets |
117
+ | `harness/render.mjs` | The renderer: captures every frame in headless Chrome, then muxes video and audio with ffmpeg |
118
+ | `harness/preview.html` | Scrub through any film in the browser |
119
+ | `lib/audio/` | mgaudio, the toolkit that synthesises the music and sound effects, plus the 103 instrument samples the 15 soundtracks use |
120
+ | `assets/` | Textures and the HDRI the films share; a list of the fonts (the font files are not in the repository) |
121
+ | `rubric.md`, `template.md` | A review prompt; a template for writing a prompt for a new style |
122
+ | `docs/` | The images in this README: the cover, the diagram, the film previews and the page screenshots |
123
+
124
+ ## Deploy your own copy
125
+
126
+ 1. Fork this repository, or push all of its files (including `.nojekyll`) to the `main` branch of your own repository. The largest file is 38 MB, under GitHub's 100 MB per-file limit, so Git LFS is not needed.
127
+ 2. In the repository, open Settings → Pages → Build and deployment, choose Deploy from a branch, branch `main`, folder `/ (root)`. On a free account Pages works only for public repositories.
128
+ 3. A minute or two later, open `https://<user>.github.io/<repo>/`. The page detects the repository by itself, so "Open on GitHub" jumps to the right file; with a custom domain, put the repository URL in `<meta name="repo">` in `index.html`.
129
+
130
+ The site is about 575 MB, 420 MB of it video. GitHub Pages allows 1 GB per site and a soft limit of 100 GB of traffic a month; videos download only when played.
131
+
132
+ ## Good to know
133
+
134
+ - The font files are not in the repository: their licences differ, and the Chinese fonts are large. [assets/fonts/README.md](assets/fonts/README.md) lists which ones are needed and where they go. Without them the browser falls back to system fonts, and the lettering will differ from the films.
135
+ - The same prompt makes a different film every time. Each original film went through several rounds of iteration; a single run usually does not reach the same finish.
136
+ - The soundtrack scripts are deterministic: rerun in the same environment, they give the same result every time. Rerun with the versions in `requirements.txt`, 4 of them match the films' audio (within the least significant bit) and the other 11 differ in places, probably because of changes in the numerical libraries.
137
+ - When you make your own films, use only assets licensed for commercial use (CC0, OFL and the like). The prompts already ask for this.
138
+
139
+ ## License
140
+
141
+ - The code, prompts, docs and films made for this project are released under the [MIT License](LICENSE).
142
+ - Third-party files keep their own licences. The instrument samples (VCSL), the HDRI, the paper texture, the photos and the HUD film's map data (Natural Earth) are CC0 or public domain. `site/vendor/highlight.min.js` is BSD-3-Clause ([its licence](site/vendor/highlight.LICENSE)). The glyph outlines in `demos/04-3d-render/assets/mesh/` and `demos/08-morph/glyphs.json` come from fonts under the SIL Open Font License and stay under it.
143
+ - The font files are not in the repository and keep their own licences; [assets/fonts/README.md](assets/fonts/README.md) lists them.
144
+
145
+ ## About
146
+
147
+ Made by [Vincentwei1021](https://github.com/Vincentwei1021) with Claude Opus 5.5. The page is at https://vincentwei1021.github.io/mg-styles-15/ and the repository at https://github.com/Vincentwei1021/mg-styles-15. If you build on these prompts or this code, a link back is appreciated.
@@ -0,0 +1,147 @@
1
+ <div align="center">
2
+
3
+ > **DrawAI 的 vendored 副本**:这份文档保持上游原样。其中 **04-3d-render(3D / CGI 软着陆)没有收录** —— 它的画面是 Blender 离线渲的,插件里没有能出同等质感的等价物,所以下面 `demos/04-3d-render` 那条链接在本仓库里是空的。其余 14 种与上游 commit 一致。
4
+
5
+ # 15 种 MG 动态设计风格
6
+
7
+ **15 种 MG 动态设计风格,每种一支 10 秒成片,全部由 Claude Opus 5.5 写代码做出来。**<br>
8
+ **Fifteen styles, one 10-second film each, all made by Claude Opus 5.5 writing code.**
9
+
10
+ 每支片都附风格说明、完整提示词和全部源码。<br>
11
+ Every film comes with its style notes, its full prompt and its complete source.
12
+
13
+ <a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh"><img src="docs/readme/cover.webp" width="100%" alt="15 种 MG 动态设计风格:15 支成片同时播放"></a>
14
+
15
+ [**▶ 在线观看全部 15 支(带声音)· Watch online**](https://vincentwei1021.github.io/mg-styles-15/?lang=zh)
16
+
17
+ [English](README.md) | **简体中文**
18
+
19
+ ![films](https://img.shields.io/badge/films-15-ff8a3d) ![length](https://img.shields.io/badge/length-10%20s%20each-555) ![made with](https://img.shields.io/badge/made%20with-Claude%20Opus%205.5-d97757) [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE) [![GitHub Pages](https://img.shields.io/badge/GitHub%20Pages-live-2ea44f)](https://vincentwei1021.github.io/mg-styles-15/?lang=zh)
20
+
21
+ </div>
22
+
23
+ > **English readers: see [README.md](README.md) for the full English guide.**<br>
24
+ > 中文用户:往下看就是完整的中文说明。
25
+
26
+ ## 这是什么
27
+
28
+ 15 支 10 秒的动态设计短片,每支一种风格,从逐帧手绘到 9:16 竖屏综艺花字。每一支都是 Claude Opus 5.5 按提示词写代码做出来的:画面、动画、配乐和音效都由代码生成。这个仓库把这些全部公开:可以看成片、读这支片怎么做的,也可以复制提示词,拿去做你自己的片子。
29
+
30
+ - **不用生图、生视频模型**:画面就是代码,用的是 SVG、Canvas、WebGL 和 Three.js,3D 那支用 Blender。少数几支用了 CC0 或公有领域的照片。
31
+ - **声音也是代码**:每支片的 `audio.py` 合成自己的配乐和音效,15 支配乐一共用到 103 个真实录制的乐器采样。
32
+ - **全部公开**:15 种风格都有成片、风格说明、完整提示词和全部源码。
33
+
34
+ ## 一支片怎么做出来
35
+
36
+ <p align="center"><img src="docs/readme/flow-zh.webp" width="100%" alt="一支片怎么做出来:每种风格一段提示词;Claude 把片子写成网页,任意时刻都能画出那一帧;无头 Chrome 逐帧渲染;audio.py 在同一组时间点上合成配乐和音效;ffmpeg 合成正好 10 秒的 MP4;另一个 AI 按 rubric.md 评审,修改两轮"></p>
37
+
38
+ 每支片都是一个网页,给它一个时间点,它就画出那一帧(`window.renderAt(t)`)。渲染脚本用无头 Chrome 逐帧截图,再用 ffmpeg 把画面和音轨合在一起。只有 3D 那支例外:画面由 Blender 渲染,网页只负责叠上文字和颗粒。每支片都经过两轮评审和修改,AI 评委的终评在 7.57 到 8.21 分之间(满分 10 分)。
39
+
40
+ ## 15 种风格
41
+
42
+ 点成片可以在网页上带声音观看。
43
+
44
+ <table>
45
+ <tr>
46
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#05-cel-boil"><img src="docs/readme/films/05-cel-boil.webp" width="100%" alt="逐帧手绘 / 线条沸腾: 手作 HAND MADE"></a><br><b>01 · 逐帧手绘 / 线条沸腾</b><br><sub>手作 HAND MADE</sub><br><sub><a href="prompts/05-cel-boil.md">提示词</a> · <a href="demos/05-cel-boil">源码</a></sub></td>
47
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#03-isometric"><img src="docs/readme/films/03-isometric.webp" width="100%" alt="等轴 2.5D: ISOPOLIS「让城市自己生长」"></a><br><b>02 · 等轴 2.5D</b><br><sub>ISOPOLIS「让城市自己生长」</sub><br><sub><a href="prompts/03-isometric.md">提示词</a> · <a href="demos/03-isometric">源码</a></sub></td>
48
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#01-flat-vector"><img src="docs/readme/films/01-flat-vector.webp" width="100%" alt="扁平矢量动画: popwise「One Dot」"></a><br><b>03 · 扁平矢量动画</b><br><sub>popwise「One Dot」</sub><br><sub><a href="prompts/01-flat-vector.md">提示词</a> · <a href="demos/01-flat-vector">源码</a></sub></td>
49
+ </tr>
50
+ <tr>
51
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#02-line-art"><img src="docs/readme/films/02-line-art.webp" width="100%" alt="线条动画: ATELIER LINEA「一笔画」"></a><br><b>04 · 线条动画</b><br><sub>ATELIER LINEA「一笔画」</sub><br><sub><a href="prompts/02-line-art.md">提示词</a> · <a href="demos/02-line-art">源码</a></sub></td>
52
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#04-3d-render"><img src="docs/readme/films/04-3d-render.webp" width="100%" alt="3D 渲染系: soft.「柔软着陆」 · C4D/Blender 质感"></a><br><b>05 · 3D 渲染系</b><br><sub>soft.「柔软着陆」 · C4D/Blender 质感</sub><br><sub><a href="prompts/04-3d-render.md">提示词</a> · <a href="demos/04-3d-render">源码</a></sub></td>
53
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#08-morph"><img src="docs/readme/films/08-morph.webp" width="100%" alt="形变动画: morphe.「一形万象」"></a><br><b>06 · 形变动画</b><br><sub>morphe.「一形万象」</sub><br><sub><a href="prompts/08-morph.md">提示词</a> · <a href="demos/08-morph">源码</a></sub></td>
54
+ </tr>
55
+ <tr>
56
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#19-paperclip"><img src="docs/readme/films/19-paperclip.webp" width="100%" alt="粗描边贴纸人科普 MG: 一部手机里,藏着多少种元素?"></a><br><b>07 · 粗描边贴纸人科普 MG</b><br><sub>一部手机里,藏着多少种元素?</sub><br><sub><a href="prompts/19-paperclip.md">提示词</a> · <a href="demos/19-paperclip">源码</a></sub></td>
57
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#22-hud"><img src="docs/readme/films/22-hud.webp" width="100%" alt="赛博朋克 HUD / FUI: 隼眼-9 · 目标锁定"></a><br><b>08 · 赛博朋克 HUD / FUI</b><br><sub>隼眼-9 · 目标锁定</sub><br><sub><a href="prompts/22-hud.md">提示词</a> · <a href="demos/22-hud">源码</a></sub></td>
58
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#06-collage"><img src="docs/readme/films/06-collage.webp" width="100%" alt="拼贴剪贴: NOGGIN 脑洞季刊"></a><br><b>09 · 拼贴剪贴</b><br><sub>NOGGIN 脑洞季刊</sub><br><sub><a href="prompts/06-collage.md">提示词</a> · <a href="demos/06-collage">源码</a></sub></td>
59
+ </tr>
60
+ <tr>
61
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#12-aurora-glass"><img src="docs/readme/films/12-aurora-glass.webp" width="100%" alt="弥散渐变 / 玻璃拟态: Aurora「思考,自有光」"></a><br><b>10 · 弥散渐变 / 玻璃拟态</b><br><sub>Aurora「思考,自有光」</sub><br><sub><a href="prompts/12-aurora-glass.md">提示词</a> · <a href="demos/12-aurora-glass">源码</a></sub></td>
62
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#09-bauhaus"><img src="docs/readme/films/09-bauhaus.webp" width="100%" alt="几何构成 / 包豪斯: 二十拍构成 KONSTRUKTION"></a><br><b>11 · 几何构成 / 包豪斯</b><br><sub>二十拍构成 KONSTRUKTION</sub><br><sub><a href="prompts/09-bauhaus.md">提示词</a> · <a href="demos/09-bauhaus">源码</a></sub></td>
63
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#10-synthwave"><img src="docs/readme/films/10-synthwave.webp" width="100%" alt="复古 80s Synthwave / VHS: NEON DRIVE「霓虹夜驰 1986」"></a><br><b>12 · 复古 80s Synthwave / VHS</b><br><sub>NEON DRIVE「霓虹夜驰 1986」</sub><br><sub><a href="prompts/10-synthwave.md">提示词</a> · <a href="demos/10-synthwave">源码</a></sub></td>
64
+ </tr>
65
+ <tr>
66
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#20-pixel"><img src="docs/readme/films/20-pixel.webp" width="100%" alt="像素风: PIXEL QUEST 像素冒险"></a><br><b>13 · 像素风</b><br><sub>PIXEL QUEST 像素冒险</sub><br><sub><a href="prompts/20-pixel.md">提示词</a> · <a href="demos/20-pixel">源码</a></sub></td>
67
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#07-liquid"><img src="docs/readme/films/07-liquid.webp" width="100%" alt="液态流动: drop.「万物始于一滴」"></a><br><b>14 · 液态流动</b><br><sub>drop.「万物始于一滴」</sub><br><sub><a href="prompts/07-liquid.md">提示词</a> · <a href="demos/07-liquid">源码</a></sub></td>
68
+ <td align="center" valign="top" width="33%"><a href="https://vincentwei1021.github.io/mg-styles-15/?lang=zh#18-hanazi"><img src="docs/readme/films/18-hanazi.webp" width="100%" alt="综艺花字: 喵呜日记 EP.07 · 9:16 竖屏"></a><br><b>15 · 综艺花字</b><br><sub>喵呜日记 EP.07 · 9:16 竖屏</sub><br><sub><a href="prompts/18-hanazi.md">提示词</a> · <a href="demos/18-hanazi">源码</a></sub></td>
69
+ </tr>
70
+ </table>
71
+
72
+ 在网页上,每种风格一节:成片、风格说明、这支片怎么做的;下面点一下就能展开完整提示词和全部源码。页面可以在中英文之间切换。
73
+
74
+ [![展示页:逐帧手绘的成片和风格说明,下面展开的是提示词](docs/screenshot-zh.jpg)](https://vincentwei1021.github.io/mg-styles-15/?lang=zh)
75
+
76
+ ## 用提示词做一支
77
+
78
+ 1. 在一个空文件夹里打开能写代码、能执行命令的 AI 助手(例如 Claude Code)。本机需要 Node、Chrome 和 ffmpeg,3D 那种建议路线要用 Blender。
79
+ 2. 打开 `prompts/` 里任意一份,把「提示词」那段整段发给它。
80
+ 3. 想换成自己的内容:每份提示词里只有 `Creative seed` 是具体故事,把里面的故事、品牌名、文案、配色换成你的;也可以把 `Output` 改成竖屏 1080×1920 或改时长。`Signature features` 那段别删,它决定这种风格能不能被一眼认出来。
81
+ 4. 想做得更好:成片出来后,另开一个 AI 用 [rubric.md](rubric.md) 评审,把评审意见贴回去改一轮。原片就是「制作 → 评审 → 修改」改了两轮。
82
+ 5. 写一种新风格:照 [template.md](template.md) 填四段(输出规格、技术路线、创意种子、风格特征),其余通用部分照抄。
83
+
84
+ 想省事的话,可以让 AI 直接用这个仓库里的 `harness/render.mjs` 渲染、用 `lib/audio` 做配乐,不用从零搭。
85
+
86
+ ## 跑源码
87
+
88
+ | 需要 | 用来 | 怎么装 |
89
+ |---|---|---|
90
+ | Node.js 22.12 或更新 | 渲染脚本和片子用到的 npm 包 | [nodejs.org](https://nodejs.org),然后 `npm install` |
91
+ | Google Chrome | 无头逐帧截图 | macOS 默认位置会自动找到;其他系统用 `MG_CHROME=<路径>` 指定 |
92
+ | ffmpeg | 合成画面和音轨 | `brew install ffmpeg` 或 `sudo apt install ffmpeg` |
93
+ | Python 3.11 或更新 | 配乐脚本(`audio.py`)和生成素材的脚本 | `pip install -r requirements.txt` |
94
+ | Blender | 只有 3D 那支要用 | [demos/04-3d-render/README.md](demos/04-3d-render/README.md) |
95
+ | 字体 | 让字形和成片一致 | 不在仓库里,清单见 [assets/fonts/README.md](assets/fonts/README.md) |
96
+
97
+ ```bash
98
+ # 在仓库根目录
99
+ npm install
100
+ pip install -r requirements.txt
101
+ python3 demos/01-flat-vector/audio.py # 合成配乐 → demos/01-flat-vector/out/audio.wav
102
+ node harness/render.mjs demos/01-flat-vector # 逐帧渲染 → demos/01-flat-vector/out/video.mp4
103
+ python3 -m http.server 8000 # 预览:http://localhost:8000/harness/preview.html?demo=01-flat-vector
104
+ ```
105
+
106
+ - 页面要从仓库根目录起服务,片子里的路径(`/assets/...`、`/node_modules/...`)都相对根目录。
107
+ - 3D 那支的画面是 Blender 渲染的序列帧,步骤见 [demos/04-3d-render/README.md](demos/04-3d-render/README.md)。
108
+
109
+ ## 仓库里有什么
110
+
111
+ | 路径 | 内容 |
112
+ |---|---|
113
+ | `index.html`、`site/` | 展示页:每种风格的成片、风格说明、提示词和源码浏览,中英文可切换 |
114
+ | `videos/` | 15 支成片和封面帧。8 支直接用原片码流;另外 7 支原片码率 37–100 Mb/s,网页播放太吃带宽,重新压成了 28 Mb/s 以内的 H.264 |
115
+ | `prompts/` | 每种风格一份完整提示词,附用法 |
116
+ | `demos/<名字>/` | 每支片的源码:画面代码(`index.html` 和 js)、配乐脚本 `audio.py`、时间点 `cues.json`,以及生成片中素材的脚本 |
117
+ | `harness/render.mjs` | 渲染脚本:无头 Chrome 逐帧截图,ffmpeg 合成视频和音轨 |
118
+ | `harness/preview.html` | 在浏览器里拖时间轴看任意一帧 |
119
+ | `lib/audio/` | 配乐和音效的合成工具包 mgaudio,加上 15 支配乐用到的 103 个乐器采样 |
120
+ | `assets/` | 片子共用的纹理和 HDRI;字体清单(字体文件不在仓库里) |
121
+ | `rubric.md`、`template.md` | 评审用的提示词;写一种新风格的模板 |
122
+ | `docs/` | README 里的图:封面、流程图、成片预览和页面截图 |
123
+
124
+ ## 部署自己的一份
125
+
126
+ 1. Fork 这个仓库,或者把全部文件(包括 `.nojekyll`)推到你自己的仓库的 `main` 分支。最大的单个文件 38 MB,在 GitHub 100 MB 的单文件上限以内,不需要 Git LFS。
127
+ 2. 仓库 Settings → Pages → Build and deployment,Source 选 Deploy from a branch,分支 `main`,目录 `/ (root)`。免费账号只能给公开仓库开 Pages。
128
+ 3. 一两分钟后打开 `https://<用户名>.github.io/<仓库名>/`。页面会自己识别仓库地址,「在 GitHub 查看」按钮直接跳到对应文件;用自定义域名时,在 `index.html` 的 `<meta name="repo">` 里填上仓库地址。
129
+
130
+ 整个站点约 575 MB,其中视频 420 MB。GitHub Pages 的站点上限是 1 GB,每月流量软上限 100 GB;视频只有点播放才会下载。
131
+
132
+ ## 需要知道的
133
+
134
+ - 字体文件没有放进仓库(授权各不相同,中文字体也很大)。需要哪些、放在哪里,见 [assets/fonts/README.md](assets/fonts/README.md)。缺字体时浏览器会用系统字体代替,画面里的字形会和成片不一样。
135
+ - 同一份提示词每次做出来的片子都不一样。原片每支都经过多轮迭代,一次运行通常达不到原片的完成度。
136
+ - 配乐脚本是确定性的:同一环境下重跑,结果每次相同。用 `requirements.txt` 里的版本重跑,有 4 支和成片音轨一致(误差在最低有效位以内),其余 11 支有局部差异,原因可能是数值库版本的变化。
137
+ - 做自己的片子时,字体、图片等素材请只用允许商用的授权(CC0、OFL 等),提示词里已经这样要求。
138
+
139
+ ## 许可
140
+
141
+ - 这个项目自己做的代码、提示词、文档和成片按 [MIT 许可](LICENSE) 发布。
142
+ - 第三方文件保留各自的许可:乐器采样(VCSL)、HDRI、纸张纹理、片中的照片,以及 HUD 那支的地图数据(Natural Earth),都是 CC0 或公有领域;`site/vendor/highlight.min.js` 是 BSD-3-Clause([许可文本](site/vendor/highlight.LICENSE));`demos/04-3d-render/assets/mesh/` 和 `demos/08-morph/glyphs.json` 里的字形轮廓取自 SIL OFL 许可的字体,仍按 OFL。
143
+ - 字体文件不在仓库里,各有各的许可,清单见 [assets/fonts/README.md](assets/fonts/README.md)。
144
+
145
+ ## 关于
146
+
147
+ 由 [Vincentwei1021](https://github.com/Vincentwei1021) 和 Claude Opus 5.5 一起完成。网页在 https://vincentwei1021.github.io/mg-styles-15/?lang=zh ,仓库在 https://github.com/Vincentwei1021/mg-styles-15 。如果你在这些提示词或代码的基础上做东西,欢迎附上这里的链接。
@@ -0,0 +1 @@
1
+ {"fps": 30, "bpm": 120, "key": "F", "mode": "major", "build": 4.0, "drop": 6.0, "outro": 8.0, "frames": {"impact1": 15, "impact2": 24, "antic": 27, "launch": 31, "sunLand": 40, "rays": 41, "farRise": 38, "bldStart": 44, "bldStagger": 3, "bldCount": 9, "clouds": 50, "birds": 56, "trees": 62, "winStart": 64, "winEnd": 82, "heroWin": 84, "camAntic": 86, "push": 90, "glass": 105, "arrive": 112, "blink": 114, "ping": 120, "reactAntic": 126, "headSnap": 129, "exclaim": 135, "bubbleAntic": 144, "wipe": 150, "wipe2": 154, "wipe3": 158, "coreDot": 165, "burst1": 180, "burst2": 195, "burst3": 210, "burst4": 225, "collapseAntic": 233, "merge": 240, "logoWipe": 240, "letters": 243, "letterStagger": 1, "dotLand2": 255, "tagCN": 259, "tagEN": 266, "beatBob1": 270, "beatBob2": 285, "slam": 164, "dotRise": 247, "dotApex": 250, "dotDrop": 251, "cnFlip": 276, "coreHit": 171, "matchStart": 237, "matchEnd": 245}}