@autoaiai/aicut 0.1.7 → 0.1.11

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 (796) hide show
  1. package/MANUAL.md +10 -0
  2. package/package.json +1 -1
  3. package/product.json +2 -1
  4. package/skills/30x-web-to-video/SKILL.md +421 -0
  5. package/skills/30x-web-to-video/examples/INDEX.md +26 -0
  6. package/skills/30x-web-to-video/references/animations.md +539 -0
  7. package/skills/30x-web-to-video/references/audio.md +256 -0
  8. package/skills/30x-web-to-video/references/components.md +340 -0
  9. package/skills/30x-web-to-video/references/lottie.md +174 -0
  10. package/skills/30x-web-to-video/references/visual-effects.md +157 -0
  11. package/skills/30x-web-to-video/remotion-best-practices/rules/audio.md +169 -0
  12. package/skills/30x-web-to-video/remotion-best-practices/rules/calculate-metadata.md +134 -0
  13. package/skills/30x-web-to-video/remotion-best-practices/rules/charts.md +120 -0
  14. package/skills/30x-web-to-video/remotion-best-practices/rules/compositions.md +154 -0
  15. package/skills/30x-web-to-video/remotion-best-practices/rules/ffmpeg.md +38 -0
  16. package/skills/30x-web-to-video/remotion-best-practices/rules/fonts.md +152 -0
  17. package/skills/3d-asset-generation/SKILL.md +142 -0
  18. package/skills/action-fight-prompt/SKILL.md +136 -0
  19. package/skills/action-fight-prompt/references/camera-and-impact.md +64 -0
  20. package/skills/action-fight-prompt/references/example-15s-duel.md +59 -0
  21. package/skills/action-fight-prompt/references/scene-patterns.md +80 -0
  22. package/skills/ad-creative-video/SKILL.md +205 -0
  23. package/skills/ad-creative-video/references/batch-ad-pipeline.md +289 -0
  24. package/skills/ad-creative-video/references/platform-specs.md +72 -0
  25. package/skills/after-effects/SKILL.md +123 -0
  26. package/skills/after-effects/references/export-recipes.md +168 -0
  27. package/skills/after-effects/references/expression-library.md +184 -0
  28. package/skills/after-effects/references/expressions.md +134 -0
  29. package/skills/after-effects/references/performance-triage.md +138 -0
  30. package/skills/after-effects/references/project-hygiene.md +188 -0
  31. package/skills/ai-media-quality-review/SKILL.md +72 -0
  32. package/skills/ai-product-video/SKILL.md +296 -0
  33. package/skills/ai-product-video/references/aesthetic-rules.md +177 -0
  34. package/skills/ai-product-video/references/final-review.md +110 -0
  35. package/skills/ai-product-video/references/guided-free-creation.md +194 -0
  36. package/skills/ai-product-video/references/music-beat-sync.md +219 -0
  37. package/skills/ai-product-video/references/pipeline.md +392 -0
  38. package/skills/ai-product-video/references/sequences/promo-energy-arc.md +50 -0
  39. package/skills/ai-product-video/references/shots/ATTRIBUTION.md +65 -0
  40. package/skills/ai-product-video/references/shots/camera/basic-3d-scene.md +37 -0
  41. package/skills/ai-product-video/references/shots/camera/crash-zoom-punch.md +39 -0
  42. package/skills/ai-product-video/references/shots/camera/cursor-flyover.md +38 -0
  43. package/skills/ai-product-video/references/shots/camera/depth-layer-moves.md +40 -0
  44. package/skills/ai-product-video/references/shots/camera/graze-face-tour.md +57 -0
  45. package/skills/aicut/SKILL.md +4 -4
  46. package/skills/aicut/references/commands.md +15 -15
  47. package/skills/aicut/references/film-format.md +1 -1
  48. package/skills/aicut/references/recipes.md +4 -4
  49. package/skills/aicut/references/troubleshooting.md +2 -2
  50. package/skills/aicut-motion/SKILL.md +6 -6
  51. package/skills/aicut-motion/references/design-systems/README.md +1 -1
  52. package/skills/aicut-motion/references/pages.md +1 -1
  53. package/skills/anidoodle/SKILL.md +185 -0
  54. package/skills/anidoodle/references/anatomy.md +91 -0
  55. package/skills/anidoodle/references/backends-and-adapters.md +82 -0
  56. package/skills/anidoodle/references/camera.md +148 -0
  57. package/skills/anidoodle/references/craft-bar.md +72 -0
  58. package/skills/anidoodle/references/determinism-and-contract.md +46 -0
  59. package/skills/anidoodle/references/formats.md +121 -0
  60. package/skills/anidoodle/references/motion-grammar.md +234 -0
  61. package/skills/anidoodle/references/music/compose.md +388 -0
  62. package/skills/anidoodle/references/music/sound-design.md +245 -0
  63. package/skills/anidoodle/references/music/sounds-licenses.md +69 -0
  64. package/skills/anidoodle/references/music/styles/lofi-electronic.md +112 -0
  65. package/skills/anidoodle/references/music/styles/music-box.md +57 -0
  66. package/skills/animated-component-libraries/SKILL.md +820 -0
  67. package/skills/animated-component-libraries/references/customization_guide.md +699 -0
  68. package/skills/animated-component-libraries/references/magic_ui_components.md +422 -0
  69. package/skills/animated-component-libraries/references/react_bits_components.md +587 -0
  70. package/skills/animated-infographic/SKILL.md +211 -0
  71. package/skills/animated-infographic/references/sequenced-infographic.md +286 -0
  72. package/skills/appshot-core/SKILL.md +872 -0
  73. package/skills/article-highlights/SKILL.md +151 -0
  74. package/skills/avatar-mix/SKILL.md +301 -0
  75. package/skills/bang-motion/SKILL.md +583 -0
  76. package/skills/bang-motion/references/ae-bridge-higgsfield.md +160 -0
  77. package/skills/bang-motion/references/anti-ppt.md +110 -0
  78. package/skills/bang-motion/references/architecture.md +188 -0
  79. package/skills/bang-motion/references/explainer.md +579 -0
  80. package/skills/bang-motion/references/kartun-panggung.md +221 -0
  81. package/skills/bang-motion/references/opener-konsep.md +817 -0
  82. package/skills/bang-motion/references/roadmap.md +85 -0
  83. package/skills/bang-motion/references/techniques.md +690 -0
  84. package/skills/beat-sync-edit/SKILL.md +148 -0
  85. package/skills/book-video-factory/SKILL.md +139 -0
  86. package/skills/book-video-factory/references/first-run.md +50 -0
  87. package/skills/book-video-factory/references/paper-collage-explainer.md +127 -0
  88. package/skills/book-video-factory/references/quality-gates.md +87 -0
  89. package/skills/book-video-production/SKILL.md +211 -0
  90. package/skills/brag/SKILL.md +195 -0
  91. package/skills/brag/references/audio.md +312 -0
  92. package/skills/brag/references/step-1-inspect.md +125 -0
  93. package/skills/brag/references/step-2-plan.md +234 -0
  94. package/skills/brag/references/step-3-compose.md +199 -0
  95. package/skills/brag/references/step-4-deliver.md +141 -0
  96. package/skills/brag/references/tones.md +231 -0
  97. package/skills/brand-setup/SKILL.md +228 -0
  98. package/skills/brewreel/SKILL.md +491 -0
  99. package/skills/brewreel/docs/broll.en.md +252 -0
  100. package/skills/brewreel/docs/broll.md +252 -0
  101. package/skills/brewreel/docs/custom-shot.en.md +66 -0
  102. package/skills/brewreel/docs/custom-shot.md +103 -0
  103. package/skills/brewreel/docs/faq.en.md +90 -0
  104. package/skills/brewreel/docs/faq.md +90 -0
  105. package/skills/brewreel/docs/features.en.md +157 -0
  106. package/skills/brewreel/docs/features.md +157 -0
  107. package/skills/brewreel/docs/gallery.en.md +44 -0
  108. package/skills/brewreel/docs/gallery.md +44 -0
  109. package/skills/brewreel/docs/how-it-works.en.md +64 -0
  110. package/skills/brewreel/docs/how-it-works.md +64 -0
  111. package/skills/caption-animation/SKILL.md +216 -0
  112. package/skills/caption-animation/references/word-timed-captions.md +254 -0
  113. package/skills/cartcut-editing/SKILL.md +615 -0
  114. package/skills/cartcut-editing/references/html-typography.md +277 -0
  115. package/skills/cassette-video-edit/SKILL.md +129 -0
  116. package/skills/ccvideo/SKILL.md +264 -0
  117. package/skills/chekhov-dramaturgy/SKILL.md +367 -0
  118. package/skills/chekhov-dramaturgy/reference.md +375 -0
  119. package/skills/chengfeng-check-updates/SKILL.md +283 -0
  120. package/skills/cinematic-product-promo-skill/SKILL.md +295 -0
  121. package/skills/cinematic-product-promo-skill/references/aesthetic-rules.md +187 -0
  122. package/skills/cinematic-product-promo-skill/references/final-review.md +116 -0
  123. package/skills/cinematic-product-promo-skill/references/guided-free-creation.md +199 -0
  124. package/skills/cinematic-product-promo-skill/references/jianying-export.md +183 -0
  125. package/skills/cinematic-product-promo-skill/references/music-beat-sync.md +257 -0
  126. package/skills/cinematic-product-promo-skill/references/pipeline.md +393 -0
  127. package/skills/cinematic-product-promo-skill/references/sequences/promo-energy-arc.md +50 -0
  128. package/skills/cinematic-product-promo-skill/references/shots/ATTRIBUTION.md +65 -0
  129. package/skills/cinematic-product-promo-skill/references/shots/camera/basic-3d-scene.md +37 -0
  130. package/skills/cinematic-product-promo-skill/references/shots/camera/crash-zoom-punch.md +39 -0
  131. package/skills/cinematic-product-promo-skill/references/shots/camera/cursor-flyover.md +38 -0
  132. package/skills/cinematic-product-promo-skill/references/shots/camera/depth-layer-moves.md +40 -0
  133. package/skills/claude-gif/SKILL.md +211 -0
  134. package/skills/claude-gif/references/gif-optimization.md +209 -0
  135. package/skills/claude-gif/references/perfect-loops.md +295 -0
  136. package/skills/claude-gif/references/platform-specs.md +138 -0
  137. package/skills/claude-gif/references/prompt-engineering.md +211 -0
  138. package/skills/claude-gif/references/remotion-gif.md +560 -0
  139. package/skills/codex-video-pipeline/SKILL.md +213 -0
  140. package/skills/codex-video-pipeline/examples/ai-meeting-notes/INPUT.md +10 -0
  141. package/skills/codex-video-pipeline/examples/ai-meeting-notes/expected/action-list.md +22 -0
  142. package/skills/codex-video-pipeline/references/captions.md +39 -0
  143. package/skills/codex-video-pipeline/references/cover-system.md +72 -0
  144. package/skills/codex-video-pipeline/references/cross-platform.md +77 -0
  145. package/skills/codex-video-pipeline/references/example-run.md +54 -0
  146. package/skills/codex-video-pipeline/references/first-run.md +130 -0
  147. package/skills/codex-video-pipeline/references/project-contract.md +54 -0
  148. package/skills/codex-video-pipeline/references/quality-gates.md +44 -0
  149. package/skills/codex-video-pipeline/references/research-and-script.md +50 -0
  150. package/skills/collage-broll-explainers/SKILL.md +429 -0
  151. package/skills/create-onboarding-video/SKILL.md +233 -0
  152. package/skills/cs-shotcraft-skill/SKILL.md +218 -0
  153. package/skills/cs-shotcraft-skill/references/aesthetic-rules.md +207 -0
  154. package/skills/cs-shotcraft-skill/references/camera-table.md +88 -0
  155. package/skills/cs-shotcraft-skill/references/engineering.md +132 -0
  156. package/skills/cs-shotcraft-skill/references/final-review.md +118 -0
  157. package/skills/cs-shotcraft-skill/references/guided-free-creation.md +199 -0
  158. package/skills/cs-shotcraft-skill/references/jianying-export.md +183 -0
  159. package/skills/cs-shotcraft-skill/references/music-beat-sync.md +257 -0
  160. package/skills/cs-shotcraft-skill/references/pipeline.md +408 -0
  161. package/skills/cs-shotcraft-skill/references/product-machine.md +56 -0
  162. package/skills/cs-shotcraft-skill/references/sequences/promo-energy-arc.md +50 -0
  163. package/skills/cs-shotcraft-skill/references/shots/ATTRIBUTION.md +65 -0
  164. package/skills/cs-shotcraft-skill/references/shots/camera/basic-3d-scene.md +37 -0
  165. package/skills/cut-video/SKILL.md +387 -0
  166. package/skills/cyxj-hyperframes-overlay/SKILL.md +75 -0
  167. package/skills/cyxj-remotion-evolve/SKILL.md +123 -0
  168. package/skills/cyxj-remotion-evolve-vibe-motion/SKILL.md +123 -0
  169. package/skills/demo-video-creation-skill/SKILL.md +152 -0
  170. package/skills/demo-video-creation-skill/references/capture-workflow.md +74 -0
  171. package/skills/demo-video-creation-skill/references/qc-checklist.md +61 -0
  172. package/skills/demo-video-creation-skill/references/remotion-ffmpeg.md +94 -0
  173. package/skills/demo-video-creation-skill/references/storytelling.md +86 -0
  174. package/skills/demo-video-creation-skill/references/visual-system.md +83 -0
  175. package/skills/demoday/SKILL.md +148 -0
  176. package/skills/develop-premiere-pro-mcp/SKILL.md +131 -0
  177. package/skills/diagram-animation/SKILL.md +200 -0
  178. package/skills/diagram-animation/references/diagram-and-chart-recipes.md +218 -0
  179. package/skills/diagram-tour/SKILL.md +287 -0
  180. package/skills/diagram-tour/examples/agent-architecture/agent-architecture-tour.md +78 -0
  181. package/skills/docvideoer/SKILL.md +139 -0
  182. package/skills/draftcut/SKILL.md +104 -0
  183. package/skills/draftcut/docs/agent-bootstrap.md +64 -0
  184. package/skills/draftcut/docs/approvals.md +45 -0
  185. package/skills/draftcut/docs/audio-first-migration.md +35 -0
  186. package/skills/draftcut/docs/configuration.md +54 -0
  187. package/skills/draftcut/docs/getting-started.md +63 -0
  188. package/skills/draftcut/docs/harness-case-study.en.md +23 -0
  189. package/skills/draftcut/docs/harness-case-study.md +47 -0
  190. package/skills/draftcut/references/01-plan.md +30 -0
  191. package/skills/draftcut/references/03-deliver.md +26 -0
  192. package/skills/draftcut/references/04-reference-theme-prompt.md +7 -0
  193. package/skills/draftcut/references/05-social-loudness.md +58 -0
  194. package/skills/draftcut/references/06-modern-components.md +72 -0
  195. package/skills/easyedit/SKILL.md +66 -0
  196. package/skills/erduo-broll-loop-engineering/SKILL.md +136 -0
  197. package/skills/erduo-broll-loop-engineering/references/animation-craft.md +208 -0
  198. package/skills/erduo-broll-loop-engineering/references/first-run-onboarding.md +107 -0
  199. package/skills/erduo-broll-loop-engineering/references/handoff-template.md +70 -0
  200. package/skills/erduo-broll-loop-engineering/references/motion-layout-lint.md +122 -0
  201. package/skills/erduo-broll-loop-engineering/references/parent-review-checklist.md +171 -0
  202. package/skills/erduo-broll-loop-engineering/references/prompt-first-workflow.md +322 -0
  203. package/skills/erduo-broll-loop-engineering/references/remotion-backend.md +334 -0
  204. package/skills/erduo-broll-loop-engineering/references/runtime/remotion-hyperframes-map.md +76 -0
  205. package/skills/erduo-broll-loop-engineering/references/runtime/runtime-contract.md +174 -0
  206. package/skills/erduo-broll-loop-engineering/references/runtime/runtime-selection.md +135 -0
  207. package/skills/erduo-broll-loop-engineering/references/shotcraft/remotion-sources/SOURCE.md +7 -0
  208. package/skills/erduo-broll-loop-engineering/references/shotcraft/upstream-attribution.md +65 -0
  209. package/skills/explainer-assets/SKILL.md +98 -0
  210. package/skills/explainer-video/SKILL.md +146 -0
  211. package/skills/framewright/SKILL.md +324 -0
  212. package/skills/framewright/references/audio.md +230 -0
  213. package/skills/framewright/references/guide.md +276 -0
  214. package/skills/framewright/references/painting.md +425 -0
  215. package/skills/framewright/references/photo.md +75 -0
  216. package/skills/framewright/references/questionnaire.md +115 -0
  217. package/skills/framewright/references/styles.md +388 -0
  218. package/skills/framewright/references/troubleshooting.md +119 -0
  219. package/skills/framewright/references/world.md +215 -0
  220. package/skills/gbro-collage-broll/SKILL.md +435 -0
  221. package/skills/gbro-collage-info/SKILL.md +135 -0
  222. package/skills/gbro-collage-info/references/motion-grammar.md +66 -0
  223. package/skills/gbro-collage-info/references/production.md +67 -0
  224. package/skills/gbro-collage-info/references/style-system.md +38 -0
  225. package/skills/gemini-tts/SKILL.md +208 -0
  226. package/skills/gemini-tts/references/prompting-guide.md +169 -0
  227. package/skills/gen/SKILL.md +282 -0
  228. package/skills/ghost-editor/SKILL.md +437 -0
  229. package/skills/ghost-editor/docs/HOW-IT-WORKS.md +82 -0
  230. package/skills/ghost-editor/docs/PLAYBOOK.md +139 -0
  231. package/skills/ghost-editor/docs/THIRD_PARTY/audio.md +17 -0
  232. package/skills/ghost-editor/docs/THIRD_PARTY/audioqa.md +13 -0
  233. package/skills/ghost-editor/docs/THIRD_PARTY/captions.md +20 -0
  234. package/skills/ghost-editor/docs/THIRD_PARTY/fonts.md +17 -0
  235. package/skills/ghost-editor/docs/THIRD_PARTY/kinetic.md +22 -0
  236. package/skills/ghost-editor/docs/THIRD_PARTY/looks.md +22 -0
  237. package/skills/ghost-editor/docs/THIRD_PARTY/matte.md +20 -0
  238. package/skills/ghost-editor/docs/THIRD_PARTY/models.md +11 -0
  239. package/skills/ghost-editor/docs/THIRD_PARTY/runtime.md +13 -0
  240. package/skills/ghost-editor/docs/THIRD_PARTY/shaders.md +15 -0
  241. package/skills/git-story-film/SKILL.md +220 -0
  242. package/skills/git-story-film/examples/raven-story/FONTS.md +8 -0
  243. package/skills/git-story-film/examples/raven-story/OUTLINE.md +93 -0
  244. package/skills/git-story-film/references/craft.md +148 -0
  245. package/skills/git-story-film/references/directing.md +185 -0
  246. package/skills/git-story-film/references/forms.md +150 -0
  247. package/skills/git-story-film/references/production.md +150 -0
  248. package/skills/git-story-film/references/story.md +137 -0
  249. package/skills/git-story-film/references/text-and-fonts.md +90 -0
  250. package/skills/guizang-product-video-skill/SKILL.md +96 -0
  251. package/skills/guizang-product-video-skill/references/audio-and-qa.md +113 -0
  252. package/skills/guizang-product-video-skill/references/audio-sourcing.md +80 -0
  253. package/skills/guizang-product-video-skill/references/case-study.md +63 -0
  254. package/skills/guizang-product-video-skill/references/component-pipeline.md +86 -0
  255. package/skills/guizang-product-video-skill/references/cover.md +43 -0
  256. package/skills/guizang-product-video-skill/references/direction.md +91 -0
  257. package/skills/guizang-product-video-skill/references/onboarding.md +98 -0
  258. package/skills/guizang-product-video-skill/references/repo-and-style.md +44 -0
  259. package/skills/guizang-product-video-skill/references/review.md +38 -0
  260. package/skills/guizang-product-video-skill/references/starter.md +168 -0
  261. package/skills/guizang-product-video-skill/references/story-and-copy.md +88 -0
  262. package/skills/guizang-product-video-skill/references/visual-vocabulary.md +78 -0
  263. package/skills/guofeng-paper-video/SKILL.md +159 -0
  264. package/skills/guofeng-paper-video/style/design.md +43 -0
  265. package/skills/guofeng-paper-video/style/palette.md +21 -0
  266. package/skills/guofeng-paper-video/style/prompts/01-/345/210/206/351/225/234/350/241/250.md +19 -0
  267. package/skills/guofeng-paper-video/style/prompts/02-/347/224/237/346/210/220/347/272/270/347/211/207.md +37 -0
  268. package/skills/guofeng-paper-video/style/prompts/03-/351/205/215/351/237/263/350/204/232/346/234/254.md +27 -0
  269. 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 +67 -0
  270. 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 +29 -0
  271. package/skills/hand-drawn-explainer-video-nikola/SKILL.md +113 -0
  272. package/skills/hand-drawn-explainer-video-nikola/docs/ARCHITECTURE.md +18 -0
  273. package/skills/hand-drawn-explainer-video-nikola/docs/CONFIGURATION.md +22 -0
  274. package/skills/hand-drawn-explainer-video-nikola/docs/STYLES.md +28 -0
  275. package/skills/hand-drawn-explainer-video-nikola/docs/TROUBLESHOOTING.md +35 -0
  276. package/skills/hand-drawn-explainer-video-nikola/examples/program-animation/skill-demo/DESIGN.md +24 -0
  277. package/skills/hand-drawn-explainer-video-nikola/references/automation-workflow.md +67 -0
  278. package/skills/hand-drawn-explainer-video-nikola/references/output-example.md +79 -0
  279. package/skills/hand-drawn-explainer-video-nikola/references/preflight-and-recovery.md +49 -0
  280. package/skills/hand-drawn-explainer-video-nikola/references/style-guide.md +82 -0
  281. package/skills/hand-drawn-explainer-video-nikola/references/style-selection-and-updates.md +39 -0
  282. package/skills/hand-drawn-explainer-video-nikola/references/upstream-whiteboard-review.md +30 -0
  283. package/skills/hand-drawn-explainer-video-nikola/references/voiceover.md +37 -0
  284. package/skills/hbg-life-simulation/SKILL.md +285 -0
  285. package/skills/hbg-life-simulation/references/image-generation.md +53 -0
  286. package/skills/hbg-life-simulation/references/local-account-api.md +112 -0
  287. package/skills/hbg-life-simulation/references/opening-system.md +45 -0
  288. package/skills/hbg-life-simulation/references/project-spec.md +62 -0
  289. package/skills/hbg-life-simulation/references/render-and-qa.md +107 -0
  290. package/skills/hbg-life-simulation/references/storyboarding.md +69 -0
  291. package/skills/hbg-life-simulation/references/style-system.md +80 -0
  292. package/skills/hbg-life-simulation/references/visual-system.md +44 -0
  293. package/skills/heygen-avatar/SKILL.md +489 -0
  294. package/skills/heygen-avatar/references/asset-routing.md +86 -0
  295. package/skills/heygen-avatar/references/avatar-creation.md +181 -0
  296. package/skills/heygen-avatar/references/troubleshooting.md +137 -0
  297. package/skills/heytea-doodle-poster/SKILL.md +132 -0
  298. package/skills/heytea-doodle-poster/references/desktop-pet-character-modes.md +103 -0
  299. package/skills/heytea-doodle-poster/references/desktop-pet-environment.md +122 -0
  300. package/skills/heytea-doodle-poster/references/desktop-pet-pack.md +106 -0
  301. package/skills/heytea-doodle-poster/references/desktop-pet-workflow.md +264 -0
  302. package/skills/heytea-doodle-poster/references/evaluation.md +246 -0
  303. package/skills/heytea-doodle-poster/references/lettering-guide.md +213 -0
  304. package/skills/heytea-doodle-poster/references/mixed-media-style-guide.md +101 -0
  305. package/skills/heytea-doodle-poster/references/monster-poster-workflow.md +56 -0
  306. package/skills/heytea-doodle-poster/references/style-guide.md +412 -0
  307. package/skills/heytea-doodle-poster-hosted/SKILL.md +132 -0
  308. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-character-modes.md +103 -0
  309. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-environment.md +122 -0
  310. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-pack.md +106 -0
  311. package/skills/heytea-doodle-poster-hosted/references/desktop-pet-workflow.md +264 -0
  312. package/skills/heytea-doodle-poster-hosted/references/evaluation.md +246 -0
  313. package/skills/heytea-doodle-poster-hosted/references/lettering-guide.md +213 -0
  314. package/skills/heytea-doodle-poster-hosted/references/mixed-media-style-guide.md +101 -0
  315. package/skills/heytea-doodle-poster-hosted/references/monster-poster-workflow.md +56 -0
  316. package/skills/heytea-doodle-poster-hosted/references/style-guide.md +412 -0
  317. package/skills/html2video/SKILL.md +290 -0
  318. package/skills/html2video/references/cjk-type.md +173 -0
  319. package/skills/html2video/references/editorial.md +145 -0
  320. package/skills/html2video/references/narration.md +111 -0
  321. package/skills/html2video/references/pitfalls.md +238 -0
  322. package/skills/html2video/references/shots.md +198 -0
  323. package/skills/html2video/references/storyboard.md +323 -0
  324. package/skills/hyperdirector/SKILL.md +202 -0
  325. package/skills/hyperdirector/docs/audio-workflow.md +160 -0
  326. package/skills/hyperdirector/docs/audio-workflow.zh-CN.md +244 -0
  327. package/skills/hyperdirector/docs/brand-kit-setup.md +322 -0
  328. package/skills/hyperdirector/docs/brand-kit-setup.zh-CN.md +277 -0
  329. package/skills/hyperdirector/docs/cursor-development-notes.md +474 -0
  330. package/skills/hyperdirector/docs/faq.md +285 -0
  331. package/skills/hyperdirector/docs/faq.zh-CN.md +198 -0
  332. package/skills/hyperdirector/docs/first-video.md +320 -0
  333. package/skills/hyperdirector/docs/first-video.zh-CN.md +265 -0
  334. package/skills/hyperdirector/docs/installation.md +254 -0
  335. package/skills/hyperdirector/docs/installation.zh-CN.md +222 -0
  336. package/skills/hyperdirector/docs/quickstart.md +203 -0
  337. package/skills/hyperframes/SKILL.md +117 -0
  338. package/skills/hyperframes/references/captions.md +46 -0
  339. package/skills/hyperframes/references/film.md +48 -0
  340. package/skills/hyperframes/references/format.md +158 -0
  341. package/skills/hyperframes/references/look.md +69 -0
  342. package/skills/hyperframes/references/motion.md +95 -0
  343. package/skills/hyperframes/references/overlays.md +39 -0
  344. package/skills/hyperframes/references/review.md +51 -0
  345. package/skills/hyperframes/references/runtimes.md +69 -0
  346. package/skills/hyperframes/references/skill-lifecycle.md +49 -0
  347. package/skills/hyperframes/references/sound.md +43 -0
  348. package/skills/hyperframes/references/spec.md +76 -0
  349. package/skills/hyperframes/references/story.md +103 -0
  350. package/skills/hyperframes-motion-director/SKILL.md +920 -0
  351. package/skills/hyperframes-motion-director/references/asset-choreography-and-render-qa.md +185 -0
  352. package/skills/hyperframes-motion-director/references/audio-sync.md +83 -0
  353. package/skills/hyperframes-motion-director/references/design-engineering.md +156 -0
  354. package/skills/hyperframes-motion-director/references/gsap-choreography.md +202 -0
  355. package/skills/hyperframes-motion-director/references/hyperframes-stability.md +99 -0
  356. package/skills/hyperframes-motion-director/references/imagegen-asset-pipeline.md +227 -0
  357. package/skills/hyperframes-motion-director/references/motion-background-system.md +165 -0
  358. package/skills/hyperframes-motion-director/references/motion-craft.md +182 -0
  359. package/skills/hyperframes-motion-director/references/premium-product-promo.md +287 -0
  360. package/skills/hyperframes-motion-director/references/text-over-background-layout.md +221 -0
  361. package/skills/hyperframes-motion-director/references/visual-standard.md +174 -0
  362. package/skills/hyperframes-motion-director/references/workflow.md +320 -0
  363. package/skills/hypit/SKILL.md +367 -0
  364. package/skills/hypit/references/creation/brief.md +93 -0
  365. package/skills/hypit/references/creation/script-and-time.md +259 -0
  366. package/skills/hypit/references/creation/transformations.md +143 -0
  367. package/skills/hypit/references/playbooks/craft/b-roll.md +94 -0
  368. package/skills/hypit/references/playbooks/craft/caption-tracking.md +126 -0
  369. package/skills/hypit/references/playbooks/craft/captions.md +253 -0
  370. package/skills/hypit/references/playbooks/craft/generated-dependencies.md +38 -0
  371. package/skills/hypit/references/playbooks/craft/graphic-compositions.md +85 -0
  372. package/skills/hypit/references/playbooks/craft/motion-graphics.md +68 -0
  373. package/skills/hypit/references/playbooks/craft/screen-demonstrations.md +51 -0
  374. package/skills/hypit/references/playbooks/craft/sound-mix.md +70 -0
  375. package/skills/hypit/references/playbooks/formats/narration-led-demo.md +87 -0
  376. package/skills/image/SKILL.md +153 -0
  377. package/skills/image/references/characters.md +86 -0
  378. package/skills/image/references/creative-direction.md +137 -0
  379. package/skills/image/references/de-slop.md +95 -0
  380. package/skills/image/references/dimensional.md +88 -0
  381. package/skills/image/references/editing.md +112 -0
  382. package/skills/image/references/golden-rules.md +198 -0
  383. package/skills/image/references/gpt-image.md +228 -0
  384. package/skills/image/references/models.md +78 -0
  385. package/skills/image/references/multi-panel.md +354 -0
  386. package/skills/image/references/nano-banana.md +150 -0
  387. package/skills/image/references/patterns/character-design.md +150 -0
  388. package/skills/image/references/patterns/ecommerce.md +124 -0
  389. package/skills/image-smixs/SKILL.md +153 -0
  390. package/skills/image-smixs/references/characters.md +86 -0
  391. package/skills/image-smixs/references/creative-direction.md +137 -0
  392. package/skills/image-smixs/references/de-slop.md +95 -0
  393. package/skills/image-smixs/references/dimensional.md +88 -0
  394. package/skills/image-smixs/references/editing.md +112 -0
  395. package/skills/image-smixs/references/golden-rules.md +198 -0
  396. package/skills/image-smixs/references/gpt-image.md +228 -0
  397. package/skills/image-smixs/references/models.md +78 -0
  398. package/skills/image-smixs/references/multi-panel.md +354 -0
  399. package/skills/image-smixs/references/nano-banana.md +150 -0
  400. package/skills/image-smixs/references/patterns/character-design.md +150 -0
  401. package/skills/image-smixs/references/patterns/ecommerce.md +124 -0
  402. package/skills/image-story-video-wizard/SKILL.md +148 -0
  403. package/skills/image-story-video-wizard/docs/ARTICLE_ALIGNMENT.md +29 -0
  404. package/skills/image-story-video-wizard/references/host-routing.md +44 -0
  405. package/skills/image-story-video-wizard/references/state-schema.md +79 -0
  406. package/skills/image-story-video-wizard/references/workflow.md +203 -0
  407. package/skills/image-story-video-wizard/references/writing-and-review.md +60 -0
  408. package/skills/ip-as-logo/SKILL.md +151 -0
  409. package/skills/ip-as-logo-s1dashu/SKILL.md +151 -0
  410. package/skills/jtxvideo-skill/SKILL.md +337 -0
  411. package/skills/kinetic-reel/SKILL.md +140 -0
  412. package/skills/kinetic-reel/examples/work-reel-26/STORYBOARD.md +51 -0
  413. package/skills/kinetic-reel/references/sound.md +40 -0
  414. package/skills/kinetic-reel/references/style-guide.md +79 -0
  415. package/skills/knowledge-explainer-skill/SKILL.md +149 -0
  416. package/skills/knowledge-explainer-skill/examples/ai_video_3steps.md +61 -0
  417. package/skills/knowledge-explainer-skill/examples/algorithm_bubble.md +20 -0
  418. package/skills/knowledge-explainer-skill/examples/before_after_demo.md +38 -0
  419. package/skills/knowledge-explainer-skill/examples/cta_outro.md +11 -0
  420. package/skills/knowledge-explainer-skill/examples/double_pendulum.md +20 -0
  421. package/skills/knowledge-explainer-skill/examples/paper_fold.md +20 -0
  422. package/skills/knowledge-explainer-skill/examples/script.md +40 -0
  423. package/skills/lanshu-create-ai-presenter-video/SKILL.md +253 -0
  424. package/skills/lanshu-create-ai-presenter-video/references/editing.md +67 -0
  425. package/skills/lanshu-create-ai-presenter-video/references/generation.md +94 -0
  426. package/skills/lanshu-create-ai-presenter-video/references/qa-recovery.md +83 -0
  427. package/skills/lanshu-create-ai-presenter-video/references/styled-explainer.md +189 -0
  428. package/skills/laoxu-video-script/SKILL.md +117 -0
  429. package/skills/laoxu-video-script/references/cases.md +305 -0
  430. package/skills/laoxu-video-script/references/de-ai.md +32 -0
  431. package/skills/laoxu-video-script/references/diagnostics.md +67 -0
  432. package/skills/laoxu-video-script/references/format.md +62 -0
  433. package/skills/laoxu-video-script/references/formulas.md +43 -0
  434. package/skills/laoxu-video-script/references/method.md +115 -0
  435. package/skills/laoxu-video-script/references/motifs-and-lines.md +829 -0
  436. package/skills/laoxu-video-script/references/persona.md +38 -0
  437. package/skills/laoxu-video-script/references/qihao-path.md +35 -0
  438. package/skills/laoxu-video-script/references/qihao-xinfa.md +39 -0
  439. package/skills/laoxu-video-script/references/redlines.md +26 -0
  440. package/skills/lemo-opuscar/SKILL.md +67 -0
  441. package/skills/lipnardo/SKILL.md +308 -0
  442. package/skills/lipnardo/examples/batch-personalized.md +44 -0
  443. package/skills/lipnardo/examples/photo-to-avatar-pipeline.md +56 -0
  444. package/skills/lipnardo/examples/single-video.md +44 -0
  445. package/skills/lipnardo/references/avatar-types.md +42 -0
  446. package/skills/lipnardo/references/credit-costs.md +39 -0
  447. package/skills/lipnardo/references/error-codes.md +66 -0
  448. package/skills/lipnardo/references/heygen-api-reference.md +416 -0
  449. package/skills/ll-video-decomposer/SKILL.md +105 -0
  450. package/skills/ll-video-decomposer/references/audiovisual-analysis-guide.md +44 -0
  451. package/skills/ll-video-decomposer/references/evidence-and-confidence-rules.md +41 -0
  452. package/skills/ll-video-decomposer/references/multi-video-comparison-template.md +48 -0
  453. package/skills/ll-video-decomposer/references/single-video-report-template.md +47 -0
  454. package/skills/ll-video-decomposer/references/tool-discovery-workflow.md +30 -0
  455. package/skills/ll-video-decomposer/references/transcription-routing.md +65 -0
  456. package/skills/ll-video-decomposer/references/video-acquisition-workflow.md +30 -0
  457. package/skills/ltx2-video/SKILL.md +193 -0
  458. package/skills/ltx2-video/references/mode_ux.md +293 -0
  459. package/skills/make-ai-short/SKILL.md +130 -0
  460. package/skills/make-blender-education-video/SKILL.md +247 -0
  461. package/skills/make-blender-education-video/references/evidence-and-explanation.md +62 -0
  462. package/skills/make-blender-education-video/references/github-workflow-discovery.md +55 -0
  463. package/skills/make-blender-education-video/references/production-workflow.md +62 -0
  464. package/skills/make-blender-education-video/references/story-patterns.md +65 -0
  465. package/skills/make-blender-education-video/references/visual-quality.md +82 -0
  466. package/skills/manage-storyboard-projects/SKILL.md +128 -0
  467. package/skills/manim-composer/SKILL.md +176 -0
  468. package/skills/manim-composer/references/narrative-patterns.md +125 -0
  469. package/skills/manim-composer/references/scene-examples.md +216 -0
  470. package/skills/manim-composer/references/visual-techniques.md +223 -0
  471. package/skills/manim-composer/templates/scenes-template.md +147 -0
  472. package/skills/monet-ai-editor-monet/SKILL.md +367 -0
  473. package/skills/motion-graphics/SKILL.md +206 -0
  474. package/skills/motion-graphics/references/craft.md +136 -0
  475. package/skills/motion-graphics/references/engine.md +130 -0
  476. package/skills/motion-graphics/references/export.md +67 -0
  477. package/skills/motion-graphics/references/physics.md +100 -0
  478. package/skills/motion-graphics/references/verify.md +124 -0
  479. package/skills/motion-video/SKILL.md +133 -0
  480. package/skills/motion-video/references/audio-and-beat-sync.md +109 -0
  481. package/skills/motion-video/references/composition-contract.md +107 -0
  482. package/skills/motion-video/references/production-pipeline.md +147 -0
  483. package/skills/motion-video/references/style-comic-spiderverse.md +87 -0
  484. package/skills/motion-video/references/style-glass-keynote.md +69 -0
  485. package/skills/motion-video-maker/SKILL.md +1452 -0
  486. package/skills/motion-video-maker/reference/components.md +451 -0
  487. package/skills/motion-video-maker/reference/workflow.md +190 -0
  488. package/skills/motioncraft/SKILL.md +221 -0
  489. package/skills/motioncraft/references/animation-system.md +57 -0
  490. package/skills/motioncraft/references/assets-and-licensing.md +21 -0
  491. package/skills/motioncraft/references/customization.md +52 -0
  492. package/skills/motioncraft/references/gpu-cloud-render.md +15 -0
  493. package/skills/motioncraft/references/music.md +43 -0
  494. package/skills/motioncraft/references/phase1-planning-and-preview.md +74 -0
  495. package/skills/motioncraft/references/phase2-timeline-audio.md +33 -0
  496. package/skills/motioncraft/references/phase3-pixel-review.md +13 -0
  497. package/skills/motioncraft/references/phase4-templates.md +30 -0
  498. package/skills/motioncraft/references/preflight.md +27 -0
  499. package/skills/motioncraft/references/qa.md +53 -0
  500. package/skills/motioncraft/references/reference-analysis.md +37 -0
  501. package/skills/narrator-ai-cli/SKILL.md +256 -0
  502. package/skills/narrator-ai-cli/references/magic-video.md +205 -0
  503. package/skills/narrator-ai-cli/references/operations.md +230 -0
  504. package/skills/narrator-ai-cli/references/resources.md +126 -0
  505. package/skills/narrator-ai-cli/references/workflows.md +332 -0
  506. package/skills/newcut-video-clipping/SKILL.md +194 -0
  507. package/skills/newcut-video-clipping/references/examples.md +59 -0
  508. package/skills/newcut-video-clipping/references/provider-config.md +110 -0
  509. package/skills/newcut-video-clipping/references/quality-check.md +35 -0
  510. package/skills/newcut-video-clipping/references/semantic-plan.md +65 -0
  511. package/skills/notes-to-video/SKILL.md +476 -0
  512. package/skills/openchatcut/SKILL.md +100 -0
  513. package/skills/openchatcut/references/editing-workflow.md +54 -0
  514. package/skills/openchatcut/references/getting-started.md +106 -0
  515. package/skills/openchatcut/references/known-errors.md +62 -0
  516. package/skills/openstoryline-install/SKILL.md +228 -0
  517. package/skills/orca-motion/SKILL.md +100 -0
  518. package/skills/orca-motion/references/api.md +100 -0
  519. package/skills/orca-motion/references/integration.md +59 -0
  520. package/skills/orca-motion/references/kinetic-type.md +59 -0
  521. package/skills/orca-motion/references/principles.md +76 -0
  522. package/skills/package-talking-head-video/SKILL.md +90 -0
  523. package/skills/package-talking-head-video/docs/EXAMPLES.md +18 -0
  524. package/skills/package-talking-head-video/docs/TROUBLESHOOTING.md +29 -0
  525. package/skills/package-talking-head-video/docs/USAGE.md +83 -0
  526. package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-multicolor-center-speaker.md +144 -0
  527. package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-semantic-template-system-v2.md +1099 -0
  528. package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-multicolor-center-speaker-design.md +154 -0
  529. package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-semantic-template-system-v2-design.md +365 -0
  530. package/skills/package-talking-head-video/examples/auto-editing-0/GATE_A.md +56 -0
  531. package/skills/package-talking-head-video/examples/auto-editing-0/GATE_D.md +8 -0
  532. package/skills/package-talking-head-video/examples/auto-editing-0/QA_REPORT.md +34 -0
  533. package/skills/package-talking-head-video/references/director-rules.md +29 -0
  534. package/skills/package-talking-head-video/references/motion-and-illustration.md +25 -0
  535. package/skills/paper-cut/SKILL.md +164 -0
  536. package/skills/paper-cut/references/asset-spec.md +47 -0
  537. package/skills/paper-cut/references/audio-and-chatcut.md +26 -0
  538. package/skills/paper-cut/references/hyperframes-assembly.md +47 -0
  539. package/skills/paper-cut/references/image-led-production.md +65 -0
  540. package/skills/paper-cut/references/storyboard-schema.md +48 -0
  541. package/skills/paper-cut/references/workflow.md +39 -0
  542. package/skills/personal-ip-brand-intro/SKILL.md +216 -0
  543. package/skills/personal-ip-brand-intro/references/intake-schema.md +79 -0
  544. package/skills/personal-ip-brand-intro/references/music-upload-workflow.md +40 -0
  545. package/skills/personal-ip-brand-intro/references/originality-rules.md +42 -0
  546. package/skills/personal-ip-brand-intro/references/qa-checklist.md +60 -0
  547. package/skills/personal-ip-brand-intro/references/rhythm-routing.md +41 -0
  548. package/skills/personal-ip-brand-intro/references/storyboard-contract.md +42 -0
  549. package/skills/pixel2motion/SKILL.md +279 -0
  550. package/skills/pixel2motion/references/html-delivery-template.md +42 -0
  551. package/skills/pixel2motion/references/motion-personality.md +109 -0
  552. package/skills/pixel2motion/references/reveal-patterns.md +163 -0
  553. package/skills/pixel2motion/references/ribbon-fitting.md +90 -0
  554. package/skills/pixel2motion/references/twelve-principles-for-logos.md +116 -0
  555. package/skills/premiere-batch-delivery/SKILL.md +71 -0
  556. package/skills/premiere-pro-mcp/SKILL.md +161 -0
  557. package/skills/promo-creator-skills/SKILL.md +209 -0
  558. package/skills/promo-creator-skills/references/mureka_prompt_guide.md +251 -0
  559. package/skills/promo-creator-skills/references/product_promo_bgm_prompting.md +100 -0
  560. package/skills/promo-video/SKILL.md +408 -0
  561. package/skills/qisi-video-remix/SKILL.md +134 -0
  562. package/skills/qisi-video-remix/examples/creative-plan.md +133 -0
  563. package/skills/qisi-video-remix/references/delivery-guide.md +63 -0
  564. package/skills/reel-video/SKILL.md +237 -0
  565. package/skills/remotion-ad-video/SKILL.md +252 -0
  566. package/skills/remotion-ad-video/references/ad-aesthetic-qa.md +60 -0
  567. package/skills/remotion-ad-video/references/ad-brief-contract.md +235 -0
  568. package/skills/remotion-ad-video/references/ad-exemplars.md +186 -0
  569. package/skills/remotion-ad-video/references/ad-intake.md +54 -0
  570. package/skills/remotion-ad-video/references/asset-harvest.md +56 -0
  571. package/skills/remotion-ad-video/references/audio-caption-system.md +202 -0
  572. package/skills/remotion-ad-video/references/concept-contract.md +128 -0
  573. package/skills/remotion-ad-video/references/creative-direction.md +146 -0
  574. package/skills/remotion-ad-video/references/fast-test-workflow.md +86 -0
  575. package/skills/remotion-ad-video/references/game-ad-patterns.md +75 -0
  576. package/skills/remotion-ad-video/references/hyperframes-output.md +90 -0
  577. package/skills/remotion-ad-video/references/industry-angle-library.md +71 -0
  578. package/skills/remotion-ads/SKILL.md +278 -0
  579. package/skills/remotion-ads/references/ad-copywriting.md +229 -0
  580. package/skills/remotion-ads/references/animations.md +693 -0
  581. package/skills/remotion-ads/references/brand-config-template.md +355 -0
  582. package/skills/remotion-ads/references/captions.md +529 -0
  583. package/skills/remotion-ads/references/carousels.md +580 -0
  584. package/skills/remotion-ads/references/components.md +897 -0
  585. package/skills/remotion-ads/references/copy-frameworks.md +144 -0
  586. package/skills/remotion-ads/references/formats.md +436 -0
  587. package/skills/remotion-ads/references/gemini-tts.md +473 -0
  588. package/skills/remotion-ads/references/html-in-canvas.md +555 -0
  589. package/skills/remotion-ads/references/local-assets.md +543 -0
  590. package/skills/remotion-ads/references/music.md +656 -0
  591. package/skills/remotion-code-motion-explainer/SKILL.md +178 -0
  592. package/skills/remotion-code-motion-explainer/references/code-motion-design.md +86 -0
  593. package/skills/remotion-code-motion-explainer/references/motion-production-patterns.md +93 -0
  594. package/skills/remotion-code-motion-explainer/references/production-and-qc.md +99 -0
  595. package/skills/remotion-code-motion-explainer/references/reference-reconstruction.md +48 -0
  596. package/skills/remotion-code-motion-explainer/references/ui-motion-shot-library.md +62 -0
  597. package/skills/remotion-motion-graphics/SKILL.md +169 -0
  598. package/skills/remotion-motion-graphics/references/patterns.md +355 -0
  599. package/skills/remotion-motion-graphics/references/polish.md +102 -0
  600. package/skills/remotion-motion-graphics/references/scaffold.md +144 -0
  601. package/skills/remotion-motion-graphics/references/traps.md +152 -0
  602. package/skills/remotion-resemble-ai/SKILL.md +879 -0
  603. package/skills/remotion-resemble-ai/rules/resemble-captions.md +350 -0
  604. package/skills/remotion-resemble-ai/rules/resemble-remotion-integration.md +305 -0
  605. package/skills/remotion-resemble-ai/rules/resemble-setup.md +284 -0
  606. package/skills/remotion-resemble-ai/rules/resemble-streaming-tts.md +225 -0
  607. package/skills/remotion-resemble-ai/rules/resemble-sync-tts.md +239 -0
  608. package/skills/remotion-resemble-ai/rules/resemble-voices.md +213 -0
  609. package/skills/remotion-resemble-ai/rules/visual-animations.md +567 -0
  610. package/skills/riffkit/SKILL.md +196 -0
  611. package/skills/riffkit/examples/any-look-styles.md +11 -0
  612. package/skills/riffkit/examples/faceless-and-auto.md +16 -0
  613. package/skills/riffkit/examples/localize-spanish.md +18 -0
  614. package/skills/riffkit/examples/tiktok-shop-product.md +22 -0
  615. package/skills/riffkit/references/anchor.md +62 -0
  616. package/skills/riffkit/references/api.md +806 -0
  617. package/skills/riffkit/references/details.md +153 -0
  618. package/skills/riffkit/references/errors.md +69 -0
  619. package/skills/riffkit/references/intents.md +29 -0
  620. package/skills/saas-motion-video/SKILL.md +71 -0
  621. package/skills/script-to-video/SKILL.md +2627 -0
  622. package/skills/shorts/SKILL.md +372 -0
  623. package/skills/shorts/references/caption-styles.md +105 -0
  624. package/skills/shorts/references/platform-specs.md +149 -0
  625. package/skills/shorts/references/remotion-patterns.md +180 -0
  626. package/skills/shorts/references/scoring-rubric.md +106 -0
  627. package/skills/smart-video-editor/SKILL.md +327 -0
  628. package/skills/smart-video-editor/docs/FONTS.md +57 -0
  629. package/skills/story-telling/SKILL.md +222 -0
  630. package/skills/story-telling/rules/composition.md +130 -0
  631. package/skills/story-telling/rules/images.md +119 -0
  632. package/skills/story-telling/rules/models.md +98 -0
  633. package/skills/story-telling/rules/narration.md +87 -0
  634. package/skills/story-telling/rules/pitfalls.md +140 -0
  635. package/skills/story-telling/rules/story-formats.md +108 -0
  636. package/skills/story-telling/rules/story-json.md +143 -0
  637. package/skills/story-telling/rules/voices.md +114 -0
  638. package/skills/story-telling/rules/workflow.md +105 -0
  639. package/skills/story-to-handdrawn-video/SKILL.md +216 -0
  640. package/skills/story-to-handdrawn-video/references/asset-workflow.md +24 -0
  641. package/skills/story-to-handdrawn-video/references/reference-style-workflow.md +27 -0
  642. package/skills/su-card-to-video/SKILL.md +103 -0
  643. package/skills/talking-head-video-pipeline/SKILL.md +224 -0
  644. package/skills/talking-head-video-pipeline/examples/prompts.md +217 -0
  645. package/skills/talking-head-video-pipeline/references/asr-adapters.md +51 -0
  646. package/skills/talking-head-video-pipeline/references/caption-workflow.md +53 -0
  647. package/skills/talking-head-video-pipeline/references/export-recipes.md +78 -0
  648. package/skills/talking-head-video-pipeline/references/layout-safety.md +49 -0
  649. package/skills/talking-head-video-pipeline/references/video-use-integration.md +71 -0
  650. package/skills/talking-head-video-pipeline/references/workflows/captions.md +52 -0
  651. package/skills/talking-head-video-pipeline/references/workflows/design.md +77 -0
  652. package/skills/talking-head-video-pipeline/references/workflows/doctor.md +51 -0
  653. package/skills/talking-head-video-pipeline/references/workflows/export.md +50 -0
  654. package/skills/talking-head-video-pipeline/references/workflows/init.md +51 -0
  655. package/skills/talking-head-video-pipeline/references/workflows/learn.md +36 -0
  656. package/skills/text-to-lottie/SKILL.md +202 -0
  657. package/skills/text-to-lottie/references/chapterization-transition-grammar.md +132 -0
  658. package/skills/text-to-lottie/references/design-taste.md +292 -0
  659. package/skills/text-to-lottie/references/lottie-spec-map.md +82 -0
  660. package/skills/text-to-lottie/references/motion-taste.md +260 -0
  661. package/skills/text-to-lottie/references/player-contract.md +325 -0
  662. package/skills/text-to-lottie/references/recipe-camera-scene-motion.md +65 -0
  663. package/skills/text-to-lottie/references/recipe-data-stats.md +104 -0
  664. package/skills/text-to-lottie/references/recipe-diagram-technical.md +106 -0
  665. package/skills/text-to-lottie/references/recipe-loaders-icons.md +70 -0
  666. package/skills/text-to-lottie/references/recipe-logo.md +72 -0
  667. package/skills/text-to-lottie/references/recipe-lower-thirds.md +62 -0
  668. package/skills/text-to-lottie/references/recipe-product-promo.md +99 -0
  669. package/skills/ultrademo/SKILL.md +212 -0
  670. package/skills/video-assemble/SKILL.md +101 -0
  671. package/skills/video-assemble-zenstory-ai/SKILL.md +153 -0
  672. package/skills/video-assemble-zenstory-ai/references/audio-modes.md +63 -0
  673. package/skills/video-assemble-zenstory-ai/references/explicit-audio-mix.md +77 -0
  674. package/skills/video-assemble-zenstory-ai/references/jianying/SOURCE.md +14 -0
  675. package/skills/video-assemble-zenstory-ai/references/narration-adoption.md +103 -0
  676. package/skills/video-assemble-zenstory-ai/references/packaging.md +44 -0
  677. package/skills/video-assemble-zenstory-ai/references/source-score.md +146 -0
  678. package/skills/video-assemble-zenstory-ai/references/subtitle-track.md +202 -0
  679. package/skills/video-editing/SKILL.md +688 -0
  680. package/skills/video-explainer/SKILL.md +163 -0
  681. package/skills/video-explainer/references/brief-to-script.md +56 -0
  682. package/skills/video-explainer/references/errors-and-privacy.md +18 -0
  683. package/skills/video-explainer/references/motion-storyboard.md +82 -0
  684. package/skills/video-explainer/references/render-and-verify.md +62 -0
  685. package/skills/video-explainer/references/review-gate.md +82 -0
  686. package/skills/video-explainer/references/setup-and-doctor.md +33 -0
  687. package/skills/video-script-builder/SKILL.md +329 -0
  688. package/skills/video-script-builder/examples/quick-start-transcript.md +19 -0
  689. package/skills/video-script-builder/references/audio-workflow.md +84 -0
  690. package/skills/video-script-builder/references/caption-components.md +70 -0
  691. package/skills/video-script-builder/references/common-pitfalls.md +80 -0
  692. package/skills/video-script-builder/references/component-catalog.md +197 -0
  693. package/skills/video-script-builder/references/component-recipes.md +165 -0
  694. package/skills/video-script-builder/references/gsap-patterns.md +112 -0
  695. package/skills/video-script-builder/references/pacing-rules.md +78 -0
  696. package/skills/video-script-builder/references/quality-checklist.md +98 -0
  697. package/skills/video-script-builder/references/remotion-patterns.md +211 -0
  698. package/skills/video-script-builder/references/shader-transitions.md +115 -0
  699. package/skills/video-script-builder/references/taste-principles.md +160 -0
  700. package/skills/video-scrub/SKILL.md +216 -0
  701. package/skills/video-scrub/references/profiles.md +89 -0
  702. package/skills/video-scrub/references/residue-map.md +204 -0
  703. package/skills/video-short-maker/SKILL.md +182 -0
  704. package/skills/video-shot-analysis-feishu/SKILL.md +173 -0
  705. package/skills/video-shotcraft/SKILL.md +267 -0
  706. package/skills/video-shotcraft/docs/deepseek-harness.md +69 -0
  707. package/skills/video-shotcraft/references/aesthetic-rules.md +177 -0
  708. package/skills/video-shotcraft/references/final-review.md +112 -0
  709. package/skills/video-shotcraft/references/guided-free-creation.md +199 -0
  710. package/skills/video-shotcraft/references/jianying-export.md +182 -0
  711. package/skills/video-shotcraft/references/music-beat-sync.md +219 -0
  712. package/skills/video-shotcraft/references/pipeline.md +390 -0
  713. package/skills/video-shotcraft/references/sequences/promo-energy-arc.md +50 -0
  714. package/skills/video-shotcraft/references/shots/ATTRIBUTION.md +65 -0
  715. package/skills/video-shotcraft/references/shots/camera/basic-3d-scene.md +37 -0
  716. package/skills/video-shotcraft/references/shots/camera/crash-zoom-punch.md +39 -0
  717. package/skills/video-shotcraft/references/shots/camera/cursor-flyover.md +38 -0
  718. package/skills/video-shotcraft-vincentwei10/SKILL.md +316 -0
  719. package/skills/video-shotcraft-vincentwei10/references/aesthetic-rules.md +187 -0
  720. package/skills/video-shotcraft-vincentwei10/references/final-review.md +116 -0
  721. package/skills/video-shotcraft-vincentwei10/references/guided-free-creation.md +199 -0
  722. package/skills/video-shotcraft-vincentwei10/references/jianying-export.md +183 -0
  723. package/skills/video-shotcraft-vincentwei10/references/music-beat-sync.md +257 -0
  724. package/skills/video-shotcraft-vincentwei10/references/pipeline.md +401 -0
  725. package/skills/video-shotcraft-vincentwei10/references/publish-upload-post.md +111 -0
  726. package/skills/video-shotcraft-vincentwei10/references/sequences/promo-energy-arc.md +50 -0
  727. package/skills/video-shotcraft-vincentwei10/references/shots/ATTRIBUTION.md +62 -0
  728. package/skills/video-shotcraft-vincentwei10/references/shots/camera/basic-3d-scene.md +41 -0
  729. package/skills/video-shotcraft-vincentwei10/references/shots/camera/crash-zoom-punch.md +52 -0
  730. package/skills/video-shotcraft-vincentwei10/references/shots/camera/cursor-flyover.md +39 -0
  731. package/skills/video-structure-analyzer/SKILL.md +148 -0
  732. 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 +50 -0
  733. 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 +19 -0
  734. package/skills/video-toolkit/SKILL.md +686 -0
  735. package/skills/videocut/SKILL.md +159 -0
  736. package/skills/videodb/SKILL.md +497 -0
  737. package/skills/videodb/reference/api-reference.md +741 -0
  738. package/skills/videodb/reference/capture-reference.md +399 -0
  739. package/skills/videodb/reference/capture.md +110 -0
  740. package/skills/videodb/reference/editor-reference.md +506 -0
  741. package/skills/videodb/reference/editor.md +389 -0
  742. package/skills/videodb/reference/generative.md +344 -0
  743. package/skills/videodb/reference/indexing-reference.md +481 -0
  744. package/skills/videodb/reference/indexing.md +537 -0
  745. package/skills/videodb/reference/legacy/index-reference.md +223 -0
  746. package/skills/videodb/reference/legacy/index.md +241 -0
  747. package/skills/videodb/reference/legacy/search.md +249 -0
  748. package/skills/videodb/reference/migration.md +113 -0
  749. package/skills/vlog-auto-edit/SKILL.md +982 -0
  750. package/skills/vlog-auto-edit/examples/project_structure.md +84 -0
  751. package/skills/vox-animated-ad-mcp/SKILL.md +419 -0
  752. package/skills/vox-director/SKILL.md +351 -0
  753. package/skills/vox-director/references/beat-layer.md +143 -0
  754. package/skills/vox-director/references/host-mode.md +120 -0
  755. package/skills/vox-director/references/local-engine.md +73 -0
  756. package/skills/vox-director/references/models-and-gotchas.md +91 -0
  757. package/skills/vox-director/references/prompt-guide.md +275 -0
  758. package/skills/vox-director/references/voices.md +59 -0
  759. package/skills/xingchen-vox-collage/SKILL.md +251 -0
  760. package/skills/xingchen-vox-collage/references/asset-layer-contract.md +98 -0
  761. package/skills/xingchen-vox-collage/references/creative-exploration.md +19 -0
  762. package/skills/xingchen-vox-collage/references/learned-branches.md +34 -0
  763. package/skills/xingchen-vox-collage/references/remotion-scene-contract.md +77 -0
  764. package/skills/xingchen-vox-collage/references/visual-language.md +74 -0
  765. package/skills/xingchen-vox-collage/references/visual-qa.md +59 -0
  766. package/skills/youtube/SKILL.md +147 -0
  767. package/skills/youtube/references/algorithm-guide.md +59 -0
  768. package/skills/youtube/references/analytics-benchmarks.md +67 -0
  769. package/skills/youtube/references/dataforseo-integration.md +51 -0
  770. package/skills/youtube/references/monetization-guide.md +62 -0
  771. package/skills/youtube/references/repurposing-guide.md +54 -0
  772. package/skills/youtube/references/retention-scripting-guide.md +75 -0
  773. package/skills/youtube/references/seo-playbook.md +77 -0
  774. package/skills/youtube/references/shorts-playbook.md +64 -0
  775. package/skills/youtube/references/thumbnail-ctr-guide.md +73 -0
  776. package/skills/youtube-shorts-factory/SKILL.md +358 -0
  777. package/skills/youtube-shorts-factory/resources/adaptation-guide.md +133 -0
  778. package/skills/youtube-shorts-factory/resources/storyboard-template.md +271 -0
  779. package/skills/youtube-shorts-factory/resources/workflow-steps.md +139 -0
  780. package/studio/client.mjs +3 -3
  781. package/studio/server/server.mjs +31 -3
  782. package/studio/ui/dist/assets/ExportCenter-DEyy1vs_.js +1 -0
  783. package/studio/ui/dist/assets/SettingsModal-CQmsA2A2.js +2 -0
  784. package/studio/ui/dist/assets/apple-touch-icon-ClxQ7j-O.png +0 -0
  785. package/studio/ui/dist/assets/{es-BRUzvuoM.js → es-AqUfIkAy.js} +1 -1
  786. package/studio/ui/dist/assets/favicon-Blwx8Trs.png +0 -0
  787. package/studio/ui/dist/assets/index-C7moXjTY.css +1 -0
  788. package/studio/ui/dist/assets/index-DdU5QNpY.js +1623 -0
  789. package/studio/ui/dist/assets/{ja-Cth-uDcW.js → ja-YwiCB4QQ.js} +1 -1
  790. package/studio/ui/dist/assets/{ko-upvw591D.js → ko-CKtBPDze.js} +1 -1
  791. package/studio/ui/dist/assets/{zh-CN-BCfJFazB.js → zh-CN-DtNEwKWJ.js} +1 -1
  792. package/studio/ui/dist/index.html +4 -3
  793. package/studio/ui/dist/assets/ExportCenter-F-2vF-lQ.js +0 -1
  794. package/studio/ui/dist/assets/SettingsModal-BgVYguNu.js +0 -2
  795. package/studio/ui/dist/assets/index-Bhg-9dA3.css +0 -1
  796. package/studio/ui/dist/assets/index-CWur1Iw9.js +0 -1625
