@amg555/frameforge-mcp 2.7.3 → 2.7.7

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 (565) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/AGENTS.md +33 -0
  3. package/CHANGELOG.md +49 -0
  4. package/CLAUDE.md +17 -6
  5. package/GEMINI.md +63 -0
  6. package/README.md +216 -426
  7. package/START_HERE.md +4 -2
  8. package/package.json +5 -3
  9. package/plugins/ai-video-editor/README.md +32 -0
  10. package/plugins/ai-video-editor/SKILL.md +152 -0
  11. package/plugins/ai-video-editor/assets/fonts/fonts.css +2409 -0
  12. package/plugins/ai-video-editor/assets/fonts/ttf/anton-400.ttf +0 -0
  13. package/plugins/ai-video-editor/assets/fonts/ttf/archivo-800.ttf +0 -0
  14. package/plugins/ai-video-editor/assets/fonts/ttf/cabin-sketch-700.ttf +0 -0
  15. package/plugins/ai-video-editor/assets/fonts/ttf/dm-sans-700.ttf +0 -0
  16. package/plugins/ai-video-editor/assets/fonts/ttf/fraunces-600.ttf +0 -0
  17. package/plugins/ai-video-editor/assets/fonts/ttf/fraunces-700.ttf +0 -0
  18. package/plugins/ai-video-editor/assets/fonts/ttf/fredoka-700.ttf +0 -0
  19. package/plugins/ai-video-editor/assets/fonts/ttf/inter-700.ttf +0 -0
  20. package/plugins/ai-video-editor/assets/fonts/ttf/inter-800.ttf +0 -0
  21. package/plugins/ai-video-editor/assets/fonts/ttf/inter-tight-800.ttf +0 -0
  22. package/plugins/ai-video-editor/assets/fonts/ttf/kalam-700.ttf +0 -0
  23. package/plugins/ai-video-editor/assets/fonts/ttf/noto-sans-devanagari-700.ttf +0 -0
  24. package/plugins/ai-video-editor/assets/fonts/web/noto-sans-devanagari-devanagari-400-normal.woff2 +0 -0
  25. package/plugins/ai-video-editor/assets/fonts/web/noto-sans-devanagari-devanagari-500-normal.woff2 +0 -0
  26. package/plugins/ai-video-editor/assets/fonts/web/noto-sans-devanagari-devanagari-600-normal.woff2 +0 -0
  27. package/plugins/ai-video-editor/assets/fonts/web/noto-sans-devanagari-devanagari-700-normal.woff2 +0 -0
  28. package/plugins/ai-video-editor/assets/fonts/web/noto-sans-devanagari-devanagari-800-normal.woff2 +0 -0
  29. package/plugins/ai-video-editor/engine/hidpi.js +117 -0
  30. package/plugins/ai-video-editor/engine/page.html +43 -0
  31. package/plugins/ai-video-editor/engine/player.js +145 -0
  32. package/plugins/ai-video-editor/references/example-story-warm-canvas.js +95 -0
  33. package/plugins/ai-video-editor/references/story-guide.md +112 -0
  34. package/plugins/ai-video-editor/requirements.txt +4 -0
  35. package/plugins/ai-video-editor/styles/chalk-talk/base.js +490 -0
  36. package/plugins/ai-video-editor/styles/chalk-talk/style.json +14 -0
  37. package/plugins/ai-video-editor/styles/chalk-talk/style.md +41 -0
  38. package/plugins/ai-video-editor/styles/clean-tech/base.js +447 -0
  39. package/plugins/ai-video-editor/styles/clean-tech/style.json +15 -0
  40. package/plugins/ai-video-editor/styles/clean-tech/style.md +38 -0
  41. package/plugins/ai-video-editor/styles/creator-motion-graphics/base.js +698 -0
  42. package/plugins/ai-video-editor/styles/creator-motion-graphics/style.json +16 -0
  43. package/plugins/ai-video-editor/styles/creator-motion-graphics/style.md +39 -0
  44. package/plugins/ai-video-editor/styles/data-story/base.js +432 -0
  45. package/plugins/ai-video-editor/styles/data-story/style.json +14 -0
  46. package/plugins/ai-video-editor/styles/data-story/style.md +38 -0
  47. package/plugins/ai-video-editor/styles/index.json +103 -0
  48. package/plugins/ai-video-editor/styles/pop-info/base.js +570 -0
  49. package/plugins/ai-video-editor/styles/pop-info/style.json +13 -0
  50. package/plugins/ai-video-editor/styles/pop-info/style.md +37 -0
  51. package/plugins/ai-video-editor/styles/software-walkthrough/base.js +544 -0
  52. package/plugins/ai-video-editor/styles/software-walkthrough/style.json +15 -0
  53. package/plugins/ai-video-editor/styles/software-walkthrough/style.md +38 -0
  54. package/plugins/ai-video-editor/styles/warm-canvas/base.js +610 -0
  55. package/plugins/ai-video-editor/styles/warm-canvas/style.json +14 -0
  56. package/plugins/ai-video-editor/styles/warm-canvas/style.md +37 -0
  57. package/plugins/aiinsight-shorts/CHANGELOG.md +6 -0
  58. package/plugins/aiinsight-shorts/README.md +43 -0
  59. package/plugins/aiinsight-shorts/SKILL.md +138 -0
  60. package/plugins/aiinsight-shorts/styles/deep-dive/STYLE.md +58 -0
  61. package/plugins/aiinsight-shorts/styles/deep-dive/example/data/cues.json +140 -0
  62. package/plugins/aiinsight-shorts/styles/deep-dive/example/data/lines.json +67 -0
  63. package/plugins/aiinsight-shorts/styles/deep-dive/example/data/words.json +614 -0
  64. package/plugins/aiinsight-shorts/styles/deep-dive/example/data/words.txt +102 -0
  65. package/plugins/aiinsight-shorts/styles/deep-dive/example/fonts/Inter-Black.otf +0 -0
  66. package/plugins/aiinsight-shorts/styles/deep-dive/example/fonts/Inter-ExtraBold.otf +0 -0
  67. package/plugins/aiinsight-shorts/styles/deep-dive/example/index.html +17 -0
  68. package/plugins/aiinsight-shorts/styles/deep-dive/example/script.json +27 -0
  69. package/plugins/aiinsight-shorts/styles/deep-dive/example/sheet.html +11 -0
  70. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/core/board.js +62 -0
  71. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/core/captions.js +68 -0
  72. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/core/engine.js +65 -0
  73. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/core/human.js +128 -0
  74. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/core/lib.js +44 -0
  75. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/core/look2d.js +33 -0
  76. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/core/sdf.js +79 -0
  77. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/core/sets.js +107 -0
  78. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/core/timing.js +23 -0
  79. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/main.js +56 -0
  80. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/sheet.js +79 -0
  81. package/plugins/aiinsight-shorts/styles/deep-dive/example/src/shots.js +136 -0
  82. package/plugins/aiinsight-shorts/styles/deep-dive/example/tools/capture.mjs +122 -0
  83. package/plugins/aiinsight-shorts/styles/deep-dive/example/tools/mix.py +172 -0
  84. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/LICENSE-three.txt +21 -0
  85. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/environments/RoomEnvironment.js +144 -0
  86. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/postprocessing/BokehPass.js +141 -0
  87. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/postprocessing/EffectComposer.js +231 -0
  88. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/postprocessing/MaskPass.js +104 -0
  89. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/postprocessing/OutputPass.js +97 -0
  90. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/postprocessing/Pass.js +95 -0
  91. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/postprocessing/RenderPass.js +99 -0
  92. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/postprocessing/ShaderPass.js +77 -0
  93. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/postprocessing/UnrealBloomPass.js +415 -0
  94. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/shaders/BokehShader.js +145 -0
  95. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/shaders/CopyShader.js +45 -0
  96. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/shaders/LuminosityHighPassShader.js +64 -0
  97. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/addons/shaders/OutputShader.js +85 -0
  98. package/plugins/aiinsight-shorts/styles/deep-dive/example/vendor/three.module.js +6 -0
  99. package/plugins/aiinsight-shorts/styles/deep-dive/style-sheet.png +0 -0
  100. package/plugins/aiinsight-shorts/styles/inside-out/STYLE.md +97 -0
  101. package/plugins/aiinsight-shorts/styles/inside-out/example/data/cues.json +178 -0
  102. package/plugins/aiinsight-shorts/styles/inside-out/example/data/lines.json +73 -0
  103. package/plugins/aiinsight-shorts/styles/inside-out/example/data/words.json +662 -0
  104. package/plugins/aiinsight-shorts/styles/inside-out/example/fonts/Inter-Black.otf +0 -0
  105. package/plugins/aiinsight-shorts/styles/inside-out/example/index.html +17 -0
  106. package/plugins/aiinsight-shorts/styles/inside-out/example/script.json +26 -0
  107. package/plugins/aiinsight-shorts/styles/inside-out/example/src/core/captions.js +68 -0
  108. package/plugins/aiinsight-shorts/styles/inside-out/example/src/core/kit.js +345 -0
  109. package/plugins/aiinsight-shorts/styles/inside-out/example/src/core/lib.js +44 -0
  110. package/plugins/aiinsight-shorts/styles/inside-out/example/src/core/timing.js +23 -0
  111. package/plugins/aiinsight-shorts/styles/inside-out/example/src/main.js +62 -0
  112. package/plugins/aiinsight-shorts/styles/inside-out/example/src/shots.js +195 -0
  113. package/plugins/aiinsight-shorts/styles/inside-out/example/tools/capture.mjs +122 -0
  114. package/plugins/aiinsight-shorts/styles/inside-out/example/tools/mix.py +172 -0
  115. package/plugins/aiinsight-shorts/styles/inside-out/style-sheet.png +0 -0
  116. package/plugins/aiinsight-shorts/styles/night-file/STYLE.md +36 -0
  117. package/plugins/aiinsight-shorts/styles/night-file/example/data/cues.json +146 -0
  118. package/plugins/aiinsight-shorts/styles/night-file/example/data/lines.json +73 -0
  119. package/plugins/aiinsight-shorts/styles/night-file/example/data/words.json +572 -0
  120. package/plugins/aiinsight-shorts/styles/night-file/example/data/words.txt +95 -0
  121. package/plugins/aiinsight-shorts/styles/night-file/example/fonts/FreeMonoBold.ttf +0 -0
  122. package/plugins/aiinsight-shorts/styles/night-file/example/fonts/Inter-Black.otf +0 -0
  123. package/plugins/aiinsight-shorts/styles/night-file/example/index.html +18 -0
  124. package/plugins/aiinsight-shorts/styles/night-file/example/script.json +26 -0
  125. package/plugins/aiinsight-shorts/styles/night-file/example/sheet.html +13 -0
  126. package/plugins/aiinsight-shorts/styles/night-file/example/src/core/board.js +62 -0
  127. package/plugins/aiinsight-shorts/styles/night-file/example/src/core/captions.js +49 -0
  128. package/plugins/aiinsight-shorts/styles/night-file/example/src/core/engine.js +65 -0
  129. package/plugins/aiinsight-shorts/styles/night-file/example/src/core/human.js +128 -0
  130. package/plugins/aiinsight-shorts/styles/night-file/example/src/core/kit.js +151 -0
  131. package/plugins/aiinsight-shorts/styles/night-file/example/src/core/lib.js +44 -0
  132. package/plugins/aiinsight-shorts/styles/night-file/example/src/core/sdf.js +79 -0
  133. package/plugins/aiinsight-shorts/styles/night-file/example/src/core/sets3d.js +106 -0
  134. package/plugins/aiinsight-shorts/styles/night-file/example/src/core/timing.js +23 -0
  135. package/plugins/aiinsight-shorts/styles/night-file/example/src/main.js +56 -0
  136. package/plugins/aiinsight-shorts/styles/night-file/example/src/sheet.js +86 -0
  137. package/plugins/aiinsight-shorts/styles/night-file/example/src/shots.js +130 -0
  138. package/plugins/aiinsight-shorts/styles/night-file/example/tools/capture.mjs +122 -0
  139. package/plugins/aiinsight-shorts/styles/night-file/example/tools/mix.py +172 -0
  140. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/LICENSE-three.txt +21 -0
  141. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/environments/RoomEnvironment.js +144 -0
  142. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/postprocessing/BokehPass.js +141 -0
  143. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/postprocessing/EffectComposer.js +231 -0
  144. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/postprocessing/MaskPass.js +104 -0
  145. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/postprocessing/OutputPass.js +97 -0
  146. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/postprocessing/Pass.js +95 -0
  147. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/postprocessing/RenderPass.js +99 -0
  148. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/postprocessing/ShaderPass.js +77 -0
  149. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/postprocessing/UnrealBloomPass.js +415 -0
  150. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/shaders/BokehShader.js +145 -0
  151. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/shaders/CopyShader.js +45 -0
  152. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/shaders/LuminosityHighPassShader.js +64 -0
  153. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/addons/shaders/OutputShader.js +85 -0
  154. package/plugins/aiinsight-shorts/styles/night-file/example/vendor/three.module.js +6 -0
  155. package/plugins/aiinsight-shorts/styles/night-file/style-sheet.png +0 -0
  156. package/plugins/aiinsight-shorts/styles/paper-atlas/STYLE.md +30 -0
  157. package/plugins/aiinsight-shorts/styles/paper-atlas/example/data/cues.json +167 -0
  158. package/plugins/aiinsight-shorts/styles/paper-atlas/example/data/lines.json +67 -0
  159. package/plugins/aiinsight-shorts/styles/paper-atlas/example/data/words.json +614 -0
  160. package/plugins/aiinsight-shorts/styles/paper-atlas/example/data/words.txt +102 -0
  161. package/plugins/aiinsight-shorts/styles/paper-atlas/example/fonts/Caladea-Bold.ttf +0 -0
  162. package/plugins/aiinsight-shorts/styles/paper-atlas/example/fonts/Inter-Black.otf +0 -0
  163. package/plugins/aiinsight-shorts/styles/paper-atlas/example/index.html +15 -0
  164. package/plugins/aiinsight-shorts/styles/paper-atlas/example/script.json +26 -0
  165. package/plugins/aiinsight-shorts/styles/paper-atlas/example/sheet.html +12 -0
  166. package/plugins/aiinsight-shorts/styles/paper-atlas/example/src/core/board.js +62 -0
  167. package/plugins/aiinsight-shorts/styles/paper-atlas/example/src/core/captions.js +47 -0
  168. package/plugins/aiinsight-shorts/styles/paper-atlas/example/src/core/kit.js +152 -0
  169. package/plugins/aiinsight-shorts/styles/paper-atlas/example/src/core/lib.js +44 -0
  170. package/plugins/aiinsight-shorts/styles/paper-atlas/example/src/core/timing.js +23 -0
  171. package/plugins/aiinsight-shorts/styles/paper-atlas/example/src/main.js +62 -0
  172. package/plugins/aiinsight-shorts/styles/paper-atlas/example/src/sheet.js +61 -0
  173. package/plugins/aiinsight-shorts/styles/paper-atlas/example/src/shots.js +139 -0
  174. package/plugins/aiinsight-shorts/styles/paper-atlas/example/tools/capture.mjs +122 -0
  175. package/plugins/aiinsight-shorts/styles/paper-atlas/example/tools/mix.py +172 -0
  176. package/plugins/aiinsight-shorts/styles/paper-atlas/style-sheet.png +0 -0
  177. package/plugins/aiinsight-shorts/styles/stick-story/STYLE.md +32 -0
  178. package/plugins/aiinsight-shorts/styles/stick-story/example/data/cues.json +182 -0
  179. package/plugins/aiinsight-shorts/styles/stick-story/example/data/lines.json +79 -0
  180. package/plugins/aiinsight-shorts/styles/stick-story/example/data/words.json +662 -0
  181. package/plugins/aiinsight-shorts/styles/stick-story/example/data/words.txt +110 -0
  182. package/plugins/aiinsight-shorts/styles/stick-story/example/fonts/Inter-Black.otf +0 -0
  183. package/plugins/aiinsight-shorts/styles/stick-story/example/fonts/Inter-ExtraBold.otf +0 -0
  184. package/plugins/aiinsight-shorts/styles/stick-story/example/index.html +13 -0
  185. package/plugins/aiinsight-shorts/styles/stick-story/example/script.json +27 -0
  186. package/plugins/aiinsight-shorts/styles/stick-story/example/sheet.html +10 -0
  187. package/plugins/aiinsight-shorts/styles/stick-story/example/src/core/board.js +62 -0
  188. package/plugins/aiinsight-shorts/styles/stick-story/example/src/core/captions.js +47 -0
  189. package/plugins/aiinsight-shorts/styles/stick-story/example/src/core/kit.js +166 -0
  190. package/plugins/aiinsight-shorts/styles/stick-story/example/src/core/lib.js +44 -0
  191. package/plugins/aiinsight-shorts/styles/stick-story/example/src/core/timing.js +23 -0
  192. package/plugins/aiinsight-shorts/styles/stick-story/example/src/main.js +62 -0
  193. package/plugins/aiinsight-shorts/styles/stick-story/example/src/sheet.js +64 -0
  194. package/plugins/aiinsight-shorts/styles/stick-story/example/src/shots.js +148 -0
  195. package/plugins/aiinsight-shorts/styles/stick-story/example/tools/capture.mjs +122 -0
  196. package/plugins/aiinsight-shorts/styles/stick-story/example/tools/mix.py +172 -0
  197. package/plugins/aiinsight-shorts/styles/stick-story/style-sheet.png +0 -0
  198. package/plugins/aiinsight-shorts/styles/tall-tale/STYLE.md +51 -0
  199. package/plugins/aiinsight-shorts/styles/tall-tale/example/data/cues.json +271 -0
  200. package/plugins/aiinsight-shorts/styles/tall-tale/example/data/lines.json +127 -0
  201. package/plugins/aiinsight-shorts/styles/tall-tale/example/data/words.json +908 -0
  202. package/plugins/aiinsight-shorts/styles/tall-tale/example/data/words.txt +151 -0
  203. package/plugins/aiinsight-shorts/styles/tall-tale/example/fonts/Caladea-Bold.ttf +0 -0
  204. package/plugins/aiinsight-shorts/styles/tall-tale/example/fonts/Inter-Black.otf +0 -0
  205. package/plugins/aiinsight-shorts/styles/tall-tale/example/fonts/Inter-ExtraBold.otf +0 -0
  206. package/plugins/aiinsight-shorts/styles/tall-tale/example/index.html +19 -0
  207. package/plugins/aiinsight-shorts/styles/tall-tale/example/script.json +37 -0
  208. package/plugins/aiinsight-shorts/styles/tall-tale/example/sheet.html +13 -0
  209. package/plugins/aiinsight-shorts/styles/tall-tale/example/src/core/board.js +62 -0
  210. package/plugins/aiinsight-shorts/styles/tall-tale/example/src/core/captions.js +56 -0
  211. package/plugins/aiinsight-shorts/styles/tall-tale/example/src/core/engine.js +65 -0
  212. package/plugins/aiinsight-shorts/styles/tall-tale/example/src/core/lib.js +44 -0
  213. package/plugins/aiinsight-shorts/styles/tall-tale/example/src/core/props.js +166 -0
  214. package/plugins/aiinsight-shorts/styles/tall-tale/example/src/core/timing.js +23 -0
  215. package/plugins/aiinsight-shorts/styles/tall-tale/example/src/core/toon.js +352 -0
  216. package/plugins/aiinsight-shorts/styles/tall-tale/example/src/core/world.js +340 -0
  217. package/plugins/aiinsight-shorts/styles/tall-tale/example/src/main.js +56 -0
  218. package/plugins/aiinsight-shorts/styles/tall-tale/example/src/sheet.js +99 -0
  219. package/plugins/aiinsight-shorts/styles/tall-tale/example/src/shots.js +377 -0
  220. package/plugins/aiinsight-shorts/styles/tall-tale/example/tools/capture.mjs +122 -0
  221. package/plugins/aiinsight-shorts/styles/tall-tale/example/tools/mix.py +204 -0
  222. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/LICENSE-three.txt +21 -0
  223. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/environments/RoomEnvironment.js +144 -0
  224. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/postprocessing/BokehPass.js +141 -0
  225. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/postprocessing/EffectComposer.js +231 -0
  226. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/postprocessing/MaskPass.js +104 -0
  227. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/postprocessing/OutputPass.js +97 -0
  228. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/postprocessing/Pass.js +95 -0
  229. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/postprocessing/RenderPass.js +99 -0
  230. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/postprocessing/ShaderPass.js +77 -0
  231. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/postprocessing/UnrealBloomPass.js +415 -0
  232. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/shaders/BokehShader.js +145 -0
  233. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/shaders/CopyShader.js +45 -0
  234. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/shaders/LuminosityHighPassShader.js +64 -0
  235. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/addons/shaders/OutputShader.js +85 -0
  236. package/plugins/aiinsight-shorts/styles/tall-tale/example/vendor/three.module.js +6 -0
  237. package/plugins/aiinsight-shorts/styles/tall-tale/style-sheet.png +0 -0
  238. package/plugins/faceless-shorts/README.md +34 -0
  239. package/plugins/faceless-shorts/SKILL.md +124 -0
  240. package/plugins/faceless-shorts/styles/deep-dive/STYLE.md +58 -0
  241. package/plugins/faceless-shorts/styles/deep-dive/example/data/cues.json +140 -0
  242. package/plugins/faceless-shorts/styles/deep-dive/example/data/lines.json +67 -0
  243. package/plugins/faceless-shorts/styles/deep-dive/example/data/words.json +614 -0
  244. package/plugins/faceless-shorts/styles/deep-dive/example/data/words.txt +102 -0
  245. package/plugins/faceless-shorts/styles/deep-dive/example/fonts/Inter-Black.otf +0 -0
  246. package/plugins/faceless-shorts/styles/deep-dive/example/fonts/Inter-ExtraBold.otf +0 -0
  247. package/plugins/faceless-shorts/styles/deep-dive/example/index.html +16 -0
  248. package/plugins/faceless-shorts/styles/deep-dive/example/script.json +27 -0
  249. package/plugins/faceless-shorts/styles/deep-dive/example/sheet.html +10 -0
  250. package/plugins/faceless-shorts/styles/deep-dive/example/src/core/board.js +62 -0
  251. package/plugins/faceless-shorts/styles/deep-dive/example/src/core/captions.js +68 -0
  252. package/plugins/faceless-shorts/styles/deep-dive/example/src/core/engine.js +65 -0
  253. package/plugins/faceless-shorts/styles/deep-dive/example/src/core/human.js +128 -0
  254. package/plugins/faceless-shorts/styles/deep-dive/example/src/core/lib.js +44 -0
  255. package/plugins/faceless-shorts/styles/deep-dive/example/src/core/look2d.js +33 -0
  256. package/plugins/faceless-shorts/styles/deep-dive/example/src/core/sdf.js +79 -0
  257. package/plugins/faceless-shorts/styles/deep-dive/example/src/core/sets.js +107 -0
  258. package/plugins/faceless-shorts/styles/deep-dive/example/src/core/timing.js +23 -0
  259. package/plugins/faceless-shorts/styles/deep-dive/example/src/main.js +56 -0
  260. package/plugins/faceless-shorts/styles/deep-dive/example/src/sheet.js +79 -0
  261. package/plugins/faceless-shorts/styles/deep-dive/example/src/shots.js +136 -0
  262. package/plugins/faceless-shorts/styles/deep-dive/example/tools/capture.mjs +122 -0
  263. package/plugins/faceless-shorts/styles/deep-dive/example/tools/mix.py +172 -0
  264. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/LICENSE-three.txt +21 -0
  265. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/environments/RoomEnvironment.js +144 -0
  266. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/postprocessing/BokehPass.js +141 -0
  267. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/postprocessing/EffectComposer.js +231 -0
  268. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/postprocessing/MaskPass.js +104 -0
  269. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/postprocessing/OutputPass.js +97 -0
  270. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/postprocessing/Pass.js +95 -0
  271. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/postprocessing/RenderPass.js +99 -0
  272. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/postprocessing/ShaderPass.js +77 -0
  273. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/postprocessing/UnrealBloomPass.js +415 -0
  274. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/shaders/BokehShader.js +145 -0
  275. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/shaders/CopyShader.js +45 -0
  276. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/shaders/LuminosityHighPassShader.js +64 -0
  277. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/addons/shaders/OutputShader.js +85 -0
  278. package/plugins/faceless-shorts/styles/deep-dive/example/vendor/three.module.js +6 -0
  279. package/plugins/faceless-shorts/styles/deep-dive/style-sheet.png +0 -0
  280. package/plugins/faceless-shorts/styles/inside-out/STYLE.md +97 -0
  281. package/plugins/faceless-shorts/styles/inside-out/example/data/cues.json +178 -0
  282. package/plugins/faceless-shorts/styles/inside-out/example/data/lines.json +73 -0
  283. package/plugins/faceless-shorts/styles/inside-out/example/data/words.json +662 -0
  284. package/plugins/faceless-shorts/styles/inside-out/example/fonts/Inter-Black.otf +0 -0
  285. package/plugins/faceless-shorts/styles/inside-out/example/index.html +16 -0
  286. package/plugins/faceless-shorts/styles/inside-out/example/script.json +26 -0
  287. package/plugins/faceless-shorts/styles/inside-out/example/src/core/captions.js +68 -0
  288. package/plugins/faceless-shorts/styles/inside-out/example/src/core/kit.js +345 -0
  289. package/plugins/faceless-shorts/styles/inside-out/example/src/core/lib.js +44 -0
  290. package/plugins/faceless-shorts/styles/inside-out/example/src/core/timing.js +23 -0
  291. package/plugins/faceless-shorts/styles/inside-out/example/src/main.js +62 -0
  292. package/plugins/faceless-shorts/styles/inside-out/example/src/shots.js +195 -0
  293. package/plugins/faceless-shorts/styles/inside-out/example/tools/capture.mjs +122 -0
  294. package/plugins/faceless-shorts/styles/inside-out/example/tools/mix.py +172 -0
  295. package/plugins/faceless-shorts/styles/inside-out/style-sheet.png +0 -0
  296. package/plugins/faceless-shorts/styles/night-file/STYLE.md +36 -0
  297. package/plugins/faceless-shorts/styles/night-file/example/data/cues.json +146 -0
  298. package/plugins/faceless-shorts/styles/night-file/example/data/lines.json +73 -0
  299. package/plugins/faceless-shorts/styles/night-file/example/data/words.json +572 -0
  300. package/plugins/faceless-shorts/styles/night-file/example/data/words.txt +95 -0
  301. package/plugins/faceless-shorts/styles/night-file/example/fonts/FreeMonoBold.ttf +0 -0
  302. package/plugins/faceless-shorts/styles/night-file/example/fonts/Inter-Black.otf +0 -0
  303. package/plugins/faceless-shorts/styles/night-file/example/index.html +16 -0
  304. package/plugins/faceless-shorts/styles/night-file/example/script.json +26 -0
  305. package/plugins/faceless-shorts/styles/night-file/example/sheet.html +11 -0
  306. package/plugins/faceless-shorts/styles/night-file/example/src/core/board.js +62 -0
  307. package/plugins/faceless-shorts/styles/night-file/example/src/core/captions.js +49 -0
  308. package/plugins/faceless-shorts/styles/night-file/example/src/core/engine.js +65 -0
  309. package/plugins/faceless-shorts/styles/night-file/example/src/core/human.js +128 -0
  310. package/plugins/faceless-shorts/styles/night-file/example/src/core/kit.js +151 -0
  311. package/plugins/faceless-shorts/styles/night-file/example/src/core/lib.js +44 -0
  312. package/plugins/faceless-shorts/styles/night-file/example/src/core/sdf.js +79 -0
  313. package/plugins/faceless-shorts/styles/night-file/example/src/core/sets3d.js +106 -0
  314. package/plugins/faceless-shorts/styles/night-file/example/src/core/timing.js +23 -0
  315. package/plugins/faceless-shorts/styles/night-file/example/src/main.js +56 -0
  316. package/plugins/faceless-shorts/styles/night-file/example/src/sheet.js +86 -0
  317. package/plugins/faceless-shorts/styles/night-file/example/src/shots.js +130 -0
  318. package/plugins/faceless-shorts/styles/night-file/example/tools/capture.mjs +122 -0
  319. package/plugins/faceless-shorts/styles/night-file/example/tools/mix.py +172 -0
  320. package/plugins/faceless-shorts/styles/night-file/example/vendor/LICENSE-three.txt +21 -0
  321. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/environments/RoomEnvironment.js +144 -0
  322. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/postprocessing/BokehPass.js +141 -0
  323. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/postprocessing/EffectComposer.js +231 -0
  324. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/postprocessing/MaskPass.js +104 -0
  325. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/postprocessing/OutputPass.js +97 -0
  326. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/postprocessing/Pass.js +95 -0
  327. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/postprocessing/RenderPass.js +99 -0
  328. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/postprocessing/ShaderPass.js +77 -0
  329. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/postprocessing/UnrealBloomPass.js +415 -0
  330. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/shaders/BokehShader.js +145 -0
  331. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/shaders/CopyShader.js +45 -0
  332. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/shaders/LuminosityHighPassShader.js +64 -0
  333. package/plugins/faceless-shorts/styles/night-file/example/vendor/addons/shaders/OutputShader.js +85 -0
  334. package/plugins/faceless-shorts/styles/night-file/example/vendor/three.module.js +6 -0
  335. package/plugins/faceless-shorts/styles/night-file/style-sheet.png +0 -0
  336. package/plugins/faceless-shorts/styles/paper-atlas/STYLE.md +30 -0
  337. package/plugins/faceless-shorts/styles/paper-atlas/example/data/cues.json +167 -0
  338. package/plugins/faceless-shorts/styles/paper-atlas/example/data/lines.json +67 -0
  339. package/plugins/faceless-shorts/styles/paper-atlas/example/data/words.json +614 -0
  340. package/plugins/faceless-shorts/styles/paper-atlas/example/data/words.txt +102 -0
  341. package/plugins/faceless-shorts/styles/paper-atlas/example/fonts/Caladea-Bold.ttf +0 -0
  342. package/plugins/faceless-shorts/styles/paper-atlas/example/fonts/Inter-Black.otf +0 -0
  343. package/plugins/faceless-shorts/styles/paper-atlas/example/index.html +13 -0
  344. package/plugins/faceless-shorts/styles/paper-atlas/example/script.json +26 -0
  345. package/plugins/faceless-shorts/styles/paper-atlas/example/sheet.html +10 -0
  346. package/plugins/faceless-shorts/styles/paper-atlas/example/src/core/board.js +62 -0
  347. package/plugins/faceless-shorts/styles/paper-atlas/example/src/core/captions.js +47 -0
  348. package/plugins/faceless-shorts/styles/paper-atlas/example/src/core/kit.js +152 -0
  349. package/plugins/faceless-shorts/styles/paper-atlas/example/src/core/lib.js +44 -0
  350. package/plugins/faceless-shorts/styles/paper-atlas/example/src/core/timing.js +23 -0
  351. package/plugins/faceless-shorts/styles/paper-atlas/example/src/main.js +62 -0
  352. package/plugins/faceless-shorts/styles/paper-atlas/example/src/sheet.js +61 -0
  353. package/plugins/faceless-shorts/styles/paper-atlas/example/src/shots.js +139 -0
  354. package/plugins/faceless-shorts/styles/paper-atlas/example/tools/capture.mjs +122 -0
  355. package/plugins/faceless-shorts/styles/paper-atlas/example/tools/mix.py +172 -0
  356. package/plugins/faceless-shorts/styles/paper-atlas/style-sheet.png +0 -0
  357. package/plugins/faceless-shorts/styles/stick-story/STYLE.md +32 -0
  358. package/plugins/faceless-shorts/styles/stick-story/example/data/cues.json +182 -0
  359. package/plugins/faceless-shorts/styles/stick-story/example/data/lines.json +79 -0
  360. package/plugins/faceless-shorts/styles/stick-story/example/data/words.json +662 -0
  361. package/plugins/faceless-shorts/styles/stick-story/example/data/words.txt +110 -0
  362. package/plugins/faceless-shorts/styles/stick-story/example/fonts/Inter-Black.otf +0 -0
  363. package/plugins/faceless-shorts/styles/stick-story/example/fonts/Inter-ExtraBold.otf +0 -0
  364. package/plugins/faceless-shorts/styles/stick-story/example/index.html +12 -0
  365. package/plugins/faceless-shorts/styles/stick-story/example/script.json +27 -0
  366. package/plugins/faceless-shorts/styles/stick-story/example/sheet.html +9 -0
  367. package/plugins/faceless-shorts/styles/stick-story/example/src/core/board.js +62 -0
  368. package/plugins/faceless-shorts/styles/stick-story/example/src/core/captions.js +47 -0
  369. package/plugins/faceless-shorts/styles/stick-story/example/src/core/kit.js +166 -0
  370. package/plugins/faceless-shorts/styles/stick-story/example/src/core/lib.js +44 -0
  371. package/plugins/faceless-shorts/styles/stick-story/example/src/core/timing.js +23 -0
  372. package/plugins/faceless-shorts/styles/stick-story/example/src/main.js +62 -0
  373. package/plugins/faceless-shorts/styles/stick-story/example/src/sheet.js +64 -0
  374. package/plugins/faceless-shorts/styles/stick-story/example/src/shots.js +148 -0
  375. package/plugins/faceless-shorts/styles/stick-story/example/tools/capture.mjs +122 -0
  376. package/plugins/faceless-shorts/styles/stick-story/example/tools/mix.py +172 -0
  377. package/plugins/faceless-shorts/styles/stick-story/style-sheet.png +0 -0
  378. package/plugins/faceless-shorts/styles/tall-tale/STYLE.md +51 -0
  379. package/plugins/faceless-shorts/styles/tall-tale/example/data/cues.json +271 -0
  380. package/plugins/faceless-shorts/styles/tall-tale/example/data/lines.json +127 -0
  381. package/plugins/faceless-shorts/styles/tall-tale/example/data/words.json +908 -0
  382. package/plugins/faceless-shorts/styles/tall-tale/example/data/words.txt +151 -0
  383. package/plugins/faceless-shorts/styles/tall-tale/example/fonts/Caladea-Bold.ttf +0 -0
  384. package/plugins/faceless-shorts/styles/tall-tale/example/fonts/Inter-Black.otf +0 -0
  385. package/plugins/faceless-shorts/styles/tall-tale/example/fonts/Inter-ExtraBold.otf +0 -0
  386. package/plugins/faceless-shorts/styles/tall-tale/example/index.html +17 -0
  387. package/plugins/faceless-shorts/styles/tall-tale/example/script.json +37 -0
  388. package/plugins/faceless-shorts/styles/tall-tale/example/sheet.html +11 -0
  389. package/plugins/faceless-shorts/styles/tall-tale/example/src/core/board.js +62 -0
  390. package/plugins/faceless-shorts/styles/tall-tale/example/src/core/captions.js +56 -0
  391. package/plugins/faceless-shorts/styles/tall-tale/example/src/core/engine.js +65 -0
  392. package/plugins/faceless-shorts/styles/tall-tale/example/src/core/lib.js +44 -0
  393. package/plugins/faceless-shorts/styles/tall-tale/example/src/core/props.js +166 -0
  394. package/plugins/faceless-shorts/styles/tall-tale/example/src/core/timing.js +23 -0
  395. package/plugins/faceless-shorts/styles/tall-tale/example/src/core/toon.js +352 -0
  396. package/plugins/faceless-shorts/styles/tall-tale/example/src/core/world.js +340 -0
  397. package/plugins/faceless-shorts/styles/tall-tale/example/src/main.js +56 -0
  398. package/plugins/faceless-shorts/styles/tall-tale/example/src/sheet.js +99 -0
  399. package/plugins/faceless-shorts/styles/tall-tale/example/src/shots.js +377 -0
  400. package/plugins/faceless-shorts/styles/tall-tale/example/tools/capture.mjs +122 -0
  401. package/plugins/faceless-shorts/styles/tall-tale/example/tools/mix.py +204 -0
  402. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/LICENSE-three.txt +21 -0
  403. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/environments/RoomEnvironment.js +144 -0
  404. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/postprocessing/BokehPass.js +141 -0
  405. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/postprocessing/EffectComposer.js +231 -0
  406. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/postprocessing/MaskPass.js +104 -0
  407. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/postprocessing/OutputPass.js +97 -0
  408. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/postprocessing/Pass.js +95 -0
  409. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/postprocessing/RenderPass.js +99 -0
  410. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/postprocessing/ShaderPass.js +77 -0
  411. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/postprocessing/UnrealBloomPass.js +415 -0
  412. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/shaders/BokehShader.js +145 -0
  413. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/shaders/CopyShader.js +45 -0
  414. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/shaders/LuminosityHighPassShader.js +64 -0
  415. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/addons/shaders/OutputShader.js +85 -0
  416. package/plugins/faceless-shorts/styles/tall-tale/example/vendor/three.module.js +6 -0
  417. package/plugins/faceless-shorts/styles/tall-tale/style-sheet.png +0 -0
  418. package/plugins/motion-styles/LIBRARY.md +896 -0
  419. package/plugins/motion-styles/README.md +29 -0
  420. package/plugins/motion-styles/SKILL.md +70 -0
  421. package/plugins/motion-styles/catalog.json +2253 -0
  422. package/plugins/motion-styles/prompts/bio-glow.md +149 -0
  423. package/plugins/motion-styles/prompts/blueprint.md +145 -0
  424. package/plugins/motion-styles/prompts/breaking-desk.md +147 -0
  425. package/plugins/motion-styles/prompts/callout-kit.md +147 -0
  426. package/plugins/motion-styles/prompts/chalk-talk.md +153 -0
  427. package/plugins/motion-styles/prompts/chat-story.md +143 -0
  428. package/plugins/motion-styles/prompts/clay-diorama.md +149 -0
  429. package/plugins/motion-styles/prompts/clean-tech.md +147 -0
  430. package/plugins/motion-styles/prompts/comic-panels.md +145 -0
  431. package/plugins/motion-styles/prompts/cosmic-scale.md +147 -0
  432. package/plugins/motion-styles/prompts/creator-motion.md +149 -0
  433. package/plugins/motion-styles/prompts/data-city.md +149 -0
  434. package/plugins/motion-styles/prompts/data-story.md +147 -0
  435. package/plugins/motion-styles/prompts/deep-layers.md +147 -0
  436. package/plugins/motion-styles/prompts/doc-cinema.md +145 -0
  437. package/plugins/motion-styles/prompts/evidence-board.md +145 -0
  438. package/plugins/motion-styles/prompts/exploded-view.md +149 -0
  439. package/plugins/motion-styles/prompts/glass-icons.md +147 -0
  440. package/plugins/motion-styles/prompts/glitch-pack.md +145 -0
  441. package/plugins/motion-styles/prompts/globe-arcs.md +147 -0
  442. package/plugins/motion-styles/prompts/headline-backdrop.md +145 -0
  443. package/plugins/motion-styles/prompts/iso-cutaway.md +147 -0
  444. package/plugins/motion-styles/prompts/isotype.md +145 -0
  445. package/plugins/motion-styles/prompts/karaoke-subs.md +145 -0
  446. package/plugins/motion-styles/prompts/low-poly-atlas.md +149 -0
  447. package/plugins/motion-styles/prompts/lower-thirds.md +147 -0
  448. package/plugins/motion-styles/prompts/marker-board.md +145 -0
  449. package/plugins/motion-styles/prompts/market-tape.md +145 -0
  450. package/plugins/motion-styles/prompts/math-canvas.md +145 -0
  451. package/plugins/motion-styles/prompts/myth-or-fact.md +145 -0
  452. package/plugins/motion-styles/prompts/neon-line.md +145 -0
  453. package/plugins/motion-styles/prompts/paper-craft.md +145 -0
  454. package/plugins/motion-styles/prompts/parchment-map.md +147 -0
  455. package/plugins/motion-styles/prompts/physics-toybox.md +147 -0
  456. package/plugins/motion-styles/prompts/pixel-quest.md +145 -0
  457. package/plugins/motion-styles/prompts/podcast-clip.md +147 -0
  458. package/plugins/motion-styles/prompts/pop-info.md +145 -0
  459. package/plugins/motion-styles/prompts/product-turntable.md +149 -0
  460. package/plugins/motion-styles/prompts/punch-captions.md +145 -0
  461. package/plugins/motion-styles/prompts/quiz-countdown.md +145 -0
  462. package/plugins/motion-styles/prompts/quote-cinema.md +145 -0
  463. package/plugins/motion-styles/prompts/recipe-steps.md +145 -0
  464. package/plugins/motion-styles/prompts/rubber-hose-reel.md +145 -0
  465. package/plugins/motion-styles/prompts/shadow-puppets.md +145 -0
  466. package/plugins/motion-styles/prompts/size-lineup.md +149 -0
  467. package/plugins/motion-styles/prompts/software-walkthrough.md +147 -0
  468. package/plugins/motion-styles/prompts/stack-split.md +145 -0
  469. package/plugins/motion-styles/prompts/sticker-pop.md +145 -0
  470. package/plugins/motion-styles/prompts/storybook.md +145 -0
  471. package/plugins/motion-styles/prompts/swiss-grid.md +145 -0
  472. package/plugins/motion-styles/prompts/synth-grid.md +147 -0
  473. package/plugins/motion-styles/prompts/tactics-board.md +145 -0
  474. package/plugins/motion-styles/prompts/terminal.md +145 -0
  475. package/plugins/motion-styles/prompts/tier-list.md +143 -0
  476. package/plugins/motion-styles/prompts/timeline-rail.md +145 -0
  477. package/plugins/motion-styles/prompts/top-5-countdown.md +145 -0
  478. package/plugins/motion-styles/prompts/versus-split.md +145 -0
  479. package/plugins/motion-styles/prompts/vhs-camcorder.md +145 -0
  480. package/plugins/motion-styles/prompts/visual-novel.md +145 -0
  481. package/plugins/motion-styles/prompts/warm-canvas.md +145 -0
  482. package/plugins/motion-styles/prompts/woodcut-tale.md +145 -0
  483. package/plugins/motion-styles/prompts/zine-collage.md +145 -0
  484. package/plugins/motion-styles/sources/bio-glow.html +639 -0
  485. package/plugins/motion-styles/sources/blueprint.html +617 -0
  486. package/plugins/motion-styles/sources/breaking-desk.html +585 -0
  487. package/plugins/motion-styles/sources/callout-kit.html +586 -0
  488. package/plugins/motion-styles/sources/chalk-talk.html +597 -0
  489. package/plugins/motion-styles/sources/chat-story.html +597 -0
  490. package/plugins/motion-styles/sources/clay-diorama.html +681 -0
  491. package/plugins/motion-styles/sources/clean-tech.html +554 -0
  492. package/plugins/motion-styles/sources/comic-panels.html +608 -0
  493. package/plugins/motion-styles/sources/cosmic-scale.html +628 -0
  494. package/plugins/motion-styles/sources/creator-motion.html +805 -0
  495. package/plugins/motion-styles/sources/data-city.html +613 -0
  496. package/plugins/motion-styles/sources/data-story.html +539 -0
  497. package/plugins/motion-styles/sources/deep-layers.html +624 -0
  498. package/plugins/motion-styles/sources/doc-cinema.html +590 -0
  499. package/plugins/motion-styles/sources/evidence-board.html +610 -0
  500. package/plugins/motion-styles/sources/exploded-view.html +618 -0
  501. package/plugins/motion-styles/sources/glass-icons.html +612 -0
  502. package/plugins/motion-styles/sources/glitch-pack.html +583 -0
  503. package/plugins/motion-styles/sources/globe-arcs.html +621 -0
  504. package/plugins/motion-styles/sources/headline-backdrop.html +584 -0
  505. package/plugins/motion-styles/sources/iso-cutaway.html +621 -0
  506. package/plugins/motion-styles/sources/isotype.html +588 -0
  507. package/plugins/motion-styles/sources/karaoke-subs.html +577 -0
  508. package/plugins/motion-styles/sources/low-poly-atlas.html +621 -0
  509. package/plugins/motion-styles/sources/lower-thirds.html +582 -0
  510. package/plugins/motion-styles/sources/marker-board.html +598 -0
  511. package/plugins/motion-styles/sources/market-tape.html +598 -0
  512. package/plugins/motion-styles/sources/math-canvas.html +592 -0
  513. package/plugins/motion-styles/sources/myth-or-fact.html +587 -0
  514. package/plugins/motion-styles/sources/neon-line.html +597 -0
  515. package/plugins/motion-styles/sources/paper-craft.html +612 -0
  516. package/plugins/motion-styles/sources/parchment-map.html +624 -0
  517. package/plugins/motion-styles/sources/physics-toybox.html +617 -0
  518. package/plugins/motion-styles/sources/pixel-quest.html +609 -0
  519. package/plugins/motion-styles/sources/podcast-clip.html +585 -0
  520. package/plugins/motion-styles/sources/pop-info.html +677 -0
  521. package/plugins/motion-styles/sources/product-turntable.html +611 -0
  522. package/plugins/motion-styles/sources/punch-captions.html +583 -0
  523. package/plugins/motion-styles/sources/quiz-countdown.html +593 -0
  524. package/plugins/motion-styles/sources/quote-cinema.html +581 -0
  525. package/plugins/motion-styles/sources/recipe-steps.html +599 -0
  526. package/plugins/motion-styles/sources/rubber-hose-reel.html +627 -0
  527. package/plugins/motion-styles/sources/shadow-puppets.html +609 -0
  528. package/plugins/motion-styles/sources/size-lineup.html +620 -0
  529. package/plugins/motion-styles/sources/software-walkthrough.html +651 -0
  530. package/plugins/motion-styles/sources/stack-split.html +588 -0
  531. package/plugins/motion-styles/sources/sticker-pop.html +587 -0
  532. package/plugins/motion-styles/sources/storybook.html +600 -0
  533. package/plugins/motion-styles/sources/swiss-grid.html +590 -0
  534. package/plugins/motion-styles/sources/synth-grid.html +614 -0
  535. package/plugins/motion-styles/sources/tactics-board.html +608 -0
  536. package/plugins/motion-styles/sources/terminal.html +593 -0
  537. package/plugins/motion-styles/sources/tier-list.html +600 -0
  538. package/plugins/motion-styles/sources/timeline-rail.html +598 -0
  539. package/plugins/motion-styles/sources/top-5-countdown.html +589 -0
  540. package/plugins/motion-styles/sources/versus-split.html +592 -0
  541. package/plugins/motion-styles/sources/vhs-camcorder.html +587 -0
  542. package/plugins/motion-styles/sources/visual-novel.html +623 -0
  543. package/plugins/motion-styles/sources/warm-canvas.html +742 -0
  544. package/plugins/motion-styles/sources/woodcut-tale.html +598 -0
  545. package/plugins/motion-styles/sources/zine-collage.html +594 -0
  546. package/plugins/video-pipeline/.claude-plugin/plugin.json +2 -2
  547. package/plugins/video-pipeline/skills/.upstream-skills.json +156 -143
  548. package/plugins/video-pipeline/skills/video-pipeline/references/mcp-tools.md +3 -3
  549. package/scripts/deep-validate.js +3 -2
  550. package/src/audio-mixer/mixer.js +69 -0
  551. package/src/cli/make.js +19 -0
  552. package/src/harness/lib/browser.mjs +22 -1
  553. package/src/harness/lib/capture.mjs +33 -11
  554. package/src/harness/lib/jobs.mjs +16 -1
  555. package/src/mcp-server/server.js +726 -10
  556. package/src/pipeline/providers.js +77 -17
  557. package/src/skills/sync-upstream.js +15 -3
  558. package/src/utils/media-downloader.js +7 -0
  559. package/src/utils/tool-installer.js +212 -0
  560. package/src/utils/transcribe.js +9 -1
  561. package/src/video-renderer/renderer.js +68 -38
  562. package/src/video-renderer/scene-animator.js +50 -15
  563. package/src/workflows/assets.js +49 -5
  564. package/src/workflows/render.js +2 -0
  565. package/src/workflows/script.js +14 -3
