@autoaiai/aicut 0.1.11 → 0.1.13

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 (1063) hide show
  1. package/MANUAL.md +94 -94
  2. package/package.json +1 -1
  3. package/skills/aicut-motion/SKILL.md +69 -3
  4. package/skills/aicut-motion/THIRD_PARTY_NOTICES.md +14 -0
  5. package/skills/aicut-motion/assets/atlas/lib/harness.js +116 -0
  6. package/skills/aicut-motion/assets/atlas/lib/sound.js +274 -0
  7. package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/code.js +937 -0
  8. package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/poster.jpg +0 -0
  9. package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/style.json +13 -0
  10. package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/code.js +909 -0
  11. package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/poster.jpg +0 -0
  12. package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/style.json +13 -0
  13. package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/code.js +881 -0
  14. package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/poster.jpg +0 -0
  15. package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/style.json +13 -0
  16. package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/code.js +897 -0
  17. package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/poster.jpg +0 -0
  18. package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/style.json +13 -0
  19. package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/code.js +814 -0
  20. package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/poster.jpg +0 -0
  21. package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/style.json +13 -0
  22. package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/code.js +990 -0
  23. package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/poster.jpg +0 -0
  24. package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/style.json +13 -0
  25. package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/code.js +994 -0
  26. package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/poster.jpg +0 -0
  27. package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/style.json +13 -0
  28. package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/code.js +792 -0
  29. package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/poster.jpg +0 -0
  30. package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/style.json +13 -0
  31. package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/code.js +840 -0
  32. package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/poster.jpg +0 -0
  33. package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/style.json +13 -0
  34. package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/code.js +1126 -0
  35. package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/poster.jpg +0 -0
  36. package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/style.json +13 -0
  37. package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/code.js +854 -0
  38. package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/poster.jpg +0 -0
  39. package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/style.json +13 -0
  40. package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/code.js +1124 -0
  41. package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/poster.jpg +0 -0
  42. package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/style.json +13 -0
  43. package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/code.js +728 -0
  44. package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/poster.jpg +0 -0
  45. package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/style.json +13 -0
  46. package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/code.js +664 -0
  47. package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/poster.jpg +0 -0
  48. package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/style.json +13 -0
  49. package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/code.js +991 -0
  50. package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/poster.jpg +0 -0
  51. package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/style.json +13 -0
  52. package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/code.js +801 -0
  53. package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/poster.jpg +0 -0
  54. package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/style.json +13 -0
  55. package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/code.js +692 -0
  56. package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/poster.jpg +0 -0
  57. package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/style.json +13 -0
  58. package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/code.js +756 -0
  59. package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/poster.jpg +0 -0
  60. package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/style.json +13 -0
  61. package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/code.js +922 -0
  62. package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/poster.jpg +0 -0
  63. package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/style.json +13 -0
  64. package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/code.js +852 -0
  65. package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/poster.jpg +0 -0
  66. package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/style.json +13 -0
  67. package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/code.js +724 -0
  68. package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/poster.jpg +0 -0
  69. package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/style.json +13 -0
  70. package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/code.js +793 -0
  71. package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/poster.jpg +0 -0
  72. package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/style.json +13 -0
  73. package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/code.js +846 -0
  74. package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/poster.jpg +0 -0
  75. package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/style.json +13 -0
  76. package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/code.js +1008 -0
  77. package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/poster.jpg +0 -0
  78. package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/style.json +13 -0
  79. package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/code.js +680 -0
  80. package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/poster.jpg +0 -0
  81. package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/style.json +13 -0
  82. package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/code.js +633 -0
  83. package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/poster.jpg +0 -0
  84. package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/style.json +13 -0
  85. package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/code.js +757 -0
  86. package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/poster.jpg +0 -0
  87. package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/style.json +13 -0
  88. package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/code.js +828 -0
  89. package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/poster.jpg +0 -0
  90. package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/style.json +13 -0
  91. package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/code.js +697 -0
  92. package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/poster.jpg +0 -0
  93. package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/style.json +13 -0
  94. package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/code.js +687 -0
  95. package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/poster.jpg +0 -0
  96. package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/style.json +13 -0
  97. package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/code.js +727 -0
  98. package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/poster.jpg +0 -0
  99. package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/style.json +13 -0
  100. package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/code.js +903 -0
  101. package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/poster.jpg +0 -0
  102. package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/style.json +13 -0
  103. package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/code.js +662 -0
  104. package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/poster.jpg +0 -0
  105. package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/style.json +13 -0
  106. package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/code.js +951 -0
  107. package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/poster.jpg +0 -0
  108. package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/style.json +13 -0
  109. package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/code.js +759 -0
  110. package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/poster.jpg +0 -0
  111. package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/style.json +13 -0
  112. package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/code.js +738 -0
  113. package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/poster.jpg +0 -0
  114. package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/style.json +13 -0
  115. package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/code.js +793 -0
  116. package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/poster.jpg +0 -0
  117. package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/style.json +13 -0
  118. package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/code.js +673 -0
  119. package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/poster.jpg +0 -0
  120. package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/style.json +13 -0
  121. package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/code.js +907 -0
  122. package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/poster.jpg +0 -0
  123. package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/style.json +13 -0
  124. package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/code.js +833 -0
  125. package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/poster.jpg +0 -0
  126. package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/style.json +13 -0
  127. package/skills/aicut-motion/assets/atlas/styles/041-manga-page/code.js +845 -0
  128. package/skills/aicut-motion/assets/atlas/styles/041-manga-page/poster.jpg +0 -0
  129. package/skills/aicut-motion/assets/atlas/styles/041-manga-page/style.json +13 -0
  130. package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/code.js +496 -0
  131. package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/poster.jpg +0 -0
  132. package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/style.json +13 -0
  133. package/skills/aicut-motion/assets/atlas/styles/043-light-painting/code.js +635 -0
  134. package/skills/aicut-motion/assets/atlas/styles/043-light-painting/poster.jpg +0 -0
  135. package/skills/aicut-motion/assets/atlas/styles/043-light-painting/style.json +13 -0
  136. package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/code.js +799 -0
  137. package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/poster.jpg +0 -0
  138. package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/style.json +13 -0
  139. package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/code.js +547 -0
  140. package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/poster.jpg +0 -0
  141. package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/style.json +13 -0
  142. package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/code.js +592 -0
  143. package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/poster.jpg +0 -0
  144. package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/style.json +13 -0
  145. package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/code.js +768 -0
  146. package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/poster.jpg +0 -0
  147. package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/style.json +13 -0
  148. package/skills/aicut-motion/assets/atlas/styles/048-transit-map/code.js +666 -0
  149. package/skills/aicut-motion/assets/atlas/styles/048-transit-map/poster.jpg +0 -0
  150. package/skills/aicut-motion/assets/atlas/styles/048-transit-map/style.json +13 -0
  151. package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/code.js +559 -0
  152. package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/poster.jpg +0 -0
  153. package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/style.json +13 -0
  154. package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/code.js +943 -0
  155. package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/poster.jpg +0 -0
  156. package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/style.json +13 -0
  157. package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/code.js +606 -0
  158. package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/poster.jpg +0 -0
  159. package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/style.json +13 -0
  160. package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/code.js +730 -0
  161. package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/poster.jpg +0 -0
  162. package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/style.json +13 -0
  163. package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/code.js +782 -0
  164. package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/poster.jpg +0 -0
  165. package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/style.json +13 -0
  166. package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/code.js +504 -0
  167. package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/poster.jpg +0 -0
  168. package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/style.json +13 -0
  169. package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/code.js +517 -0
  170. package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/poster.jpg +0 -0
  171. package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/style.json +13 -0
  172. package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/code.js +713 -0
  173. package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/poster.jpg +0 -0
  174. package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/style.json +13 -0
  175. package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/code.js +717 -0
  176. package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/poster.jpg +0 -0
  177. package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/style.json +13 -0
  178. package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/code.js +540 -0
  179. package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/poster.jpg +0 -0
  180. package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/style.json +13 -0
  181. package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/code.js +524 -0
  182. package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/poster.jpg +0 -0
  183. package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/style.json +13 -0
  184. package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/code.js +934 -0
  185. package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/poster.jpg +0 -0
  186. package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/style.json +13 -0
  187. package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/code.js +690 -0
  188. package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/poster.jpg +0 -0
  189. package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/style.json +13 -0
  190. package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/code.js +612 -0
  191. package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/poster.jpg +0 -0
  192. package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/style.json +13 -0
  193. package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/code.js +666 -0
  194. package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/poster.jpg +0 -0
  195. package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/style.json +13 -0
  196. package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/code.js +651 -0
  197. package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/poster.jpg +0 -0
  198. package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/style.json +13 -0
  199. package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/code.js +656 -0
  200. package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/poster.jpg +0 -0
  201. package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/style.json +13 -0
  202. package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/code.js +672 -0
  203. package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/poster.jpg +0 -0
  204. package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/style.json +13 -0
  205. package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/code.js +548 -0
  206. package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/poster.jpg +0 -0
  207. package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/style.json +13 -0
  208. package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/code.js +989 -0
  209. package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/poster.jpg +0 -0
  210. package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/style.json +13 -0
  211. package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/code.js +440 -0
  212. package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/poster.jpg +0 -0
  213. package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/style.json +13 -0
  214. package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/code.js +895 -0
  215. package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/poster.jpg +0 -0
  216. package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/style.json +13 -0
  217. package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/code.js +563 -0
  218. package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/poster.jpg +0 -0
  219. package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/style.json +13 -0
  220. package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/code.js +627 -0
  221. package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/poster.jpg +0 -0
  222. package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/style.json +13 -0
  223. package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/code.js +1096 -0
  224. package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/poster.jpg +0 -0
  225. package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/style.json +13 -0
  226. package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/code.js +595 -0
  227. package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/poster.jpg +0 -0
  228. package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/style.json +13 -0
  229. package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/code.js +665 -0
  230. package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/poster.jpg +0 -0
  231. package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/style.json +13 -0
  232. package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/code.js +645 -0
  233. package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/poster.jpg +0 -0
  234. package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/style.json +13 -0
  235. package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/code.js +436 -0
  236. package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/poster.jpg +0 -0
  237. package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/style.json +13 -0
  238. package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/code.js +1237 -0
  239. package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/poster.jpg +0 -0
  240. package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/style.json +13 -0
  241. package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/code.js +622 -0
  242. package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/poster.jpg +0 -0
  243. package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/style.json +13 -0
  244. package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/code.js +524 -0
  245. package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/poster.jpg +0 -0
  246. package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/style.json +13 -0
  247. package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/code.js +689 -0
  248. package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/poster.jpg +0 -0
  249. package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/style.json +13 -0
  250. package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/code.js +574 -0
  251. package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/poster.jpg +0 -0
  252. package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/style.json +13 -0
  253. package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/code.js +469 -0
  254. package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/poster.jpg +0 -0
  255. package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/style.json +13 -0
  256. package/skills/aicut-motion/assets/atlas/styles/084-flow-field/code.js +531 -0
  257. package/skills/aicut-motion/assets/atlas/styles/084-flow-field/poster.jpg +0 -0
  258. package/skills/aicut-motion/assets/atlas/styles/084-flow-field/style.json +13 -0
  259. package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/code.js +675 -0
  260. package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/poster.jpg +0 -0
  261. package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/style.json +13 -0
  262. package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/code.js +609 -0
  263. package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/poster.jpg +0 -0
  264. package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/style.json +13 -0
  265. package/skills/aicut-motion/references/motion-delivery.md +55 -0
  266. package/skills/aicut-motion/references/style-index.json +690 -0
  267. package/skills/aicut-motion/references/style-research.md +73 -0
  268. package/skills/aicut-motion/references/style-selection.md +71 -0
  269. package/skills/aicut-motion/scripts/atlas-viewer.html +195 -0
  270. package/skills/aicut-motion/scripts/atlas.mjs +109 -0
  271. package/studio/server/fetch-github.mjs +14 -3
  272. package/studio/server/server.mjs +40 -3
  273. package/studio/server/skill-summaries.mjs +60 -0
  274. package/studio/server/skills.mjs +121 -7
  275. package/studio/server/styles-store.mjs +235 -0
  276. package/studio/server/template-posters.mjs +2 -2
  277. package/studio/server/templates-page.mjs +93 -93
  278. package/studio/server/templates.mjs +32 -7
  279. package/studio/ui/dist/assets/ExportCenter-DasulhAv.js +1 -0
  280. package/studio/ui/dist/assets/SettingsModal-BZw0Hz2_.js +2 -0
  281. package/studio/ui/dist/assets/es-C8XPZARI.js +1 -0
  282. package/studio/ui/dist/assets/index-BjJVmBzB.js +1623 -0
  283. package/studio/ui/dist/assets/index-C3BfKZFO.css +1 -0
  284. package/studio/ui/dist/assets/ja-BeNkdaEj.js +1 -0
  285. package/studio/ui/dist/assets/ko-DcTVhdzK.js +1 -0
  286. package/studio/ui/dist/assets/zh-CN-Cg51ctbL.js +1 -0
  287. package/studio/ui/dist/index.html +2 -2
  288. package/skills/30x-web-to-video/SKILL.md +0 -421
  289. package/skills/30x-web-to-video/examples/INDEX.md +0 -26
  290. package/skills/30x-web-to-video/references/animations.md +0 -539
  291. package/skills/30x-web-to-video/references/audio.md +0 -256
  292. package/skills/30x-web-to-video/references/components.md +0 -340
  293. package/skills/30x-web-to-video/references/lottie.md +0 -174
  294. package/skills/30x-web-to-video/references/visual-effects.md +0 -157
  295. package/skills/30x-web-to-video/remotion-best-practices/rules/audio.md +0 -169
  296. package/skills/30x-web-to-video/remotion-best-practices/rules/calculate-metadata.md +0 -134
  297. package/skills/30x-web-to-video/remotion-best-practices/rules/charts.md +0 -120
  298. package/skills/30x-web-to-video/remotion-best-practices/rules/compositions.md +0 -154
  299. package/skills/30x-web-to-video/remotion-best-practices/rules/ffmpeg.md +0 -38
  300. package/skills/30x-web-to-video/remotion-best-practices/rules/fonts.md +0 -152
  301. package/skills/3d-asset-generation/SKILL.md +0 -142
  302. package/skills/action-fight-prompt/SKILL.md +0 -136
  303. package/skills/action-fight-prompt/references/camera-and-impact.md +0 -64
  304. package/skills/action-fight-prompt/references/example-15s-duel.md +0 -59
  305. package/skills/action-fight-prompt/references/scene-patterns.md +0 -80
  306. package/skills/ad-creative-video/SKILL.md +0 -205
  307. package/skills/ad-creative-video/references/batch-ad-pipeline.md +0 -289
  308. package/skills/ad-creative-video/references/platform-specs.md +0 -72
  309. package/skills/after-effects/SKILL.md +0 -123
  310. package/skills/after-effects/references/export-recipes.md +0 -168
  311. package/skills/after-effects/references/expression-library.md +0 -184
  312. package/skills/after-effects/references/expressions.md +0 -134
  313. package/skills/after-effects/references/performance-triage.md +0 -138
  314. package/skills/after-effects/references/project-hygiene.md +0 -188
  315. package/skills/ai-media-quality-review/SKILL.md +0 -72
  316. package/skills/ai-product-video/SKILL.md +0 -296
  317. package/skills/ai-product-video/references/aesthetic-rules.md +0 -177
  318. package/skills/ai-product-video/references/final-review.md +0 -110
  319. package/skills/ai-product-video/references/guided-free-creation.md +0 -194
  320. package/skills/ai-product-video/references/music-beat-sync.md +0 -219
  321. package/skills/ai-product-video/references/pipeline.md +0 -392
  322. package/skills/ai-product-video/references/sequences/promo-energy-arc.md +0 -50
  323. package/skills/ai-product-video/references/shots/ATTRIBUTION.md +0 -65
  324. package/skills/ai-product-video/references/shots/camera/basic-3d-scene.md +0 -37
  325. package/skills/ai-product-video/references/shots/camera/crash-zoom-punch.md +0 -39
  326. package/skills/ai-product-video/references/shots/camera/cursor-flyover.md +0 -38
  327. package/skills/ai-product-video/references/shots/camera/depth-layer-moves.md +0 -40
  328. package/skills/ai-product-video/references/shots/camera/graze-face-tour.md +0 -57
  329. package/skills/anidoodle/SKILL.md +0 -185
  330. package/skills/anidoodle/references/anatomy.md +0 -91
  331. package/skills/anidoodle/references/backends-and-adapters.md +0 -82
  332. package/skills/anidoodle/references/camera.md +0 -148
  333. package/skills/anidoodle/references/craft-bar.md +0 -72
  334. package/skills/anidoodle/references/determinism-and-contract.md +0 -46
  335. package/skills/anidoodle/references/formats.md +0 -121
  336. package/skills/anidoodle/references/motion-grammar.md +0 -234
  337. package/skills/anidoodle/references/music/compose.md +0 -388
  338. package/skills/anidoodle/references/music/sound-design.md +0 -245
  339. package/skills/anidoodle/references/music/sounds-licenses.md +0 -69
  340. package/skills/anidoodle/references/music/styles/lofi-electronic.md +0 -112
  341. package/skills/anidoodle/references/music/styles/music-box.md +0 -57
  342. package/skills/animated-component-libraries/SKILL.md +0 -820
  343. package/skills/animated-component-libraries/references/customization_guide.md +0 -699
  344. package/skills/animated-component-libraries/references/magic_ui_components.md +0 -422
  345. package/skills/animated-component-libraries/references/react_bits_components.md +0 -587
  346. package/skills/animated-infographic/SKILL.md +0 -211
  347. package/skills/animated-infographic/references/sequenced-infographic.md +0 -286
  348. package/skills/appshot-core/SKILL.md +0 -872
  349. package/skills/article-highlights/SKILL.md +0 -151
  350. package/skills/avatar-mix/SKILL.md +0 -301
  351. package/skills/bang-motion/SKILL.md +0 -583
  352. package/skills/bang-motion/references/ae-bridge-higgsfield.md +0 -160
  353. package/skills/bang-motion/references/anti-ppt.md +0 -110
  354. package/skills/bang-motion/references/architecture.md +0 -188
  355. package/skills/bang-motion/references/explainer.md +0 -579
  356. package/skills/bang-motion/references/kartun-panggung.md +0 -221
  357. package/skills/bang-motion/references/opener-konsep.md +0 -817
  358. package/skills/bang-motion/references/roadmap.md +0 -85
  359. package/skills/bang-motion/references/techniques.md +0 -690
  360. package/skills/beat-sync-edit/SKILL.md +0 -148
  361. package/skills/book-video-factory/SKILL.md +0 -139
  362. package/skills/book-video-factory/references/first-run.md +0 -50
  363. package/skills/book-video-factory/references/paper-collage-explainer.md +0 -127
  364. package/skills/book-video-factory/references/quality-gates.md +0 -87
  365. package/skills/book-video-production/SKILL.md +0 -211
  366. package/skills/brag/SKILL.md +0 -195
  367. package/skills/brag/references/audio.md +0 -312
  368. package/skills/brag/references/step-1-inspect.md +0 -125
  369. package/skills/brag/references/step-2-plan.md +0 -234
  370. package/skills/brag/references/step-3-compose.md +0 -199
  371. package/skills/brag/references/step-4-deliver.md +0 -141
  372. package/skills/brag/references/tones.md +0 -231
  373. package/skills/brand-setup/SKILL.md +0 -228
  374. package/skills/brewreel/SKILL.md +0 -491
  375. package/skills/brewreel/docs/broll.en.md +0 -252
  376. package/skills/brewreel/docs/broll.md +0 -252
  377. package/skills/brewreel/docs/custom-shot.en.md +0 -66
  378. package/skills/brewreel/docs/custom-shot.md +0 -103
  379. package/skills/brewreel/docs/faq.en.md +0 -90
  380. package/skills/brewreel/docs/faq.md +0 -90
  381. package/skills/brewreel/docs/features.en.md +0 -157
  382. package/skills/brewreel/docs/features.md +0 -157
  383. package/skills/brewreel/docs/gallery.en.md +0 -44
  384. package/skills/brewreel/docs/gallery.md +0 -44
  385. package/skills/brewreel/docs/how-it-works.en.md +0 -64
  386. package/skills/brewreel/docs/how-it-works.md +0 -64
  387. package/skills/caption-animation/SKILL.md +0 -216
  388. package/skills/caption-animation/references/word-timed-captions.md +0 -254
  389. package/skills/cartcut-editing/SKILL.md +0 -615
  390. package/skills/cartcut-editing/references/html-typography.md +0 -277
  391. package/skills/cassette-video-edit/SKILL.md +0 -129
  392. package/skills/ccvideo/SKILL.md +0 -264
  393. package/skills/chekhov-dramaturgy/SKILL.md +0 -367
  394. package/skills/chekhov-dramaturgy/reference.md +0 -375
  395. package/skills/chengfeng-check-updates/SKILL.md +0 -283
  396. package/skills/cinematic-product-promo-skill/SKILL.md +0 -295
  397. package/skills/cinematic-product-promo-skill/references/aesthetic-rules.md +0 -187
  398. package/skills/cinematic-product-promo-skill/references/final-review.md +0 -116
  399. package/skills/cinematic-product-promo-skill/references/guided-free-creation.md +0 -199
  400. package/skills/cinematic-product-promo-skill/references/jianying-export.md +0 -183
  401. package/skills/cinematic-product-promo-skill/references/music-beat-sync.md +0 -257
  402. package/skills/cinematic-product-promo-skill/references/pipeline.md +0 -393
  403. package/skills/cinematic-product-promo-skill/references/sequences/promo-energy-arc.md +0 -50
  404. package/skills/cinematic-product-promo-skill/references/shots/ATTRIBUTION.md +0 -65
  405. package/skills/cinematic-product-promo-skill/references/shots/camera/basic-3d-scene.md +0 -37
  406. package/skills/cinematic-product-promo-skill/references/shots/camera/crash-zoom-punch.md +0 -39
  407. package/skills/cinematic-product-promo-skill/references/shots/camera/cursor-flyover.md +0 -38
  408. package/skills/cinematic-product-promo-skill/references/shots/camera/depth-layer-moves.md +0 -40
  409. package/skills/claude-gif/SKILL.md +0 -211
  410. package/skills/claude-gif/references/gif-optimization.md +0 -209
  411. package/skills/claude-gif/references/perfect-loops.md +0 -295
  412. package/skills/claude-gif/references/platform-specs.md +0 -138
  413. package/skills/claude-gif/references/prompt-engineering.md +0 -211
  414. package/skills/claude-gif/references/remotion-gif.md +0 -560
  415. package/skills/codex-video-pipeline/SKILL.md +0 -213
  416. package/skills/codex-video-pipeline/examples/ai-meeting-notes/INPUT.md +0 -10
  417. package/skills/codex-video-pipeline/examples/ai-meeting-notes/expected/action-list.md +0 -22
  418. package/skills/codex-video-pipeline/references/captions.md +0 -39
  419. package/skills/codex-video-pipeline/references/cover-system.md +0 -72
  420. package/skills/codex-video-pipeline/references/cross-platform.md +0 -77
  421. package/skills/codex-video-pipeline/references/example-run.md +0 -54
  422. package/skills/codex-video-pipeline/references/first-run.md +0 -130
  423. package/skills/codex-video-pipeline/references/project-contract.md +0 -54
  424. package/skills/codex-video-pipeline/references/quality-gates.md +0 -44
  425. package/skills/codex-video-pipeline/references/research-and-script.md +0 -50
  426. package/skills/collage-broll-explainers/SKILL.md +0 -429
  427. package/skills/create-onboarding-video/SKILL.md +0 -233
  428. package/skills/cs-shotcraft-skill/SKILL.md +0 -218
  429. package/skills/cs-shotcraft-skill/references/aesthetic-rules.md +0 -207
  430. package/skills/cs-shotcraft-skill/references/camera-table.md +0 -88
  431. package/skills/cs-shotcraft-skill/references/engineering.md +0 -132
  432. package/skills/cs-shotcraft-skill/references/final-review.md +0 -118
  433. package/skills/cs-shotcraft-skill/references/guided-free-creation.md +0 -199
  434. package/skills/cs-shotcraft-skill/references/jianying-export.md +0 -183
  435. package/skills/cs-shotcraft-skill/references/music-beat-sync.md +0 -257
  436. package/skills/cs-shotcraft-skill/references/pipeline.md +0 -408
  437. package/skills/cs-shotcraft-skill/references/product-machine.md +0 -56
  438. package/skills/cs-shotcraft-skill/references/sequences/promo-energy-arc.md +0 -50
  439. package/skills/cs-shotcraft-skill/references/shots/ATTRIBUTION.md +0 -65
  440. package/skills/cs-shotcraft-skill/references/shots/camera/basic-3d-scene.md +0 -37
  441. package/skills/cut-video/SKILL.md +0 -387
  442. package/skills/cyxj-hyperframes-overlay/SKILL.md +0 -75
  443. package/skills/cyxj-remotion-evolve/SKILL.md +0 -123
  444. package/skills/cyxj-remotion-evolve-vibe-motion/SKILL.md +0 -123
  445. package/skills/demo-video-creation-skill/SKILL.md +0 -152
  446. package/skills/demo-video-creation-skill/references/capture-workflow.md +0 -74
  447. package/skills/demo-video-creation-skill/references/qc-checklist.md +0 -61
  448. package/skills/demo-video-creation-skill/references/remotion-ffmpeg.md +0 -94
  449. package/skills/demo-video-creation-skill/references/storytelling.md +0 -86
  450. package/skills/demo-video-creation-skill/references/visual-system.md +0 -83
  451. package/skills/demoday/SKILL.md +0 -148
  452. package/skills/develop-premiere-pro-mcp/SKILL.md +0 -131
  453. package/skills/diagram-animation/SKILL.md +0 -200
  454. package/skills/diagram-animation/references/diagram-and-chart-recipes.md +0 -218
  455. package/skills/diagram-tour/SKILL.md +0 -287
  456. package/skills/diagram-tour/examples/agent-architecture/agent-architecture-tour.md +0 -78
  457. package/skills/docvideoer/SKILL.md +0 -139
  458. package/skills/draftcut/SKILL.md +0 -104
  459. package/skills/draftcut/docs/agent-bootstrap.md +0 -64
  460. package/skills/draftcut/docs/approvals.md +0 -45
  461. package/skills/draftcut/docs/audio-first-migration.md +0 -35
  462. package/skills/draftcut/docs/configuration.md +0 -54
  463. package/skills/draftcut/docs/getting-started.md +0 -63
  464. package/skills/draftcut/docs/harness-case-study.en.md +0 -23
  465. package/skills/draftcut/docs/harness-case-study.md +0 -47
  466. package/skills/draftcut/references/01-plan.md +0 -30
  467. package/skills/draftcut/references/03-deliver.md +0 -26
  468. package/skills/draftcut/references/04-reference-theme-prompt.md +0 -7
  469. package/skills/draftcut/references/05-social-loudness.md +0 -58
  470. package/skills/draftcut/references/06-modern-components.md +0 -72
  471. package/skills/easyedit/SKILL.md +0 -66
  472. package/skills/erduo-broll-loop-engineering/SKILL.md +0 -136
  473. package/skills/erduo-broll-loop-engineering/references/animation-craft.md +0 -208
  474. package/skills/erduo-broll-loop-engineering/references/first-run-onboarding.md +0 -107
  475. package/skills/erduo-broll-loop-engineering/references/handoff-template.md +0 -70
  476. package/skills/erduo-broll-loop-engineering/references/motion-layout-lint.md +0 -122
  477. package/skills/erduo-broll-loop-engineering/references/parent-review-checklist.md +0 -171
  478. package/skills/erduo-broll-loop-engineering/references/prompt-first-workflow.md +0 -322
  479. package/skills/erduo-broll-loop-engineering/references/remotion-backend.md +0 -334
  480. package/skills/erduo-broll-loop-engineering/references/runtime/remotion-hyperframes-map.md +0 -76
  481. package/skills/erduo-broll-loop-engineering/references/runtime/runtime-contract.md +0 -174
  482. package/skills/erduo-broll-loop-engineering/references/runtime/runtime-selection.md +0 -135
  483. package/skills/erduo-broll-loop-engineering/references/shotcraft/remotion-sources/SOURCE.md +0 -7
  484. package/skills/erduo-broll-loop-engineering/references/shotcraft/upstream-attribution.md +0 -65
  485. package/skills/explainer-assets/SKILL.md +0 -98
  486. package/skills/explainer-video/SKILL.md +0 -146
  487. package/skills/framewright/SKILL.md +0 -324
  488. package/skills/framewright/references/audio.md +0 -230
  489. package/skills/framewright/references/guide.md +0 -276
  490. package/skills/framewright/references/painting.md +0 -425
  491. package/skills/framewright/references/photo.md +0 -75
  492. package/skills/framewright/references/questionnaire.md +0 -115
  493. package/skills/framewright/references/styles.md +0 -388
  494. package/skills/framewright/references/troubleshooting.md +0 -119
  495. package/skills/framewright/references/world.md +0 -215
  496. package/skills/gbro-collage-broll/SKILL.md +0 -435
  497. package/skills/gbro-collage-info/SKILL.md +0 -135
  498. package/skills/gbro-collage-info/references/motion-grammar.md +0 -66
  499. package/skills/gbro-collage-info/references/production.md +0 -67
  500. package/skills/gbro-collage-info/references/style-system.md +0 -38
  501. package/skills/gemini-tts/SKILL.md +0 -208
  502. package/skills/gemini-tts/references/prompting-guide.md +0 -169
  503. package/skills/gen/SKILL.md +0 -282
  504. package/skills/ghost-editor/SKILL.md +0 -437
  505. package/skills/ghost-editor/docs/HOW-IT-WORKS.md +0 -82
  506. package/skills/ghost-editor/docs/PLAYBOOK.md +0 -139
  507. package/skills/ghost-editor/docs/THIRD_PARTY/audio.md +0 -17
  508. package/skills/ghost-editor/docs/THIRD_PARTY/audioqa.md +0 -13
  509. package/skills/ghost-editor/docs/THIRD_PARTY/captions.md +0 -20
  510. package/skills/ghost-editor/docs/THIRD_PARTY/fonts.md +0 -17
  511. package/skills/ghost-editor/docs/THIRD_PARTY/kinetic.md +0 -22
  512. package/skills/ghost-editor/docs/THIRD_PARTY/looks.md +0 -22
  513. package/skills/ghost-editor/docs/THIRD_PARTY/matte.md +0 -20
  514. package/skills/ghost-editor/docs/THIRD_PARTY/models.md +0 -11
  515. package/skills/ghost-editor/docs/THIRD_PARTY/runtime.md +0 -13
  516. package/skills/ghost-editor/docs/THIRD_PARTY/shaders.md +0 -15
  517. package/skills/git-story-film/SKILL.md +0 -220
  518. package/skills/git-story-film/examples/raven-story/FONTS.md +0 -8
  519. package/skills/git-story-film/examples/raven-story/OUTLINE.md +0 -93
  520. package/skills/git-story-film/references/craft.md +0 -148
  521. package/skills/git-story-film/references/directing.md +0 -185
  522. package/skills/git-story-film/references/forms.md +0 -150
  523. package/skills/git-story-film/references/production.md +0 -150
  524. package/skills/git-story-film/references/story.md +0 -137
  525. package/skills/git-story-film/references/text-and-fonts.md +0 -90
  526. package/skills/guizang-product-video-skill/SKILL.md +0 -96
  527. package/skills/guizang-product-video-skill/references/audio-and-qa.md +0 -113
  528. package/skills/guizang-product-video-skill/references/audio-sourcing.md +0 -80
  529. package/skills/guizang-product-video-skill/references/case-study.md +0 -63
  530. package/skills/guizang-product-video-skill/references/component-pipeline.md +0 -86
  531. package/skills/guizang-product-video-skill/references/cover.md +0 -43
  532. package/skills/guizang-product-video-skill/references/direction.md +0 -91
  533. package/skills/guizang-product-video-skill/references/onboarding.md +0 -98
  534. package/skills/guizang-product-video-skill/references/repo-and-style.md +0 -44
  535. package/skills/guizang-product-video-skill/references/review.md +0 -38
  536. package/skills/guizang-product-video-skill/references/starter.md +0 -168
  537. package/skills/guizang-product-video-skill/references/story-and-copy.md +0 -88
  538. package/skills/guizang-product-video-skill/references/visual-vocabulary.md +0 -78
  539. package/skills/guofeng-paper-video/SKILL.md +0 -159
  540. package/skills/guofeng-paper-video/style/design.md +0 -43
  541. package/skills/guofeng-paper-video/style/palette.md +0 -21
  542. package/skills/guofeng-paper-video/style/prompts/01-/345/210/206/351/225/234/350/241/250.md +0 -19
  543. package/skills/guofeng-paper-video/style/prompts/02-/347/224/237/346/210/220/347/272/270/347/211/207.md +0 -37
  544. package/skills/guofeng-paper-video/style/prompts/03-/351/205/215/351/237/263/350/204/232/346/234/254.md +0 -27
  545. package/skills/guofeng-paper-video/style//345/210/206/351/225/234/344/270/216/345/233/276/345/261/202/350/247/204/350/214/203.md +0 -67
  546. package/skills/guofeng-paper-video/style//347/272/270/347/211/207/347/264/240/346/235/220/350/247/204/350/214/203.md +0 -29
  547. package/skills/hand-drawn-explainer-video-nikola/SKILL.md +0 -113
  548. package/skills/hand-drawn-explainer-video-nikola/docs/ARCHITECTURE.md +0 -18
  549. package/skills/hand-drawn-explainer-video-nikola/docs/CONFIGURATION.md +0 -22
  550. package/skills/hand-drawn-explainer-video-nikola/docs/STYLES.md +0 -28
  551. package/skills/hand-drawn-explainer-video-nikola/docs/TROUBLESHOOTING.md +0 -35
  552. package/skills/hand-drawn-explainer-video-nikola/examples/program-animation/skill-demo/DESIGN.md +0 -24
  553. package/skills/hand-drawn-explainer-video-nikola/references/automation-workflow.md +0 -67
  554. package/skills/hand-drawn-explainer-video-nikola/references/output-example.md +0 -79
  555. package/skills/hand-drawn-explainer-video-nikola/references/preflight-and-recovery.md +0 -49
  556. package/skills/hand-drawn-explainer-video-nikola/references/style-guide.md +0 -82
  557. package/skills/hand-drawn-explainer-video-nikola/references/style-selection-and-updates.md +0 -39
  558. package/skills/hand-drawn-explainer-video-nikola/references/upstream-whiteboard-review.md +0 -30
  559. package/skills/hand-drawn-explainer-video-nikola/references/voiceover.md +0 -37
  560. package/skills/hbg-life-simulation/SKILL.md +0 -285
  561. package/skills/hbg-life-simulation/references/image-generation.md +0 -53
  562. package/skills/hbg-life-simulation/references/local-account-api.md +0 -112
  563. package/skills/hbg-life-simulation/references/opening-system.md +0 -45
  564. package/skills/hbg-life-simulation/references/project-spec.md +0 -62
  565. package/skills/hbg-life-simulation/references/render-and-qa.md +0 -107
  566. package/skills/hbg-life-simulation/references/storyboarding.md +0 -69
  567. package/skills/hbg-life-simulation/references/style-system.md +0 -80
  568. package/skills/hbg-life-simulation/references/visual-system.md +0 -44
  569. package/skills/heygen-avatar/SKILL.md +0 -489
  570. package/skills/heygen-avatar/references/asset-routing.md +0 -86
  571. package/skills/heygen-avatar/references/avatar-creation.md +0 -181
  572. package/skills/heygen-avatar/references/troubleshooting.md +0 -137
  573. package/skills/heytea-doodle-poster/SKILL.md +0 -132
  574. package/skills/heytea-doodle-poster/references/desktop-pet-character-modes.md +0 -103
  575. package/skills/heytea-doodle-poster/references/desktop-pet-environment.md +0 -122
  576. package/skills/heytea-doodle-poster/references/desktop-pet-pack.md +0 -106
  577. package/skills/heytea-doodle-poster/references/desktop-pet-workflow.md +0 -264
  578. package/skills/heytea-doodle-poster/references/evaluation.md +0 -246
  579. package/skills/heytea-doodle-poster/references/lettering-guide.md +0 -213
  580. package/skills/heytea-doodle-poster/references/mixed-media-style-guide.md +0 -101
  581. package/skills/heytea-doodle-poster/references/monster-poster-workflow.md +0 -56
  582. package/skills/heytea-doodle-poster/references/style-guide.md +0 -412
  583. package/skills/heytea-doodle-poster-hosted/SKILL.md +0 -132
  584. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-character-modes.md +0 -103
  585. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-environment.md +0 -122
  586. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-pack.md +0 -106
  587. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-workflow.md +0 -264
  588. package/skills/heytea-doodle-poster-hosted/references/evaluation.md +0 -246
  589. package/skills/heytea-doodle-poster-hosted/references/lettering-guide.md +0 -213
  590. package/skills/heytea-doodle-poster-hosted/references/mixed-media-style-guide.md +0 -101
  591. package/skills/heytea-doodle-poster-hosted/references/monster-poster-workflow.md +0 -56
  592. package/skills/heytea-doodle-poster-hosted/references/style-guide.md +0 -412
  593. package/skills/html2video/SKILL.md +0 -290
  594. package/skills/html2video/references/cjk-type.md +0 -173
  595. package/skills/html2video/references/editorial.md +0 -145
  596. package/skills/html2video/references/narration.md +0 -111
  597. package/skills/html2video/references/pitfalls.md +0 -238
  598. package/skills/html2video/references/shots.md +0 -198
  599. package/skills/html2video/references/storyboard.md +0 -323
  600. package/skills/hyperdirector/SKILL.md +0 -202
  601. package/skills/hyperdirector/docs/audio-workflow.md +0 -160
  602. package/skills/hyperdirector/docs/audio-workflow.zh-CN.md +0 -244
  603. package/skills/hyperdirector/docs/brand-kit-setup.md +0 -322
  604. package/skills/hyperdirector/docs/brand-kit-setup.zh-CN.md +0 -277
  605. package/skills/hyperdirector/docs/cursor-development-notes.md +0 -474
  606. package/skills/hyperdirector/docs/faq.md +0 -285
  607. package/skills/hyperdirector/docs/faq.zh-CN.md +0 -198
  608. package/skills/hyperdirector/docs/first-video.md +0 -320
  609. package/skills/hyperdirector/docs/first-video.zh-CN.md +0 -265
  610. package/skills/hyperdirector/docs/installation.md +0 -254
  611. package/skills/hyperdirector/docs/installation.zh-CN.md +0 -222
  612. package/skills/hyperdirector/docs/quickstart.md +0 -203
  613. package/skills/hyperframes/SKILL.md +0 -117
  614. package/skills/hyperframes/references/captions.md +0 -46
  615. package/skills/hyperframes/references/film.md +0 -48
  616. package/skills/hyperframes/references/format.md +0 -158
  617. package/skills/hyperframes/references/look.md +0 -69
  618. package/skills/hyperframes/references/motion.md +0 -95
  619. package/skills/hyperframes/references/overlays.md +0 -39
  620. package/skills/hyperframes/references/review.md +0 -51
  621. package/skills/hyperframes/references/runtimes.md +0 -69
  622. package/skills/hyperframes/references/skill-lifecycle.md +0 -49
  623. package/skills/hyperframes/references/sound.md +0 -43
  624. package/skills/hyperframes/references/spec.md +0 -76
  625. package/skills/hyperframes/references/story.md +0 -103
  626. package/skills/hyperframes-motion-director/SKILL.md +0 -920
  627. package/skills/hyperframes-motion-director/references/asset-choreography-and-render-qa.md +0 -185
  628. package/skills/hyperframes-motion-director/references/audio-sync.md +0 -83
  629. package/skills/hyperframes-motion-director/references/design-engineering.md +0 -156
  630. package/skills/hyperframes-motion-director/references/gsap-choreography.md +0 -202
  631. package/skills/hyperframes-motion-director/references/hyperframes-stability.md +0 -99
  632. package/skills/hyperframes-motion-director/references/imagegen-asset-pipeline.md +0 -227
  633. package/skills/hyperframes-motion-director/references/motion-background-system.md +0 -165
  634. package/skills/hyperframes-motion-director/references/motion-craft.md +0 -182
  635. package/skills/hyperframes-motion-director/references/premium-product-promo.md +0 -287
  636. package/skills/hyperframes-motion-director/references/text-over-background-layout.md +0 -221
  637. package/skills/hyperframes-motion-director/references/visual-standard.md +0 -174
  638. package/skills/hyperframes-motion-director/references/workflow.md +0 -320
  639. package/skills/hypit/SKILL.md +0 -367
  640. package/skills/hypit/references/creation/brief.md +0 -93
  641. package/skills/hypit/references/creation/script-and-time.md +0 -259
  642. package/skills/hypit/references/creation/transformations.md +0 -143
  643. package/skills/hypit/references/playbooks/craft/b-roll.md +0 -94
  644. package/skills/hypit/references/playbooks/craft/caption-tracking.md +0 -126
  645. package/skills/hypit/references/playbooks/craft/captions.md +0 -253
  646. package/skills/hypit/references/playbooks/craft/generated-dependencies.md +0 -38
  647. package/skills/hypit/references/playbooks/craft/graphic-compositions.md +0 -85
  648. package/skills/hypit/references/playbooks/craft/motion-graphics.md +0 -68
  649. package/skills/hypit/references/playbooks/craft/screen-demonstrations.md +0 -51
  650. package/skills/hypit/references/playbooks/craft/sound-mix.md +0 -70
  651. package/skills/hypit/references/playbooks/formats/narration-led-demo.md +0 -87
  652. package/skills/image/SKILL.md +0 -153
  653. package/skills/image/references/characters.md +0 -86
  654. package/skills/image/references/creative-direction.md +0 -137
  655. package/skills/image/references/de-slop.md +0 -95
  656. package/skills/image/references/dimensional.md +0 -88
  657. package/skills/image/references/editing.md +0 -112
  658. package/skills/image/references/golden-rules.md +0 -198
  659. package/skills/image/references/gpt-image.md +0 -228
  660. package/skills/image/references/models.md +0 -78
  661. package/skills/image/references/multi-panel.md +0 -354
  662. package/skills/image/references/nano-banana.md +0 -150
  663. package/skills/image/references/patterns/character-design.md +0 -150
  664. package/skills/image/references/patterns/ecommerce.md +0 -124
  665. package/skills/image-smixs/SKILL.md +0 -153
  666. package/skills/image-smixs/references/characters.md +0 -86
  667. package/skills/image-smixs/references/creative-direction.md +0 -137
  668. package/skills/image-smixs/references/de-slop.md +0 -95
  669. package/skills/image-smixs/references/dimensional.md +0 -88
  670. package/skills/image-smixs/references/editing.md +0 -112
  671. package/skills/image-smixs/references/golden-rules.md +0 -198
  672. package/skills/image-smixs/references/gpt-image.md +0 -228
  673. package/skills/image-smixs/references/models.md +0 -78
  674. package/skills/image-smixs/references/multi-panel.md +0 -354
  675. package/skills/image-smixs/references/nano-banana.md +0 -150
  676. package/skills/image-smixs/references/patterns/character-design.md +0 -150
  677. package/skills/image-smixs/references/patterns/ecommerce.md +0 -124
  678. package/skills/image-story-video-wizard/SKILL.md +0 -148
  679. package/skills/image-story-video-wizard/docs/ARTICLE_ALIGNMENT.md +0 -29
  680. package/skills/image-story-video-wizard/references/host-routing.md +0 -44
  681. package/skills/image-story-video-wizard/references/state-schema.md +0 -79
  682. package/skills/image-story-video-wizard/references/workflow.md +0 -203
  683. package/skills/image-story-video-wizard/references/writing-and-review.md +0 -60
  684. package/skills/ip-as-logo/SKILL.md +0 -151
  685. package/skills/ip-as-logo-s1dashu/SKILL.md +0 -151
  686. package/skills/jtxvideo-skill/SKILL.md +0 -337
  687. package/skills/kinetic-reel/SKILL.md +0 -140
  688. package/skills/kinetic-reel/examples/work-reel-26/STORYBOARD.md +0 -51
  689. package/skills/kinetic-reel/references/sound.md +0 -40
  690. package/skills/kinetic-reel/references/style-guide.md +0 -79
  691. package/skills/knowledge-explainer-skill/SKILL.md +0 -149
  692. package/skills/knowledge-explainer-skill/examples/ai_video_3steps.md +0 -61
  693. package/skills/knowledge-explainer-skill/examples/algorithm_bubble.md +0 -20
  694. package/skills/knowledge-explainer-skill/examples/before_after_demo.md +0 -38
  695. package/skills/knowledge-explainer-skill/examples/cta_outro.md +0 -11
  696. package/skills/knowledge-explainer-skill/examples/double_pendulum.md +0 -20
  697. package/skills/knowledge-explainer-skill/examples/paper_fold.md +0 -20
  698. package/skills/knowledge-explainer-skill/examples/script.md +0 -40
  699. package/skills/lanshu-create-ai-presenter-video/SKILL.md +0 -253
  700. package/skills/lanshu-create-ai-presenter-video/references/editing.md +0 -67
  701. package/skills/lanshu-create-ai-presenter-video/references/generation.md +0 -94
  702. package/skills/lanshu-create-ai-presenter-video/references/qa-recovery.md +0 -83
  703. package/skills/lanshu-create-ai-presenter-video/references/styled-explainer.md +0 -189
  704. package/skills/laoxu-video-script/SKILL.md +0 -117
  705. package/skills/laoxu-video-script/references/cases.md +0 -305
  706. package/skills/laoxu-video-script/references/de-ai.md +0 -32
  707. package/skills/laoxu-video-script/references/diagnostics.md +0 -67
  708. package/skills/laoxu-video-script/references/format.md +0 -62
  709. package/skills/laoxu-video-script/references/formulas.md +0 -43
  710. package/skills/laoxu-video-script/references/method.md +0 -115
  711. package/skills/laoxu-video-script/references/motifs-and-lines.md +0 -829
  712. package/skills/laoxu-video-script/references/persona.md +0 -38
  713. package/skills/laoxu-video-script/references/qihao-path.md +0 -35
  714. package/skills/laoxu-video-script/references/qihao-xinfa.md +0 -39
  715. package/skills/laoxu-video-script/references/redlines.md +0 -26
  716. package/skills/lemo-opuscar/SKILL.md +0 -67
  717. package/skills/lipnardo/SKILL.md +0 -308
  718. package/skills/lipnardo/examples/batch-personalized.md +0 -44
  719. package/skills/lipnardo/examples/photo-to-avatar-pipeline.md +0 -56
  720. package/skills/lipnardo/examples/single-video.md +0 -44
  721. package/skills/lipnardo/references/avatar-types.md +0 -42
  722. package/skills/lipnardo/references/credit-costs.md +0 -39
  723. package/skills/lipnardo/references/error-codes.md +0 -66
  724. package/skills/lipnardo/references/heygen-api-reference.md +0 -416
  725. package/skills/ll-video-decomposer/SKILL.md +0 -105
  726. package/skills/ll-video-decomposer/references/audiovisual-analysis-guide.md +0 -44
  727. package/skills/ll-video-decomposer/references/evidence-and-confidence-rules.md +0 -41
  728. package/skills/ll-video-decomposer/references/multi-video-comparison-template.md +0 -48
  729. package/skills/ll-video-decomposer/references/single-video-report-template.md +0 -47
  730. package/skills/ll-video-decomposer/references/tool-discovery-workflow.md +0 -30
  731. package/skills/ll-video-decomposer/references/transcription-routing.md +0 -65
  732. package/skills/ll-video-decomposer/references/video-acquisition-workflow.md +0 -30
  733. package/skills/ltx2-video/SKILL.md +0 -193
  734. package/skills/ltx2-video/references/mode_ux.md +0 -293
  735. package/skills/make-ai-short/SKILL.md +0 -130
  736. package/skills/make-blender-education-video/SKILL.md +0 -247
  737. package/skills/make-blender-education-video/references/evidence-and-explanation.md +0 -62
  738. package/skills/make-blender-education-video/references/github-workflow-discovery.md +0 -55
  739. package/skills/make-blender-education-video/references/production-workflow.md +0 -62
  740. package/skills/make-blender-education-video/references/story-patterns.md +0 -65
  741. package/skills/make-blender-education-video/references/visual-quality.md +0 -82
  742. package/skills/manage-storyboard-projects/SKILL.md +0 -128
  743. package/skills/manim-composer/SKILL.md +0 -176
  744. package/skills/manim-composer/references/narrative-patterns.md +0 -125
  745. package/skills/manim-composer/references/scene-examples.md +0 -216
  746. package/skills/manim-composer/references/visual-techniques.md +0 -223
  747. package/skills/manim-composer/templates/scenes-template.md +0 -147
  748. package/skills/monet-ai-editor-monet/SKILL.md +0 -367
  749. package/skills/motion-graphics/SKILL.md +0 -206
  750. package/skills/motion-graphics/references/craft.md +0 -136
  751. package/skills/motion-graphics/references/engine.md +0 -130
  752. package/skills/motion-graphics/references/export.md +0 -67
  753. package/skills/motion-graphics/references/physics.md +0 -100
  754. package/skills/motion-graphics/references/verify.md +0 -124
  755. package/skills/motion-video/SKILL.md +0 -133
  756. package/skills/motion-video/references/audio-and-beat-sync.md +0 -109
  757. package/skills/motion-video/references/composition-contract.md +0 -107
  758. package/skills/motion-video/references/production-pipeline.md +0 -147
  759. package/skills/motion-video/references/style-comic-spiderverse.md +0 -87
  760. package/skills/motion-video/references/style-glass-keynote.md +0 -69
  761. package/skills/motion-video-maker/SKILL.md +0 -1452
  762. package/skills/motion-video-maker/reference/components.md +0 -451
  763. package/skills/motion-video-maker/reference/workflow.md +0 -190
  764. package/skills/motioncraft/SKILL.md +0 -221
  765. package/skills/motioncraft/references/animation-system.md +0 -57
  766. package/skills/motioncraft/references/assets-and-licensing.md +0 -21
  767. package/skills/motioncraft/references/customization.md +0 -52
  768. package/skills/motioncraft/references/gpu-cloud-render.md +0 -15
  769. package/skills/motioncraft/references/music.md +0 -43
  770. package/skills/motioncraft/references/phase1-planning-and-preview.md +0 -74
  771. package/skills/motioncraft/references/phase2-timeline-audio.md +0 -33
  772. package/skills/motioncraft/references/phase3-pixel-review.md +0 -13
  773. package/skills/motioncraft/references/phase4-templates.md +0 -30
  774. package/skills/motioncraft/references/preflight.md +0 -27
  775. package/skills/motioncraft/references/qa.md +0 -53
  776. package/skills/motioncraft/references/reference-analysis.md +0 -37
  777. package/skills/narrator-ai-cli/SKILL.md +0 -256
  778. package/skills/narrator-ai-cli/references/magic-video.md +0 -205
  779. package/skills/narrator-ai-cli/references/operations.md +0 -230
  780. package/skills/narrator-ai-cli/references/resources.md +0 -126
  781. package/skills/narrator-ai-cli/references/workflows.md +0 -332
  782. package/skills/newcut-video-clipping/SKILL.md +0 -194
  783. package/skills/newcut-video-clipping/references/examples.md +0 -59
  784. package/skills/newcut-video-clipping/references/provider-config.md +0 -110
  785. package/skills/newcut-video-clipping/references/quality-check.md +0 -35
  786. package/skills/newcut-video-clipping/references/semantic-plan.md +0 -65
  787. package/skills/notes-to-video/SKILL.md +0 -476
  788. package/skills/openchatcut/SKILL.md +0 -100
  789. package/skills/openchatcut/references/editing-workflow.md +0 -54
  790. package/skills/openchatcut/references/getting-started.md +0 -106
  791. package/skills/openchatcut/references/known-errors.md +0 -62
  792. package/skills/openstoryline-install/SKILL.md +0 -228
  793. package/skills/orca-motion/SKILL.md +0 -100
  794. package/skills/orca-motion/references/api.md +0 -100
  795. package/skills/orca-motion/references/integration.md +0 -59
  796. package/skills/orca-motion/references/kinetic-type.md +0 -59
  797. package/skills/orca-motion/references/principles.md +0 -76
  798. package/skills/package-talking-head-video/SKILL.md +0 -90
  799. package/skills/package-talking-head-video/docs/EXAMPLES.md +0 -18
  800. package/skills/package-talking-head-video/docs/TROUBLESHOOTING.md +0 -29
  801. package/skills/package-talking-head-video/docs/USAGE.md +0 -83
  802. package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-multicolor-center-speaker.md +0 -144
  803. package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-semantic-template-system-v2.md +0 -1099
  804. package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-multicolor-center-speaker-design.md +0 -154
  805. package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-semantic-template-system-v2-design.md +0 -365
  806. package/skills/package-talking-head-video/examples/auto-editing-0/GATE_A.md +0 -56
  807. package/skills/package-talking-head-video/examples/auto-editing-0/GATE_D.md +0 -8
  808. package/skills/package-talking-head-video/examples/auto-editing-0/QA_REPORT.md +0 -34
  809. package/skills/package-talking-head-video/references/director-rules.md +0 -29
  810. package/skills/package-talking-head-video/references/motion-and-illustration.md +0 -25
  811. package/skills/paper-cut/SKILL.md +0 -164
  812. package/skills/paper-cut/references/asset-spec.md +0 -47
  813. package/skills/paper-cut/references/audio-and-chatcut.md +0 -26
  814. package/skills/paper-cut/references/hyperframes-assembly.md +0 -47
  815. package/skills/paper-cut/references/image-led-production.md +0 -65
  816. package/skills/paper-cut/references/storyboard-schema.md +0 -48
  817. package/skills/paper-cut/references/workflow.md +0 -39
  818. package/skills/personal-ip-brand-intro/SKILL.md +0 -216
  819. package/skills/personal-ip-brand-intro/references/intake-schema.md +0 -79
  820. package/skills/personal-ip-brand-intro/references/music-upload-workflow.md +0 -40
  821. package/skills/personal-ip-brand-intro/references/originality-rules.md +0 -42
  822. package/skills/personal-ip-brand-intro/references/qa-checklist.md +0 -60
  823. package/skills/personal-ip-brand-intro/references/rhythm-routing.md +0 -41
  824. package/skills/personal-ip-brand-intro/references/storyboard-contract.md +0 -42
  825. package/skills/pixel2motion/SKILL.md +0 -279
  826. package/skills/pixel2motion/references/html-delivery-template.md +0 -42
  827. package/skills/pixel2motion/references/motion-personality.md +0 -109
  828. package/skills/pixel2motion/references/reveal-patterns.md +0 -163
  829. package/skills/pixel2motion/references/ribbon-fitting.md +0 -90
  830. package/skills/pixel2motion/references/twelve-principles-for-logos.md +0 -116
  831. package/skills/premiere-batch-delivery/SKILL.md +0 -71
  832. package/skills/premiere-pro-mcp/SKILL.md +0 -161
  833. package/skills/promo-creator-skills/SKILL.md +0 -209
  834. package/skills/promo-creator-skills/references/mureka_prompt_guide.md +0 -251
  835. package/skills/promo-creator-skills/references/product_promo_bgm_prompting.md +0 -100
  836. package/skills/promo-video/SKILL.md +0 -408
  837. package/skills/qisi-video-remix/SKILL.md +0 -134
  838. package/skills/qisi-video-remix/examples/creative-plan.md +0 -133
  839. package/skills/qisi-video-remix/references/delivery-guide.md +0 -63
  840. package/skills/reel-video/SKILL.md +0 -237
  841. package/skills/remotion-ad-video/SKILL.md +0 -252
  842. package/skills/remotion-ad-video/references/ad-aesthetic-qa.md +0 -60
  843. package/skills/remotion-ad-video/references/ad-brief-contract.md +0 -235
  844. package/skills/remotion-ad-video/references/ad-exemplars.md +0 -186
  845. package/skills/remotion-ad-video/references/ad-intake.md +0 -54
  846. package/skills/remotion-ad-video/references/asset-harvest.md +0 -56
  847. package/skills/remotion-ad-video/references/audio-caption-system.md +0 -202
  848. package/skills/remotion-ad-video/references/concept-contract.md +0 -128
  849. package/skills/remotion-ad-video/references/creative-direction.md +0 -146
  850. package/skills/remotion-ad-video/references/fast-test-workflow.md +0 -86
  851. package/skills/remotion-ad-video/references/game-ad-patterns.md +0 -75
  852. package/skills/remotion-ad-video/references/hyperframes-output.md +0 -90
  853. package/skills/remotion-ad-video/references/industry-angle-library.md +0 -71
  854. package/skills/remotion-ads/SKILL.md +0 -278
  855. package/skills/remotion-ads/references/ad-copywriting.md +0 -229
  856. package/skills/remotion-ads/references/animations.md +0 -693
  857. package/skills/remotion-ads/references/brand-config-template.md +0 -355
  858. package/skills/remotion-ads/references/captions.md +0 -529
  859. package/skills/remotion-ads/references/carousels.md +0 -580
  860. package/skills/remotion-ads/references/components.md +0 -897
  861. package/skills/remotion-ads/references/copy-frameworks.md +0 -144
  862. package/skills/remotion-ads/references/formats.md +0 -436
  863. package/skills/remotion-ads/references/gemini-tts.md +0 -473
  864. package/skills/remotion-ads/references/html-in-canvas.md +0 -555
  865. package/skills/remotion-ads/references/local-assets.md +0 -543
  866. package/skills/remotion-ads/references/music.md +0 -656
  867. package/skills/remotion-code-motion-explainer/SKILL.md +0 -178
  868. package/skills/remotion-code-motion-explainer/references/code-motion-design.md +0 -86
  869. package/skills/remotion-code-motion-explainer/references/motion-production-patterns.md +0 -93
  870. package/skills/remotion-code-motion-explainer/references/production-and-qc.md +0 -99
  871. package/skills/remotion-code-motion-explainer/references/reference-reconstruction.md +0 -48
  872. package/skills/remotion-code-motion-explainer/references/ui-motion-shot-library.md +0 -62
  873. package/skills/remotion-motion-graphics/SKILL.md +0 -169
  874. package/skills/remotion-motion-graphics/references/patterns.md +0 -355
  875. package/skills/remotion-motion-graphics/references/polish.md +0 -102
  876. package/skills/remotion-motion-graphics/references/scaffold.md +0 -144
  877. package/skills/remotion-motion-graphics/references/traps.md +0 -152
  878. package/skills/remotion-resemble-ai/SKILL.md +0 -879
  879. package/skills/remotion-resemble-ai/rules/resemble-captions.md +0 -350
  880. package/skills/remotion-resemble-ai/rules/resemble-remotion-integration.md +0 -305
  881. package/skills/remotion-resemble-ai/rules/resemble-setup.md +0 -284
  882. package/skills/remotion-resemble-ai/rules/resemble-streaming-tts.md +0 -225
  883. package/skills/remotion-resemble-ai/rules/resemble-sync-tts.md +0 -239
  884. package/skills/remotion-resemble-ai/rules/resemble-voices.md +0 -213
  885. package/skills/remotion-resemble-ai/rules/visual-animations.md +0 -567
  886. package/skills/riffkit/SKILL.md +0 -196
  887. package/skills/riffkit/examples/any-look-styles.md +0 -11
  888. package/skills/riffkit/examples/faceless-and-auto.md +0 -16
  889. package/skills/riffkit/examples/localize-spanish.md +0 -18
  890. package/skills/riffkit/examples/tiktok-shop-product.md +0 -22
  891. package/skills/riffkit/references/anchor.md +0 -62
  892. package/skills/riffkit/references/api.md +0 -806
  893. package/skills/riffkit/references/details.md +0 -153
  894. package/skills/riffkit/references/errors.md +0 -69
  895. package/skills/riffkit/references/intents.md +0 -29
  896. package/skills/saas-motion-video/SKILL.md +0 -71
  897. package/skills/script-to-video/SKILL.md +0 -2627
  898. package/skills/shorts/SKILL.md +0 -372
  899. package/skills/shorts/references/caption-styles.md +0 -105
  900. package/skills/shorts/references/platform-specs.md +0 -149
  901. package/skills/shorts/references/remotion-patterns.md +0 -180
  902. package/skills/shorts/references/scoring-rubric.md +0 -106
  903. package/skills/smart-video-editor/SKILL.md +0 -327
  904. package/skills/smart-video-editor/docs/FONTS.md +0 -57
  905. package/skills/story-telling/SKILL.md +0 -222
  906. package/skills/story-telling/rules/composition.md +0 -130
  907. package/skills/story-telling/rules/images.md +0 -119
  908. package/skills/story-telling/rules/models.md +0 -98
  909. package/skills/story-telling/rules/narration.md +0 -87
  910. package/skills/story-telling/rules/pitfalls.md +0 -140
  911. package/skills/story-telling/rules/story-formats.md +0 -108
  912. package/skills/story-telling/rules/story-json.md +0 -143
  913. package/skills/story-telling/rules/voices.md +0 -114
  914. package/skills/story-telling/rules/workflow.md +0 -105
  915. package/skills/story-to-handdrawn-video/SKILL.md +0 -216
  916. package/skills/story-to-handdrawn-video/references/asset-workflow.md +0 -24
  917. package/skills/story-to-handdrawn-video/references/reference-style-workflow.md +0 -27
  918. package/skills/su-card-to-video/SKILL.md +0 -103
  919. package/skills/talking-head-video-pipeline/SKILL.md +0 -224
  920. package/skills/talking-head-video-pipeline/examples/prompts.md +0 -217
  921. package/skills/talking-head-video-pipeline/references/asr-adapters.md +0 -51
  922. package/skills/talking-head-video-pipeline/references/caption-workflow.md +0 -53
  923. package/skills/talking-head-video-pipeline/references/export-recipes.md +0 -78
  924. package/skills/talking-head-video-pipeline/references/layout-safety.md +0 -49
  925. package/skills/talking-head-video-pipeline/references/video-use-integration.md +0 -71
  926. package/skills/talking-head-video-pipeline/references/workflows/captions.md +0 -52
  927. package/skills/talking-head-video-pipeline/references/workflows/design.md +0 -77
  928. package/skills/talking-head-video-pipeline/references/workflows/doctor.md +0 -51
  929. package/skills/talking-head-video-pipeline/references/workflows/export.md +0 -50
  930. package/skills/talking-head-video-pipeline/references/workflows/init.md +0 -51
  931. package/skills/talking-head-video-pipeline/references/workflows/learn.md +0 -36
  932. package/skills/text-to-lottie/SKILL.md +0 -202
  933. package/skills/text-to-lottie/references/chapterization-transition-grammar.md +0 -132
  934. package/skills/text-to-lottie/references/design-taste.md +0 -292
  935. package/skills/text-to-lottie/references/lottie-spec-map.md +0 -82
  936. package/skills/text-to-lottie/references/motion-taste.md +0 -260
  937. package/skills/text-to-lottie/references/player-contract.md +0 -325
  938. package/skills/text-to-lottie/references/recipe-camera-scene-motion.md +0 -65
  939. package/skills/text-to-lottie/references/recipe-data-stats.md +0 -104
  940. package/skills/text-to-lottie/references/recipe-diagram-technical.md +0 -106
  941. package/skills/text-to-lottie/references/recipe-loaders-icons.md +0 -70
  942. package/skills/text-to-lottie/references/recipe-logo.md +0 -72
  943. package/skills/text-to-lottie/references/recipe-lower-thirds.md +0 -62
  944. package/skills/text-to-lottie/references/recipe-product-promo.md +0 -99
  945. package/skills/ultrademo/SKILL.md +0 -212
  946. package/skills/video-assemble/SKILL.md +0 -101
  947. package/skills/video-assemble-zenstory-ai/SKILL.md +0 -153
  948. package/skills/video-assemble-zenstory-ai/references/audio-modes.md +0 -63
  949. package/skills/video-assemble-zenstory-ai/references/explicit-audio-mix.md +0 -77
  950. package/skills/video-assemble-zenstory-ai/references/jianying/SOURCE.md +0 -14
  951. package/skills/video-assemble-zenstory-ai/references/narration-adoption.md +0 -103
  952. package/skills/video-assemble-zenstory-ai/references/packaging.md +0 -44
  953. package/skills/video-assemble-zenstory-ai/references/source-score.md +0 -146
  954. package/skills/video-assemble-zenstory-ai/references/subtitle-track.md +0 -202
  955. package/skills/video-editing/SKILL.md +0 -688
  956. package/skills/video-explainer/SKILL.md +0 -163
  957. package/skills/video-explainer/references/brief-to-script.md +0 -56
  958. package/skills/video-explainer/references/errors-and-privacy.md +0 -18
  959. package/skills/video-explainer/references/motion-storyboard.md +0 -82
  960. package/skills/video-explainer/references/render-and-verify.md +0 -62
  961. package/skills/video-explainer/references/review-gate.md +0 -82
  962. package/skills/video-explainer/references/setup-and-doctor.md +0 -33
  963. package/skills/video-script-builder/SKILL.md +0 -329
  964. package/skills/video-script-builder/examples/quick-start-transcript.md +0 -19
  965. package/skills/video-script-builder/references/audio-workflow.md +0 -84
  966. package/skills/video-script-builder/references/caption-components.md +0 -70
  967. package/skills/video-script-builder/references/common-pitfalls.md +0 -80
  968. package/skills/video-script-builder/references/component-catalog.md +0 -197
  969. package/skills/video-script-builder/references/component-recipes.md +0 -165
  970. package/skills/video-script-builder/references/gsap-patterns.md +0 -112
  971. package/skills/video-script-builder/references/pacing-rules.md +0 -78
  972. package/skills/video-script-builder/references/quality-checklist.md +0 -98
  973. package/skills/video-script-builder/references/remotion-patterns.md +0 -211
  974. package/skills/video-script-builder/references/shader-transitions.md +0 -115
  975. package/skills/video-script-builder/references/taste-principles.md +0 -160
  976. package/skills/video-scrub/SKILL.md +0 -216
  977. package/skills/video-scrub/references/profiles.md +0 -89
  978. package/skills/video-scrub/references/residue-map.md +0 -204
  979. package/skills/video-short-maker/SKILL.md +0 -182
  980. package/skills/video-shot-analysis-feishu/SKILL.md +0 -173
  981. package/skills/video-shotcraft/SKILL.md +0 -267
  982. package/skills/video-shotcraft/docs/deepseek-harness.md +0 -69
  983. package/skills/video-shotcraft/references/aesthetic-rules.md +0 -177
  984. package/skills/video-shotcraft/references/final-review.md +0 -112
  985. package/skills/video-shotcraft/references/guided-free-creation.md +0 -199
  986. package/skills/video-shotcraft/references/jianying-export.md +0 -182
  987. package/skills/video-shotcraft/references/music-beat-sync.md +0 -219
  988. package/skills/video-shotcraft/references/pipeline.md +0 -390
  989. package/skills/video-shotcraft/references/sequences/promo-energy-arc.md +0 -50
  990. package/skills/video-shotcraft/references/shots/ATTRIBUTION.md +0 -65
  991. package/skills/video-shotcraft/references/shots/camera/basic-3d-scene.md +0 -37
  992. package/skills/video-shotcraft/references/shots/camera/crash-zoom-punch.md +0 -39
  993. package/skills/video-shotcraft/references/shots/camera/cursor-flyover.md +0 -38
  994. package/skills/video-shotcraft-vincentwei10/SKILL.md +0 -316
  995. package/skills/video-shotcraft-vincentwei10/references/aesthetic-rules.md +0 -187
  996. package/skills/video-shotcraft-vincentwei10/references/final-review.md +0 -116
  997. package/skills/video-shotcraft-vincentwei10/references/guided-free-creation.md +0 -199
  998. package/skills/video-shotcraft-vincentwei10/references/jianying-export.md +0 -183
  999. package/skills/video-shotcraft-vincentwei10/references/music-beat-sync.md +0 -257
  1000. package/skills/video-shotcraft-vincentwei10/references/pipeline.md +0 -401
  1001. package/skills/video-shotcraft-vincentwei10/references/publish-upload-post.md +0 -111
  1002. package/skills/video-shotcraft-vincentwei10/references/sequences/promo-energy-arc.md +0 -50
  1003. package/skills/video-shotcraft-vincentwei10/references/shots/ATTRIBUTION.md +0 -62
  1004. package/skills/video-shotcraft-vincentwei10/references/shots/camera/basic-3d-scene.md +0 -41
  1005. package/skills/video-shotcraft-vincentwei10/references/shots/camera/crash-zoom-punch.md +0 -52
  1006. package/skills/video-shotcraft-vincentwei10/references/shots/camera/cursor-flyover.md +0 -39
  1007. package/skills/video-structure-analyzer/SKILL.md +0 -148
  1008. package/skills/video-structure-analyzer/examples/xhs-rook-time-spend/xhs-rook-time-spend_/346/213/211/347/211/207/346/213/206/350/247/243.md +0 -50
  1009. package/skills/video-structure-analyzer/examples/xhs-smelly-cat/xhs-smelly-cat_/346/213/211/347/211/207/346/213/206/350/247/243.md +0 -19
  1010. package/skills/video-toolkit/SKILL.md +0 -686
  1011. package/skills/videocut/SKILL.md +0 -159
  1012. package/skills/videodb/SKILL.md +0 -497
  1013. package/skills/videodb/reference/api-reference.md +0 -741
  1014. package/skills/videodb/reference/capture-reference.md +0 -399
  1015. package/skills/videodb/reference/capture.md +0 -110
  1016. package/skills/videodb/reference/editor-reference.md +0 -506
  1017. package/skills/videodb/reference/editor.md +0 -389
  1018. package/skills/videodb/reference/generative.md +0 -344
  1019. package/skills/videodb/reference/indexing-reference.md +0 -481
  1020. package/skills/videodb/reference/indexing.md +0 -537
  1021. package/skills/videodb/reference/legacy/index-reference.md +0 -223
  1022. package/skills/videodb/reference/legacy/index.md +0 -241
  1023. package/skills/videodb/reference/legacy/search.md +0 -249
  1024. package/skills/videodb/reference/migration.md +0 -113
  1025. package/skills/vlog-auto-edit/SKILL.md +0 -982
  1026. package/skills/vlog-auto-edit/examples/project_structure.md +0 -84
  1027. package/skills/vox-animated-ad-mcp/SKILL.md +0 -419
  1028. package/skills/vox-director/SKILL.md +0 -351
  1029. package/skills/vox-director/references/beat-layer.md +0 -143
  1030. package/skills/vox-director/references/host-mode.md +0 -120
  1031. package/skills/vox-director/references/local-engine.md +0 -73
  1032. package/skills/vox-director/references/models-and-gotchas.md +0 -91
  1033. package/skills/vox-director/references/prompt-guide.md +0 -275
  1034. package/skills/vox-director/references/voices.md +0 -59
  1035. package/skills/xingchen-vox-collage/SKILL.md +0 -251
  1036. package/skills/xingchen-vox-collage/references/asset-layer-contract.md +0 -98
  1037. package/skills/xingchen-vox-collage/references/creative-exploration.md +0 -19
  1038. package/skills/xingchen-vox-collage/references/learned-branches.md +0 -34
  1039. package/skills/xingchen-vox-collage/references/remotion-scene-contract.md +0 -77
  1040. package/skills/xingchen-vox-collage/references/visual-language.md +0 -74
  1041. package/skills/xingchen-vox-collage/references/visual-qa.md +0 -59
  1042. package/skills/youtube/SKILL.md +0 -147
  1043. package/skills/youtube/references/algorithm-guide.md +0 -59
  1044. package/skills/youtube/references/analytics-benchmarks.md +0 -67
  1045. package/skills/youtube/references/dataforseo-integration.md +0 -51
  1046. package/skills/youtube/references/monetization-guide.md +0 -62
  1047. package/skills/youtube/references/repurposing-guide.md +0 -54
  1048. package/skills/youtube/references/retention-scripting-guide.md +0 -75
  1049. package/skills/youtube/references/seo-playbook.md +0 -77
  1050. package/skills/youtube/references/shorts-playbook.md +0 -64
  1051. package/skills/youtube/references/thumbnail-ctr-guide.md +0 -73
  1052. package/skills/youtube-shorts-factory/SKILL.md +0 -358
  1053. package/skills/youtube-shorts-factory/resources/adaptation-guide.md +0 -133
  1054. package/skills/youtube-shorts-factory/resources/storyboard-template.md +0 -271
  1055. package/skills/youtube-shorts-factory/resources/workflow-steps.md +0 -139
  1056. package/studio/ui/dist/assets/ExportCenter-DEyy1vs_.js +0 -1
  1057. package/studio/ui/dist/assets/SettingsModal-CQmsA2A2.js +0 -2
  1058. package/studio/ui/dist/assets/es-AqUfIkAy.js +0 -1
  1059. package/studio/ui/dist/assets/index-C7moXjTY.css +0 -1
  1060. package/studio/ui/dist/assets/index-DdU5QNpY.js +0 -1623
  1061. package/studio/ui/dist/assets/ja-YwiCB4QQ.js +0 -1
  1062. package/studio/ui/dist/assets/ko-CKtBPDze.js +0 -1
  1063. package/studio/ui/dist/assets/zh-CN-DtNEwKWJ.js +0 -1
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": 53,
3
+ "name": "Vaporwave",
4
+ "nameZh": "蒸汽波",
5
+ "family": "Retro UI & Neon",
6
+ "familyZh": "复古界面与霓虹",
7
+ "description": "Pastel-neon dreamscape: sliced sunset sun, glowing grid floor, a glitching marble bust on a checkerboard plinth, palm silhouettes, katakana, and a chewed-up VHS tape finish.",
8
+ "motionNotes": "Motion: Tape starts on a blue VCR screen and rolls into lock, the striped sun rises, palms slide in, the bust glitches into existence slice by slice, katakana stamps on with chroma split and a tracking band crawls down.",
9
+ "explainerNotes": "Explainer: Told on a worn VHS tape: scenes change with a tape cut (VCR blue screen, fast-forward, vertical roll), the header lives on as the VCR on-screen menu, the counter is tape-counter digits, labelled polaroids slide along the neon floor into the marble-bust \"model\", a pastel guess.exe pop-up does the guessing and the chart is drawn in neon across the sky.",
10
+ "code": "code.js",
11
+ "registeredAs": "vaporwave",
12
+ "source": "https://www.futurepedia.io/resources/ai-style-atlas/view"
13
+ }
@@ -0,0 +1,504 @@
1
+ {
2
+ // Ebru / suminagashi marbling, simulated FORWARD with the mathematical marbling transforms
3
+ // (Jaffer & Lu): ink drop p' = c + (p-c)·sqrt(1 + r²/|p-c|²)
4
+ // tine line p' = p + α·λ/(d+λ)·M (d = distance to the stylus line)
5
+ // comb = a periodic set of tine lines with alternating direction
6
+ // Every floated colour is a polygon; each later operation moves all earlier vertices, with
7
+ // adaptive re-subdivision so stretched veins stay smooth. Pigment speckle is sampled in the
8
+ // pre-comb coordinates, so it is dragged along the rake like real floated paint.
9
+ const TAU = Math.PI * 2;
10
+ const PAL = {
11
+ indigo: '#1d2a5e', red: '#a6252b', ochre: '#d89c2c', teal: '#21807c', cream: '#efe3c4',
12
+ ink: '#1b1d27', slate: '#3f5470', rose: '#cf6f5e', sky: '#7ea6c4', sand: '#d9bf86', green: '#4f6b3a',
13
+ };
14
+
15
+ // ---- transforms (forward) ----
16
+ const T = {
17
+ drop: (o) => (x, y) => { const dx = x - o.x, dy = y - o.y, d2 = dx * dx + dy * dy + 1e-9, f = Math.sqrt(1 + (o.r * o.r) / d2); return [o.x + dx * f, o.y + dy * f]; },
18
+ tine: (o) => (x, y) => { const d = Math.abs((x - o.x) * -o.my + (y - o.y) * o.mx), z = (o.a * o.l) / (d + o.l); return [x + z * o.mx, y + z * o.my]; },
19
+ // periodic comb: tines every S px along one axis, alternating push direction
20
+ comb: (o) => (x, y) => { const u = o.vertical ? x : y; const dv = combShift(u, o); return o.vertical ? [x, y + dv] : [x + dv, y]; },
21
+ wave: (o) => (x, y) => o.vertical ? [x, y + o.A * Math.sin((x / o.L) * TAU + o.ph)] : [x + o.A * Math.sin((y / o.L) * TAU + o.ph), y],
22
+ };
23
+ function combShift(u, o) {
24
+ const j0 = Math.round((u - o.off) / o.S);
25
+ let s = 0;
26
+ for (let j = j0 - 3; j <= j0 + 3; j++) { const d = Math.abs(u - (o.off + j * o.S)); s += ((j & 1) ? -1 : 1) * (o.a * o.l) / (d + o.l); }
27
+ return s;
28
+ }
29
+
30
+ function applyOp(polys, f, maxLen) {
31
+ for (const P of polys) {
32
+ if (P.dead) continue;
33
+ const src = P.pts, out = [];
34
+ const n = src.length / 2;
35
+ const tp = new Array(n);
36
+ for (let i = 0; i < n; i++) tp[i] = f(src[i * 2], src[i * 2 + 1]);
37
+ const push = (ax, ay, bx, by, A, B, depth) => {
38
+ // emits A then (recursively) the midpoints needed so that |A'B'| <= maxLen
39
+ const ddx = B[0] - A[0], ddy = B[1] - A[1];
40
+ if (depth < 5 && ddx * ddx + ddy * ddy > maxLen * maxLen) {
41
+ const mx = (ax + bx) / 2, my = (ay + by) / 2, M = f(mx, my);
42
+ push(ax, ay, mx, my, A, M, depth + 1);
43
+ push(mx, my, bx, by, M, B, depth + 1);
44
+ } else out.push(A[0], A[1]);
45
+ };
46
+ // NB: subdivision samples pre-images; we keep transformed coordinates as the new polygon
47
+ for (let i = 0; i < n; i++) {
48
+ const j = (i + 1) % n;
49
+ push(src[i * 2], src[i * 2 + 1], src[j * 2], src[j * 2 + 1], tp[i], tp[j], 0);
50
+ }
51
+ P.pts = out;
52
+ // cull polygons that have left the sheet entirely
53
+ let minx = 1e9, maxx = -1e9, miny = 1e9, maxy = -1e9;
54
+ for (let i = 0; i < out.length; i += 2) { const x = out[i], y = out[i + 1]; if (x < minx) minx = x; if (x > maxx) maxx = x; if (y < miny) miny = y; if (y > maxy) maxy = y; }
55
+ if (minx > 1500 || maxx < -220 || miny > 940 || maxy < -220) P.dead = true;
56
+ }
57
+ }
58
+ function circle(x, y, r) {
59
+ const n = Math.max(48, Math.min(360, Math.round((TAU * r) / 3)));
60
+ const pts = [];
61
+ for (let i = 0; i < n; i++) { const a = (i / n) * TAU; pts.push(x + Math.cos(a) * r, y + Math.sin(a) * r); }
62
+ return pts;
63
+ }
64
+
65
+
66
+ // =====================================================================================
67
+ // EXPLAINER — the model is the marbling bath. Examples are drops of colour landing on it
68
+ // (ochre = cat, indigo = dog). A new picture is a red probe drop; the model's "guess" is the
69
+ // way its current flow drags the probe. The error is a counter-stroke of the stylus, and the
70
+ // adjustment is a comb pass that puts the pattern in order. Scenes change the marbler's way:
71
+ // the printed sheet is lifted off the bath, revealing the next bath underneath.
72
+ // =====================================================================================
73
+ const PX = (t, a, b) => H.clamp((t - a) / (b - a));
74
+ const INKB = '#2a2018', REDI = '#a6252b';
75
+ let PM_TEX = null, PM_STILL = null, PM_SPK = null;
76
+ function pmTexture(W, H_) {
77
+ if (PM_TEX) return PM_TEX;
78
+ PM_TEX = H.layer(W, H_); const c = PM_TEX.getContext('2d'), img = c.createImageData(W, H_), d = img.data;
79
+ const nz = H.makeNoise(3), nz2 = H.makeNoise(8), cn = H.makeNoise(44), r = H.rng(9);
80
+ for (let y = 0; y < H_; y++) for (let x = 0; x < W; x++) {
81
+ const sp = nz.n2(x * 0.08, y * 0.08) * 0.5 + nz2.n2(x * 0.35, y * 0.35) * 0.5;
82
+ const laid = (x % 3 === 0 ? -0.025 : 0) + ((x + 9) % 64 < 1.5 ? -0.03 : 0);
83
+ const cock = cn.fbm2(x * 0.0044, y * 0.0044, 3) * 0.11 + cn.fbm2(x * 0.035 / 8 + 7, y * 0.035 / 8, 3) * 0.035; // broad cockle + the still's finer drying undulation
84
+ const k = H.clamp(0.93 + sp * 0.07 + laid + cock + (r() - 0.5) * 0.04, 0, 1);
85
+ const o = (y * W + x) * 4; d[o] = d[o + 1] = d[o + 2] = 255 * k; d[o + 3] = 255;
86
+ }
87
+ c.putImageData(img, 0, 0); return PM_TEX;
88
+ }
89
+ function pmStill(W, H_) {
90
+ if (PM_STILL) return PM_STILL;
91
+ PM_STILL = H.layer(W, H_); const st = window.STYLES.find((s) => s.id === 'paper-marbling'); H.render(st, PM_STILL, 7.9); return PM_STILL;
92
+ }
93
+ // pigment pooling at a floated drop's rim: the drop's own colour, darker (not a neutral ink outline)
94
+ const RIM = {}, HALO = {};
95
+ const rimOf = (col) => RIM[col] || (RIM[col] = H.rgba(H.hex(col).map((v) => v * 0.66), 0.72));
96
+ const haloOf = (col) => HALO[col] || (HALO[col] = H.rgba(H.mix(col, '#fff6e2', 0.35), 0.38));
97
+ // cockle (the hero's soft-light undulation from the wetted sheet drying), built once per size
98
+ let PM_COCK = null;
99
+ function pmCockle(W, H_) {
100
+ if (PM_COCK && PM_COCK.w === W) return PM_COCK.c;
101
+ const cn = H.makeNoise(44), sw = Math.round(W / 8), sh = Math.round(H_ / 8);
102
+ const lay = H.layer(sw, sh), lc = lay.getContext('2d'), li = lc.createImageData(sw, sh);
103
+ for (let y = 0; y < sh; y++) for (let x = 0; x < sw; x++) {
104
+ const v = cn.fbm2(x * 0.035, y * 0.035, 3), o = (y * sw + x) * 4;
105
+ li.data[o] = li.data[o + 1] = li.data[o + 2] = v > 0 ? 255 : 0; li.data[o + 3] = Math.min(255, Math.abs(v) * 110);
106
+ }
107
+ lc.putImageData(li, 0, 0); PM_COCK = { w: W, c: lay }; return lay;
108
+ }
109
+ // pigment granulation: fine dark/light speckle that only lives inside floated colour. Baked into one
110
+ // repeating tile per pigment, so filling a drop with its colour already carries the granulation.
111
+ let PM_GRAIN = null; const PM_PAT = {};
112
+ function pmGrain() {
113
+ if (PM_GRAIN) return PM_GRAIN;
114
+ const S = 512; PM_GRAIN = new Float32Array(S * S);
115
+ const nz = H.makeNoise(17), r = H.rng(23), w = (x, y, f) => nz.n2(x * f, y * f * 0.42) ; // tileable via 4-corner blend
116
+ for (let y = 0; y < S; y++) for (let x = 0; x < S; x++) {
117
+ const fx = x / S, fy = y / S, n = (xx, yy) => w(xx, yy, 0.5) * 0.6 + nz.n2(xx * 0.09 + 40, yy * 0.05) * 0.4;
118
+ const v = n(x, y) * (1 - fx) * (1 - fy) + n(x - S, y) * fx * (1 - fy) + n(x, y - S) * (1 - fx) * fy + n(x - S, y - S) * fx * fy;
119
+ PM_GRAIN[y * S + x] = H.clamp(0.9 + (v * 1.6 + (r() - 0.5) * 0.5) * 0.16, 0, 1.05);
120
+ }
121
+ return PM_GRAIN;
122
+ }
123
+ function pigment(ctx, col) {
124
+ if (PM_PAT[col]) return PM_PAT[col];
125
+ const S = 512, g = pmGrain(), c3 = H.hex(col), cv = H.layer(S, S), c = cv.getContext('2d'), img = c.createImageData(S, S), d = img.data;
126
+ for (let i = 0; i < S * S; i++) { const k = g[i]; d[i * 4] = Math.min(255, c3[0] * k); d[i * 4 + 1] = Math.min(255, c3[1] * k); d[i * 4 + 2] = Math.min(255, c3[2] * k); d[i * 4 + 3] = 255; }
127
+ c.putImageData(img, 0, 0); return (PM_PAT[col] = ctx.createPattern(cv, 'repeat'));
128
+ }
129
+ function renderPolys(ctx, W, H_, polys, bath) {
130
+ ctx.fillStyle = bath; ctx.fillRect(0, 0, W, H_);
131
+ // the bare size is never flat: a broad, faint tonal drift across the bath
132
+ const bg = ctx.createLinearGradient(0, 0, W, H_); bg.addColorStop(0, 'rgba(255,250,236,0.35)'); bg.addColorStop(0.55, 'rgba(255,250,236,0)'); bg.addColorStop(1, 'rgba(150,120,70,0.12)');
133
+ ctx.fillStyle = bg; ctx.fillRect(0, 0, W, H_);
134
+ for (const P of polys) {
135
+ if (P.dead) continue; const p = P.pts;
136
+ ctx.beginPath(); ctx.moveTo(p[0], p[1]); for (let i = 2; i < p.length; i += 2) ctx.lineTo(p[i], p[i + 1]); ctx.closePath();
137
+ ctx.fillStyle = pigment(ctx, P.col); ctx.fill();
138
+ if (P.halo) { ctx.save(); ctx.clip(); ctx.strokeStyle = haloOf(P.col); ctx.lineWidth = 6; ctx.stroke(); ctx.restore(); } // gall halo just inside a fresh drop
139
+ ctx.strokeStyle = rimOf(P.col); ctx.lineWidth = 1; ctx.stroke();
140
+ }
141
+ }
142
+ function finish(ctx, W, H_) {
143
+ // soften like the still (floated colour never has a vector edge): a half-pixel resample of itself,
144
+ // visually the hero's blur(0.6px) at a fraction of the cost; then laid paper, fibre and cockle (pmTexture)
145
+ ctx.save(); ctx.globalAlpha = 0.5; ctx.drawImage(ctx.canvas, 0, 0, ctx.canvas.width, ctx.canvas.height, 0.5, 0.5, W, H_); ctx.restore();
146
+ ctx.save(); ctx.globalCompositeOperation = 'multiply'; ctx.drawImage(pmTexture(W, H_), 0, 0); ctx.restore();
147
+ H.vignette(ctx, W, H_, 0.2, '40,25,10');
148
+ }
149
+ // bookbinder's paper label: cream, double rule, serif type
150
+ function blabel(ctx, text, x, y, o = {}) {
151
+ const size = o.size || 22; ctx.save();
152
+ ctx.font = `${o.italic ? 'italic ' : ''}700 ${size}px "Libre Baskerville"`; try { ctx.letterSpacing = o.ls || '1px'; } catch (e) {}
153
+ const w = ctx.measureText(text).width + size * 1.4, h = size * 2;
154
+ const ox = o.align === 'left' ? x : o.align === 'right' ? x - w : x - w / 2;
155
+ ctx.fillStyle = 'rgba(30,20,10,0.25)'; ctx.fillRect(ox + 3, y - h / 2 + 4, w, h);
156
+ ctx.fillStyle = o.red ? '#f6e6d6' : '#f3ead2'; ctx.fillRect(ox, y - h / 2, w, h);
157
+ ctx.strokeStyle = o.red ? REDI : INKB; ctx.lineWidth = 1.6; ctx.strokeRect(ox + 4, y - h / 2 + 4, w - 8, h - 8); ctx.lineWidth = 0.6; ctx.strokeRect(ox + 7, y - h / 2 + 7, w - 14, h - 14);
158
+ ctx.fillStyle = o.red ? REDI : INKB; ctx.textBaseline = 'middle'; ctx.textAlign = 'center'; ctx.fillText(text, ox + w / 2, y + 1);
159
+ ctx.restore(); return w;
160
+ }
161
+ function dropLabel(ctx, t, t0, text, x, y, o) { if (t < t0) return; const k = H.ease.out(PX(t, t0, t0 + 0.25)); ctx.save(); ctx.globalAlpha = k; blabel(ctx, text, x, y + (1 - k) * -18, o); ctx.restore(); }
162
+ // inked brush arrow (stylus-drawn line with a tapered head)
163
+ function inkArrow(ctx, pts, p, col = INKB, lw = 4) {
164
+ if (p <= 0) return; let L = 0; for (let i = 1; i < pts.length; i++) L += Math.hypot(pts[i][0] - pts[i - 1][0], pts[i][1] - pts[i - 1][1]);
165
+ let left = L * p, end = pts[0], prev = pts[0]; ctx.save(); ctx.strokeStyle = col; ctx.fillStyle = col; ctx.lineWidth = lw; ctx.lineCap = 'round'; ctx.lineJoin = 'round'; ctx.beginPath(); ctx.moveTo(pts[0][0], pts[0][1]);
166
+ for (let i = 1; i < pts.length && left > 0; i++) { const d = Math.hypot(pts[i][0] - pts[i - 1][0], pts[i][1] - pts[i - 1][1]), q = Math.min(1, left / d); prev = pts[i - 1]; end = [pts[i - 1][0] + (pts[i][0] - pts[i - 1][0]) * q, pts[i - 1][1] + (pts[i][1] - pts[i - 1][1]) * q]; ctx.lineTo(end[0], end[1]); left -= d; }
167
+ ctx.stroke(); const a = Math.atan2(end[1] - prev[1], end[0] - prev[0]), hd = lw * 4.5;
168
+ ctx.beginPath(); ctx.moveTo(end[0] + Math.cos(a) * lw, end[1] + Math.sin(a) * lw); ctx.lineTo(end[0] - Math.cos(a - 0.45) * hd, end[1] - Math.sin(a - 0.45) * hd); ctx.quadraticCurveTo(end[0] - Math.cos(a) * hd * 0.6, end[1] - Math.sin(a) * hd * 0.6, end[0] - Math.cos(a + 0.45) * hd, end[1] - Math.sin(a + 0.45) * hd); ctx.closePath(); ctx.fill();
169
+ ctx.restore();
170
+ }
171
+ const HEAD = 28; // running head: a story label, so >= 28px
172
+ const pmHeader = (ctx) => blabel(ctx, 'How does AI learn?', 24, 42, { size: HEAD, italic: true, align: 'left' });
173
+ const textW = (ctx, text, size, italic) => { ctx.save(); ctx.font = `${italic ? 'italic ' : ''}700 ${size}px "Libre Baskerville"`; try { ctx.letterSpacing = '1px'; } catch (e) {} const w = ctx.measureText(text).width + size * 1.4; ctx.restore(); return w; };
174
+ // shared battal ground (the untrained model): `n` drops, landing from time t0 over dur
175
+ function battal(polys, t, n, t0, dur, ML, halo = false) {
176
+ const r = H.rng(77), cols = [PAL.ochre, PAL.indigo, PAL.sand, PAL.ochre, PAL.indigo, PAL.cream, PAL.sky];
177
+ const landed = [];
178
+ for (let i = 0; i < n; i++) {
179
+ const x = r.range(-40, 1320), y = r.range(-40, 760), rad = r.range(44, 84), kind = r() < 0.5 ? 'cat' : 'dog';
180
+ const col = kind === 'cat' ? (r() < 0.75 ? PAL.ochre : PAL.sand) : (r() < 0.75 ? PAL.indigo : PAL.sky);
181
+ const ti = t0 + dur * Math.pow(i / n, 0.85); if (t < ti) break;
182
+ const g = H.ease.out(PX(t, ti, ti + 0.3));
183
+ applyOp(polys, T.drop({ x, y, r: Math.max(0.5, rad * g) }), ML); polys.push({ pts: circle(x, y, Math.max(0.5, rad * g)), col, halo: halo && t - ti < 0.7 }); // gall halo only while the drop is fresh
184
+ landed.push({ x, y, kind, ti });
185
+ }
186
+ return landed;
187
+ }
188
+ function probe(polys, x, y, ML, g = 1) {
189
+ [PAL.red, PAL.cream, PAL.red, PAL.cream, PAL.red].forEach((col, i) => { const rad = Math.max(0.5, (i === 0 ? 40 : 19) * g); applyOp(polys, T.drop({ x, y, r: rad }), ML); polys.push({ pts: circle(x, y, rad), col, probe: true }); });
190
+ }
191
+ function centroid(polys) { let sx = 0, sy = 0, n = 0; for (const P of polys) if (P.probe) for (let i = 0; i < P.pts.length; i += 2) { sx += P.pts[i]; sy += P.pts[i + 1]; n++; } return [sx / n, sy / n]; }
192
+ function flowX(polys, t) { // horizontal tine through the probe = the model's flow
193
+ return polys;
194
+ }
195
+
196
+ // ---------- scenes ----------
197
+ function mHook(ctx, W, H_, t) {
198
+ const z = 1.08 - 0.06 * H.ease.out(PX(t, 0, 2.4));
199
+ ctx.save(); ctx.translate(W / 2, H_ / 2); ctx.scale(z, z); ctx.translate(-W / 2, -H_ / 2); ctx.drawImage(pmStill(W, H_), 0, 0); ctx.restore();
200
+ const k = H.ease.inOut(PX(t, 1.75, 2.3)), pop = H.ease.back(PX(t, 0.15, 0.5));
201
+ const hs = HEAD / 64, hcx = 24 + textW(ctx, 'How does AI learn?', HEAD, true) / 2;
202
+ if (k < 1) { ctx.save(); ctx.translate(640 + (hcx - 640) * k, 360 + (42 - 360) * k); ctx.scale(pop * (1 - (1 - hs) * k), pop * (1 - (1 - hs) * k)); blabel(ctx, 'How does AI learn?', 0, 0, { size: 64, italic: true }); ctx.restore(); }
203
+ else pmHeader(ctx);
204
+ }
205
+ function mData(ctx, W, H_, t) {
206
+ const polys = [], ML = 4;
207
+ const landed = battal(polys, t, 95, 2.5, 3.1, ML, true);
208
+ renderPolys(ctx, W, H_, polys, PAL.cream); finish(ctx, W, H_);
209
+ // the most recent drops carry their labels
210
+ const placed = [];
211
+ landed.slice(-3).forEach((d, i) => {
212
+ let lx = H.clamp(d.x, 80, 1200), ly = H.clamp(d.y - 80, 200, 470);
213
+ for (let pass = 0; pass < 3; pass++) for (const q of placed) if (Math.abs(q[0] - lx) < 60 + 50 && Math.abs(q[1] - ly) < 60) ly = q[1] - 58; // stack above a crowding label
214
+ placed.push([lx, ly]);
215
+ const a = H.clamp(1 - (t - d.ti - 0.5) / 0.4); if (a > 0) { ctx.save(); ctx.globalAlpha = a; blabel(ctx, d.kind, lx, ly, { size: 28 }); ctx.restore(); }
216
+ });
217
+ dropLabel(ctx, t, 2.9, 'the bath = the model', 960, 110, { size: 30 });
218
+ dropLabel(ctx, t, 3.2, 'ochre = cat · indigo = dog', 1000, 650, { size: 28, italic: true });
219
+ if (t > 2.65) {
220
+ const p = PX(t, 2.7, 5.0), n = p >= 1 ? 1e6 : Math.floor(Math.pow(10, 6 * H.ease.inOut(p))) - 1;
221
+ const w = blabel(ctx, Math.round(n).toLocaleString('en-US'), 40, 600, { size: 64, align: 'left' }); blabel(ctx, 'examples', 40 + w + 14, 610, { size: 30, align: 'left', italic: true });
222
+ }
223
+ pmHeader(ctx);
224
+ }
225
+ function mLoop(ctx, W, H_, t) {
226
+ const polys = [], ML = 4;
227
+ battal(polys, 99, 95, 0, 0.01, ML);
228
+ const adj = PX(t, 8.95, 9.45);
229
+ if (adj > 0) applyOp(polys, T.comb({ vertical: true, S: 90, off: 20, a: 60 * H.ease.inOut(adj), l: 22 }), ML); // adjust: the comb orders the bath
230
+ const pg = PX(t, 6.35, 6.6); if (pg > 0) probe(polys, 640, 330, ML, H.ease.out(pg));
231
+ const f1 = H.ease.inOut(PX(t, 6.8, 7.3)), back = H.ease.inOut(PX(t, 8.35, 8.85)), f2 = H.ease.inOut(PX(t, 9.45, 9.85));
232
+ if (f1 > 0) applyOp(polys, T.tine({ x: 0, y: 330, mx: 1, my: 0, a: 300 * f1, l: 40 }), ML); // guess: flow drags probe toward DOG
233
+ if (back > 0) applyOp(polys, T.tine({ x: 0, y: 330, mx: -1, my: 0, a: 300 * back, l: 40 }), ML); // error: counter-stroke drags it back
234
+ if (f2 > 0) applyOp(polys, T.tine({ x: 0, y: 330, mx: -1, my: 0, a: 330 * f2, l: 40 }), ML); // guess again: now flows to CAT
235
+ renderPolys(ctx, W, H_, polys, PAL.cream); finish(ctx, W, H_);
236
+ const right = t >= 9.85, [px, py] = pg > 0 ? centroid(polys) : [640, 330];
237
+ blabel(ctx, '◀ CAT', 30, 330, { size: 36, align: 'left', red: right });
238
+ blabel(ctx, 'DOG ▶', 1250, 330, { size: 36, align: 'right', red: t >= 7.3 && t < 8.85 });
239
+ dropLabel(ctx, t, 6.35, t >= 8.0 ? 'answer: cat' : 'new picture', 640, 450, { size: 28, italic: true, red: t >= 8.0 });
240
+ if (t >= 6.8 && t < 7.3) inkArrow(ctx, [[600, 250], [900, 250]], PX(t, 6.8, 7.2));
241
+ if (t >= 7.3 && !right) dropLabel(ctx, t, 7.3, 'guess: dog?', 1010, 215, { size: 34 });
242
+ if (t >= 7.85 && !right) { const k = H.ease.out(PX(t, 7.85, 8.05)); ctx.save(); ctx.strokeStyle = REDI; ctx.lineWidth = 6; ctx.lineCap = 'round'; ctx.beginPath(); ctx.ellipse(1150, 330, 140, 70, -0.05, -1.4, -1.4 + 6.4 * k); ctx.stroke(); ctx.restore(); dropLabel(ctx, t, 7.95, 'check: wrong ✗', 1060, 445, { size: 30, red: true }); }
243
+ if (t >= 8.35 && t < 9.45) { inkArrow(ctx, [[960, 395], [600, 395]], PX(t, 8.35, 8.8), REDI, 6); dropLabel(ctx, t, 8.4, 'error: pull back', 700, 520, { size: 28, red: true }); }
244
+ if (t >= 8.95 && t < 10.5) dropLabel(ctx, t, 8.95, 'adjust: comb the bath', 640, 120, { size: 32, red: true });
245
+ if (right) dropLabel(ctx, t, 9.85, 'cat ✓', 300, 220, { size: 44, red: true });
246
+ const words = ['guess', 'check', 'adjust'], act = t < 7.3 ? -1 : t < 7.85 ? 0 : t < 8.35 ? 1 : t < 9.45 ? 2 : Math.floor((t - 9.45) / 0.16) % 3;
247
+ let x = 120; words.forEach((w, i) => { x += blabel(ctx, w, x, 630, { size: 32, align: 'left', red: i === act }) + 12; if (i < 2) { inkArrow(ctx, [[x, 630], [x + 52, 630]], 1, INKB, 4.5); x += 68; } });
248
+ blabel(ctx, '↻ ×1,000,000', x + 6, 630, { size: 28, italic: true, align: 'left' });
249
+ pmHeader(ctx);
250
+ }
251
+ function mProg(ctx, W, H_, t) {
252
+ const polys = [], ML = 4;
253
+ battal(polys, 99, 95, 0, 0.01, ML);
254
+ const p = H.ease.inOut(PX(t, 10.85, 12.3)), rounds = Math.floor(p * 5);
255
+ // each training round is one more, finer comb pass: chaos combs into order
256
+ const combs = [{ vertical: true, S: 90, off: 20, a: 60, l: 22 }, { vertical: false, S: 120, off: 40, a: 28, l: 30 }, { vertical: true, S: 45, off: 10, a: 22, l: 12 }];
257
+ for (let k = 0; k < Math.min(3, rounds); k++) applyOp(polys, T.comb(combs[k]), ML);
258
+ const sub = H.clamp(p * 5 - rounds); if (rounds < 3) applyOp(polys, T.comb({ ...combs[rounds], a: combs[rounds].a * H.ease.inOut(sub) }), ML);
259
+ renderPolys(ctx, W, H_, polys, PAL.cream); finish(ctx, W, H_);
260
+ // card with accuracy + ink chart
261
+ ctx.save(); ctx.fillStyle = 'rgba(30,20,10,0.25)'; ctx.fillRect(84, 124, 520, 470); ctx.fillStyle = '#f3ead2'; ctx.fillRect(80, 120, 520, 470);
262
+ ctx.strokeStyle = INKB; ctx.lineWidth = 1.6; ctx.strokeRect(86, 126, 508, 458); ctx.lineWidth = 0.6; ctx.strokeRect(90, 130, 500, 450); ctx.restore();
263
+ ctx.save(); ctx.font = 'italic 700 36px "Libre Baskerville"'; ctx.fillStyle = INKB; ctx.fillText('Accuracy', 120, 188);
264
+ const v = Math.round(61 + 36 * p), punch = t >= 12.3 ? 1 + 0.12 * Math.exp(-(t - 12.3) * 9) : 1;
265
+ ctx.translate(120, 320); ctx.scale(punch, punch); ctx.font = '700 120px "Libre Baskerville"'; ctx.fillText(v + '%', 0, 0); ctx.restore();
266
+ if (t >= 12.3) { const k = H.ease.out(PX(t, 12.3, 12.55)); ctx.save(); ctx.strokeStyle = REDI; ctx.lineWidth = 6; ctx.lineCap = 'round'; ctx.beginPath(); ctx.ellipse(300, 278, 205, 85, -0.04, -2.6, -2.6 + 6.5 * k); ctx.stroke(); ctx.restore(); }
267
+ const x0 = 130, y0 = 545, cw = 420, ch = 160, n = 6, pts = [];
268
+ for (let i = 0; i < n; i++) { const acc = 61 + 36 * (1 - Math.exp(-i / 1.6)) / (1 - Math.exp(-(n - 1) / 1.6)); pts.push([x0 + (i / (n - 1)) * cw, y0 - ((acc - 55) / 45) * ch]); }
269
+ ctx.save(); ctx.strokeStyle = INKB; ctx.lineWidth = 1; ctx.beginPath(); ctx.moveTo(x0, y0 - ch - 10); ctx.lineTo(x0, y0); ctx.lineTo(x0 + cw + 10, y0); ctx.stroke(); ctx.restore();
270
+ inkArrow(ctx, pts, PX(t, 10.9, 12.3), REDI, 3.5);
271
+ ctx.save(); ctx.font = 'italic 400 28px "Libre Baskerville"'; ctx.fillStyle = INKB; ctx.fillText('training rounds →', x0, y0 + 32); ctx.restore();
272
+ dropLabel(ctx, t, 10.75, `comb pass ${Math.min(5, rounds + 1)}: chaos → order`, 940, 640, { size: 28, italic: true });
273
+ pmHeader(ctx);
274
+ }
275
+ function mTake(ctx, W, H_, t) {
276
+ ctx.drawImage(pmStill(W, H_), 0, 0);
277
+ const k = H.ease.back(PX(t, 13.25, 13.6));
278
+ ctx.save(); ctx.translate(640, 360); ctx.scale(k, k);
279
+ blabel(ctx, 'More examples', 0, -56, { size: 56, italic: true });
280
+ blabel(ctx, '→ better guesses', 0, 60, { size: 56, italic: true, red: true });
281
+ ctx.restore();
282
+ }
283
+ function explainPM(ctx, W, H_, t) {
284
+ const seq = [[0, mHook], [2.4, mData], [6.0, mLoop], [10.5, mProg], [13.0, mTake]];
285
+ let i = 0; for (let k = 0; k < seq.length; k++) if (t >= seq[k][0]) i = k;
286
+ const t0 = seq[i][0], D = 0.55;
287
+ if (i > 0 && t < t0 + D) {
288
+ // the printed sheet is lifted off the bath, peeling from the left edge
289
+ seq[i][1](ctx, W, H_, t);
290
+ const A = H.layer(W, H_); seq[i - 1][1](A.getContext('2d'), W, H_, t0 - 0.01);
291
+ const lx = -80 + (W + 200) * H.ease.inOut(PX(t, t0, t0 + D)), curl = 90;
292
+ ctx.save(); ctx.fillStyle = 'rgba(20,10,0,0.35)'; ctx.fillRect(lx, 0, 40, H_); ctx.restore(); // shadow of the lifted sheet
293
+ ctx.drawImage(A, lx + curl, 0, W, H_, lx + curl, 0, W, H_);
294
+ const g = ctx.createLinearGradient(lx, 0, lx + curl, 0); g.addColorStop(0, '#d9ccad'); g.addColorStop(0.55, '#f5ecd6'); g.addColorStop(1, '#bfae8a');
295
+ ctx.fillStyle = g; ctx.fillRect(lx, 0, curl, H_); // the paper's back, curling up
296
+ } else seq[i][1](ctx, W, H_, t);
297
+ }
298
+
299
+ registerStyle({
300
+ id: 'paper-marbling',
301
+ name: 'Ebru Paper Marbling',
302
+ category: 'Generative & Type',
303
+ description: 'Turkish ebru on laid paper: a battal stone ground of floated pigments raked into gel-git chevrons and combed, then suminagashi ring-drops pulled by a stylus into tulips — built with the exact drop and tine transforms.',
304
+ motion: 'Colour drops rain onto the size and bloom, shoving earlier drops into veins; the rake drags the stone into gel-git flames; ring after ring is dropped at one point; then the stylus pulls the rings into a tulip, and a wet sheen glides over the finished bath.',
305
+ fonts: ['700 22px "Libre Baskerville"', 'italic 700 22px "Libre Baskerville"', 'italic 400 15px "Libre Baskerville"'],
306
+ duration: 8,
307
+ frameT: 7.9,
308
+ readsPixels: true,
309
+ explainerDuration: 14.5,
310
+ explainerNote: 'The bath is the model: examples land as colour drops, a new picture is a red probe drop that the flow drags toward its guess, the error is a stylus counter-stroke and the adjustment a comb pass that puts the pattern in order; scenes change by lifting the printed sheet off the bath, labels are bookbinder paper labels and arrows are inked stylus strokes.',
311
+ explainer(ctx, W, H_, t) { explainPM(ctx, W, H_, t); },
312
+ // Sound: the marbling bath. Colour drops land with small low water plops (pitch from drop size, pan from position,
313
+ // throttled), the stylus and its counter-stroke are soft watery drags across the size, comb passes are a fuller
314
+ // swish with the tines riffling through, scene changes are the wet sheet peeled off the bath, and the bookbinder
315
+ // labels set down with a soft paper tap. A quiet pad sits under it. Timings mirror explainPM / mHook..mTake above.
316
+ explainerSound(k) {
317
+ const D = 14.5, E = H.ease;
318
+ const pan = (px) => H.clamp((px / 1280) * 2 - 1, -1, 1) * 0.7;
319
+ const when = (t0, t1, ease, u) => { for (let i = 0; i <= 400; i++) { const t = t0 + ((t1 - t0) * i) / 400; if (ease(i / 400) >= u - 1e-6) return t; } return t1; };
320
+ // a colour drop meeting the size: short low bubble plop (stays under ~1 kHz) with a soft body
321
+ const plop = (t, f, g, p) => { k.tone(t, { f: [[0, f], [0.045, f * 2.1]], dur: 0.075, gain: 0.13 * g, a: 0.002, pan: p }); k.tone(t, { f: [[0, 140], [0.06, 90]], dur: 0.08, gain: 0.1 * g, pan: p }); k.noise(t, { dur: 0.03, filter: 'lowpass', f: 700, gain: 0.08 * g, a: 0.001, pan: p }); };
322
+ // label set down on the bench
323
+ const label = (t0, p, g = 1) => { const t = t0 + 0.06; k.withMinor(() => { k.noise(t, { dur: 0.05, filter: 'bandpass', f: 1000, q: 0.7, gain: 0.12 * g, a: 0.003, pan: p }); k.tone(t, { f: 150, dur: 0.05, gain: 0.07 * g, pan: p }); }); };
324
+ // stylus dragged through the bath from pan a to b over dur
325
+ const drag = (t, dur, a, b, g = 1) => {
326
+ const steps = 6; for (let i = 0; i < steps; i++) { const u = i / steps; k.noise(t + u * dur, { dur: dur / steps + 0.08, color: 'pink', filter: 'bandpass', f: 380 + 380 * Math.sin(Math.PI * (u + 0.08)), q: 1.6, gain: 0.13 * g * Math.sin(Math.PI * (u + 0.1)), a: 0.04, pan: a + (b - a) * u }); }
327
+ k.tone(t + dur * 0.3, { f: [[0, 220], [0.05, 420]], dur: 0.07, gain: 0.05 * g, pan: a + (b - a) * 0.3, minor: true });
328
+ k.tone(t + dur * 0.7, { f: [[0, 260], [0.05, 500]], dur: 0.07, gain: 0.04 * g, pan: a + (b - a) * 0.7, minor: true });
329
+ };
330
+ // comb pass: a swish with the tines riffling through the size
331
+ const comb = (t, dur, g = 1) => {
332
+ k.noise(t, { dur: dur + 0.1, color: 'pink', filter: 'lowpass', f: [[0, 500], [dur * 0.5, 1100], [dur + 0.1, 400]], gain: 0.13 * g, a: dur * 0.35 });
333
+ const r = H.rng(Math.round(t * 100)); k.withMinor(() => { for (let x = 0.03; x < dur; x += 0.045 + r() * 0.03) k.noise(t + x, { dur: 0.03, filter: 'bandpass', f: 600 + r() * 500, q: 2, gain: 0.07 * g * Math.sin(Math.PI * x / dur), a: 0.008, pan: (x / dur - 0.5) * 0.8 }); });
334
+ };
335
+ // wet sheet peeled off the bath, left edge first (D = 0.55, inOut)
336
+ const peel = (t0) => {
337
+ const r = H.rng(Math.round(t0 * 10));
338
+ k.noise(t0, { dur: 0.6, color: 'pink', filter: 'bandpass', f: [[0, 500], [0.3, 1200], [0.6, 600]], q: 0.9, gain: 0.12, a: 0.25 });
339
+ k.withMinor(() => { for (let x = 0.04; x < 0.55; x += 0.025 + r() * 0.03) { const u = x / 0.55; k.noise(t0 + x, { dur: 0.025, filter: 'bandpass', f: 700 + r() * 800, q: 1.2, gain: 0.1 * Math.sin(Math.PI * u) + 0.02, a: 0.003, pan: -0.7 + 1.4 * E.inOut(u) }); } });
340
+ k.noise(t0 + 0.5, { dur: 0.12, color: 'brown', filter: 'lowpass', f: 300, gain: 0.12, a: 0.01 }); // last of it lets go of the size
341
+ };
342
+ const busy = []; // drop times: counter clicks step around them so neither masks the other
343
+ const counter = (t0, t1, ease, steps, rate, p) => { let last = -1, prev = 0;
344
+ for (let t = t0; t <= t1; t += 0.002) { const s = Math.floor(ease(H.clamp((t - t0) / (t1 - t0))) * steps); if (s !== prev && t - last >= 1 / rate && !busy.some((b) => t > b - 0.02 && t < b + 0.07)) { k.play('tock', t, { f: 700, gain: 0.38, pan: p, minor: true }); last = t; } prev = s; } };
345
+
346
+ k.bed('room', 0, D, { gain: 0.3 });
347
+ k.music('pad', 0, D, { bpm: 64, gain: 0.35, chords: [['D3', 'A3', 'C4', 'F4'], ['G2', 'D3', 'B3', 'F4'], ['C3', 'G3', 'C4', 'E4'], ['A2', 'E3', 'A3', 'C4']] });
348
+
349
+ // ---- hook: title label pops (back 0.15-0.5), slides to the corner (1.75-2.3)
350
+ label(when(0.15, 0.5, E.back, 1) - 0.06, 0, 1.6);
351
+ k.noise(1.75, { dur: 0.55, color: 'pink', filter: 'lowpass', f: [[0, 600], [0.55, 280]], gain: 0.028, a: 0.2, minor: true });
352
+
353
+ // ---- data: peel, then 95 drops at ti = 2.5 + 3.1 (i/95)^0.85 (same seeded draws as battal), labels, counter
354
+ peel(2.4);
355
+ { const r = H.rng(77); let last = -1;
356
+ for (let i = 0; i < 95; i++) {
357
+ const x = r.range(-40, 1320); r.range(-40, 760); const rad = r.range(44, 84); r(); r();
358
+ const ti = 2.5 + 3.1 * Math.pow(i / 95, 0.85);
359
+ if (ti - last < (i < 4 ? 0.1 : 0.16)) continue; last = ti; busy.push(ti);
360
+ k.withMinor(() => plop(ti, 520 - rad * 3, i < 4 ? 1.2 : 0.8, pan(x)));
361
+ } }
362
+ label(2.9, 0.5); label(3.2, 0.55);
363
+ counter(2.72, 4.98, E.inOut, 30, 8, -0.6);
364
+ label(4.94, -0.6, 1.5); k.tone(5.0, { f: 'D3', dur: 0.7, gain: 0.1, a: 0.01, verb: 0.3, pan: -0.5 }); // 1,000,000 lands
365
+
366
+ // ---- loop: peel, probe drop, guess drag, wrong, counter-stroke, comb, guess again, cat ✓
367
+ peel(6.0);
368
+ plop(6.35, 300, 1.4, 0); plop(6.42, 380, 0.7, 0); plop(6.5, 420, 0.5, 0); // the red ring drops
369
+ label(6.35, 0);
370
+ drag(6.8, 0.5, -0.1, 0.6); // the flow pulls the probe toward DOG
371
+ label(7.3, 0.5);
372
+ k.play('stroke', 7.85, { material: 'brush', dur: 0.2, gain: 1.4, pan: pan(1150), minor: true }); // red ring round DOG
373
+ label(7.95, 0.5, 1.3);
374
+ k.play('tock', 7.97, { f: 300, gain: 0.7, pan: pan(1100) }); k.play('tock', 8.13, { f: 225, gain: 0.7, pan: pan(1100) }); // check: wrong
375
+ k.play('thud', 7.97, { f: 100, gain: 0.45, pan: pan(1100) });
376
+ drag(8.35, 0.5, 0.6, -0.1, 1.1); // counter-stroke pulls it back
377
+ label(8.4, 0.1);
378
+ label(8.95, 0);
379
+ comb(8.95, 0.5, 0.75); // adjust: the comb orders the bath
380
+ drag(9.45, 0.4, 0, -0.6); // now the flow pulls it to CAT
381
+ label(9.85, -0.4, 1.3);
382
+ ['G4', 'D5'].forEach((n, i) => k.play('ding', 9.88 + i * 0.09, { f: n, gain: 0.5, pan: -0.4 })); // cat ✓
383
+
384
+ // ---- progress: peel, comb passes (rounds = floor(5 inOut(p))), red ink chart, counter, 97%
385
+ peel(10.5);
386
+ label(10.75, 0.4);
387
+ for (let r = 0; r < 3; r++) { const a = when(10.85, 12.3, E.inOut, r / 5 + 1e-4), b = when(10.85, 12.3, E.inOut, (r + 1) / 5); comb(a, b - a, 0.6 - r * 0.12); busy.push(a + (b - a) / 2); }
388
+ k.play('stroke', 10.9, { material: 'brush', dur: 1.4, gain: 0.35, pan: -0.4, minor: true });
389
+ counter(10.86, 12.28, E.inOut, 36, 8, -0.5);
390
+ k.play('impact', 12.3, { gain: 1.0, pan: -0.4 });
391
+ plop(12.3, 180, 2.2, -0.3);
392
+ ['D3', 'A3', 'F#4', 'A4'].forEach((n, i) => k.tone(12.32 + i * 0.03, { f: n, type: 'triangle', dur: 1.3, gain: 0.07, a: 0.01, verb: 0.35, filter: 'lowpass', f2: 1800, pan: (i - 1.5) * 0.25 })); // the 97% bloom
393
+ k.play('stroke', 12.32, { material: 'brush', dur: 0.24, gain: 0.8, pan: -0.4, minor: true }); // red ring
394
+
395
+ // ---- takeaway: peel back to the finished sheet, labels pop, resolve
396
+ peel(13.0);
397
+ const tk = when(13.25, 13.6, E.back, 1);
398
+ label(tk - 0.06, 0, 1.6);
399
+ ['G2', 'D3', 'B3', 'D4', 'G4'].forEach((n, i) => k.tone(tk + 0.05 + i * 0.05, { f: n, type: 'triangle', dur: 1.2, gain: 0.07, a: 0.01, verb: 0.35, filter: 'lowpass', f2: 1800, pan: (i - 2) * 0.2 }));
400
+ },
401
+ draw(ctx, W, H_, t) {
402
+ const r = H.rng(2024);
403
+ const polys = [];
404
+ const ML = 3.2;
405
+ const drop = (x, y, rad, col) => {
406
+ applyOp(polys, T.drop({ x, y, r: rad }), ML);
407
+ polys.push({ pts: circle(x, y, rad), col });
408
+ };
409
+ // a drop lands at time ti and blooms outward (radius eases to full) — later drops wait
410
+ const land = (ti, x, y, rad, col, dur = 0.3) => {
411
+ if (t < ti) return;
412
+ const g = H.ease.out(H.clamp((t - ti) / dur));
413
+ drop(x, y, Math.max(0.5, rad * g), col);
414
+ };
415
+ const P = (a, b) => H.ease.inOut(H.clamp((t - a) / (b - a)));
416
+ const op = (k, f) => { if (k > 1e-4) applyOp(polys, f, ML); };
417
+ // 1) battal ground: rows of drops sprinkled from the brush
418
+ const ground = ['indigo', 'sand', 'sky', 'indigo', 'cream', 'teal', 'indigo', 'slate', 'sky', 'indigo', 'sand', 'ochre'];
419
+ for (let i = 0; i < 270; i++) {
420
+ land(0.05 + 2.1 * Math.pow(i / 270, 0.9), r.range(-80, W + 80), r.range(-80, H_ + 80), r.range(28, 64), PAL[ground[i % ground.length]]);
421
+ }
422
+ // fine 'eyes' sprinkled into the stone before raking (become streaks & veins)
423
+ for (let i = 0; i < 160; i++) land(2.15 + 0.4 * (i / 160), r.range(-40, W + 40), r.range(-40, H_ + 40), r.range(3, 11), r.chance(0.55) ? PAL.cream : r.chance(0.5) ? PAL.ochre : PAL.ink, 0.15);
424
+ // 2) gel-git: coarse alternating rake top<->bottom, then a wave, then the fine comb (tarak)
425
+ const ph = 0.36;
426
+ const rake = P(2.6, 3.7), wv = P(3.2, 4.0);
427
+ op(rake, T.comb({ vertical: true, S: 80, off: 20 + ph * 30, a: 70 * rake, l: 22 }));
428
+ op(wv, T.wave({ vertical: false, A: 18 * wv, L: 260, ph: 0.8 + ph }));
429
+
430
+ // 3) sprinkle of small dark drops (opens tiny eyes in the ground)
431
+ for (let i = 0; i < 40; i++) land(4.0 + 0.35 * (i / 40), r.range(0, W), r.range(0, H_), r.range(4, 9), r.chance(0.5) ? PAL.cream : PAL.ink, 0.12);
432
+ // 4) focal tulip: concentric suminagashi rings dropped at one point
433
+ const fx = 640, fy = 250;
434
+ const rings = ['ochre', 'red', 'cream', 'red', 'cream', 'ochre', 'cream', 'red', 'ink', 'cream', 'red', 'cream', 'teal', 'cream', 'red', 'ochre', 'cream', 'red', 'cream', 'ink', 'cream'];
435
+ rings.forEach((c, i) => land(4.35 + i * 0.045, fx, fy, i === 0 ? 34 : 24, PAL[c], 0.12));
436
+ // side buds
437
+ [[330, 420], [950, 420]].forEach(([bx, by], k) => {
438
+ ['red', 'cream', 'ochre', 'cream', 'red', 'cream', 'ink', 'cream', 'red'].forEach((c, i) => land(4.6 + k * 0.08 + i * 0.05, bx, by, i === 0 ? 20 : 15, PAL[c], 0.12));
439
+ });
440
+ // stem + leaves: a column of small green drops and two leaf drops
441
+ for (let y = 470; y < 700; y += 24) land(5.2 + (y - 470) / 230 * 0.25, fx + Math.sin(y * 0.02) * 4, y, 9, PAL.green, 0.12);
442
+ land(5.45, fx - 62, 560, 26, PAL.green, 0.2); land(5.5, fx + 62, 600, 24, PAL.green, 0.2);
443
+ // 5) stylus: pull through each flower to form the tulip; stem and leaves pulled too
444
+ const p0 = P(5.6, 6.4), p1 = P(5.9, 6.5), p2 = P(6.05, 6.6), p3 = P(6.3, 6.8), swl = P(6.4, 7.0);
445
+ op(p0, T.tine({ x: fx, y: 0, mx: 0, my: 1, a: 260 * p0, l: 16 }));
446
+ op(p1, T.tine({ x: 330, y: 0, mx: 0, my: -1, a: 120 * p1, l: 10 }));
447
+ op(p2, T.tine({ x: 950, y: 0, mx: 0, my: -1, a: 120 * p2, l: 10 }));
448
+ op(p3, T.tine({ x: fx - 62, y: 560, mx: -0.6, my: -0.8, a: 70 * p3, l: 12 }));
449
+ op(p3, T.tine({ x: fx + 62, y: 600, mx: 0.6, my: -0.8, a: 70 * p3, l: 12 }));
450
+ // a slight lateral swirl as the sheet is laid (keeps it from looking rigid)
451
+ op(swl, T.wave({ vertical: true, A: 5 * swl, L: 420, ph: 1.7 }));
452
+
453
+ // ---------- render ----------
454
+ ctx.fillStyle = PAL.sand; ctx.fillRect(0, 0, W, H_);
455
+ for (const P of polys) {
456
+ if (P.dead) continue;
457
+ const p = P.pts;
458
+ ctx.beginPath(); ctx.moveTo(p[0], p[1]);
459
+ for (let i = 2; i < p.length; i += 2) ctx.lineTo(p[i], p[i + 1]);
460
+ ctx.closePath();
461
+ ctx.fillStyle = P.col; ctx.fill();
462
+ // pigment concentrates at the rim of each floated drop: its own colour, darker
463
+ ctx.strokeStyle = rimOf(P.col); ctx.lineWidth = 1; ctx.stroke();
464
+ }
465
+
466
+ ctx.save(); ctx.filter = 'blur(0.6px)'; ctx.drawImage(ctx.canvas, 0, 0, ctx.canvas.width, ctx.canvas.height, 0, 0, W, H_); ctx.restore();
467
+ // ---------- flow-dragged pigment speckle + paper ----------
468
+ // The rake is a vertical comb, so its inverse shift depends on x only: one combShift per column, and the
469
+ // speckle noise is looked up from a cached pre-comb field (same formula as sampling it per pixel).
470
+ const SPM = 260;
471
+ if (!PM_SPK || PM_SPK.W !== W) {
472
+ const nz = H.makeNoise(3), nz2 = H.makeNoise(8), rr = H.rng(9), RH = H_ + SPM * 2;
473
+ const sp = new Float32Array(W * RH), lr = new Float32Array(W * H_);
474
+ for (let y = 0; y < RH; y++) for (let x = 0; x < W; x++) { const py = y - SPM; sp[y * W + x] = (nz.n2(x * 0.08, py * 0.08) * 0.55 + nz2.n2(x * 0.35, py * 0.35) * 0.45) * 0.12; }
475
+ for (let y = 0; y < H_; y++) for (let x = 0; x < W; x++) lr[y * W + x] = (x % 3 === 0 ? -0.025 : 0) + ((x + 9) % 64 < 1.5 ? -0.03 : 0) + (rr() - 0.5) * 0.04; // laid lines, fibre tooth
476
+ PM_SPK = { W, sp, lr };
477
+ }
478
+ const img = ctx.getImageData(0, 0, W, H_), d = img.data;
479
+ const combA = { vertical: true, S: 80, off: 20 + ph * 30, a: 70 * rake, l: 22 };
480
+ const shiftX = new Int32Array(W);
481
+ for (let x = 0; x < W; x++) shiftX[x] = Math.max(-SPM, Math.min(SPM, Math.round(-combShift(x, combA))));
482
+ const { sp, lr } = PM_SPK;
483
+ for (let y = 0; y < H_; y++) {
484
+ for (let x = 0; x < W; x++) {
485
+ const k = 1 + sp[(y + shiftX[x] + SPM) * W + x] + lr[y * W + x];
486
+ const o = (y * W + x) * 4;
487
+ d[o] *= k; d[o + 1] *= k; d[o + 2] *= k;
488
+ }
489
+ }
490
+ ctx.putImageData(img, 0, 0);
491
+ // cockle: broad soft light/dark undulation from the wetted sheet drying
492
+ ctx.save(); ctx.globalCompositeOperation = 'soft-light'; ctx.imageSmoothingQuality = 'high'; ctx.drawImage(pmCockle(W, H_), 0, 0, W, H_); ctx.restore();
493
+ // wet sheen gliding across the bath once the pattern is finished
494
+ const gs = H.clamp((t - 6.7) / 1.3);
495
+ if (gs > 0) {
496
+ const gx = -400 + 2100 * H.ease.inOut(gs);
497
+ const lg = ctx.createLinearGradient(gx - 260, 0, gx + 260, 200);
498
+ lg.addColorStop(0, 'rgba(255,250,235,0)'); lg.addColorStop(0.5, 'rgba(255,250,235,0.13)'); lg.addColorStop(1, 'rgba(255,250,235,0)');
499
+ ctx.save(); ctx.globalCompositeOperation = 'screen'; ctx.fillStyle = lg; ctx.fillRect(0, 0, W, H_); ctx.restore();
500
+ }
501
+ H.vignette(ctx, W, H_, 0.2, '40,25,10');
502
+ },
503
+ });
504
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": 54,
3
+ "name": "Ebru Paper Marbling",
4
+ "nameZh": "土耳其水拓画",
5
+ "family": "Generative & Type",
6
+ "familyZh": "生成艺术与字体",
7
+ "description": "Turkish ebru on laid paper: a battal stone ground of floated pigments raked into gel-git chevrons and combed, then suminagashi ring-drops pulled by a stylus into tulips — built with the exact drop and tine transforms.",
8
+ "motionNotes": "Motion: Colour drops rain onto the size and bloom, shoving earlier drops into veins; the rake drags the stone into gel-git flames; ring after ring is dropped at one point; then the stylus pulls the rings into a tulip, and a wet sheen glides over the finished bath.",
9
+ "explainerNotes": "Explainer: The bath is the model: examples land as colour drops, a new picture is a red probe drop that the flow drags toward its guess, the error is a stylus counter-stroke and the adjustment a comb pass that puts the pattern in order; scenes change by lifting the printed sheet off the bath, labels are bookbinder paper labels and arrows are inked stylus strokes.",
10
+ "code": "code.js",
11
+ "registeredAs": "paper-marbling",
12
+ "source": "https://www.futurepedia.io/resources/ai-style-atlas/view"
13
+ }