@@ -0,0 +1,230 @@
1
+ # Sound
2
+
3
+ Sound is written last, to locked scene lengths, and synthesized entirely inside
4
+ `audio.mjs` (template in `assets/audio-template.mjs`; painting and landscape films start from
5
+ `assets/audio-nature.mjs` and the blocks in `assets/nature.mjs`, section 8). No samples, no
6
+ libraries. The script writes a 16-bit stereo WAV that `build.sh` muxes into the MP4.
7
+
8
+ ## 1. The timeline table
9
+
10
+ ```bash
11
+ node scripts/export-curves.mjs curves.json # make.sh and `npm run audio` do this first
12
+ ```
13
+
14
+ `audio.mjs` builds `T` (plate starts in seconds, plus `end`) and `BPM` from `curves.json`, which
15
+ the export script takes from the page's `RISO.curves()`, so the sound cannot drift from the
16
+ picture when a plate changes length: export again, regenerate the WAV. The template warns when `curves.json`
17
+ is older than `index.html`. For a page without `curves()` (projects made before it existed),
18
+ copy the starts from `node scripts/look.mjs info` into the fallback table by hand. The beat
19
+ grid is the same as the video's: at 120 BPM `BEAT = 0.5`, `BAR = 2.0`. An event that must land
20
+ on a frame takes its time from the film, `T.plate + beats * BEAT` or `frame / fps`, never from
21
+ seconds retyped by hand.
22
+
23
+ A moment the picture marks (a splash, a stamp, a lamp) is named once in the page, `CUES` in the
24
+ plate skeleton or `W.cues.push({name, f})` in a world builder, and read here with `cue('splash')`:
25
+ its time in seconds on the frame the picture shows it. Move the moment in the picture, export the
26
+ curves, and the hit moves with it. A hit that belongs to the groove (a drum pattern, hats on the
27
+ off-beats) keeps `T.plate + beats * BEAT`: on an eighth at 120 BPM (7.5 frames) the two differ by
28
+ 17 ms, far below the 45 ms at which sound ahead of picture begins to show, while a pattern moved
29
+ onto frames starts to swing. (`at(t)` in `audio.mjs` is the curve sampler of section 7, not the
30
+ page's `at()`.)
31
+
32
+ ## 2. Cue map
33
+
34
+ | On screen | In sound |
35
+ |---|---|
36
+ | power on, lights up | click plus a low sine falling 90 → 40 Hz over 120 ms; then a bed (hum, room, pad) that lasts until the end |
37
+ | static, snow, waiting | white noise through a 6.5 kHz low-pass at low level with a slow amplitude wave |
38
+ | a word or line appears | a data chirp (12 short square tones 1.2–2.6 kHz) or a single sine tick |
39
+ | a cut, a channel switch | click plus a 40 ms noise burst |
40
+ | a count, a timer | sine beep 880 Hz for 120 ms per count; the last one longer and higher |
41
+ | something breaks | alternating 700/900 Hz square at 8 Hz, noise bursts, a 110 Hz square buzz |
42
+ | a hold with text | a beat: kick on the beat, hat on the off-beat, rim on 2 and 4, a sine bass pulse |
43
+ | a search, a sweep | filtered noise panned left to right over the sweep, a sine glide following a moving line |
44
+ | a signal locks, a reveal | decaying noise with crackle, then a pad swelling over one second, a bright "click" of lock |
45
+ | a lower third slides in | a short high-passed whoosh, 350 ms |
46
+ | a stab, a big word | a short saw chord through a 2.6 kHz filter, 350 ms, two stabs on consecutive beats |
47
+ | the end approaches | a riser: noise with a rising high-pass over the last bar |
48
+ | power off | click, sine 120 → 38 Hz over 90 ms, a 15.7 kHz whine decaying over 1.5 s, then silence |
49
+ | an end card | a soft bell: sine 1760 Hz plus 2640 Hz with 0.35 s decay |
50
+ | paper, a drawing, colour washing in (a painting film) | a quiet bed only, from frame 0 under the master's 1.7-s fade-in: wind in a calm or a surf bed; no pencil, no whoosh |
51
+ | the painting comes alive (`alive`) | the ambience opens over ~1.8 s: wind and leaves rise with the page's gust, a wave enters 0.35 s before the cue, birds from +0.6 s |
52
+ | a bloom of wash (pencil and wash) | `paperTouch`, 0.25 s, at least 12 dB under the bed |
53
+ | a bird or a gull crosses the painting | one call on its own cue; at most one accent every 6 s, never on `alive` itself |
54
+ | the camera pushes in | nothing |
55
+
56
+ Per style: retro TV uses hum, hiss, tones and beeps; risograph likes warm bass, brushes and
57
+ paper; terminal uses key clicks and modem chirps; blueprint uses pencil, ruler and a
58
+ metronome; poster uses a click track and snare hits on cuts; neon grid wants a
59
+ four-on-the-floor kick, gated snare and detuned saw pads; pixel game uses square and
60
+ triangle waves with noise drums; the painting styles use the nature ambience of section 8,
61
+ with no music.
62
+
63
+ ## 3. Building blocks in the template
64
+
65
+ - `osc(dur, f0, {f1, wave, amp, vib, vibHz, noiseAmt})`: sine, saw, square, triangle with
66
+ exponential glide from `f0` to `f1`.
67
+ - `noise(dur, {amp, lpf, hpf})`: white noise with one-pole low- and high-pass filters.
68
+ - `shape(buf, {att, rel, decay, hold})`: linear attack, hold, linear release, optional
69
+ exponential decay.
70
+ - `mul(buf, fn)`: multiply by a function of time (tremolo, custom envelopes).
71
+ - `lp`, `hp`: one-pole filters on any buffer.
72
+ - `add(t, buf, pan, gain)`: mix into the master with constant-power pan.
73
+ - Instruments: `kick`, `hat`, `rim`, `click`, `beep`, `chord` (detuned saw pad through a
74
+ low-pass), `chirp`, `riser`. Notes are MIDI numbers: A2 = 45, A3 = 57, E4 = 64.
75
+
76
+ A drum pattern for one bar at `b0`:
77
+
78
+ ```js
79
+ for (let k = 0; k < 4; k++) { const t = b0 + k*BEAT; kick(t, 0.5); hat(t + BEAT/2, 0.09); if (k === 1 || k === 3) rim(t, 0.16); }
80
+ ```
81
+
82
+ ## 4. Levels
83
+
84
+ The master applies `tanh(x·1.3)` and normalizes to −1 dBFS. Aim for the loudest scene to
85
+ peak around 0.7 before normalization; the template prints the pre-normalization peak. A bed
86
+ (hum, hiss, pad) sits at 0.02–0.06, cues at 0.1–0.3, drums at 0.5. Nothing inside an active
87
+ scene should fall silent unless the picture is silent too. A nature track uses `masterNature`
88
+ instead (section 8): loudness normalisation, not peak normalisation.
89
+
90
+ ## 5. Checks without ears
91
+
92
+ ```bash
93
+ node audio.mjs track.wav
94
+ ffmpeg -y -i track.wav -filter_complex "showwavespic=s=1800x300:split_channels=1" -frames:v 1 shots/wave.png
95
+ ffmpeg -i track.wav -af ebur128 -f null - 2>&1 | grep -A2 "Integrated"
96
+ ```
97
+
98
+ Read the waveform against the plate table: every plate has visible activity, the beat
99
+ sections show even spikes, the ending decays to zero, nothing is a solid block pinned to the
100
+ ceiling. A voice that follows the picture (section 7) is checked alone: comment out the other
101
+ events, render, and compare its loudness per few frames with the `sp` column of `curves.json`;
102
+ the two must rise and fall together, the sound a frame or two behind. Loudness around −14 LUFS integrated suits social platforms; for a chat it does not
103
+ matter. The waveform picture goes to the user only if they ask; the MP4 is the proof.
104
+
105
+ ## 6. Room for the user's track
106
+
107
+ When the user brings a track: ask its BPM, set `BPM` in both the HTML and `audio.mjs`, keep
108
+ cuts on bars, deliver the MP4 without audio (`build.sh` does that when `track.wav` is
109
+ absent) and a note with the timecodes of the cuts. When a voice-over comes later, leave the
110
+ bed only and no melodic elements under the lines of text.
111
+
112
+ ## 7. Sound that follows the picture
113
+
114
+ In a world film (`references/world.md`) the sound can read the picture instead of a cue list.
115
+ `RISO.curves()` adds one record per frame to `curves.json`:
116
+
117
+ | field | meaning |
118
+ |---|---|
119
+ | `sp` | speed of the line's head on screen, logical px per frame; 0 while it rests |
120
+ | `pan` | the head's position on screen, −1 left edge … 1 right edge |
121
+ | `z` | the camera: world units across the short side |
122
+ | `w` | line width at the head, 0 while the pen is lifted |
123
+
124
+ And `strokes`: the frames where the pen touches down after a lift (`pen.lift`). A tick or a
125
+ pencil tap on each of them lands exactly on the picture; detecting touch-downs from per-frame
126
+ `w` misses lifts shorter than a frame. And `cues`, the moments the builders marked with
127
+ `W.cues.push`, read with `cue(name)` (section 1).
128
+
129
+ Add fields the sound needs (a character on screen, a second head) in `curves()` the same way.
130
+ In `audio.mjs`, `at(t)` interpolates the records at time `t`, and `follow(fn, opts)` runs a voice
131
+ sample by sample: `fn(c, t)` returns `{f, a, pan}`. Mapping that worked in a finished film:
132
+
133
+ - loudness from speed with a soft curve and a ceiling: `a = amp · clamp(sp / sMax)^0.8`, with
134
+ `sMax` the speed of a brisk stroke, 20–35 px per frame;
135
+ - pitch rises a little with speed, 2–6 %, never enough to read as a melody;
136
+ - pan follows the head's screen position times 0.8, so nothing sits hard in one ear;
137
+ - every control is smoothed by a one-pole follower of 20–30 ms (`follow` does it), or the 33 ms
138
+ steps between frames zipper;
139
+ - a line being drawn: `tone`, a sine with 0.28 of the second harmonic on a chord tone of the pad,
140
+ around 0.05;
141
+ - a creature in flight: `buzz`, two saws a hair apart (1 : 2.003) through two one-pole low-passes
142
+ near 1.1 kHz, at 200–250 Hz, louder and slightly higher in fast flight, a tremolo of 15–20 Hz
143
+ when it wiggles;
144
+ - when the line stops for good, let the voice die with it; silence after a long drone is an event;
145
+ - a pencil or a marker on paper: band-passed noise (1.3–5 kHz) whose loudness follows `sp` only
146
+ while `w` shows ink, roughened by a slow random grain, plus a tap on every entry of `strokes`.
147
+
148
+ The curves come from the main aspect; one track serves the vertical cut too.
149
+
150
+ ## 8. Nature ambience
151
+
152
+ A landscape or a painting wants air, water and birds, not beeps. `assets/nature.mjs` is a module of
153
+ nature blocks in the template's conventions, and `assets/audio-nature.mjs` a soundtrack template
154
+ built on it; `init.sh --painting` copies them as `nature.mjs` and `audio.mjs`. Use them when the
155
+ picture shows a place (sea, lake, meadow, forest, rain); keep `audio-template.mjs` for cues, beats
156
+ and voices that follow a line. The two mix: import `nature.mjs` into a template-based `audio.mjs`,
157
+ or paste its sections 2–4 into the template (strip `export`) and use `masterNature` as its master.
158
+
159
+ ```js
160
+ import * as NS from './nature.mjs';
161
+ NS.init(END, curves, seed); // seconds, the parsed curves.json (or null), film seed
162
+ NS.wind(0, END, { gust }); // blocks, in absolute seconds
163
+ NS.room(); // a short diffuse room over the whole mix
164
+ NS.masterNature({ lufs: -20 }); // fades, soft clip, loudness normalisation
165
+ NS.writeWav('track.wav');
166
+ ```
167
+
168
+ Fitted blocks were fitted to a recorded surf track (band envelopes within ~1.3 dB). Designed blocks
169
+ are built from published acoustics (the facts sit above each block) and tuned on spectrograms.
170
+
171
+ | Block | Kind | What |
172
+ |---|---|---|
173
+ | `surfBed(t0, dur, {gainDb, dips, wash, wide})` | fitted | the stationary sea: sub, body and hiss by band power; `dips` sink it 2–3 dB before each wave |
174
+ | `surfWave(t0, {gainDb, stretch, lead, fade})` | fitted | one wave, surge, break and wash over 6.15 s; enter it 0.35 s before the moment its rise should land |
175
+ | `backwash(t0, {from, fadeIn, gainDb})` | fitted | a receding wash, silent by +2 s; `{from: w.last, fadeIn: w.fade}` continues a wave `w` |
176
+ | `surfWaves(from, to, {every, jitter, gainJitter})` | designed | the fitted wave every 8 ± 1 s (the spacing is a choice), each with its backwash; returns the onsets for the bed's `dips` |
177
+ | `room({t60, wetDb, predelay, hp, ripple})` | fitted | a 0.12-s velvet-noise room over the mix: the fixed spectral ripple a recording has and dry noise lacks |
178
+ | `masterNature({lufs, ceiling, fadeIn, fadeOut, end, peakGuard})` | fitted | a 1.69-s fade-in, a `0.9·tanh` soft clip, loudness to `lufs`, a 1.35-s fade-out ending on the last frame |
179
+ | `followNoise(spec, fn, {tau, band, from, to})` | helper | filtered noise whose level and pan follow the page's curves: `fn(c, t)` returns `{db}` or `{a}`, and `{pan}` |
180
+ | `wind(t0, dur, {level, f, q, lp, gust, width, whistle})` | designed | band-passed noise whose level, centre and top edge rise with `gust` 0..1; an optional aeolian whistle |
181
+ | `rustle(t0, dur, {gust or rate, band, level, pan, spread})` | designed | leaves and grass as grains of 4–15 ms at 2.5–7 kHz, 30–280 per second with the gust |
182
+ | `birds(t0, dur, {voices, phrase, notes, f, level, lp, trill, pan})` | designed | songbird phrases (sweeps, arches, whistles, buzzes, trills) at 2.5–6 kHz, singers taking turns |
183
+ | `gulls(t0, dur, {every, notes, f0, level, lp})` | designed | harsh "kee-ow" calls every 6–15 s; only where the picture shows open sea |
184
+ | `insects(t0, dur, {kind, tempC, level})` | designed | `'crickets'`: 4.5-kHz chirps, the rate from `tempC` by Dolbear's law; `'cicadas'`: swells at 4–8 kHz |
185
+ | `rain(t0, dur, {intensity or mmh, level, leaf, ground, water})` | designed | a bed of far drops and near drops on leaves, ground and water; the rain rate may change with time |
186
+ | `brook(t0, dur, {rate, flow, level, bedLevel})` | designed | a stream: rising bubble chirps (Minnaert resonance) over turbulence noise |
187
+ | `thunder(t0, {distance, level, crack})` | designed | a roll from a random lightning channel; closer than 1.5 km it opens with a crack; returns `{start, end}` |
188
+ | `lapping(t0, dur, {rate, level, pan, spread})` | designed | small waves at a jetty, a hull or a bank: slaps at 250–900 Hz, gurgles, trickles, ~1.5 per second in sets |
189
+ | `paperTouch(t, {dur, level, pan})` | designed | a 0.25-s paper swell for a bloom of wash (pencil and wash only) |
190
+
191
+ Levels. `level` is dBFS of the mono source before panning: band power (the mean square inside the
192
+ stated band) for noise, RMS at the envelope's peak for a call. Calibrating by band, not by
193
+ broadband level, is what makes a layer land where it was fitted: it moved the 6–11.5 kHz error of
194
+ the surf from 6 dB to 1 dB. Levels that worked under a painting: wind bed −46, rustle −50,
195
+ lapping −36, birds −39 (a nearer call −34), the surf as fitted (its body −35.5). The film's level
196
+ comes last, from `masterNature`: −18.5 LUFS as fitted, −20 for a quiet ambience. The template's
197
+ `tanh(1.3x)` master would lift a surf bed to −14.8 LUFS and flatten it.
198
+
199
+ Seeds. Every block takes `o.seed`. Without it the seed is a hash of the film seed, the block's name
200
+ and how many times that name was called before: adding birds leaves the sea sample-identical, and a
201
+ second `birds()` call changes only the birds after it. Another film seed
202
+ (`node audio.mjs track.wav 31`) is another take of the same soundtrack.
203
+
204
+ Tying the sound to the picture:
205
+ - Moments come from the page's cues, `cue('alive')`. In a painting film the drawing and the colour
206
+ are silent over the bed; the ambience opens with `alive` through a smoothstep of ~1.8 s on the
207
+ audio side, so it does not switch on in one frame; accents come after the cue, never on it. Guard
208
+ a cue the page may not mark with `has()`.
209
+ - The painting kit writes per-frame `life` (0..1) and `gust` (the wind the painted trees sway on,
210
+ about −2..2) into `curves.json`; `NS.at(t)` samples them. The template maps them to 0..1 as
211
+ `0.1 + (0.45 + 0.28 * gust) * open(t)` for `wind` and `rustle`, so the leaves hiss when the crown
212
+ bends. `gust`, `rate`, `flow`, `intensity` and `mmh` take a number or a function of time.
213
+ - `followNoise` does the same for a layer of your own, smoothed over 20–30 ms so the frame steps do
214
+ not zipper. The sea runs free by default; a stylised sea on a visual period (gouache poster)
215
+ takes a small `surfWave` per period, or a foam curve through `followNoise`.
216
+
217
+ Checks without ears:
218
+
219
+ ```bash
220
+ ffmpeg -y -i track.wav -lavfi "showspectrumpic=s=1600x600:legend=1:fscale=log" -frames:v 1 shots/spec.png
221
+ ffmpeg -hide_banner -nostats -i track.wav -af ebur128=peak=true -f null - 2>&1 | tail -12
222
+ node audio.mjs shots/again.wav && cmp track.wav shots/again.wav # silent: the render is deterministic
223
+ ```
224
+
225
+ Look at the spectrogram. Before `alive` only the bed shows, a band under ~1.5 kHz fading in from
226
+ black. After it the wind brightens over about two seconds, rustle grains stand as thin vertical
227
+ streaks at 2–15 kHz, birds as short strokes and hooks at 3–7 kHz, and a wave as a swell of the low
228
+ band with foam at 4–10 kHz on its break. Integrated loudness sits on the target, the true peak under
229
+ −1 dBTP, and `cmp` prints nothing. A layer the spectrogram does not show over the others is lost in
230
+ the mix: raise it or cut it.
@@ -0,0 +1,276 @@
1
+ # Engine, helpers and the way of working
2
+
3
+ Read once before the first scene. Everything here is implemented in `assets/skeleton.html`
4
+ and used at full scale in `examples/ris-tv/index.html`.
5
+
6
+ There are three starting files. `assets/skeleton.html` is a film of separate plates joined by
7
+ cuts: each plate draws its own picture. `assets/world.html` is one continuous world: plates are
8
+ builders that append a line, camera keys, titles and light events to one timeline, and one
9
+ function draws any frame of it (`init.sh --world`, method in `references/world.md`). Choose the
10
+ world for a journey or a growth told without cuts; choose plates for bulletins, parodies, lists
11
+ and anything cut on the beat. `assets/painting.html` is the plate engine with a painting kit: one
12
+ still oil painting built from cached layers of brush marks, revealed through a pencil drawing of
13
+ itself and brought to life; its plates are chapters of time (`init.sh --painting`, styles 13–16,
14
+ method in `references/painting.md`). Everything below holds for all three.
15
+
16
+ ## 1. The file
17
+
18
+ One HTML file, one canvas, one script. Sections in this order: parameters, generators,
19
+ math, canvas pool, palette, helpers, generated data between markers, engine, plates, boot.
20
+ Helpers stay above the plates block: a helper placed between two plates leaves with the
21
+ plate you cut. Generated data (polygons from a photo) lives between
22
+ `/*PORTRAIT_START*/` and `/*PORTRAIT_END*/` and is replaced by `scripts/inject.mjs`, never
23
+ by hand.
24
+
25
+ Size guide: the HTML stays under 200 KB; polygon data 30–70 KB as integers.
26
+
27
+ ## 2. Knobs and the script object
28
+
29
+ ```
30
+ ?f=140 draw one frame and set window.__ready
31
+ ?s=12 seed of the impression
32
+ ?w=1920 output width; height follows the aspect and is forced even
33
+ ?grid=24 contact sheet of evenly spaced frames with labels
34
+ ?cw=480 cell width of the sheet
35
+ ?from=480&to=720 with grid: the sheet covers only these frames (without grid: where the preview starts)
36
+ ?ar=16:9 aspect ratio
37
+ no knobs live preview in the browser, capped at 960 px
38
+ ```
39
+
40
+ ```js
41
+ window.RISO = {
42
+ fps: FPS,
43
+ get total(){ return TOTAL() },
44
+ get plates(){ return PLATES.map(p => ({name: p.name, len: p.len})) },
45
+ frame(n, width, seed){ renderFrame(n, width, seed, MAIN); return MAIN.toDataURL('image/png') },
46
+ contact(n, cellW, f0, f1){ contactSheet(n, cellW, SEED, MAIN, f0, f1); return MAIN.toDataURL('image/png') },
47
+ curves(seed){ return {fps, bpm, total, start: {plate: frame}, frames: [...], cues: [{name, f}]} } // for the soundtrack
48
+ }
49
+ ```
50
+
51
+ `curves()` gives plate starts and the cues (`CUES`, or `W.cues` in a world film); a world film
52
+ adds per-frame values (head speed and position on screen, camera zoom).
53
+ `scripts/export-curves.mjs` writes them to `curves.json` and `audio.mjs` builds its timeline from
54
+ that file. The world skeleton also has `stats()`, the size of the
55
+ world, which `look.mjs info` prints.
56
+
57
+ Scripts call `RISO.frame` and save the data URL. They never screenshot the page: a
58
+ screenshot depends on CSS and device scale; `toDataURL` returns exactly the drawn pixels.
59
+
60
+ ## 3. Coordinates and time
61
+
62
+ - Logical coordinates with a fixed short side of 1080. `LW`, `LH` follow the aspect; `CX`,
63
+ `CY` are the centre. Scenes never touch output pixels; the engine scales the context.
64
+ - Safe area: important content inside the central 92 % of each axis. On-screen labels start
65
+ at 7–8 % of the height from the edge. Styles that distort edges (CRT barrel, vignettes)
66
+ need this; other styles benefit anyway. In 9:16 the platform's UI covers the top 15 % and the
67
+ bottom 20 %: there labels, text and faces stay between them, lower titles on `TITLE_Y` (70 %).
68
+ - 30 fps. `BEAT` and `BAR` derive from `BPM`. At 120 BPM a beat is 15 frames and a bar 60.
69
+ Plate lengths are multiples of `BEAT`; eighths (7.5 frames) are not cut points. A hit on an
70
+ eighth shows on frame 7 or 8, half a frame (17 ms) from the sound, which nobody sees. A film cut
71
+ on eighths takes a BPM where they are whole frames: 60, 75, 90, 100, 150 or 180.
72
+ - Stepped motion (a pose held for several frames: sprites, cutouts) holds for a divisor
73
+ of `BEAT`, counted from the plate's start, `Math.floor(S.i / HOLD)`, so every beat opens a new
74
+ pose. At 120 BPM that is 3 or 5 frames, not 2: on twos every other beat falls inside a pose.
75
+ At 100 BPM (beat 18) 2, 3 or 6 fit; at 90 (20) 2, 4 or 5; at 150 (12) 2, 3 or 4.
76
+ - Inside a plate use beats and progress, never global frame numbers:
77
+ `const beat = Math.floor(S.i / BEAT), inBeat = (S.i % BEAT) / BEAT;`
78
+ `span(S.i, a, b)` gives 0..1 between two local frames; wrap it in `ease.out`, `ease.io`,
79
+ `ease.back`.
80
+ - What carries on across cuts (an island that grows through three plates) runs on the global
81
+ frame, measured from plates by name: `at('shore', 2)` is the frame of beat 2 of `shore`, rounded
82
+ to a whole frame, so `span(S.f, at('sea'), at('city', 4))` spans three plates whatever their
83
+ lengths. A moment the sound must hit goes into `CUES` as `[plate, beat, name]`; a plate reads
84
+ it with `cue('name')` (`S.f - cue('splash')` is the frames since it), `RISO.curves()` exports it.
85
+ Call both while drawing, never at the top level. A world film has `W.at` (not rounded: world
86
+ time is continuous) and `W.cues.push`; `curves()` rounds its cues up to the first frame that
87
+ shows them.
88
+
89
+ ## 4. Generators
90
+
91
+ Three per frame, all seeded through `hash(seed, ...)` with the plate name, so inserting a
92
+ plate never changes its neighbours:
93
+
94
+ | generator | reseeded | use |
95
+ |---|---|---|
96
+ | `R` | once per plate | composition: positions, choices that must not move |
97
+ | `S.b` | every 3 frames | the live line: jitter of outlines, flicker decisions |
98
+ | `S.nz` | every frame | noise fields, snow, grain decisions |
99
+
100
+ Compute a jittered path once and reuse it; two calls of `S.b` produce two different paths.
101
+ Per-pixel effects use a linear congruential generator seeded with `hash(seed, 'grain', f)`.
102
+
103
+ ## 5. The engine
104
+
105
+ `renderFrame(n, width, seed, target)`: even height, content canvas at output size, its
106
+ context wiped (`wipe(g)`: `reset()`, so no save, clip, shadow or composite mode survives from
107
+ the previous frame), background fill in device pixels, context scaled by `width / LW`,
108
+ `P.fn(S, R)`, edge transition (`cutIn`, `cutOut`), reset transform, `post()` into the target,
109
+ which is wiped too. It returns `S` so the sheet can label cells. `locate(n)` maps a global frame
110
+ to a plate and a local frame, `at(name, beats)` a plate's beat back to a global frame. `TOTAL()`
111
+ sums plate lengths; `look.mjs info` prints them, and the cues.
112
+
113
+ `COL` and `ease` are frozen: a plate that edits a shared value throws at once instead of
114
+ changing every later frame of its tab. Any offscreen canvas a plate keeps (`cvs(name, w, h)`)
115
+ is wiped or cleared before it is drawn, in pixels: `wipe()` it, or `clearRect(0, 0, c.width,
116
+ c.height)` under an identity transform. `clearRect(0, 0, LW, LH)` under the scale misses the last
117
+ pixel row at widths where `LH * sc` falls short of the even height (9:16 at 480, 16:9 at 1200),
118
+ and the previous frame shows through there: `check.mjs` fails only in some aspects. The default
119
+ `cut()` and the world fade fill in pixels for the same reason. A plate's own full-frame fill in
120
+ logical units leaves that row in `COL.bg`: harmless at the final sizes of 16:9, 9:16, 4:5 and 1:1,
121
+ which are exact, a thin line at 21:9 when the plate's ground differs from `COL.bg`.
122
+
123
+ `post(src, dst, S, o)` is the style's finisher. The skeleton ships grain and vignette;
124
+ replace or extend it per `styles.md`. A per-pixel pass over 1920×1080 costs 50 ms for
125
+ simple maths and up to 0.5 s with bilinear resampling in three channels. Cache anything that
126
+ depends only on resolution (distortion maps) in a dictionary keyed by `W×H`.
127
+
128
+ `cut(g, S, amt)` is the transition drawn at plate edges. The skeleton fades to black; a
129
+ retro TV switches channels with band tearing and snow; a poster style cuts hard
130
+ (`cutIn: false, cutOut: false` on every plate). The first plate has `cutIn: false`; the
131
+ last has `cutOut: false`.
132
+
133
+ When a plate needs the last frame of the previous one (a TV switching off over the
134
+ portrait), move that plate's drawing into a function and call it with a fixed local frame.
135
+
136
+ ## 6. Contact sheet
137
+
138
+ `contactSheet(n, cellW, seed, target)`: cells rendered at twice the cell width and scaled
139
+ down, so per-pixel post-processing looks the way it will in the video. Labels: frame,
140
+ plate, local `t`, seconds. Six columns for landscape, eight for portrait. Twenty-four cells
141
+ cover a 40-second video every 1.7 seconds; for a 15-second video use 18.
142
+
143
+ A sheet of one section: `FROM=480 TO=720 node scripts/look.mjs sheet 12 480 7 shots/sheet-b.png`
144
+ (start frames of the plates come from `look.mjs info`). In a long film, and in a world film where
145
+ plates flow into each other, review the section you just built this way: twelve cells over eight
146
+ seconds catch a camera that stalls or jumps, which one cell every two seconds hides.
147
+
148
+ ## 7. Text
149
+
150
+ Bitmap text (`pixText`): a system bold monospace at 14 px is drawn into a small canvas, the
151
+ alpha is thresholded at 0.5, the mask is scaled up without smoothing by `cell` logical units
152
+ per glyph pixel, aligned by its tight bounding box (never by font metrics), snapped to the
153
+ glyph grid so letters do not shimmer between frames. `fit` shrinks `cell` to the largest
154
+ integer that fits a width. This gives teletext, OSD menus, terminal type, pixel-game text.
155
+ Vector text (`vecText`) for display sizes in poster, flat and blueprint styles. Measure
156
+ before you place; multi-line layouts compute line height in units of `cell`, including any
157
+ sub-line, so lines never touch.
158
+
159
+ Lower titles sit on one baseline, `TITLE_Y` in both skeletons: 80 % of the height in 16:9, 70 %
160
+ in 9:16, where the bottom fifth belongs to the platform's captions and buttons. Two titles never
161
+ share the screen in the same place: end one before the next begins, even when both fade. The
162
+ world skeleton warns about overlaps in the console.
163
+
164
+ Cyrillic and Latin are both in Menlo and Helvetica Neue on macOS; on Linux install
165
+ `fonts-dejavu` and use `DejaVu Sans Mono`. Rendering happens on one machine, so
166
+ cross-machine font drift is not a concern unless the HTML is rendered elsewhere.
167
+
168
+ ## 8. Motion vocabulary
169
+
170
+ - Reveal: `reveal` as a fraction of width for row-by-row text; `frac` for paths by
171
+ cumulative length (constant beam speed); scale pop `1.10 → 1` over 45 % of a beat on
172
+ every count; slide-in from the edge with `ease.out` over 10–12 frames.
173
+ - Hold: a still that breathes. A ±1.5 unit drift from `S.b`, a blink at 1 Hz, a slow
174
+ brightness sine of ±2 %. Two adjacent sheet cells must still differ.
175
+ - Cut: the engine does it. Inside a plate, a "flash frame" (one white frame) and a "shake"
176
+ (±8 units for 4 frames) are enough punctuation.
177
+ - Camera: translate and scale the whole context inside the plate; ease between two
178
+ keyframes; never move more than 20 % of the frame per second on a hold. A camera that
179
+ travels far (a zoom from a detail to a landscape) interpolates the zoom in log space, or it
180
+ rushes at the close end and crawls at the far end, and is smoothed over ±18 frames; widths that
181
+ must stay constant on screen are divided by the scale. `world.html` has this camera
182
+ (`references/world.md`, section 4).
183
+ - Transitions between two states of one object: interpolate polylines with the same point
184
+ count; morph by cross-fading fills only when shapes share topology.
185
+
186
+ ## 9. Parametric objects
187
+
188
+ Everything is a function of a scale parameter, centred on `CX, CY`: seven-segment digits,
189
+ a test card, a graticule, a paperclip from arcs and lines with cumulative length, a clock, a
190
+ progress bar, a lower third, a stamp, a speech bubble. Build the object once as points, then
191
+ draw it with the current style; the same points serve stroke reveal, fill and jitter.
192
+
193
+ ## 10. Review protocol
194
+
195
+ ```bash
196
+ node scripts/look.mjs shot 0,45,115 1200 7 # first, middle, five before the end
197
+ node scripts/look.mjs sheet 24 480 7 shots/sheet.png
198
+ node scripts/look.mjs info # plates, lengths, seconds
199
+ node scripts/check.mjs # before a full render: OK or a list of problems
200
+ ffmpeg -y -i shots/f0770.png -vf "crop=900:300:160:560" shots/crop.png # small text at full size
201
+ ```
202
+
203
+ `check.mjs` is the machine half of the review: pixels of sample frames identical in seven
204
+ render orders, no clock or `Math.random` in the source, no file requested by the page, plate
205
+ lengths on the beat, a BPM that divides into frames, no flat frame inside a plate, no plate that
206
+ stands still, and the time of one full-size frame. Every script starts Chrome with
207
+ `--disable-accelerated-2d-canvas`: an accelerated canvas switches to software after a few
208
+ readbacks, and the same frame then comes out slightly different in a fresh tab and in a used one.
209
+
210
+ Look at every PNG with the image tool. The script prints page errors and console warnings;
211
+ a black frame without an error message means a plate threw before drawing, so read the
212
+ output. The checklist is in `SKILL.md`, step 4.
213
+
214
+ Lessons from review of a finished film:
215
+
216
+ - An empty scene is a scale problem. Make the object bigger or bring the camera closer; more
217
+ detail makes a scene busier, not fuller.
218
+ - In an intimate scene the set competes with the subject. Dim the decor around it with a
219
+ spotlight measured on screen (full near the centre, gone at about 0.6 of the frame height),
220
+ and open the light when the world opens (`references/world.md`, section 6).
221
+ - Where plates flow into each other, shoot the last frame of one plate and the first frame of
222
+ the next side by side: nothing may jump.
223
+
224
+ ## 11. Render and encode
225
+
226
+ ```bash
227
+ node scripts/render.mjs frames 7 1920 5 # ~2 min per 1200 frames with per-pixel post on an M-series Mac
228
+ START=600 END=780 node scripts/render.mjs frames 7 1920 5
229
+ RESUME=1 node scripts/render.mjs frames 7 1920 5
230
+ bash scripts/build.sh out.mp4 # CRF=22, maxrate 14M, yuv420p, faststart, AAC 192k
231
+ AR=9:16 node scripts/render.mjs frames-v 7 1080 5 && bash scripts/build.sh out-vertical.mp4 frames-v
232
+ ```
233
+
234
+ `build.sh` converts the sRGB frames with the BT.709 matrix and tags the file (BT.709 primaries
235
+ and matrix, sRGB transfer, limited range). ffmpeg alone would convert with BT.601 and leave the
236
+ matrix untagged; players read HD video as BT.709, so saturated colours shift, pure green by 39
237
+ levels in a measured test. The MP4 is written under a temporary name and appears only when the
238
+ encode succeeded.
239
+
240
+ PNG frames weigh 1.5–2.5 MB each; a minute of video is 3–4 GB, ignored by git. CRF 22 with a
241
+ 14 Mbit/s cap gives about 0.7 MB per second on noisy styles and half that on flat styles;
242
+ CRF 17 is five times larger with no visible gain on a contact sheet. Keep deliverables under
243
+ 50 MB for messengers. Verify the MP4: `ffprobe` frame count equals `RISO.total`, duration
244
+ equals frames / 30, a tile made from the file matches the sheet.
245
+
246
+ A film made vertical from the start sets its page's default aspect
247
+ (`parseAR(Q.get('ar') || '9:16')`), so every script renders it vertical without `AR`; `render.mjs`
248
+ without a width then takes 1080, and `check.mjs` times the frame at that width.
249
+
250
+ For a vertical cut, composition needs its own sheet: `fit` saves the text, not the layout.
251
+ Platform UI covers the top 15 % and bottom 20 % of vertical video: lower titles go up to 70 %
252
+ of the height (`TITLE_Y` does it when the aspect is vertical). One soundtrack serves both cuts.
253
+
254
+ ## 12. Changing a finished video
255
+
256
+ - Insert a plate: add it, shorten a neighbour to keep the total, export the curves again (the
257
+ sound's timeline follows; without `curves.json` update the `T` table by hand), reshoot the
258
+ sheet, re-render. In a world film the next plate's first stroke now starts from a new point:
259
+ reshoot that boundary (`references/world.md`, section 9).
260
+ - Change a line of text: reshoot the frames that show it and one sheet.
261
+ - Swap a photo: rerun `portrait.sh`, reshoot the portrait plate.
262
+ - Change the seed: nothing else changes; render and compare two sheets side by side.
263
+
264
+ ## 13. Project layout after `init.sh`
265
+
266
+ ```
267
+ index.html the video
268
+ audio.mjs the soundtrack
269
+ nature.mjs the nature sound blocks audio.mjs imports (init.sh --painting only)
270
+ storyboard.md the plan
271
+ curves.json plate starts and per-frame curves for the sound, written by export-curves, ignored by git
272
+ scripts/ look, check, render, build, make, export-curves, inject, portrait, trace, doctor
273
+ shots/ frames and sheets for eyes, ignored by git
274
+ frames/ PNG frames, ignored by git
275
+ package.json npm scripts and the puppeteer dependency
276
+ ```