@autoaiai/aicut 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MANUAL.md +94 -94
- package/package.json +1 -1
- package/skills/aicut-motion/SKILL.md +69 -3
- package/skills/aicut-motion/THIRD_PARTY_NOTICES.md +14 -0
- package/skills/aicut-motion/assets/atlas/lib/harness.js +116 -0
- package/skills/aicut-motion/assets/atlas/lib/sound.js +274 -0
- package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/code.js +937 -0
- package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/001-flat-vector-science/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/code.js +909 -0
- package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/002-watercolor-wash/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/code.js +881 -0
- package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/003-shadow-puppet-theatre/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/code.js +897 -0
- package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/004-whiteboard-explainer/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/code.js +814 -0
- package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/005-psychedelic-poster/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/code.js +990 -0
- package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/006-tech-glow-explainer/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/code.js +994 -0
- package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/007-papercraft-models/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/code.js +792 -0
- package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/008-1940s-film-noir/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/code.js +840 -0
- package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/009-manim-style-math/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/code.js +1126 -0
- package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/010-illuminated-manuscript/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/code.js +854 -0
- package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/011-editorial-essay-collage/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/code.js +1124 -0
- package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/012-bioluminescent-deep-sea/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/code.js +728 -0
- package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/013-product-launch-reveal/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/code.js +664 -0
- package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/014-halftone-pop-panel/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/code.js +991 -0
- package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/015-isometric-pastel/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/code.js +801 -0
- package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/016-oscilloscope-vector-art/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/code.js +692 -0
- package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/017-risograph-zine/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/code.js +756 -0
- package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/018-claymation-set/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/code.js +922 -0
- package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/019-neon-sign-at-night/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/code.js +852 -0
- package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/020-kawaii-anime/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/code.js +724 -0
- package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/021-ukiyo-e-woodblock/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/code.js +793 -0
- package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/022-16-bit-pixel-odyssey/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/code.js +846 -0
- package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/023-chalkboard-lesson/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/code.js +1008 -0
- package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/024-cut-paper-diorama/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/code.js +680 -0
- package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/025-cathedral-glass/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/code.js +633 -0
- package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/026-editorial-chart/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/code.js +757 -0
- package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/027-synthwave-outrun/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/code.js +828 -0
- package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/028-origami-studio/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/code.js +697 -0
- package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/029-linocut-relief-print/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/code.js +687 -0
- package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/030-holographic-foil-card/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/code.js +727 -0
- package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/031-voxel-diorama/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/code.js +903 -0
- package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/032-sumi-e-ink-wash/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/code.js +662 -0
- package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/033-etch-a-sketch-toy/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/code.js +951 -0
- package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/034-cosmic-star-chart/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/code.js +759 -0
- package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/035-punk-zine-collage/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/code.js +738 -0
- package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/036-thermal-camera/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/code.js +793 -0
- package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/037-engineering-blueprint/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/code.js +673 -0
- package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/038-impasto-night/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/code.js +907 -0
- package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/039-win95-desktop/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/code.js +833 -0
- package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/040-low-poly-faceted/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/041-manga-page/code.js +845 -0
- package/skills/aicut-motion/assets/atlas/styles/041-manga-page/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/041-manga-page/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/code.js +496 -0
- package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/042-wood-type-letterpress/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/043-light-painting/code.js +635 -0
- package/skills/aicut-motion/assets/atlas/styles/043-light-painting/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/043-light-painting/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/code.js +799 -0
- package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/044-felt-patchwork/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/code.js +547 -0
- package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/045-phosphor-terminal/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/code.js +592 -0
- package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/046-glassmorphism-ui/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/code.js +768 -0
- package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/047-tarot-card/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/048-transit-map/code.js +666 -0
- package/skills/aicut-motion/assets/atlas/styles/048-transit-map/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/048-transit-map/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/code.js +559 -0
- package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/049-gouache-travel-poster/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/code.js +943 -0
- package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/050-napkin-sketch/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/code.js +606 -0
- package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/051-art-deco-foil/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/code.js +730 -0
- package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/052-radiograph-on-lightbox/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/code.js +782 -0
- package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/053-vaporwave/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/code.js +504 -0
- package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/054-ebru-paper-marbling/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/code.js +517 -0
- package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/055-isotype-pictograms/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/code.js +713 -0
- package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/056-soft-3d-clay/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/code.js +717 -0
- package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/057-cross-stitch-sampler/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/code.js +540 -0
- package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/058-constructivist-propaganda/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/code.js +524 -0
- package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/059-pocket-monochrome/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/code.js +934 -0
- package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/060-botanical-plate/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/code.js +690 -0
- package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/061-kinetic-type/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/code.js +612 -0
- package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/062-byzantine-mosaic/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/code.js +666 -0
- package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/063-y2k-liquid-chrome/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/code.js +651 -0
- package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/064-sticky-note-wall/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/code.js +656 -0
- package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/065-vintage-newsprint/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/code.js +672 -0
- package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/066-hidden-line-wireframe/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/code.js +548 -0
- package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/067-memphis-group/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/code.js +989 -0
- package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/068-ballpoint-notebook/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/code.js +440 -0
- package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/069-op-art-sphere/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/code.js +895 -0
- package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/070-topographic-survey/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/code.js +563 -0
- package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/071-pointillist-afternoon/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/code.js +627 -0
- package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/072-vector-arcade-1980/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/code.js +1096 -0
- package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/073-patent-drawing/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/code.js +595 -0
- package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/074-bauhaus-poster/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/code.js +665 -0
- package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/075-bitmap-paint-doodle/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/code.js +645 -0
- package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/076-nail-thread-string-art/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/code.js +436 -0
- package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/077-ridgeline/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/code.js +1237 -0
- package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/078-sketchbook-graphite/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/code.js +622 -0
- package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/079-teletext-page/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/code.js +524 -0
- package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/080-silkscreen-grid/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/code.js +689 -0
- package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/081-guilloch-security-print/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/code.js +574 -0
- package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/082-ascii-demoscene/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/code.js +469 -0
- package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/083-international-typographic-style/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/084-flow-field/code.js +531 -0
- package/skills/aicut-motion/assets/atlas/styles/084-flow-field/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/084-flow-field/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/code.js +675 -0
- package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/085-macpaint-1984/style.json +13 -0
- package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/code.js +609 -0
- package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/poster.jpg +0 -0
- package/skills/aicut-motion/assets/atlas/styles/086-multi-scale-truchet/style.json +13 -0
- package/skills/aicut-motion/references/motion-delivery.md +55 -0
- package/skills/aicut-motion/references/style-index.json +690 -0
- package/skills/aicut-motion/references/style-research.md +73 -0
- package/skills/aicut-motion/references/style-selection.md +71 -0
- package/skills/aicut-motion/scripts/atlas-viewer.html +195 -0
- package/skills/aicut-motion/scripts/atlas.mjs +109 -0
- package/studio/server/fetch-github.mjs +14 -3
- package/studio/server/server.mjs +40 -3
- package/studio/server/skill-summaries.mjs +60 -0
- package/studio/server/skills.mjs +121 -7
- package/studio/server/styles-store.mjs +235 -0
- package/studio/server/template-posters.mjs +2 -2
- package/studio/server/templates-page.mjs +93 -93
- package/studio/server/templates.mjs +32 -7
- package/studio/ui/dist/assets/ExportCenter-DasulhAv.js +1 -0
- package/studio/ui/dist/assets/SettingsModal-BZw0Hz2_.js +2 -0
- package/studio/ui/dist/assets/es-C8XPZARI.js +1 -0
- package/studio/ui/dist/assets/index-BjJVmBzB.js +1623 -0
- package/studio/ui/dist/assets/index-C3BfKZFO.css +1 -0
- package/studio/ui/dist/assets/ja-BeNkdaEj.js +1 -0
- package/studio/ui/dist/assets/ko-DcTVhdzK.js +1 -0
- package/studio/ui/dist/assets/zh-CN-Cg51ctbL.js +1 -0
- package/studio/ui/dist/index.html +2 -2
- package/skills/30x-web-to-video/SKILL.md +0 -421
- package/skills/30x-web-to-video/examples/INDEX.md +0 -26
- package/skills/30x-web-to-video/references/animations.md +0 -539
- package/skills/30x-web-to-video/references/audio.md +0 -256
- package/skills/30x-web-to-video/references/components.md +0 -340
- package/skills/30x-web-to-video/references/lottie.md +0 -174
- package/skills/30x-web-to-video/references/visual-effects.md +0 -157
- package/skills/30x-web-to-video/remotion-best-practices/rules/audio.md +0 -169
- package/skills/30x-web-to-video/remotion-best-practices/rules/calculate-metadata.md +0 -134
- package/skills/30x-web-to-video/remotion-best-practices/rules/charts.md +0 -120
- package/skills/30x-web-to-video/remotion-best-practices/rules/compositions.md +0 -154
- package/skills/30x-web-to-video/remotion-best-practices/rules/ffmpeg.md +0 -38
- package/skills/30x-web-to-video/remotion-best-practices/rules/fonts.md +0 -152
- package/skills/3d-asset-generation/SKILL.md +0 -142
- package/skills/action-fight-prompt/SKILL.md +0 -136
- package/skills/action-fight-prompt/references/camera-and-impact.md +0 -64
- package/skills/action-fight-prompt/references/example-15s-duel.md +0 -59
- package/skills/action-fight-prompt/references/scene-patterns.md +0 -80
- package/skills/ad-creative-video/SKILL.md +0 -205
- package/skills/ad-creative-video/references/batch-ad-pipeline.md +0 -289
- package/skills/ad-creative-video/references/platform-specs.md +0 -72
- package/skills/after-effects/SKILL.md +0 -123
- package/skills/after-effects/references/export-recipes.md +0 -168
- package/skills/after-effects/references/expression-library.md +0 -184
- package/skills/after-effects/references/expressions.md +0 -134
- package/skills/after-effects/references/performance-triage.md +0 -138
- package/skills/after-effects/references/project-hygiene.md +0 -188
- package/skills/ai-media-quality-review/SKILL.md +0 -72
- package/skills/ai-product-video/SKILL.md +0 -296
- package/skills/ai-product-video/references/aesthetic-rules.md +0 -177
- package/skills/ai-product-video/references/final-review.md +0 -110
- package/skills/ai-product-video/references/guided-free-creation.md +0 -194
- package/skills/ai-product-video/references/music-beat-sync.md +0 -219
- package/skills/ai-product-video/references/pipeline.md +0 -392
- package/skills/ai-product-video/references/sequences/promo-energy-arc.md +0 -50
- package/skills/ai-product-video/references/shots/ATTRIBUTION.md +0 -65
- package/skills/ai-product-video/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/ai-product-video/references/shots/camera/crash-zoom-punch.md +0 -39
- package/skills/ai-product-video/references/shots/camera/cursor-flyover.md +0 -38
- package/skills/ai-product-video/references/shots/camera/depth-layer-moves.md +0 -40
- package/skills/ai-product-video/references/shots/camera/graze-face-tour.md +0 -57
- package/skills/anidoodle/SKILL.md +0 -185
- package/skills/anidoodle/references/anatomy.md +0 -91
- package/skills/anidoodle/references/backends-and-adapters.md +0 -82
- package/skills/anidoodle/references/camera.md +0 -148
- package/skills/anidoodle/references/craft-bar.md +0 -72
- package/skills/anidoodle/references/determinism-and-contract.md +0 -46
- package/skills/anidoodle/references/formats.md +0 -121
- package/skills/anidoodle/references/motion-grammar.md +0 -234
- package/skills/anidoodle/references/music/compose.md +0 -388
- package/skills/anidoodle/references/music/sound-design.md +0 -245
- package/skills/anidoodle/references/music/sounds-licenses.md +0 -69
- package/skills/anidoodle/references/music/styles/lofi-electronic.md +0 -112
- package/skills/anidoodle/references/music/styles/music-box.md +0 -57
- package/skills/animated-component-libraries/SKILL.md +0 -820
- package/skills/animated-component-libraries/references/customization_guide.md +0 -699
- package/skills/animated-component-libraries/references/magic_ui_components.md +0 -422
- package/skills/animated-component-libraries/references/react_bits_components.md +0 -587
- package/skills/animated-infographic/SKILL.md +0 -211
- package/skills/animated-infographic/references/sequenced-infographic.md +0 -286
- package/skills/appshot-core/SKILL.md +0 -872
- package/skills/article-highlights/SKILL.md +0 -151
- package/skills/avatar-mix/SKILL.md +0 -301
- package/skills/bang-motion/SKILL.md +0 -583
- package/skills/bang-motion/references/ae-bridge-higgsfield.md +0 -160
- package/skills/bang-motion/references/anti-ppt.md +0 -110
- package/skills/bang-motion/references/architecture.md +0 -188
- package/skills/bang-motion/references/explainer.md +0 -579
- package/skills/bang-motion/references/kartun-panggung.md +0 -221
- package/skills/bang-motion/references/opener-konsep.md +0 -817
- package/skills/bang-motion/references/roadmap.md +0 -85
- package/skills/bang-motion/references/techniques.md +0 -690
- package/skills/beat-sync-edit/SKILL.md +0 -148
- package/skills/book-video-factory/SKILL.md +0 -139
- package/skills/book-video-factory/references/first-run.md +0 -50
- package/skills/book-video-factory/references/paper-collage-explainer.md +0 -127
- package/skills/book-video-factory/references/quality-gates.md +0 -87
- package/skills/book-video-production/SKILL.md +0 -211
- package/skills/brag/SKILL.md +0 -195
- package/skills/brag/references/audio.md +0 -312
- package/skills/brag/references/step-1-inspect.md +0 -125
- package/skills/brag/references/step-2-plan.md +0 -234
- package/skills/brag/references/step-3-compose.md +0 -199
- package/skills/brag/references/step-4-deliver.md +0 -141
- package/skills/brag/references/tones.md +0 -231
- package/skills/brand-setup/SKILL.md +0 -228
- package/skills/brewreel/SKILL.md +0 -491
- package/skills/brewreel/docs/broll.en.md +0 -252
- package/skills/brewreel/docs/broll.md +0 -252
- package/skills/brewreel/docs/custom-shot.en.md +0 -66
- package/skills/brewreel/docs/custom-shot.md +0 -103
- package/skills/brewreel/docs/faq.en.md +0 -90
- package/skills/brewreel/docs/faq.md +0 -90
- package/skills/brewreel/docs/features.en.md +0 -157
- package/skills/brewreel/docs/features.md +0 -157
- package/skills/brewreel/docs/gallery.en.md +0 -44
- package/skills/brewreel/docs/gallery.md +0 -44
- package/skills/brewreel/docs/how-it-works.en.md +0 -64
- package/skills/brewreel/docs/how-it-works.md +0 -64
- package/skills/caption-animation/SKILL.md +0 -216
- package/skills/caption-animation/references/word-timed-captions.md +0 -254
- package/skills/cartcut-editing/SKILL.md +0 -615
- package/skills/cartcut-editing/references/html-typography.md +0 -277
- package/skills/cassette-video-edit/SKILL.md +0 -129
- package/skills/ccvideo/SKILL.md +0 -264
- package/skills/chekhov-dramaturgy/SKILL.md +0 -367
- package/skills/chekhov-dramaturgy/reference.md +0 -375
- package/skills/chengfeng-check-updates/SKILL.md +0 -283
- package/skills/cinematic-product-promo-skill/SKILL.md +0 -295
- package/skills/cinematic-product-promo-skill/references/aesthetic-rules.md +0 -187
- package/skills/cinematic-product-promo-skill/references/final-review.md +0 -116
- package/skills/cinematic-product-promo-skill/references/guided-free-creation.md +0 -199
- package/skills/cinematic-product-promo-skill/references/jianying-export.md +0 -183
- package/skills/cinematic-product-promo-skill/references/music-beat-sync.md +0 -257
- package/skills/cinematic-product-promo-skill/references/pipeline.md +0 -393
- package/skills/cinematic-product-promo-skill/references/sequences/promo-energy-arc.md +0 -50
- package/skills/cinematic-product-promo-skill/references/shots/ATTRIBUTION.md +0 -65
- package/skills/cinematic-product-promo-skill/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/cinematic-product-promo-skill/references/shots/camera/crash-zoom-punch.md +0 -39
- package/skills/cinematic-product-promo-skill/references/shots/camera/cursor-flyover.md +0 -38
- package/skills/cinematic-product-promo-skill/references/shots/camera/depth-layer-moves.md +0 -40
- package/skills/claude-gif/SKILL.md +0 -211
- package/skills/claude-gif/references/gif-optimization.md +0 -209
- package/skills/claude-gif/references/perfect-loops.md +0 -295
- package/skills/claude-gif/references/platform-specs.md +0 -138
- package/skills/claude-gif/references/prompt-engineering.md +0 -211
- package/skills/claude-gif/references/remotion-gif.md +0 -560
- package/skills/codex-video-pipeline/SKILL.md +0 -213
- package/skills/codex-video-pipeline/examples/ai-meeting-notes/INPUT.md +0 -10
- package/skills/codex-video-pipeline/examples/ai-meeting-notes/expected/action-list.md +0 -22
- package/skills/codex-video-pipeline/references/captions.md +0 -39
- package/skills/codex-video-pipeline/references/cover-system.md +0 -72
- package/skills/codex-video-pipeline/references/cross-platform.md +0 -77
- package/skills/codex-video-pipeline/references/example-run.md +0 -54
- package/skills/codex-video-pipeline/references/first-run.md +0 -130
- package/skills/codex-video-pipeline/references/project-contract.md +0 -54
- package/skills/codex-video-pipeline/references/quality-gates.md +0 -44
- package/skills/codex-video-pipeline/references/research-and-script.md +0 -50
- package/skills/collage-broll-explainers/SKILL.md +0 -429
- package/skills/create-onboarding-video/SKILL.md +0 -233
- package/skills/cs-shotcraft-skill/SKILL.md +0 -218
- package/skills/cs-shotcraft-skill/references/aesthetic-rules.md +0 -207
- package/skills/cs-shotcraft-skill/references/camera-table.md +0 -88
- package/skills/cs-shotcraft-skill/references/engineering.md +0 -132
- package/skills/cs-shotcraft-skill/references/final-review.md +0 -118
- package/skills/cs-shotcraft-skill/references/guided-free-creation.md +0 -199
- package/skills/cs-shotcraft-skill/references/jianying-export.md +0 -183
- package/skills/cs-shotcraft-skill/references/music-beat-sync.md +0 -257
- package/skills/cs-shotcraft-skill/references/pipeline.md +0 -408
- package/skills/cs-shotcraft-skill/references/product-machine.md +0 -56
- package/skills/cs-shotcraft-skill/references/sequences/promo-energy-arc.md +0 -50
- package/skills/cs-shotcraft-skill/references/shots/ATTRIBUTION.md +0 -65
- package/skills/cs-shotcraft-skill/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/cut-video/SKILL.md +0 -387
- package/skills/cyxj-hyperframes-overlay/SKILL.md +0 -75
- package/skills/cyxj-remotion-evolve/SKILL.md +0 -123
- package/skills/cyxj-remotion-evolve-vibe-motion/SKILL.md +0 -123
- package/skills/demo-video-creation-skill/SKILL.md +0 -152
- package/skills/demo-video-creation-skill/references/capture-workflow.md +0 -74
- package/skills/demo-video-creation-skill/references/qc-checklist.md +0 -61
- package/skills/demo-video-creation-skill/references/remotion-ffmpeg.md +0 -94
- package/skills/demo-video-creation-skill/references/storytelling.md +0 -86
- package/skills/demo-video-creation-skill/references/visual-system.md +0 -83
- package/skills/demoday/SKILL.md +0 -148
- package/skills/develop-premiere-pro-mcp/SKILL.md +0 -131
- package/skills/diagram-animation/SKILL.md +0 -200
- package/skills/diagram-animation/references/diagram-and-chart-recipes.md +0 -218
- package/skills/diagram-tour/SKILL.md +0 -287
- package/skills/diagram-tour/examples/agent-architecture/agent-architecture-tour.md +0 -78
- package/skills/docvideoer/SKILL.md +0 -139
- package/skills/draftcut/SKILL.md +0 -104
- package/skills/draftcut/docs/agent-bootstrap.md +0 -64
- package/skills/draftcut/docs/approvals.md +0 -45
- package/skills/draftcut/docs/audio-first-migration.md +0 -35
- package/skills/draftcut/docs/configuration.md +0 -54
- package/skills/draftcut/docs/getting-started.md +0 -63
- package/skills/draftcut/docs/harness-case-study.en.md +0 -23
- package/skills/draftcut/docs/harness-case-study.md +0 -47
- package/skills/draftcut/references/01-plan.md +0 -30
- package/skills/draftcut/references/03-deliver.md +0 -26
- package/skills/draftcut/references/04-reference-theme-prompt.md +0 -7
- package/skills/draftcut/references/05-social-loudness.md +0 -58
- package/skills/draftcut/references/06-modern-components.md +0 -72
- package/skills/easyedit/SKILL.md +0 -66
- package/skills/erduo-broll-loop-engineering/SKILL.md +0 -136
- package/skills/erduo-broll-loop-engineering/references/animation-craft.md +0 -208
- package/skills/erduo-broll-loop-engineering/references/first-run-onboarding.md +0 -107
- package/skills/erduo-broll-loop-engineering/references/handoff-template.md +0 -70
- package/skills/erduo-broll-loop-engineering/references/motion-layout-lint.md +0 -122
- package/skills/erduo-broll-loop-engineering/references/parent-review-checklist.md +0 -171
- package/skills/erduo-broll-loop-engineering/references/prompt-first-workflow.md +0 -322
- package/skills/erduo-broll-loop-engineering/references/remotion-backend.md +0 -334
- package/skills/erduo-broll-loop-engineering/references/runtime/remotion-hyperframes-map.md +0 -76
- package/skills/erduo-broll-loop-engineering/references/runtime/runtime-contract.md +0 -174
- package/skills/erduo-broll-loop-engineering/references/runtime/runtime-selection.md +0 -135
- package/skills/erduo-broll-loop-engineering/references/shotcraft/remotion-sources/SOURCE.md +0 -7
- package/skills/erduo-broll-loop-engineering/references/shotcraft/upstream-attribution.md +0 -65
- package/skills/explainer-assets/SKILL.md +0 -98
- package/skills/explainer-video/SKILL.md +0 -146
- package/skills/framewright/SKILL.md +0 -324
- package/skills/framewright/references/audio.md +0 -230
- package/skills/framewright/references/guide.md +0 -276
- package/skills/framewright/references/painting.md +0 -425
- package/skills/framewright/references/photo.md +0 -75
- package/skills/framewright/references/questionnaire.md +0 -115
- package/skills/framewright/references/styles.md +0 -388
- package/skills/framewright/references/troubleshooting.md +0 -119
- package/skills/framewright/references/world.md +0 -215
- package/skills/gbro-collage-broll/SKILL.md +0 -435
- package/skills/gbro-collage-info/SKILL.md +0 -135
- package/skills/gbro-collage-info/references/motion-grammar.md +0 -66
- package/skills/gbro-collage-info/references/production.md +0 -67
- package/skills/gbro-collage-info/references/style-system.md +0 -38
- package/skills/gemini-tts/SKILL.md +0 -208
- package/skills/gemini-tts/references/prompting-guide.md +0 -169
- package/skills/gen/SKILL.md +0 -282
- package/skills/ghost-editor/SKILL.md +0 -437
- package/skills/ghost-editor/docs/HOW-IT-WORKS.md +0 -82
- package/skills/ghost-editor/docs/PLAYBOOK.md +0 -139
- package/skills/ghost-editor/docs/THIRD_PARTY/audio.md +0 -17
- package/skills/ghost-editor/docs/THIRD_PARTY/audioqa.md +0 -13
- package/skills/ghost-editor/docs/THIRD_PARTY/captions.md +0 -20
- package/skills/ghost-editor/docs/THIRD_PARTY/fonts.md +0 -17
- package/skills/ghost-editor/docs/THIRD_PARTY/kinetic.md +0 -22
- package/skills/ghost-editor/docs/THIRD_PARTY/looks.md +0 -22
- package/skills/ghost-editor/docs/THIRD_PARTY/matte.md +0 -20
- package/skills/ghost-editor/docs/THIRD_PARTY/models.md +0 -11
- package/skills/ghost-editor/docs/THIRD_PARTY/runtime.md +0 -13
- package/skills/ghost-editor/docs/THIRD_PARTY/shaders.md +0 -15
- package/skills/git-story-film/SKILL.md +0 -220
- package/skills/git-story-film/examples/raven-story/FONTS.md +0 -8
- package/skills/git-story-film/examples/raven-story/OUTLINE.md +0 -93
- package/skills/git-story-film/references/craft.md +0 -148
- package/skills/git-story-film/references/directing.md +0 -185
- package/skills/git-story-film/references/forms.md +0 -150
- package/skills/git-story-film/references/production.md +0 -150
- package/skills/git-story-film/references/story.md +0 -137
- package/skills/git-story-film/references/text-and-fonts.md +0 -90
- package/skills/guizang-product-video-skill/SKILL.md +0 -96
- package/skills/guizang-product-video-skill/references/audio-and-qa.md +0 -113
- package/skills/guizang-product-video-skill/references/audio-sourcing.md +0 -80
- package/skills/guizang-product-video-skill/references/case-study.md +0 -63
- package/skills/guizang-product-video-skill/references/component-pipeline.md +0 -86
- package/skills/guizang-product-video-skill/references/cover.md +0 -43
- package/skills/guizang-product-video-skill/references/direction.md +0 -91
- package/skills/guizang-product-video-skill/references/onboarding.md +0 -98
- package/skills/guizang-product-video-skill/references/repo-and-style.md +0 -44
- package/skills/guizang-product-video-skill/references/review.md +0 -38
- package/skills/guizang-product-video-skill/references/starter.md +0 -168
- package/skills/guizang-product-video-skill/references/story-and-copy.md +0 -88
- package/skills/guizang-product-video-skill/references/visual-vocabulary.md +0 -78
- package/skills/guofeng-paper-video/SKILL.md +0 -159
- package/skills/guofeng-paper-video/style/design.md +0 -43
- package/skills/guofeng-paper-video/style/palette.md +0 -21
- package/skills/guofeng-paper-video/style/prompts/01-/345/210/206/351/225/234/350/241/250.md +0 -19
- package/skills/guofeng-paper-video/style/prompts/02-/347/224/237/346/210/220/347/272/270/347/211/207.md +0 -37
- package/skills/guofeng-paper-video/style/prompts/03-/351/205/215/351/237/263/350/204/232/346/234/254.md +0 -27
- package/skills/guofeng-paper-video/style//345/210/206/351/225/234/344/270/216/345/233/276/345/261/202/350/247/204/350/214/203.md +0 -67
- package/skills/guofeng-paper-video/style//347/272/270/347/211/207/347/264/240/346/235/220/350/247/204/350/214/203.md +0 -29
- package/skills/hand-drawn-explainer-video-nikola/SKILL.md +0 -113
- package/skills/hand-drawn-explainer-video-nikola/docs/ARCHITECTURE.md +0 -18
- package/skills/hand-drawn-explainer-video-nikola/docs/CONFIGURATION.md +0 -22
- package/skills/hand-drawn-explainer-video-nikola/docs/STYLES.md +0 -28
- package/skills/hand-drawn-explainer-video-nikola/docs/TROUBLESHOOTING.md +0 -35
- package/skills/hand-drawn-explainer-video-nikola/examples/program-animation/skill-demo/DESIGN.md +0 -24
- package/skills/hand-drawn-explainer-video-nikola/references/automation-workflow.md +0 -67
- package/skills/hand-drawn-explainer-video-nikola/references/output-example.md +0 -79
- package/skills/hand-drawn-explainer-video-nikola/references/preflight-and-recovery.md +0 -49
- package/skills/hand-drawn-explainer-video-nikola/references/style-guide.md +0 -82
- package/skills/hand-drawn-explainer-video-nikola/references/style-selection-and-updates.md +0 -39
- package/skills/hand-drawn-explainer-video-nikola/references/upstream-whiteboard-review.md +0 -30
- package/skills/hand-drawn-explainer-video-nikola/references/voiceover.md +0 -37
- package/skills/hbg-life-simulation/SKILL.md +0 -285
- package/skills/hbg-life-simulation/references/image-generation.md +0 -53
- package/skills/hbg-life-simulation/references/local-account-api.md +0 -112
- package/skills/hbg-life-simulation/references/opening-system.md +0 -45
- package/skills/hbg-life-simulation/references/project-spec.md +0 -62
- package/skills/hbg-life-simulation/references/render-and-qa.md +0 -107
- package/skills/hbg-life-simulation/references/storyboarding.md +0 -69
- package/skills/hbg-life-simulation/references/style-system.md +0 -80
- package/skills/hbg-life-simulation/references/visual-system.md +0 -44
- package/skills/heygen-avatar/SKILL.md +0 -489
- package/skills/heygen-avatar/references/asset-routing.md +0 -86
- package/skills/heygen-avatar/references/avatar-creation.md +0 -181
- package/skills/heygen-avatar/references/troubleshooting.md +0 -137
- package/skills/heytea-doodle-poster/SKILL.md +0 -132
- package/skills/heytea-doodle-poster/references/desktop-pet-character-modes.md +0 -103
- package/skills/heytea-doodle-poster/references/desktop-pet-environment.md +0 -122
- package/skills/heytea-doodle-poster/references/desktop-pet-pack.md +0 -106
- package/skills/heytea-doodle-poster/references/desktop-pet-workflow.md +0 -264
- package/skills/heytea-doodle-poster/references/evaluation.md +0 -246
- package/skills/heytea-doodle-poster/references/lettering-guide.md +0 -213
- package/skills/heytea-doodle-poster/references/mixed-media-style-guide.md +0 -101
- package/skills/heytea-doodle-poster/references/monster-poster-workflow.md +0 -56
- package/skills/heytea-doodle-poster/references/style-guide.md +0 -412
- package/skills/heytea-doodle-poster-hosted/SKILL.md +0 -132
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-character-modes.md +0 -103
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-environment.md +0 -122
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-pack.md +0 -106
- package/skills/heytea-doodle-poster-hosted/references/desktop-pet-workflow.md +0 -264
- package/skills/heytea-doodle-poster-hosted/references/evaluation.md +0 -246
- package/skills/heytea-doodle-poster-hosted/references/lettering-guide.md +0 -213
- package/skills/heytea-doodle-poster-hosted/references/mixed-media-style-guide.md +0 -101
- package/skills/heytea-doodle-poster-hosted/references/monster-poster-workflow.md +0 -56
- package/skills/heytea-doodle-poster-hosted/references/style-guide.md +0 -412
- package/skills/html2video/SKILL.md +0 -290
- package/skills/html2video/references/cjk-type.md +0 -173
- package/skills/html2video/references/editorial.md +0 -145
- package/skills/html2video/references/narration.md +0 -111
- package/skills/html2video/references/pitfalls.md +0 -238
- package/skills/html2video/references/shots.md +0 -198
- package/skills/html2video/references/storyboard.md +0 -323
- package/skills/hyperdirector/SKILL.md +0 -202
- package/skills/hyperdirector/docs/audio-workflow.md +0 -160
- package/skills/hyperdirector/docs/audio-workflow.zh-CN.md +0 -244
- package/skills/hyperdirector/docs/brand-kit-setup.md +0 -322
- package/skills/hyperdirector/docs/brand-kit-setup.zh-CN.md +0 -277
- package/skills/hyperdirector/docs/cursor-development-notes.md +0 -474
- package/skills/hyperdirector/docs/faq.md +0 -285
- package/skills/hyperdirector/docs/faq.zh-CN.md +0 -198
- package/skills/hyperdirector/docs/first-video.md +0 -320
- package/skills/hyperdirector/docs/first-video.zh-CN.md +0 -265
- package/skills/hyperdirector/docs/installation.md +0 -254
- package/skills/hyperdirector/docs/installation.zh-CN.md +0 -222
- package/skills/hyperdirector/docs/quickstart.md +0 -203
- package/skills/hyperframes/SKILL.md +0 -117
- package/skills/hyperframes/references/captions.md +0 -46
- package/skills/hyperframes/references/film.md +0 -48
- package/skills/hyperframes/references/format.md +0 -158
- package/skills/hyperframes/references/look.md +0 -69
- package/skills/hyperframes/references/motion.md +0 -95
- package/skills/hyperframes/references/overlays.md +0 -39
- package/skills/hyperframes/references/review.md +0 -51
- package/skills/hyperframes/references/runtimes.md +0 -69
- package/skills/hyperframes/references/skill-lifecycle.md +0 -49
- package/skills/hyperframes/references/sound.md +0 -43
- package/skills/hyperframes/references/spec.md +0 -76
- package/skills/hyperframes/references/story.md +0 -103
- package/skills/hyperframes-motion-director/SKILL.md +0 -920
- package/skills/hyperframes-motion-director/references/asset-choreography-and-render-qa.md +0 -185
- package/skills/hyperframes-motion-director/references/audio-sync.md +0 -83
- package/skills/hyperframes-motion-director/references/design-engineering.md +0 -156
- package/skills/hyperframes-motion-director/references/gsap-choreography.md +0 -202
- package/skills/hyperframes-motion-director/references/hyperframes-stability.md +0 -99
- package/skills/hyperframes-motion-director/references/imagegen-asset-pipeline.md +0 -227
- package/skills/hyperframes-motion-director/references/motion-background-system.md +0 -165
- package/skills/hyperframes-motion-director/references/motion-craft.md +0 -182
- package/skills/hyperframes-motion-director/references/premium-product-promo.md +0 -287
- package/skills/hyperframes-motion-director/references/text-over-background-layout.md +0 -221
- package/skills/hyperframes-motion-director/references/visual-standard.md +0 -174
- package/skills/hyperframes-motion-director/references/workflow.md +0 -320
- package/skills/hypit/SKILL.md +0 -367
- package/skills/hypit/references/creation/brief.md +0 -93
- package/skills/hypit/references/creation/script-and-time.md +0 -259
- package/skills/hypit/references/creation/transformations.md +0 -143
- package/skills/hypit/references/playbooks/craft/b-roll.md +0 -94
- package/skills/hypit/references/playbooks/craft/caption-tracking.md +0 -126
- package/skills/hypit/references/playbooks/craft/captions.md +0 -253
- package/skills/hypit/references/playbooks/craft/generated-dependencies.md +0 -38
- package/skills/hypit/references/playbooks/craft/graphic-compositions.md +0 -85
- package/skills/hypit/references/playbooks/craft/motion-graphics.md +0 -68
- package/skills/hypit/references/playbooks/craft/screen-demonstrations.md +0 -51
- package/skills/hypit/references/playbooks/craft/sound-mix.md +0 -70
- package/skills/hypit/references/playbooks/formats/narration-led-demo.md +0 -87
- package/skills/image/SKILL.md +0 -153
- package/skills/image/references/characters.md +0 -86
- package/skills/image/references/creative-direction.md +0 -137
- package/skills/image/references/de-slop.md +0 -95
- package/skills/image/references/dimensional.md +0 -88
- package/skills/image/references/editing.md +0 -112
- package/skills/image/references/golden-rules.md +0 -198
- package/skills/image/references/gpt-image.md +0 -228
- package/skills/image/references/models.md +0 -78
- package/skills/image/references/multi-panel.md +0 -354
- package/skills/image/references/nano-banana.md +0 -150
- package/skills/image/references/patterns/character-design.md +0 -150
- package/skills/image/references/patterns/ecommerce.md +0 -124
- package/skills/image-smixs/SKILL.md +0 -153
- package/skills/image-smixs/references/characters.md +0 -86
- package/skills/image-smixs/references/creative-direction.md +0 -137
- package/skills/image-smixs/references/de-slop.md +0 -95
- package/skills/image-smixs/references/dimensional.md +0 -88
- package/skills/image-smixs/references/editing.md +0 -112
- package/skills/image-smixs/references/golden-rules.md +0 -198
- package/skills/image-smixs/references/gpt-image.md +0 -228
- package/skills/image-smixs/references/models.md +0 -78
- package/skills/image-smixs/references/multi-panel.md +0 -354
- package/skills/image-smixs/references/nano-banana.md +0 -150
- package/skills/image-smixs/references/patterns/character-design.md +0 -150
- package/skills/image-smixs/references/patterns/ecommerce.md +0 -124
- package/skills/image-story-video-wizard/SKILL.md +0 -148
- package/skills/image-story-video-wizard/docs/ARTICLE_ALIGNMENT.md +0 -29
- package/skills/image-story-video-wizard/references/host-routing.md +0 -44
- package/skills/image-story-video-wizard/references/state-schema.md +0 -79
- package/skills/image-story-video-wizard/references/workflow.md +0 -203
- package/skills/image-story-video-wizard/references/writing-and-review.md +0 -60
- package/skills/ip-as-logo/SKILL.md +0 -151
- package/skills/ip-as-logo-s1dashu/SKILL.md +0 -151
- package/skills/jtxvideo-skill/SKILL.md +0 -337
- package/skills/kinetic-reel/SKILL.md +0 -140
- package/skills/kinetic-reel/examples/work-reel-26/STORYBOARD.md +0 -51
- package/skills/kinetic-reel/references/sound.md +0 -40
- package/skills/kinetic-reel/references/style-guide.md +0 -79
- package/skills/knowledge-explainer-skill/SKILL.md +0 -149
- package/skills/knowledge-explainer-skill/examples/ai_video_3steps.md +0 -61
- package/skills/knowledge-explainer-skill/examples/algorithm_bubble.md +0 -20
- package/skills/knowledge-explainer-skill/examples/before_after_demo.md +0 -38
- package/skills/knowledge-explainer-skill/examples/cta_outro.md +0 -11
- package/skills/knowledge-explainer-skill/examples/double_pendulum.md +0 -20
- package/skills/knowledge-explainer-skill/examples/paper_fold.md +0 -20
- package/skills/knowledge-explainer-skill/examples/script.md +0 -40
- package/skills/lanshu-create-ai-presenter-video/SKILL.md +0 -253
- package/skills/lanshu-create-ai-presenter-video/references/editing.md +0 -67
- package/skills/lanshu-create-ai-presenter-video/references/generation.md +0 -94
- package/skills/lanshu-create-ai-presenter-video/references/qa-recovery.md +0 -83
- package/skills/lanshu-create-ai-presenter-video/references/styled-explainer.md +0 -189
- package/skills/laoxu-video-script/SKILL.md +0 -117
- package/skills/laoxu-video-script/references/cases.md +0 -305
- package/skills/laoxu-video-script/references/de-ai.md +0 -32
- package/skills/laoxu-video-script/references/diagnostics.md +0 -67
- package/skills/laoxu-video-script/references/format.md +0 -62
- package/skills/laoxu-video-script/references/formulas.md +0 -43
- package/skills/laoxu-video-script/references/method.md +0 -115
- package/skills/laoxu-video-script/references/motifs-and-lines.md +0 -829
- package/skills/laoxu-video-script/references/persona.md +0 -38
- package/skills/laoxu-video-script/references/qihao-path.md +0 -35
- package/skills/laoxu-video-script/references/qihao-xinfa.md +0 -39
- package/skills/laoxu-video-script/references/redlines.md +0 -26
- package/skills/lemo-opuscar/SKILL.md +0 -67
- package/skills/lipnardo/SKILL.md +0 -308
- package/skills/lipnardo/examples/batch-personalized.md +0 -44
- package/skills/lipnardo/examples/photo-to-avatar-pipeline.md +0 -56
- package/skills/lipnardo/examples/single-video.md +0 -44
- package/skills/lipnardo/references/avatar-types.md +0 -42
- package/skills/lipnardo/references/credit-costs.md +0 -39
- package/skills/lipnardo/references/error-codes.md +0 -66
- package/skills/lipnardo/references/heygen-api-reference.md +0 -416
- package/skills/ll-video-decomposer/SKILL.md +0 -105
- package/skills/ll-video-decomposer/references/audiovisual-analysis-guide.md +0 -44
- package/skills/ll-video-decomposer/references/evidence-and-confidence-rules.md +0 -41
- package/skills/ll-video-decomposer/references/multi-video-comparison-template.md +0 -48
- package/skills/ll-video-decomposer/references/single-video-report-template.md +0 -47
- package/skills/ll-video-decomposer/references/tool-discovery-workflow.md +0 -30
- package/skills/ll-video-decomposer/references/transcription-routing.md +0 -65
- package/skills/ll-video-decomposer/references/video-acquisition-workflow.md +0 -30
- package/skills/ltx2-video/SKILL.md +0 -193
- package/skills/ltx2-video/references/mode_ux.md +0 -293
- package/skills/make-ai-short/SKILL.md +0 -130
- package/skills/make-blender-education-video/SKILL.md +0 -247
- package/skills/make-blender-education-video/references/evidence-and-explanation.md +0 -62
- package/skills/make-blender-education-video/references/github-workflow-discovery.md +0 -55
- package/skills/make-blender-education-video/references/production-workflow.md +0 -62
- package/skills/make-blender-education-video/references/story-patterns.md +0 -65
- package/skills/make-blender-education-video/references/visual-quality.md +0 -82
- package/skills/manage-storyboard-projects/SKILL.md +0 -128
- package/skills/manim-composer/SKILL.md +0 -176
- package/skills/manim-composer/references/narrative-patterns.md +0 -125
- package/skills/manim-composer/references/scene-examples.md +0 -216
- package/skills/manim-composer/references/visual-techniques.md +0 -223
- package/skills/manim-composer/templates/scenes-template.md +0 -147
- package/skills/monet-ai-editor-monet/SKILL.md +0 -367
- package/skills/motion-graphics/SKILL.md +0 -206
- package/skills/motion-graphics/references/craft.md +0 -136
- package/skills/motion-graphics/references/engine.md +0 -130
- package/skills/motion-graphics/references/export.md +0 -67
- package/skills/motion-graphics/references/physics.md +0 -100
- package/skills/motion-graphics/references/verify.md +0 -124
- package/skills/motion-video/SKILL.md +0 -133
- package/skills/motion-video/references/audio-and-beat-sync.md +0 -109
- package/skills/motion-video/references/composition-contract.md +0 -107
- package/skills/motion-video/references/production-pipeline.md +0 -147
- package/skills/motion-video/references/style-comic-spiderverse.md +0 -87
- package/skills/motion-video/references/style-glass-keynote.md +0 -69
- package/skills/motion-video-maker/SKILL.md +0 -1452
- package/skills/motion-video-maker/reference/components.md +0 -451
- package/skills/motion-video-maker/reference/workflow.md +0 -190
- package/skills/motioncraft/SKILL.md +0 -221
- package/skills/motioncraft/references/animation-system.md +0 -57
- package/skills/motioncraft/references/assets-and-licensing.md +0 -21
- package/skills/motioncraft/references/customization.md +0 -52
- package/skills/motioncraft/references/gpu-cloud-render.md +0 -15
- package/skills/motioncraft/references/music.md +0 -43
- package/skills/motioncraft/references/phase1-planning-and-preview.md +0 -74
- package/skills/motioncraft/references/phase2-timeline-audio.md +0 -33
- package/skills/motioncraft/references/phase3-pixel-review.md +0 -13
- package/skills/motioncraft/references/phase4-templates.md +0 -30
- package/skills/motioncraft/references/preflight.md +0 -27
- package/skills/motioncraft/references/qa.md +0 -53
- package/skills/motioncraft/references/reference-analysis.md +0 -37
- package/skills/narrator-ai-cli/SKILL.md +0 -256
- package/skills/narrator-ai-cli/references/magic-video.md +0 -205
- package/skills/narrator-ai-cli/references/operations.md +0 -230
- package/skills/narrator-ai-cli/references/resources.md +0 -126
- package/skills/narrator-ai-cli/references/workflows.md +0 -332
- package/skills/newcut-video-clipping/SKILL.md +0 -194
- package/skills/newcut-video-clipping/references/examples.md +0 -59
- package/skills/newcut-video-clipping/references/provider-config.md +0 -110
- package/skills/newcut-video-clipping/references/quality-check.md +0 -35
- package/skills/newcut-video-clipping/references/semantic-plan.md +0 -65
- package/skills/notes-to-video/SKILL.md +0 -476
- package/skills/openchatcut/SKILL.md +0 -100
- package/skills/openchatcut/references/editing-workflow.md +0 -54
- package/skills/openchatcut/references/getting-started.md +0 -106
- package/skills/openchatcut/references/known-errors.md +0 -62
- package/skills/openstoryline-install/SKILL.md +0 -228
- package/skills/orca-motion/SKILL.md +0 -100
- package/skills/orca-motion/references/api.md +0 -100
- package/skills/orca-motion/references/integration.md +0 -59
- package/skills/orca-motion/references/kinetic-type.md +0 -59
- package/skills/orca-motion/references/principles.md +0 -76
- package/skills/package-talking-head-video/SKILL.md +0 -90
- package/skills/package-talking-head-video/docs/EXAMPLES.md +0 -18
- package/skills/package-talking-head-video/docs/TROUBLESHOOTING.md +0 -29
- package/skills/package-talking-head-video/docs/USAGE.md +0 -83
- package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-multicolor-center-speaker.md +0 -144
- package/skills/package-talking-head-video/docs/superpowers/plans/2026-08-08-semantic-template-system-v2.md +0 -1099
- package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-multicolor-center-speaker-design.md +0 -154
- package/skills/package-talking-head-video/docs/superpowers/specs/2026-08-08-semantic-template-system-v2-design.md +0 -365
- package/skills/package-talking-head-video/examples/auto-editing-0/GATE_A.md +0 -56
- package/skills/package-talking-head-video/examples/auto-editing-0/GATE_D.md +0 -8
- package/skills/package-talking-head-video/examples/auto-editing-0/QA_REPORT.md +0 -34
- package/skills/package-talking-head-video/references/director-rules.md +0 -29
- package/skills/package-talking-head-video/references/motion-and-illustration.md +0 -25
- package/skills/paper-cut/SKILL.md +0 -164
- package/skills/paper-cut/references/asset-spec.md +0 -47
- package/skills/paper-cut/references/audio-and-chatcut.md +0 -26
- package/skills/paper-cut/references/hyperframes-assembly.md +0 -47
- package/skills/paper-cut/references/image-led-production.md +0 -65
- package/skills/paper-cut/references/storyboard-schema.md +0 -48
- package/skills/paper-cut/references/workflow.md +0 -39
- package/skills/personal-ip-brand-intro/SKILL.md +0 -216
- package/skills/personal-ip-brand-intro/references/intake-schema.md +0 -79
- package/skills/personal-ip-brand-intro/references/music-upload-workflow.md +0 -40
- package/skills/personal-ip-brand-intro/references/originality-rules.md +0 -42
- package/skills/personal-ip-brand-intro/references/qa-checklist.md +0 -60
- package/skills/personal-ip-brand-intro/references/rhythm-routing.md +0 -41
- package/skills/personal-ip-brand-intro/references/storyboard-contract.md +0 -42
- package/skills/pixel2motion/SKILL.md +0 -279
- package/skills/pixel2motion/references/html-delivery-template.md +0 -42
- package/skills/pixel2motion/references/motion-personality.md +0 -109
- package/skills/pixel2motion/references/reveal-patterns.md +0 -163
- package/skills/pixel2motion/references/ribbon-fitting.md +0 -90
- package/skills/pixel2motion/references/twelve-principles-for-logos.md +0 -116
- package/skills/premiere-batch-delivery/SKILL.md +0 -71
- package/skills/premiere-pro-mcp/SKILL.md +0 -161
- package/skills/promo-creator-skills/SKILL.md +0 -209
- package/skills/promo-creator-skills/references/mureka_prompt_guide.md +0 -251
- package/skills/promo-creator-skills/references/product_promo_bgm_prompting.md +0 -100
- package/skills/promo-video/SKILL.md +0 -408
- package/skills/qisi-video-remix/SKILL.md +0 -134
- package/skills/qisi-video-remix/examples/creative-plan.md +0 -133
- package/skills/qisi-video-remix/references/delivery-guide.md +0 -63
- package/skills/reel-video/SKILL.md +0 -237
- package/skills/remotion-ad-video/SKILL.md +0 -252
- package/skills/remotion-ad-video/references/ad-aesthetic-qa.md +0 -60
- package/skills/remotion-ad-video/references/ad-brief-contract.md +0 -235
- package/skills/remotion-ad-video/references/ad-exemplars.md +0 -186
- package/skills/remotion-ad-video/references/ad-intake.md +0 -54
- package/skills/remotion-ad-video/references/asset-harvest.md +0 -56
- package/skills/remotion-ad-video/references/audio-caption-system.md +0 -202
- package/skills/remotion-ad-video/references/concept-contract.md +0 -128
- package/skills/remotion-ad-video/references/creative-direction.md +0 -146
- package/skills/remotion-ad-video/references/fast-test-workflow.md +0 -86
- package/skills/remotion-ad-video/references/game-ad-patterns.md +0 -75
- package/skills/remotion-ad-video/references/hyperframes-output.md +0 -90
- package/skills/remotion-ad-video/references/industry-angle-library.md +0 -71
- package/skills/remotion-ads/SKILL.md +0 -278
- package/skills/remotion-ads/references/ad-copywriting.md +0 -229
- package/skills/remotion-ads/references/animations.md +0 -693
- package/skills/remotion-ads/references/brand-config-template.md +0 -355
- package/skills/remotion-ads/references/captions.md +0 -529
- package/skills/remotion-ads/references/carousels.md +0 -580
- package/skills/remotion-ads/references/components.md +0 -897
- package/skills/remotion-ads/references/copy-frameworks.md +0 -144
- package/skills/remotion-ads/references/formats.md +0 -436
- package/skills/remotion-ads/references/gemini-tts.md +0 -473
- package/skills/remotion-ads/references/html-in-canvas.md +0 -555
- package/skills/remotion-ads/references/local-assets.md +0 -543
- package/skills/remotion-ads/references/music.md +0 -656
- package/skills/remotion-code-motion-explainer/SKILL.md +0 -178
- package/skills/remotion-code-motion-explainer/references/code-motion-design.md +0 -86
- package/skills/remotion-code-motion-explainer/references/motion-production-patterns.md +0 -93
- package/skills/remotion-code-motion-explainer/references/production-and-qc.md +0 -99
- package/skills/remotion-code-motion-explainer/references/reference-reconstruction.md +0 -48
- package/skills/remotion-code-motion-explainer/references/ui-motion-shot-library.md +0 -62
- package/skills/remotion-motion-graphics/SKILL.md +0 -169
- package/skills/remotion-motion-graphics/references/patterns.md +0 -355
- package/skills/remotion-motion-graphics/references/polish.md +0 -102
- package/skills/remotion-motion-graphics/references/scaffold.md +0 -144
- package/skills/remotion-motion-graphics/references/traps.md +0 -152
- package/skills/remotion-resemble-ai/SKILL.md +0 -879
- package/skills/remotion-resemble-ai/rules/resemble-captions.md +0 -350
- package/skills/remotion-resemble-ai/rules/resemble-remotion-integration.md +0 -305
- package/skills/remotion-resemble-ai/rules/resemble-setup.md +0 -284
- package/skills/remotion-resemble-ai/rules/resemble-streaming-tts.md +0 -225
- package/skills/remotion-resemble-ai/rules/resemble-sync-tts.md +0 -239
- package/skills/remotion-resemble-ai/rules/resemble-voices.md +0 -213
- package/skills/remotion-resemble-ai/rules/visual-animations.md +0 -567
- package/skills/riffkit/SKILL.md +0 -196
- package/skills/riffkit/examples/any-look-styles.md +0 -11
- package/skills/riffkit/examples/faceless-and-auto.md +0 -16
- package/skills/riffkit/examples/localize-spanish.md +0 -18
- package/skills/riffkit/examples/tiktok-shop-product.md +0 -22
- package/skills/riffkit/references/anchor.md +0 -62
- package/skills/riffkit/references/api.md +0 -806
- package/skills/riffkit/references/details.md +0 -153
- package/skills/riffkit/references/errors.md +0 -69
- package/skills/riffkit/references/intents.md +0 -29
- package/skills/saas-motion-video/SKILL.md +0 -71
- package/skills/script-to-video/SKILL.md +0 -2627
- package/skills/shorts/SKILL.md +0 -372
- package/skills/shorts/references/caption-styles.md +0 -105
- package/skills/shorts/references/platform-specs.md +0 -149
- package/skills/shorts/references/remotion-patterns.md +0 -180
- package/skills/shorts/references/scoring-rubric.md +0 -106
- package/skills/smart-video-editor/SKILL.md +0 -327
- package/skills/smart-video-editor/docs/FONTS.md +0 -57
- package/skills/story-telling/SKILL.md +0 -222
- package/skills/story-telling/rules/composition.md +0 -130
- package/skills/story-telling/rules/images.md +0 -119
- package/skills/story-telling/rules/models.md +0 -98
- package/skills/story-telling/rules/narration.md +0 -87
- package/skills/story-telling/rules/pitfalls.md +0 -140
- package/skills/story-telling/rules/story-formats.md +0 -108
- package/skills/story-telling/rules/story-json.md +0 -143
- package/skills/story-telling/rules/voices.md +0 -114
- package/skills/story-telling/rules/workflow.md +0 -105
- package/skills/story-to-handdrawn-video/SKILL.md +0 -216
- package/skills/story-to-handdrawn-video/references/asset-workflow.md +0 -24
- package/skills/story-to-handdrawn-video/references/reference-style-workflow.md +0 -27
- package/skills/su-card-to-video/SKILL.md +0 -103
- package/skills/talking-head-video-pipeline/SKILL.md +0 -224
- package/skills/talking-head-video-pipeline/examples/prompts.md +0 -217
- package/skills/talking-head-video-pipeline/references/asr-adapters.md +0 -51
- package/skills/talking-head-video-pipeline/references/caption-workflow.md +0 -53
- package/skills/talking-head-video-pipeline/references/export-recipes.md +0 -78
- package/skills/talking-head-video-pipeline/references/layout-safety.md +0 -49
- package/skills/talking-head-video-pipeline/references/video-use-integration.md +0 -71
- package/skills/talking-head-video-pipeline/references/workflows/captions.md +0 -52
- package/skills/talking-head-video-pipeline/references/workflows/design.md +0 -77
- package/skills/talking-head-video-pipeline/references/workflows/doctor.md +0 -51
- package/skills/talking-head-video-pipeline/references/workflows/export.md +0 -50
- package/skills/talking-head-video-pipeline/references/workflows/init.md +0 -51
- package/skills/talking-head-video-pipeline/references/workflows/learn.md +0 -36
- package/skills/text-to-lottie/SKILL.md +0 -202
- package/skills/text-to-lottie/references/chapterization-transition-grammar.md +0 -132
- package/skills/text-to-lottie/references/design-taste.md +0 -292
- package/skills/text-to-lottie/references/lottie-spec-map.md +0 -82
- package/skills/text-to-lottie/references/motion-taste.md +0 -260
- package/skills/text-to-lottie/references/player-contract.md +0 -325
- package/skills/text-to-lottie/references/recipe-camera-scene-motion.md +0 -65
- package/skills/text-to-lottie/references/recipe-data-stats.md +0 -104
- package/skills/text-to-lottie/references/recipe-diagram-technical.md +0 -106
- package/skills/text-to-lottie/references/recipe-loaders-icons.md +0 -70
- package/skills/text-to-lottie/references/recipe-logo.md +0 -72
- package/skills/text-to-lottie/references/recipe-lower-thirds.md +0 -62
- package/skills/text-to-lottie/references/recipe-product-promo.md +0 -99
- package/skills/ultrademo/SKILL.md +0 -212
- package/skills/video-assemble/SKILL.md +0 -101
- package/skills/video-assemble-zenstory-ai/SKILL.md +0 -153
- package/skills/video-assemble-zenstory-ai/references/audio-modes.md +0 -63
- package/skills/video-assemble-zenstory-ai/references/explicit-audio-mix.md +0 -77
- package/skills/video-assemble-zenstory-ai/references/jianying/SOURCE.md +0 -14
- package/skills/video-assemble-zenstory-ai/references/narration-adoption.md +0 -103
- package/skills/video-assemble-zenstory-ai/references/packaging.md +0 -44
- package/skills/video-assemble-zenstory-ai/references/source-score.md +0 -146
- package/skills/video-assemble-zenstory-ai/references/subtitle-track.md +0 -202
- package/skills/video-editing/SKILL.md +0 -688
- package/skills/video-explainer/SKILL.md +0 -163
- package/skills/video-explainer/references/brief-to-script.md +0 -56
- package/skills/video-explainer/references/errors-and-privacy.md +0 -18
- package/skills/video-explainer/references/motion-storyboard.md +0 -82
- package/skills/video-explainer/references/render-and-verify.md +0 -62
- package/skills/video-explainer/references/review-gate.md +0 -82
- package/skills/video-explainer/references/setup-and-doctor.md +0 -33
- package/skills/video-script-builder/SKILL.md +0 -329
- package/skills/video-script-builder/examples/quick-start-transcript.md +0 -19
- package/skills/video-script-builder/references/audio-workflow.md +0 -84
- package/skills/video-script-builder/references/caption-components.md +0 -70
- package/skills/video-script-builder/references/common-pitfalls.md +0 -80
- package/skills/video-script-builder/references/component-catalog.md +0 -197
- package/skills/video-script-builder/references/component-recipes.md +0 -165
- package/skills/video-script-builder/references/gsap-patterns.md +0 -112
- package/skills/video-script-builder/references/pacing-rules.md +0 -78
- package/skills/video-script-builder/references/quality-checklist.md +0 -98
- package/skills/video-script-builder/references/remotion-patterns.md +0 -211
- package/skills/video-script-builder/references/shader-transitions.md +0 -115
- package/skills/video-script-builder/references/taste-principles.md +0 -160
- package/skills/video-scrub/SKILL.md +0 -216
- package/skills/video-scrub/references/profiles.md +0 -89
- package/skills/video-scrub/references/residue-map.md +0 -204
- package/skills/video-short-maker/SKILL.md +0 -182
- package/skills/video-shot-analysis-feishu/SKILL.md +0 -173
- package/skills/video-shotcraft/SKILL.md +0 -267
- package/skills/video-shotcraft/docs/deepseek-harness.md +0 -69
- package/skills/video-shotcraft/references/aesthetic-rules.md +0 -177
- package/skills/video-shotcraft/references/final-review.md +0 -112
- package/skills/video-shotcraft/references/guided-free-creation.md +0 -199
- package/skills/video-shotcraft/references/jianying-export.md +0 -182
- package/skills/video-shotcraft/references/music-beat-sync.md +0 -219
- package/skills/video-shotcraft/references/pipeline.md +0 -390
- package/skills/video-shotcraft/references/sequences/promo-energy-arc.md +0 -50
- package/skills/video-shotcraft/references/shots/ATTRIBUTION.md +0 -65
- package/skills/video-shotcraft/references/shots/camera/basic-3d-scene.md +0 -37
- package/skills/video-shotcraft/references/shots/camera/crash-zoom-punch.md +0 -39
- package/skills/video-shotcraft/references/shots/camera/cursor-flyover.md +0 -38
- package/skills/video-shotcraft-vincentwei10/SKILL.md +0 -316
- package/skills/video-shotcraft-vincentwei10/references/aesthetic-rules.md +0 -187
- package/skills/video-shotcraft-vincentwei10/references/final-review.md +0 -116
- package/skills/video-shotcraft-vincentwei10/references/guided-free-creation.md +0 -199
- package/skills/video-shotcraft-vincentwei10/references/jianying-export.md +0 -183
- package/skills/video-shotcraft-vincentwei10/references/music-beat-sync.md +0 -257
- package/skills/video-shotcraft-vincentwei10/references/pipeline.md +0 -401
- package/skills/video-shotcraft-vincentwei10/references/publish-upload-post.md +0 -111
- package/skills/video-shotcraft-vincentwei10/references/sequences/promo-energy-arc.md +0 -50
- package/skills/video-shotcraft-vincentwei10/references/shots/ATTRIBUTION.md +0 -62
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/basic-3d-scene.md +0 -41
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/crash-zoom-punch.md +0 -52
- package/skills/video-shotcraft-vincentwei10/references/shots/camera/cursor-flyover.md +0 -39
- package/skills/video-structure-analyzer/SKILL.md +0 -148
- package/skills/video-structure-analyzer/examples/xhs-rook-time-spend/xhs-rook-time-spend_/346/213/211/347/211/207/346/213/206/350/247/243.md +0 -50
- package/skills/video-structure-analyzer/examples/xhs-smelly-cat/xhs-smelly-cat_/346/213/211/347/211/207/346/213/206/350/247/243.md +0 -19
- package/skills/video-toolkit/SKILL.md +0 -686
- package/skills/videocut/SKILL.md +0 -159
- package/skills/videodb/SKILL.md +0 -497
- package/skills/videodb/reference/api-reference.md +0 -741
- package/skills/videodb/reference/capture-reference.md +0 -399
- package/skills/videodb/reference/capture.md +0 -110
- package/skills/videodb/reference/editor-reference.md +0 -506
- package/skills/videodb/reference/editor.md +0 -389
- package/skills/videodb/reference/generative.md +0 -344
- package/skills/videodb/reference/indexing-reference.md +0 -481
- package/skills/videodb/reference/indexing.md +0 -537
- package/skills/videodb/reference/legacy/index-reference.md +0 -223
- package/skills/videodb/reference/legacy/index.md +0 -241
- package/skills/videodb/reference/legacy/search.md +0 -249
- package/skills/videodb/reference/migration.md +0 -113
- package/skills/vlog-auto-edit/SKILL.md +0 -982
- package/skills/vlog-auto-edit/examples/project_structure.md +0 -84
- package/skills/vox-animated-ad-mcp/SKILL.md +0 -419
- package/skills/vox-director/SKILL.md +0 -351
- package/skills/vox-director/references/beat-layer.md +0 -143
- package/skills/vox-director/references/host-mode.md +0 -120
- package/skills/vox-director/references/local-engine.md +0 -73
- package/skills/vox-director/references/models-and-gotchas.md +0 -91
- package/skills/vox-director/references/prompt-guide.md +0 -275
- package/skills/vox-director/references/voices.md +0 -59
- package/skills/xingchen-vox-collage/SKILL.md +0 -251
- package/skills/xingchen-vox-collage/references/asset-layer-contract.md +0 -98
- package/skills/xingchen-vox-collage/references/creative-exploration.md +0 -19
- package/skills/xingchen-vox-collage/references/learned-branches.md +0 -34
- package/skills/xingchen-vox-collage/references/remotion-scene-contract.md +0 -77
- package/skills/xingchen-vox-collage/references/visual-language.md +0 -74
- package/skills/xingchen-vox-collage/references/visual-qa.md +0 -59
- package/skills/youtube/SKILL.md +0 -147
- package/skills/youtube/references/algorithm-guide.md +0 -59
- package/skills/youtube/references/analytics-benchmarks.md +0 -67
- package/skills/youtube/references/dataforseo-integration.md +0 -51
- package/skills/youtube/references/monetization-guide.md +0 -62
- package/skills/youtube/references/repurposing-guide.md +0 -54
- package/skills/youtube/references/retention-scripting-guide.md +0 -75
- package/skills/youtube/references/seo-playbook.md +0 -77
- package/skills/youtube/references/shorts-playbook.md +0 -64
- package/skills/youtube/references/thumbnail-ctr-guide.md +0 -73
- package/skills/youtube-shorts-factory/SKILL.md +0 -358
- package/skills/youtube-shorts-factory/resources/adaptation-guide.md +0 -133
- package/skills/youtube-shorts-factory/resources/storyboard-template.md +0 -271
- package/skills/youtube-shorts-factory/resources/workflow-steps.md +0 -139
- package/studio/ui/dist/assets/ExportCenter-DEyy1vs_.js +0 -1
- package/studio/ui/dist/assets/SettingsModal-CQmsA2A2.js +0 -2
- package/studio/ui/dist/assets/es-AqUfIkAy.js +0 -1
- package/studio/ui/dist/assets/index-C7moXjTY.css +0 -1
- package/studio/ui/dist/assets/index-DdU5QNpY.js +0 -1623
- package/studio/ui/dist/assets/ja-YwiCB4QQ.js +0 -1
- package/studio/ui/dist/assets/ko-CKtBPDze.js +0 -1
- package/studio/ui/dist/assets/zh-CN-DtNEwKWJ.js +0 -1
|
@@ -1,230 +0,0 @@
|
|
|
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.
|
|
@@ -1,276 +0,0 @@
|
|
|
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
|
-
```
|