@@ -0,0 +1,149 @@
1
+ # Motion graphics style #11: Exploded View
2
+
3
+ - **ID:** `exploded-view`
4
+ - **Family:** 3D
5
+ - **Canvas:** `720x1280`
6
+ - **Fonts:** Space Grotesk (500 and 700), JetBrains Mono (500 and 700)
7
+ - **Three.js 3D:** Yes
8
+ - **Footage Overlay:** No
9
+
10
+ ## Look
11
+ A clean studio teardown in Three.js: an object turns slowly on a light grey floor and floats apart into its layers, each part tagged with a numbered mono label on a thin leader line.
12
+
13
+ ## How It Explains
14
+ The closed object turns once, then its parts lift away one at a time with a mechanical click, labels drawing out to a neat column on the right. One part glows while the camera holds on it, then everything snaps back together for the takeaway.
15
+
16
+ ## Demo
17
+ What's inside a phone
18
+
19
+ ---
20
+
21
+ ## Ready-to-Copy Prompt (Standard)
22
+
23
+ ```markdown
24
+ I want an animated video in the "Exploded View" style (3D) from the Motion Graphics Style Library. Below is a complete, working reference animation in this style: its core helpers (CM), a synthesized sound kit (SFX), the style's scenes, its sound score and the player page. Treat that file as the ground truth for how this style looks, moves and sounds, and rebuild it around my content.
25
+
26
+ MY CONTENT
27
+ [No topic yet. Ask me for my topic or script before building anything.]
28
+
29
+ BUILD DIRECTLY
30
+ Skip the storyboard and build the full animation now. Afterwards, list any facts or numbers you assumed.
31
+
32
+ WHAT TO BUILD
33
+ One self-contained HTML file (an artifact if you can), built on the reference file below:
34
+ - Keep the page, the player (play/pause, scrub, time, sound toggle, loop, Load voiceover) and the CM and SFX blocks unchanged. Also keep the shared library helpers block (track, txt, chip, slam, rise, wordLine, hd, footage, composite, cam, punch, makeGL and the sound helpers) unchanged.
35
+ - Keep the canvas at 720x1280 (9:16, for Shorts, Reels and TikTok).
36
+ - Keep the Three.js r128 script tag and build every 3D object in code: no models or textures from the web.
37
+ - Replace the demo's story: TL, PARTS (names, sizes, colours, details), the build in init3(), the highlight beat, the labels in overlay() and scoreSound(). Keep and reuse the style's helpers (makeGL(), lights3(), the shadow-only floor, the slow turntable rotation, the lift-apart and snap-back motion in pose(), the right-hand label column with leader lines, chip() and wordLine()).
38
+ - Aim for 15 to 40 seconds unless my content needs more, and set the duration in TL.D.
39
+ - Keep window.seek(t), window.DURATION, window.scoreSound and window.SFX exposed, so the video can be rendered frame by frame.
40
+ - Load the style's fonts before the first draw, as the reference does: Space Grotesk (500 and 700), JetBrains Mono (500 and 700).
41
+
42
+ THE STYLE
43
+ - Build the object in Three.js from real proportions: boxes, cylinders and extrusions for each layer, small boxes for chips and parts, real materials (glass is transparent, metal is metallic). Never copy a real brand or logo; invent nothing that pretends to be a real model.
44
+ - The studio: light grey background (#e7eaee), a shadow-only floor, soft key light from the upper right. The object turns slowly the whole time.
45
+ - Parts lift straight up (or along their assembly axis) one at a time with an ease-out, leaving even gaps, then later snap back in reverse order.
46
+ - Labels: a right-hand column of numbered labels (blue number, dark name in JetBrains Mono) joined to each part by a 2 px leader line that draws itself.
47
+ - Type: Space Grotesk 700 headline top left in near-black (#14171f) with the second line in blue (#2f6bff).
48
+ - Highlight: one part glows (emissive pulse) with a big chip explaining why it matters.
49
+ - Pace: closed object for 1.5 to 2 seconds, one part every 0.4 to 0.6 seconds, hold the highlight 2 to 3 seconds.
50
+
51
+ RULES THAT KEEP IT IN STYLE
52
+ - Change the story, the words and the props; do not change the medium. Draw every subject accurately for my topic and double-check any facts and numbers you show.
53
+ - Every frame is a pure function of t. Use CM.rng(seed) and CM.noise1(seed) for all randomness, never Math.random. Caching static layers is fine.
54
+ - It will be watched on phones: at 720x1280 keep headlines at 60 px or more, part names at 24 px or more and part numbers at 20 px or more. Fill the frame.
55
+ - Keep each frame fast, well under 50 ms.
56
+ - Give my topic its own demo content; do not reuse the reference's story ("What's inside a phone") unless my content asks for it.
57
+
58
+ SOUND
59
+ - Bed: a clean, light pad (padBed) with soft hats.
60
+ - Map events to the kit: each part lifting gets a short servo whir (a filtered sawtooth sweep) and a "click" when it stops; labels get a soft tick; the highlight gets a hum swell and a chime; the snap-back gets a reversed whir and a thud; the takeaway gets an open chord.
61
+ - Full mix (no voiceover): keep the clean pad, at most about 3 sounds at once, and a short gap before the snap-back.
62
+ - Sync is everything: the sound score reads the same TL times as the picture.
63
+
64
+ IF YOU CAN RUN CODE
65
+ Render an MP4: open the file in headless Chrome, call window.seek(i / 30) for every frame, capture the canvas and pipe the frames into ffmpeg. Render the effects with SFX.render(window.scoreSound, window.DURATION, 48000, { voiceover: false }), which returns interleaved stereo floats, and mux them in. With a voiceover, render the effects with { voiceover: true } and mix them under my audio file.
66
+
67
+ STYLE CARD
68
+ Name: Exploded View
69
+ Family: 3D
70
+ Look: A clean studio teardown in Three.js: an object turns slowly on a light grey floor and floats apart into its layers, each part tagged with a numbered mono label on a thin leader line.
71
+ How it explains: The closed object turns once, then its parts lift away one at a time with a mechanical click, labels drawing out to a neat column on the right. One part glows while the camera holds on it, then everything snaps back together for the takeaway.
72
+
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Voiceover & Storyboard Prompt
78
+
79
+ ```markdown
80
+ I want an animated video in the "Exploded View" style (3D) from the Motion Graphics Style Library. Below is a complete, working reference animation in this style: its core helpers (CM), a synthesized sound kit (SFX), the style's scenes, its sound score and the player page. Treat that file as the ground truth for how this style looks, moves and sounds, and rebuild it around my content.
81
+
82
+ MY CONTENT
83
+ [No topic yet. Ask me for my topic or script before building anything.]
84
+
85
+ VOICEOVER TIMING
86
+ [No timing pasted yet. Before building, ask me for a word-level SRT or word timestamps of my voiceover. If I only have the audio file, offer to transcribe it into word timings.]
87
+
88
+ How to use the timing:
89
+ - Turn it into a list of words with start and end times in seconds. If the timing is per line only, spread each line's words across its span in proportion to their length.
90
+ - Set the duration to the last word's end plus about 1.2 seconds.
91
+ - Build the timeline (TL) from these times. Each part lifts away as it is named, its label draws on the same word, the highlight glows on the stressed word, and the snap-back lands on the first word of the takeaway.
92
+ - Cut between scenes only at idea boundaries (a new step, a new claim, a reveal), never mid-word, and finish each cut just before the next idea's first spoken word.
93
+ - Put the emphasis moves on stressed words. A counter lands at the exact moment its number is spoken.
94
+ - Keep the player's "Load voiceover" button working so I can drop in my audio and hear it in sync.
95
+
96
+ STORYBOARD FIRST
97
+ Before building, show me a storyboard and wait for my OK:
98
+ - One HTML page (an artifact if you can) with a grid of 6 to 10 panels, one per beat. Draw each panel on a canvas with the reference's own helpers, scene drawing and finishing pass, so the stills already look like the finished piece. No animation or sound yet.
99
+ - Under each panel: the beat number, its start and end time, the exact on-screen words, the camera move or emphasis, how it gets there from the previous beat (the same scene continuing, or a cut and which kind), and its key sounds.
100
+ - Below the grid, list any facts or numbers you had to assume.
101
+ When I approve it (or after my changes), build the full animation and reuse the storyboard's drawing code.
102
+
103
+ WHAT TO BUILD
104
+ One self-contained HTML file (an artifact if you can), built on the reference file below:
105
+ - Keep the page, the player (play/pause, scrub, time, sound toggle, loop, Load voiceover) and the CM and SFX blocks unchanged. Also keep the shared library helpers block (track, txt, chip, slam, rise, wordLine, hd, footage, composite, cam, punch, makeGL and the sound helpers) unchanged.
106
+ - Keep the canvas at 720x1280 (9:16, for Shorts, Reels and TikTok).
107
+ - Keep the Three.js r128 script tag and build every 3D object in code: no models or textures from the web.
108
+ - Replace the demo's story: TL, PARTS (names, sizes, colours, details), the build in init3(), the highlight beat, the labels in overlay() and scoreSound(). Keep and reuse the style's helpers (makeGL(), lights3(), the shadow-only floor, the slow turntable rotation, the lift-apart and snap-back motion in pose(), the right-hand label column with leader lines, chip() and wordLine()).
109
+ - Aim for 15 to 40 seconds unless my content needs more, and set the duration in TL.D.
110
+ - Keep window.seek(t), window.DURATION, window.scoreSound and window.SFX exposed, so the video can be rendered frame by frame.
111
+ - Load the style's fonts before the first draw, as the reference does: Space Grotesk (500 and 700), JetBrains Mono (500 and 700).
112
+
113
+ THE STYLE
114
+ - Build the object in Three.js from real proportions: boxes, cylinders and extrusions for each layer, small boxes for chips and parts, real materials (glass is transparent, metal is metallic). Never copy a real brand or logo; invent nothing that pretends to be a real model.
115
+ - The studio: light grey background (#e7eaee), a shadow-only floor, soft key light from the upper right. The object turns slowly the whole time.
116
+ - Parts lift straight up (or along their assembly axis) one at a time with an ease-out, leaving even gaps, then later snap back in reverse order.
117
+ - Labels: a right-hand column of numbered labels (blue number, dark name in JetBrains Mono) joined to each part by a 2 px leader line that draws itself.
118
+ - Type: Space Grotesk 700 headline top left in near-black (#14171f) with the second line in blue (#2f6bff).
119
+ - Highlight: one part glows (emissive pulse) with a big chip explaining why it matters.
120
+ - Pace: closed object for 1.5 to 2 seconds, one part every 0.4 to 0.6 seconds, hold the highlight 2 to 3 seconds.
121
+
122
+ RULES THAT KEEP IT IN STYLE
123
+ - Change the story, the words and the props; do not change the medium. Draw every subject accurately for my topic and double-check any facts and numbers you show.
124
+ - Every frame is a pure function of t. Use CM.rng(seed) and CM.noise1(seed) for all randomness, never Math.random. Caching static layers is fine.
125
+ - It will be watched on phones: at 720x1280 keep headlines at 60 px or more, part names at 24 px or more and part numbers at 20 px or more. Fill the frame.
126
+ - Keep each frame fast, well under 50 ms.
127
+ - Give my topic its own demo content; do not reuse the reference's story ("What's inside a phone") unless my content asks for it.
128
+
129
+ SOUND
130
+ - Bed: a clean, light pad (padBed) with soft hats.
131
+ - Map events to the kit: each part lifting gets a short servo whir (a filtered sawtooth sweep) and a "click" when it stops; labels get a soft tick; the highlight gets a hum swell and a chime; the snap-back gets a reversed whir and a thud; the takeaway gets an open chord.
132
+ - Voiceover mix: the player calls SFX.live with { voiceover: true } once narration is loaded. Mark servo whirs and ticks soft: true and keep the thud for the snap-back only.
133
+ - Sync is everything: the sound score reads the same TL times as the picture.
134
+
135
+ IF YOU CAN RUN CODE
136
+ Render an MP4: open the file in headless Chrome, call window.seek(i / 30) for every frame, capture the canvas and pipe the frames into ffmpeg. Render the effects with SFX.render(window.scoreSound, window.DURATION, 48000, { voiceover: false }), which returns interleaved stereo floats, and mux them in. With a voiceover, render the effects with { voiceover: true } and mix them under my audio file.
137
+
138
+ STYLE CARD
139
+ Name: Exploded View
140
+ Family: 3D
141
+ Look: A clean studio teardown in Three.js: an object turns slowly on a light grey floor and floats apart into its layers, each part tagged with a numbered mono label on a thin leader line.
142
+ How it explains: The closed object turns once, then its parts lift away one at a time with a mechanical click, labels drawing out to a neat column on the right. One part glows while the camera holds on it, then everything snaps back together for the takeaway.
143
+
144
+ ```
145
+
146
+ ---
147
+
148
+ ## Reference Source Code Location
149
+ File: `plugins/motion-styles/sources/exploded-view.html` (58.2 KB)
@@ -0,0 +1,147 @@
1
+ # Motion graphics style #15: Glass Icons
2
+
3
+ - **ID:** `glass-icons`
4
+ - **Family:** 3D
5
+ - **Canvas:** `720x1280`
6
+ - **Fonts:** Inter (500 to 900), JetBrains Mono (700)
7
+ - **Three.js 3D:** Yes
8
+ - **Footage Overlay:** No
9
+
10
+ ## Look
11
+ Glossy translucent 3D app icons in Three.js, floating on a soft mint, sky and peach gradient, each with a white symbol on its face, frosted labels and a crisp black headline.
12
+
13
+ ## How It Explains
14
+ The icons float in from depth into a loose stack, then one at a time an icon swings forward to the centre, turns to face you and gets a frosted card with its number, name and one-line benefit while the others dim back. The takeaway lines them all up in a row.
15
+
16
+ ## Demo
17
+ 5 AI tools that save hours (tool types, not brands)
18
+
19
+ ---
20
+
21
+ ## Ready-to-Copy Prompt (Standard)
22
+
23
+ ```markdown
24
+ I want an animated video in the "Glass Icons" style (3D) from the Motion Graphics Style Library. Below is a complete, working reference animation in this style: its core helpers (CM), a synthesized sound kit (SFX), the style's scenes, its sound score and the player page. Treat that file as the ground truth for how this style looks, moves and sounds, and rebuild it around my content.
25
+
26
+ MY CONTENT
27
+ [No topic yet. Ask me for my topic or script before building anything.]
28
+
29
+ BUILD DIRECTLY
30
+ Skip the storyboard and build the full animation now. Afterwards, list any facts or numbers you assumed.
31
+
32
+ WHAT TO BUILD
33
+ One self-contained HTML file (an artifact if you can), built on the reference file below:
34
+ - Keep the page, the player (play/pause, scrub, time, sound toggle, loop, Load voiceover) and the CM and SFX blocks unchanged. Also keep the shared library helpers block (track, txt, chip, slam, rise, wordLine, hd, footage, composite, cam, punch, makeGL and the sound helpers) unchanged.
35
+ - Keep the canvas at 720x1280 (9:16, for Shorts, Reels and TikTok).
36
+ - Keep the Three.js r128 script tag and build every 3D object in code: no models or textures from the web.
37
+ - Replace the demo's story: TL, ICONS (colours, symbols, names, one-liners), the focus order, the headline and takeaway text and scoreSound(). Keep and reuse the style's helpers (makeGL(), the rounded-square extruded icon geometry with clearcoat glass, the coloured point lights, the float/focus/line-up motion in pose(), the frosted info card, the gradient background, chip() and wordLine()).
38
+ - Aim for 15 to 40 seconds unless my content needs more, and set the duration in TL.D.
39
+ - Keep window.seek(t), window.DURATION, window.scoreSound and window.SFX exposed, so the video can be rendered frame by frame.
40
+ - Load the style's fonts before the first draw, as the reference does: Inter (500 to 900), JetBrains Mono (700).
41
+
42
+ THE STYLE
43
+ - Icons are real 3D: rounded squares extruded with a bevel, MeshPhysicalMaterial with clearcoat and slight transparency, each a different soft colour, with a simple white 3D symbol on the face. Never use a real app logo or brand; describe tool types.
44
+ - Background: a soft three-colour gradient (mint #c7f0e4, sky #c8dcff, peach #ffd9c7) painted in 2D behind a transparent WebGL canvas, lit by two coloured point lights for glassy highlights.
45
+ - One icon is in focus at a time: it swings to the centre, grows and faces the camera; the rest float smaller and dimmer behind it.
46
+ - Info card: frosted white (rgba white 0.7, white border) under the focused icon with a mono number, an Inter 800 name and one plain benefit line.
47
+ - Type: Inter 900 headline in near-black (#0f1a2a), second line blue (#2d5bff); JetBrains Mono for numbers and tags.
48
+ - Pace: icons arrive in the first 1.5 seconds, then one focus every 2 seconds, and the line-up holds about 2 seconds.
49
+
50
+ RULES THAT KEEP IT IN STYLE
51
+ - Change the story, the words and the props; do not change the medium. Draw every subject accurately for my topic and double-check any facts and numbers you show.
52
+ - Every frame is a pure function of t. Use CM.rng(seed) and CM.noise1(seed) for all randomness, never Math.random. Caching static layers is fine.
53
+ - It will be watched on phones: at 720x1280 keep the headline at 64 px or more, the card title at 48 px or more and card text at 28 px or more. Fill the frame.
54
+ - Keep each frame fast, well under 50 ms.
55
+ - Give my topic its own demo content; do not reuse the reference's story ("5 AI tools that save hours (tool types, not brands)") unless my content asks for it.
56
+
57
+ SOUND
58
+ - Bed: a bright, airy pad with light hats.
59
+ - Map events to the kit: icons arriving get soft glassy pings; each focus gets a soft "whoosh" and a two-note glass chime (SND.chime) that climbs; card text gets a soft tick; the line-up gets a rising arpeggio and "shimmer".
60
+ - Full mix (no voiceover): keep the bright pad, at most about 3 sounds at once, and a clean glass chime on each focus.
61
+ - Sync is everything: the sound score reads the same TL times as the picture.
62
+
63
+ IF YOU CAN RUN CODE
64
+ Render an MP4: open the file in headless Chrome, call window.seek(i / 30) for every frame, capture the canvas and pipe the frames into ffmpeg. Render the effects with SFX.render(window.scoreSound, window.DURATION, 48000, { voiceover: false }), which returns interleaved stereo floats, and mux them in. With a voiceover, render the effects with { voiceover: true } and mix them under my audio file.
65
+
66
+ STYLE CARD
67
+ Name: Glass Icons
68
+ Family: 3D
69
+ Look: Glossy translucent 3D app icons in Three.js, floating on a soft mint, sky and peach gradient, each with a white symbol on its face, frosted labels and a crisp black headline.
70
+ How it explains: The icons float in from depth into a loose stack, then one at a time an icon swings forward to the centre, turns to face you and gets a frosted card with its number, name and one-line benefit while the others dim back. The takeaway lines them all up in a row.
71
+
72
+ ```
73
+
74
+ ---
75
+
76
+ ## Voiceover & Storyboard Prompt
77
+
78
+ ```markdown
79
+ I want an animated video in the "Glass Icons" style (3D) from the Motion Graphics Style Library. Below is a complete, working reference animation in this style: its core helpers (CM), a synthesized sound kit (SFX), the style's scenes, its sound score and the player page. Treat that file as the ground truth for how this style looks, moves and sounds, and rebuild it around my content.
80
+
81
+ MY CONTENT
82
+ [No topic yet. Ask me for my topic or script before building anything.]
83
+
84
+ VOICEOVER TIMING
85
+ [No timing pasted yet. Before building, ask me for a word-level SRT or word timestamps of my voiceover. If I only have the audio file, offer to transcribe it into word timings.]
86
+
87
+ How to use the timing:
88
+ - Turn it into a list of words with start and end times in seconds. If the timing is per line only, spread each line's words across its span in proportion to their length.
89
+ - Set the duration to the last word's end plus about 1.2 seconds.
90
+ - Build the timeline (TL) from these times. An icon swings forward on the first word of its item, its name lands on that word, and the line-up lands on the first word of the takeaway.
91
+ - Cut between scenes only at idea boundaries (a new step, a new claim, a reveal), never mid-word, and finish each cut just before the next idea's first spoken word.
92
+ - Put the emphasis moves on stressed words. A counter lands at the exact moment its number is spoken.
93
+ - Keep the player's "Load voiceover" button working so I can drop in my audio and hear it in sync.
94
+
95
+ STORYBOARD FIRST
96
+ Before building, show me a storyboard and wait for my OK:
97
+ - One HTML page (an artifact if you can) with a grid of 6 to 10 panels, one per beat. Draw each panel on a canvas with the reference's own helpers, scene drawing and finishing pass, so the stills already look like the finished piece. No animation or sound yet.
98
+ - Under each panel: the beat number, its start and end time, the exact on-screen words, the camera move or emphasis, how it gets there from the previous beat (the same scene continuing, or a cut and which kind), and its key sounds.
99
+ - Below the grid, list any facts or numbers you had to assume.
100
+ When I approve it (or after my changes), build the full animation and reuse the storyboard's drawing code.
101
+
102
+ WHAT TO BUILD
103
+ One self-contained HTML file (an artifact if you can), built on the reference file below:
104
+ - Keep the page, the player (play/pause, scrub, time, sound toggle, loop, Load voiceover) and the CM and SFX blocks unchanged. Also keep the shared library helpers block (track, txt, chip, slam, rise, wordLine, hd, footage, composite, cam, punch, makeGL and the sound helpers) unchanged.
105
+ - Keep the canvas at 720x1280 (9:16, for Shorts, Reels and TikTok).
106
+ - Keep the Three.js r128 script tag and build every 3D object in code: no models or textures from the web.
107
+ - Replace the demo's story: TL, ICONS (colours, symbols, names, one-liners), the focus order, the headline and takeaway text and scoreSound(). Keep and reuse the style's helpers (makeGL(), the rounded-square extruded icon geometry with clearcoat glass, the coloured point lights, the float/focus/line-up motion in pose(), the frosted info card, the gradient background, chip() and wordLine()).
108
+ - Aim for 15 to 40 seconds unless my content needs more, and set the duration in TL.D.
109
+ - Keep window.seek(t), window.DURATION, window.scoreSound and window.SFX exposed, so the video can be rendered frame by frame.
110
+ - Load the style's fonts before the first draw, as the reference does: Inter (500 to 900), JetBrains Mono (700).
111
+
112
+ THE STYLE
113
+ - Icons are real 3D: rounded squares extruded with a bevel, MeshPhysicalMaterial with clearcoat and slight transparency, each a different soft colour, with a simple white 3D symbol on the face. Never use a real app logo or brand; describe tool types.
114
+ - Background: a soft three-colour gradient (mint #c7f0e4, sky #c8dcff, peach #ffd9c7) painted in 2D behind a transparent WebGL canvas, lit by two coloured point lights for glassy highlights.
115
+ - One icon is in focus at a time: it swings to the centre, grows and faces the camera; the rest float smaller and dimmer behind it.
116
+ - Info card: frosted white (rgba white 0.7, white border) under the focused icon with a mono number, an Inter 800 name and one plain benefit line.
117
+ - Type: Inter 900 headline in near-black (#0f1a2a), second line blue (#2d5bff); JetBrains Mono for numbers and tags.
118
+ - Pace: icons arrive in the first 1.5 seconds, then one focus every 2 seconds, and the line-up holds about 2 seconds.
119
+
120
+ RULES THAT KEEP IT IN STYLE
121
+ - Change the story, the words and the props; do not change the medium. Draw every subject accurately for my topic and double-check any facts and numbers you show.
122
+ - Every frame is a pure function of t. Use CM.rng(seed) and CM.noise1(seed) for all randomness, never Math.random. Caching static layers is fine.
123
+ - It will be watched on phones: at 720x1280 keep the headline at 64 px or more, the card title at 48 px or more and card text at 28 px or more. Fill the frame.
124
+ - Keep each frame fast, well under 50 ms.
125
+ - Give my topic its own demo content; do not reuse the reference's story ("5 AI tools that save hours (tool types, not brands)") unless my content asks for it.
126
+
127
+ SOUND
128
+ - Bed: a bright, airy pad with light hats.
129
+ - Map events to the kit: icons arriving get soft glassy pings; each focus gets a soft "whoosh" and a two-note glass chime (SND.chime) that climbs; card text gets a soft tick; the line-up gets a rising arpeggio and "shimmer".
130
+ - Voiceover mix: the player calls SFX.live with { voiceover: true } once narration is loaded. Mark chimes and ticks soft: true and keep the whoosh quiet.
131
+ - Sync is everything: the sound score reads the same TL times as the picture.
132
+
133
+ IF YOU CAN RUN CODE
134
+ Render an MP4: open the file in headless Chrome, call window.seek(i / 30) for every frame, capture the canvas and pipe the frames into ffmpeg. Render the effects with SFX.render(window.scoreSound, window.DURATION, 48000, { voiceover: false }), which returns interleaved stereo floats, and mux them in. With a voiceover, render the effects with { voiceover: true } and mix them under my audio file.
135
+
136
+ STYLE CARD
137
+ Name: Glass Icons
138
+ Family: 3D
139
+ Look: Glossy translucent 3D app icons in Three.js, floating on a soft mint, sky and peach gradient, each with a white symbol on its face, frosted labels and a crisp black headline.
140
+ How it explains: The icons float in from depth into a loose stack, then one at a time an icon swings forward to the centre, turns to face you and gets a frosted card with its number, name and one-line benefit while the others dim back. The takeaway lines them all up in a row.
141
+
142
+ ```
143
+
144
+ ---
145
+
146
+ ## Reference Source Code Location
147
+ File: `plugins/motion-styles/sources/glass-icons.html` (58.3 KB)
@@ -0,0 +1,145 @@
1
+ # Motion graphics style #55: Glitch Pack
2
+
3
+ - **ID:** `glitch-pack`
4
+ - **Family:** Edit Overlay
5
+ - **Canvas:** `720x1280`
6
+ - **Fonts:** Anton, JetBrains Mono (700)
7
+ - **Three.js 3D:** No
8
+ - **Footage Overlay:** Yes
9
+
10
+ ## Look
11
+ A digital-glitch toolkit: RGB-split titles in Anton, horizontal slice displacement, block noise in red and cyan, scanlines, a "SYSTEM REBOOT" terminal tag and glitch transitions that tear your footage apart and put it back together.
12
+
13
+ ## How It Explains
14
+ The intro title glitches on (RGB split, slices, noise) and resolves crisp, then a glitch transition tears into your clip. Short glitch hits punctuate key words over the footage, and an outro glitch closes it with a version tag.
15
+
16
+ ## Demo
17
+ A tech-channel intro and transitions ("NEW UPDATE")
18
+
19
+ ---
20
+
21
+ ## Ready-to-Copy Prompt (Standard)
22
+
23
+ ```markdown
24
+ I want an animated video in the "Glitch Pack" style (Edit Overlay) from the Motion Graphics Style Library. Below is a complete, working reference animation in this style: its core helpers (CM), a synthesized sound kit (SFX), the style's scenes, its sound score and the player page. Treat that file as the ground truth for how this style looks, moves and sounds, and rebuild it around my content.
25
+
26
+ MY CONTENT
27
+ [No topic yet. Ask me for my topic or script before building anything.]
28
+
29
+ BUILD DIRECTLY
30
+ Skip the storyboard and build the full animation now. Afterwards, list any facts or numbers you assumed.
31
+
32
+ WHAT TO BUILD
33
+ One self-contained HTML file (an artifact if you can), built on the reference file below:
34
+ - Keep the page, the player (play/pause, scrub, time, sound toggle, loop, Load voiceover, Load footage) and the CM and SFX blocks unchanged. Also keep the shared library helpers block (track, txt, chip, slam, rise, wordLine, hd, footage, composite, cam, punch, makeGL and the sound helpers) unchanged.
35
+ - Keep the canvas at 720x1280 (9:16, for Shorts, Reels and TikTok).
36
+ - Keep window.loadFootage(url) and the Load footage button working so I can drop in my own clip and see the overlay on it; until then the stand-in presenter shows where I sit in the frame.
37
+ - Replace the demo's story: TL, the title words, HITS (glitch accents over the footage), the tags and scoreSound(); load your clip with Load footage. Keep and reuse the style's helpers (footage(), the RGB split title, slice displacement from the canvas itself, block noise, scanlines and vignette, the glitch transition (tear in, tear out), the intensity curve glitchAt(t) and the mono tags).
38
+ - Aim for 15 to 40 seconds unless my content needs more, and set the duration in TL.D.
39
+ - Keep window.seek(t), window.DURATION, window.scoreSound and window.SFX exposed, so the video can be rendered frame by frame.
40
+ - Load the style's fonts before the first draw, as the reference does: Anton, JetBrains Mono (700).
41
+
42
+ THE STYLE
43
+ - Glitch is a seasoning: intense for the intro, transitions and 2 to 4 accent words, otherwise your footage plays clean.
44
+ - RGB split: draw the title three times (red #ff0040, cyan #00ffd5 with lighter blending, then white) with offsets that follow glitchAt(t).
45
+ - Slices: copy horizontal bands of the canvas onto itself shifted left or right; block noise: small red, cyan and white rectangles.
46
+ - Scanlines every 3 px and a dark vignette on top; a small mono tag ("> SYSTEM REBOOT", "v2.0") in a corner.
47
+ - Respect photosensitivity: no full-frame white flashes faster than 3 a second.
48
+
49
+ RULES THAT KEEP IT IN STYLE
50
+ - Change the story, the words and the props; do not change the medium. Draw every subject accurately for my topic and double-check any facts and numbers you show.
51
+ - Every frame is a pure function of t. Use CM.rng(seed) and CM.noise1(seed) for all randomness, never Math.random. Caching static layers is fine.
52
+ - It will be watched on phones: at 720x1280 keep the title at 140 px or more, accent words at 90 px or more and tags at 22 px or more. Fill the frame.
53
+ - Keep each frame fast, well under 50 ms.
54
+ - Give my topic its own demo content; do not reuse the reference's story ("A tech-channel intro and transitions ("NEW UPDATE")") unless my content asks for it.
55
+
56
+ SOUND
57
+ - No music bed needed; the glitches are the sound.
58
+ - Map events to the kit: glitch moments get "glitch" plus bit-crushed square zaps; the title resolve gets "slam" and a low sub drop (a falling sine); transitions get "whoosh" with a "glitch"; tags get small beeps.
59
+ - Full mix (no voiceover): digital stutters, bit-crushed zaps and a low sub drop on the title and transitions.
60
+ - Sync is everything: the sound score reads the same TL times as the picture.
61
+
62
+ IF YOU CAN RUN CODE
63
+ Render an MP4: open the file in headless Chrome, call window.seek(i / 30) for every frame, capture the canvas and pipe the frames into ffmpeg. Render the effects with SFX.render(window.scoreSound, window.DURATION, 48000, { voiceover: false }), which returns interleaved stereo floats, and mux them in. With a voiceover, render the effects with { voiceover: true } and mix them under my audio file.
64
+
65
+ STYLE CARD
66
+ Name: Glitch Pack
67
+ Family: Edit Overlay
68
+ Look: A digital-glitch toolkit: RGB-split titles in Anton, horizontal slice displacement, block noise in red and cyan, scanlines, a "SYSTEM REBOOT" terminal tag and glitch transitions that tear your footage apart and put it back together.
69
+ How it explains: The intro title glitches on (RGB split, slices, noise) and resolves crisp, then a glitch transition tears into your clip. Short glitch hits punctuate key words over the footage, and an outro glitch closes it with a version tag.
70
+
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Voiceover & Storyboard Prompt
76
+
77
+ ```markdown
78
+ I want an animated video in the "Glitch Pack" style (Edit Overlay) from the Motion Graphics Style Library. Below is a complete, working reference animation in this style: its core helpers (CM), a synthesized sound kit (SFX), the style's scenes, its sound score and the player page. Treat that file as the ground truth for how this style looks, moves and sounds, and rebuild it around my content.
79
+
80
+ MY CONTENT
81
+ [No topic yet. Ask me for my topic or script before building anything.]
82
+
83
+ VOICEOVER TIMING
84
+ [No timing pasted yet. Before building, ask me for a word-level SRT or word timestamps of my voiceover. If I only have the audio file, offer to transcribe it into word timings.]
85
+
86
+ How to use the timing:
87
+ - Turn it into a list of words with start and end times in seconds. If the timing is per line only, spread each line's words across its span in proportion to their length.
88
+ - Set the duration to the last word's end plus about 1.2 seconds.
89
+ - Build the timeline (TL) from these times. The title resolves on the first word, transitions hit on cuts, and each accent glitch lands on its stressed word for 0.2 to 0.4 seconds.
90
+ - Cut between scenes only at idea boundaries (a new step, a new claim, a reveal), never mid-word, and finish each cut just before the next idea's first spoken word.
91
+ - Put the emphasis moves on stressed words. A counter lands at the exact moment its number is spoken.
92
+ - Keep the player's "Load voiceover" button working so I can drop in my audio and hear it in sync.
93
+
94
+ STORYBOARD FIRST
95
+ Before building, show me a storyboard and wait for my OK:
96
+ - One HTML page (an artifact if you can) with a grid of 6 to 10 panels, one per beat. Draw each panel on a canvas with the reference's own helpers, scene drawing and finishing pass, so the stills already look like the finished piece. No animation or sound yet.
97
+ - Under each panel: the beat number, its start and end time, the exact on-screen words, the camera move or emphasis, how it gets there from the previous beat (the same scene continuing, or a cut and which kind), and its key sounds.
98
+ - Below the grid, list any facts or numbers you had to assume.
99
+ When I approve it (or after my changes), build the full animation and reuse the storyboard's drawing code.
100
+
101
+ WHAT TO BUILD
102
+ One self-contained HTML file (an artifact if you can), built on the reference file below:
103
+ - Keep the page, the player (play/pause, scrub, time, sound toggle, loop, Load voiceover, Load footage) and the CM and SFX blocks unchanged. Also keep the shared library helpers block (track, txt, chip, slam, rise, wordLine, hd, footage, composite, cam, punch, makeGL and the sound helpers) unchanged.
104
+ - Keep the canvas at 720x1280 (9:16, for Shorts, Reels and TikTok).
105
+ - Keep window.loadFootage(url) and the Load footage button working so I can drop in my own clip and see the overlay on it; until then the stand-in presenter shows where I sit in the frame.
106
+ - Replace the demo's story: TL, the title words, HITS (glitch accents over the footage), the tags and scoreSound(); load your clip with Load footage. Keep and reuse the style's helpers (footage(), the RGB split title, slice displacement from the canvas itself, block noise, scanlines and vignette, the glitch transition (tear in, tear out), the intensity curve glitchAt(t) and the mono tags).
107
+ - Aim for 15 to 40 seconds unless my content needs more, and set the duration in TL.D.
108
+ - Keep window.seek(t), window.DURATION, window.scoreSound and window.SFX exposed, so the video can be rendered frame by frame.
109
+ - Load the style's fonts before the first draw, as the reference does: Anton, JetBrains Mono (700).
110
+
111
+ THE STYLE
112
+ - Glitch is a seasoning: intense for the intro, transitions and 2 to 4 accent words, otherwise your footage plays clean.
113
+ - RGB split: draw the title three times (red #ff0040, cyan #00ffd5 with lighter blending, then white) with offsets that follow glitchAt(t).
114
+ - Slices: copy horizontal bands of the canvas onto itself shifted left or right; block noise: small red, cyan and white rectangles.
115
+ - Scanlines every 3 px and a dark vignette on top; a small mono tag ("> SYSTEM REBOOT", "v2.0") in a corner.
116
+ - Respect photosensitivity: no full-frame white flashes faster than 3 a second.
117
+
118
+ RULES THAT KEEP IT IN STYLE
119
+ - Change the story, the words and the props; do not change the medium. Draw every subject accurately for my topic and double-check any facts and numbers you show.
120
+ - Every frame is a pure function of t. Use CM.rng(seed) and CM.noise1(seed) for all randomness, never Math.random. Caching static layers is fine.
121
+ - It will be watched on phones: at 720x1280 keep the title at 140 px or more, accent words at 90 px or more and tags at 22 px or more. Fill the frame.
122
+ - Keep each frame fast, well under 50 ms.
123
+ - Give my topic its own demo content; do not reuse the reference's story ("A tech-channel intro and transitions ("NEW UPDATE")") unless my content asks for it.
124
+
125
+ SOUND
126
+ - No music bed needed; the glitches are the sound.
127
+ - Map events to the kit: glitch moments get "glitch" plus bit-crushed square zaps; the title resolve gets "slam" and a low sub drop (a falling sine); transitions get "whoosh" with a "glitch"; tags get small beeps.
128
+ - Voiceover mix: the player calls SFX.live with { voiceover: true } once narration is loaded. Keep glitch sounds short and soft: true.
129
+ - Sync is everything: the sound score reads the same TL times as the picture.
130
+
131
+ IF YOU CAN RUN CODE
132
+ Render an MP4: open the file in headless Chrome, call window.seek(i / 30) for every frame, capture the canvas and pipe the frames into ffmpeg. Render the effects with SFX.render(window.scoreSound, window.DURATION, 48000, { voiceover: false }), which returns interleaved stereo floats, and mux them in. With a voiceover, render the effects with { voiceover: true } and mix them under my audio file.
133
+
134
+ STYLE CARD
135
+ Name: Glitch Pack
136
+ Family: Edit Overlay
137
+ Look: A digital-glitch toolkit: RGB-split titles in Anton, horizontal slice displacement, block noise in red and cyan, scanlines, a "SYSTEM REBOOT" terminal tag and glitch transitions that tear your footage apart and put it back together.
138
+ How it explains: The intro title glitches on (RGB split, slices, noise) and resolves crisp, then a glitch transition tears into your clip. Short glitch hits punctuate key words over the footage, and an outro glitch closes it with a version tag.
139
+
140
+ ```
141
+
142
+ ---
143
+
144
+ ## Reference Source Code Location
145
+ File: `plugins/motion-styles/sources/glitch-pack.html` (55.5 KB)
@@ -0,0 +1,147 @@
1
+ # Motion graphics style #17: Globe Arcs
2
+
3
+ - **ID:** `globe-arcs`
4
+ - **Family:** 3D
5
+ - **Canvas:** `720x1280`
6
+ - **Fonts:** Space Grotesk (500 and 700), JetBrains Mono (700)
7
+ - **Three.js 3D:** Yes
8
+ - **Footage Overlay:** No
9
+
10
+ ## Look
11
+ A dark navy globe made of glowing cyan dots in Three.js, turning slowly in a starfield, with warm amber route arcs that draw themselves between pins and a soft blue atmosphere glow.
12
+
13
+ ## How It Explains
14
+ The globe turns into view, a pin drops at the start, then each route arcs up off the surface and lands on its destination while a small dot travels along it. Labels pop at the ends and a counter adds up the distance before the takeaway.
15
+
16
+ ## Demo
17
+ Where your coffee travels
18
+
19
+ ---
20
+
21
+ ## Ready-to-Copy Prompt (Standard)
22
+
23
+ ```markdown
24
+ I want an animated video in the "Globe Arcs" style (3D) from the Motion Graphics Style Library. Below is a complete, working reference animation in this style: its core helpers (CM), a synthesized sound kit (SFX), the style's scenes, its sound score and the player page. Treat that file as the ground truth for how this style looks, moves and sounds, and rebuild it around my content.
25
+
26
+ MY CONTENT
27
+ [No topic yet. Ask me for my topic or script before building anything.]
28
+
29
+ BUILD DIRECTLY
30
+ Skip the storyboard and build the full animation now. Afterwards, list any facts or numbers you assumed.
31
+
32
+ WHAT TO BUILD
33
+ One self-contained HTML file (an artifact if you can), built on the reference file below:
34
+ - Keep the page, the player (play/pause, scrub, time, sound toggle, loop, Load voiceover) and the CM and SFX blocks unchanged. Also keep the shared library helpers block (track, txt, chip, slam, rise, wordLine, hd, footage, composite, cam, punch, makeGL and the sound helpers) unchanged.
35
+ - Keep the canvas at 720x1280 (9:16, for Shorts, Reels and TikTok).
36
+ - Keep the Three.js r128 script tag and build every 3D object in code: no models or textures from the web.
37
+ - Replace the demo's story: TL, the land mask in landAt(), ROUTES (lat/lon pairs and names), the travelling dot, labels, counter, headline and takeaway text and scoreSound(). Keep and reuse the style's helpers (makeGL(), the dotted globe built from landAt(), ll() lat/lon placement, arcs as growing tubes (setDrawRange) on great-circle curves, pins with glow, the atmosphere pass, the starfield, proj3() labels, chip() and wordLine()).
38
+ - Aim for 15 to 40 seconds unless my content needs more, and set the duration in TL.D.
39
+ - Keep window.seek(t), window.DURATION, window.scoreSound and window.SFX exposed, so the video can be rendered frame by frame.
40
+ - Load the style's fonts before the first draw, as the reference does: Space Grotesk (500 and 700), JetBrains Mono (700).
41
+
42
+ THE STYLE
43
+ - The globe is a dark sphere plus thousands of small cyan points placed where land is. For a real-world topic, make landAt(lat, lon) follow real continents (simple polygons or a coarse mask is fine) so routes start and end in the right places.
44
+ - Routes are amber (#ffb547) tubes on great-circle arcs that lift off the surface (higher for longer routes) and grow with setDrawRange. Pins are small glowing spheres.
45
+ - Space: near-black navy (#040913), a fixed starfield, and a soft blue atmosphere ring painted in 2D behind the labels.
46
+ - Type: Space Grotesk 700 headline in white with the second line amber; JetBrains Mono for place chips (amber fill, dark text) and distances.
47
+ - Use real places, real distances (say "about") and real times.
48
+ - Pace: the globe turns into position in about 1.5 seconds, then one route every 1.5 to 2 seconds.
49
+
50
+ RULES THAT KEEP IT IN STYLE
51
+ - Change the story, the words and the props; do not change the medium. Draw every subject accurately for my topic and double-check any facts and numbers you show.
52
+ - Every frame is a pure function of t. Use CM.rng(seed) and CM.noise1(seed) for all randomness, never Math.random. Caching static layers is fine.
53
+ - It will be watched on phones: at 720x1280 keep the headline at 60 px or more, place labels at 22 px or more and the counter at 60 px or more. Fill the frame.
54
+ - Keep each frame fast, well under 50 ms.
55
+ - Give my topic its own demo content; do not reuse the reference's story ("Where your coffee travels") unless my content asks for it.
56
+
57
+ SOUND
58
+ - Bed: an airy, slow pad with a soft low drone.
59
+ - Map events to the kit: pins get a soft sonar ping (a sine with long verb); each arc gets a rising airy "whoosh"; the travelling dot gets a faint tick trail; the counter "tick"s when the shown number changes; the takeaway gets "shimmer".
60
+ - Full mix (no voiceover): keep the airy pad, at most about 3 sounds at once, sonar pings for pins.
61
+ - Sync is everything: the sound score reads the same TL times as the picture.
62
+
63
+ IF YOU CAN RUN CODE
64
+ Render an MP4: open the file in headless Chrome, call window.seek(i / 30) for every frame, capture the canvas and pipe the frames into ffmpeg. Render the effects with SFX.render(window.scoreSound, window.DURATION, 48000, { voiceover: false }), which returns interleaved stereo floats, and mux them in. With a voiceover, render the effects with { voiceover: true } and mix them under my audio file.
65
+
66
+ STYLE CARD
67
+ Name: Globe Arcs
68
+ Family: 3D
69
+ Look: A dark navy globe made of glowing cyan dots in Three.js, turning slowly in a starfield, with warm amber route arcs that draw themselves between pins and a soft blue atmosphere glow.
70
+ How it explains: The globe turns into view, a pin drops at the start, then each route arcs up off the surface and lands on its destination while a small dot travels along it. Labels pop at the ends and a counter adds up the distance before the takeaway.
71
+
72
+ ```
73
+
74
+ ---
75
+
76
+ ## Voiceover & Storyboard Prompt
77
+
78
+ ```markdown
79
+ I want an animated video in the "Globe Arcs" style (3D) from the Motion Graphics Style Library. Below is a complete, working reference animation in this style: its core helpers (CM), a synthesized sound kit (SFX), the style's scenes, its sound score and the player page. Treat that file as the ground truth for how this style looks, moves and sounds, and rebuild it around my content.
80
+
81
+ MY CONTENT
82
+ [No topic yet. Ask me for my topic or script before building anything.]
83
+
84
+ VOICEOVER TIMING
85
+ [No timing pasted yet. Before building, ask me for a word-level SRT or word timestamps of my voiceover. If I only have the audio file, offer to transcribe it into word timings.]
86
+
87
+ How to use the timing:
88
+ - Turn it into a list of words with start and end times in seconds. If the timing is per line only, spread each line's words across its span in proportion to their length.
89
+ - Set the duration to the last word's end plus about 1.2 seconds.
90
+ - Build the timeline (TL) from these times. A route starts drawing as its start is named and lands on its destination word, its pin glows on the same word, and the counter locks on the last spoken syllable of the distance.
91
+ - Cut between scenes only at idea boundaries (a new step, a new claim, a reveal), never mid-word, and finish each cut just before the next idea's first spoken word.
92
+ - Put the emphasis moves on stressed words. A counter lands at the exact moment its number is spoken.
93
+ - Keep the player's "Load voiceover" button working so I can drop in my audio and hear it in sync.
94
+
95
+ STORYBOARD FIRST
96
+ Before building, show me a storyboard and wait for my OK:
97
+ - One HTML page (an artifact if you can) with a grid of 6 to 10 panels, one per beat. Draw each panel on a canvas with the reference's own helpers, scene drawing and finishing pass, so the stills already look like the finished piece. No animation or sound yet.
98
+ - Under each panel: the beat number, its start and end time, the exact on-screen words, the camera move or emphasis, how it gets there from the previous beat (the same scene continuing, or a cut and which kind), and its key sounds.
99
+ - Below the grid, list any facts or numbers you had to assume.
100
+ When I approve it (or after my changes), build the full animation and reuse the storyboard's drawing code.
101
+
102
+ WHAT TO BUILD
103
+ One self-contained HTML file (an artifact if you can), built on the reference file below:
104
+ - Keep the page, the player (play/pause, scrub, time, sound toggle, loop, Load voiceover) and the CM and SFX blocks unchanged. Also keep the shared library helpers block (track, txt, chip, slam, rise, wordLine, hd, footage, composite, cam, punch, makeGL and the sound helpers) unchanged.
105
+ - Keep the canvas at 720x1280 (9:16, for Shorts, Reels and TikTok).
106
+ - Keep the Three.js r128 script tag and build every 3D object in code: no models or textures from the web.
107
+ - Replace the demo's story: TL, the land mask in landAt(), ROUTES (lat/lon pairs and names), the travelling dot, labels, counter, headline and takeaway text and scoreSound(). Keep and reuse the style's helpers (makeGL(), the dotted globe built from landAt(), ll() lat/lon placement, arcs as growing tubes (setDrawRange) on great-circle curves, pins with glow, the atmosphere pass, the starfield, proj3() labels, chip() and wordLine()).
108
+ - Aim for 15 to 40 seconds unless my content needs more, and set the duration in TL.D.
109
+ - Keep window.seek(t), window.DURATION, window.scoreSound and window.SFX exposed, so the video can be rendered frame by frame.
110
+ - Load the style's fonts before the first draw, as the reference does: Space Grotesk (500 and 700), JetBrains Mono (700).
111
+
112
+ THE STYLE
113
+ - The globe is a dark sphere plus thousands of small cyan points placed where land is. For a real-world topic, make landAt(lat, lon) follow real continents (simple polygons or a coarse mask is fine) so routes start and end in the right places.
114
+ - Routes are amber (#ffb547) tubes on great-circle arcs that lift off the surface (higher for longer routes) and grow with setDrawRange. Pins are small glowing spheres.
115
+ - Space: near-black navy (#040913), a fixed starfield, and a soft blue atmosphere ring painted in 2D behind the labels.
116
+ - Type: Space Grotesk 700 headline in white with the second line amber; JetBrains Mono for place chips (amber fill, dark text) and distances.
117
+ - Use real places, real distances (say "about") and real times.
118
+ - Pace: the globe turns into position in about 1.5 seconds, then one route every 1.5 to 2 seconds.
119
+
120
+ RULES THAT KEEP IT IN STYLE
121
+ - Change the story, the words and the props; do not change the medium. Draw every subject accurately for my topic and double-check any facts and numbers you show.
122
+ - Every frame is a pure function of t. Use CM.rng(seed) and CM.noise1(seed) for all randomness, never Math.random. Caching static layers is fine.
123
+ - It will be watched on phones: at 720x1280 keep the headline at 60 px or more, place labels at 22 px or more and the counter at 60 px or more. Fill the frame.
124
+ - Keep each frame fast, well under 50 ms.
125
+ - Give my topic its own demo content; do not reuse the reference's story ("Where your coffee travels") unless my content asks for it.
126
+
127
+ SOUND
128
+ - Bed: an airy, slow pad with a soft low drone.
129
+ - Map events to the kit: pins get a soft sonar ping (a sine with long verb); each arc gets a rising airy "whoosh"; the travelling dot gets a faint tick trail; the counter "tick"s when the shown number changes; the takeaway gets "shimmer".
130
+ - Voiceover mix: the player calls SFX.live with { voiceover: true } once narration is loaded. Mark pings and ticks soft: true and keep whooshes low.
131
+ - Sync is everything: the sound score reads the same TL times as the picture.
132
+
133
+ IF YOU CAN RUN CODE
134
+ Render an MP4: open the file in headless Chrome, call window.seek(i / 30) for every frame, capture the canvas and pipe the frames into ffmpeg. Render the effects with SFX.render(window.scoreSound, window.DURATION, 48000, { voiceover: false }), which returns interleaved stereo floats, and mux them in. With a voiceover, render the effects with { voiceover: true } and mix them under my audio file.
135
+
136
+ STYLE CARD
137
+ Name: Globe Arcs
138
+ Family: 3D
139
+ Look: A dark navy globe made of glowing cyan dots in Three.js, turning slowly in a starfield, with warm amber route arcs that draw themselves between pins and a soft blue atmosphere glow.
140
+ How it explains: The globe turns into view, a pin drops at the start, then each route arcs up off the surface and lands on its destination while a small dot travels along it. Labels pop at the ends and a counter adds up the distance before the takeaway.
141
+
142
+ ```
143
+
144
+ ---
145
+
146
+ ## Reference Source Code Location
147
+ File: `plugins/motion-styles/sources/globe-arcs.html` (60.2 KB)