@openvidstudio/mcp-server 0.1.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1862) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +63 -0
  3. package/dist/api.d.ts +28 -0
  4. package/dist/api.js +35 -0
  5. package/dist/audioTick.d.ts +33 -0
  6. package/dist/audioTick.js +117 -0
  7. package/dist/beats.d.ts +126 -3
  8. package/dist/capture.d.ts +33 -0
  9. package/dist/capture.js +97 -1
  10. package/dist/config.d.ts +46 -0
  11. package/dist/config.js +27 -1
  12. package/dist/facts.d.ts +45 -0
  13. package/dist/facts.js +124 -0
  14. package/dist/frameDiff.d.ts +74 -0
  15. package/dist/frameDiff.js +120 -0
  16. package/dist/jobs.d.ts +37 -0
  17. package/dist/jobs.js +72 -0
  18. package/dist/paths.d.ts +10 -0
  19. package/dist/paths.js +11 -1
  20. package/dist/primitives/registry.d.ts +43 -0
  21. package/dist/primitives/registry.js +729 -0
  22. package/dist/remotionBridge.d.ts +138 -0
  23. package/dist/remotionBridge.js +364 -0
  24. package/dist/renderCache.d.ts +178 -0
  25. package/dist/renderCache.js +371 -0
  26. package/dist/scenes/castToSteps.d.ts +49 -0
  27. package/dist/scenes/castToSteps.js +69 -0
  28. package/dist/scenes/cursorPoints.d.ts +43 -0
  29. package/dist/scenes/cursorPoints.js +125 -0
  30. package/dist/scenes/repoInfo.d.ts +17 -0
  31. package/dist/scenes/repoInfo.js +122 -0
  32. package/dist/scenes/templates.d.ts +77 -2
  33. package/dist/scenes/templates.js +349 -71
  34. package/dist/scenes/videoDuration.d.ts +15 -0
  35. package/dist/scenes/videoDuration.js +30 -0
  36. package/dist/server.d.ts +2 -1
  37. package/dist/server.js +19 -1
  38. package/dist/stdio.js +0 -0
  39. package/dist/tools/captureDesktop.d.ts +30 -0
  40. package/dist/tools/captureDesktop.js +225 -0
  41. package/dist/tools/captureMobile.d.ts +18 -0
  42. package/dist/tools/captureMobile.js +176 -0
  43. package/dist/tools/captureScreenRecording.d.ts +102 -2
  44. package/dist/tools/captureScreenRecording.js +310 -12
  45. package/dist/tools/captureScreenshot.d.ts +126 -2
  46. package/dist/tools/captureScreenshot.js +308 -24
  47. package/dist/tools/captureTerminal.d.ts +50 -0
  48. package/dist/tools/captureTerminal.js +156 -0
  49. package/dist/tools/checkScript.d.ts +75 -0
  50. package/dist/tools/checkScript.js +279 -0
  51. package/dist/tools/collectFacts.d.ts +82 -0
  52. package/dist/tools/collectFacts.js +210 -0
  53. package/dist/tools/composeScore.d.ts +156 -0
  54. package/dist/tools/composeScore.js +330 -0
  55. package/dist/tools/contactSheet.d.ts +19 -1
  56. package/dist/tools/contactSheet.js +53 -14
  57. package/dist/tools/diffBeats.d.ts +48 -0
  58. package/dist/tools/diffBeats.js +226 -0
  59. package/dist/tools/docsDrift.d.ts +84 -0
  60. package/dist/tools/docsDrift.js +275 -0
  61. package/dist/tools/exportRendition.d.ts +283 -0
  62. package/dist/tools/exportRendition.js +688 -0
  63. package/dist/tools/extractBrand.d.ts +32 -0
  64. package/dist/tools/extractBrand.js +541 -0
  65. package/dist/tools/finalizeVideo.d.ts +94 -0
  66. package/dist/tools/finalizeVideo.js +300 -0
  67. package/dist/tools/generateNarration.d.ts +79 -1
  68. package/dist/tools/generateNarration.js +228 -63
  69. package/dist/tools/importHiggsfieldClip.js +16 -0
  70. package/dist/tools/index.js +51 -0
  71. package/dist/tools/initProject.d.ts +12 -1
  72. package/dist/tools/initProject.js +75 -2
  73. package/dist/tools/jobStatus.d.ts +14 -0
  74. package/dist/tools/jobStatus.js +37 -0
  75. package/dist/tools/mcp.d.ts +9 -0
  76. package/dist/tools/mcp.js +66 -4
  77. package/dist/tools/motionPrimitives.d.ts +46 -0
  78. package/dist/tools/motionPrimitives.js +128 -0
  79. package/dist/tools/musicCues.d.ts +43 -0
  80. package/dist/tools/musicCues.js +252 -0
  81. package/dist/tools/musicLibrary.d.ts +80 -0
  82. package/dist/tools/musicLibrary.js +614 -0
  83. package/dist/tools/planBeats.d.ts +35 -0
  84. package/dist/tools/planBeats.js +98 -5
  85. package/dist/tools/planProduction.d.ts +77 -0
  86. package/dist/tools/planProduction.js +303 -0
  87. package/dist/tools/planShots.d.ts +79 -0
  88. package/dist/tools/planShots.js +427 -0
  89. package/dist/tools/preflight.d.ts +43 -0
  90. package/dist/tools/preflight.js +183 -15
  91. package/dist/tools/qcCapture.d.ts +38 -0
  92. package/dist/tools/qcCapture.js +206 -0
  93. package/dist/tools/qcExtractFrames.d.ts +36 -6
  94. package/dist/tools/qcExtractFrames.js +81 -28
  95. package/dist/tools/reformatVertical.d.ts +112 -0
  96. package/dist/tools/reformatVertical.js +260 -0
  97. package/dist/tools/releaseDiff.d.ts +96 -0
  98. package/dist/tools/releaseDiff.js +319 -0
  99. package/dist/tools/renderStills.d.ts +138 -0
  100. package/dist/tools/renderStills.js +399 -0
  101. package/dist/tools/renderVideo.d.ts +67 -1
  102. package/dist/tools/renderVideo.js +353 -5
  103. package/dist/tools/scaffoldScene.d.ts +29 -4
  104. package/dist/tools/scaffoldScene.js +218 -16
  105. package/dist/tools/soundEffects.d.ts +49 -0
  106. package/dist/tools/soundEffects.js +383 -0
  107. package/dist/tools/stitchComposition.d.ts +105 -6
  108. package/dist/tools/stitchComposition.js +416 -50
  109. package/dist/tools/validateBeats.d.ts +26 -0
  110. package/dist/tools/validateBeats.js +355 -21
  111. package/dist/tools/validateScenes.d.ts +65 -3
  112. package/dist/tools/validateScenes.js +325 -32
  113. package/dist/tools/validateScenesRender.d.ts +178 -0
  114. package/dist/tools/validateScenesRender.js +741 -0
  115. package/dist/tools/visualRegression.d.ts +72 -0
  116. package/dist/tools/visualRegression.js +192 -0
  117. package/dist/tools/writeBeatsFile.d.ts +1 -0
  118. package/dist/tools/writeBeatsFile.js +4 -2
  119. package/dist/tools/writeBrief.d.ts +155 -0
  120. package/dist/tools/writeBrief.js +344 -0
  121. package/dist/tools/writeDescription.d.ts +52 -0
  122. package/dist/tools/writeDescription.js +441 -0
  123. package/dist/util.d.ts +7 -12
  124. package/dist/util.js +14 -48
  125. package/docs/API.md +1060 -344
  126. package/docs/CAPTURE.md +182 -0
  127. package/docs/CREATIVE.md +217 -0
  128. package/docs/NARRATION.md +245 -111
  129. package/docs/OVERVIEW.md +30 -3
  130. package/docs/PIPELINE.md +387 -7
  131. package/docs/PLANNING.md +309 -19
  132. package/docs/PRESETS.md +153 -0
  133. package/docs/SCRIPT.md +134 -0
  134. package/docs/STYLE.md +74 -9
  135. package/docs/SUPERNOVA.md +153 -0
  136. package/docs/TOOLS.md +52 -0
  137. package/package.json +60 -54
  138. package/py/compose-score.py +1032 -0
  139. package/py/edge-words.py +57 -0
  140. package/templates/default/.agents/skills/remotion-best-practices/SKILL.md +59 -0
  141. package/templates/default/.agents/skills/remotion-best-practices/agents/openai.yaml +7 -0
  142. package/templates/default/.agents/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
  143. package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
  144. package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
  145. package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
  146. package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
  147. package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
  148. package/templates/default/.agents/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
  149. package/templates/default/.agents/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
  150. package/templates/default/.agents/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
  151. package/templates/default/.agents/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
  152. package/templates/default/.agents/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
  153. package/templates/default/.agents/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
  154. package/templates/default/.agents/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
  155. package/templates/default/.agents/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
  156. package/templates/default/.agents/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
  157. package/templates/default/.agents/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
  158. package/templates/default/.agents/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
  159. package/templates/default/.agents/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
  160. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
  161. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
  162. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
  163. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  164. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  165. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  166. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  167. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  168. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  169. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  170. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  171. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  172. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  173. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  174. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  175. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  176. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  177. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  178. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  179. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  180. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  181. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  182. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  183. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  184. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  185. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  186. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  187. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  188. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  189. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  190. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  191. package/templates/default/.agents/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  192. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
  193. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
  194. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
  195. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
  196. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
  197. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
  198. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
  199. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
  200. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
  201. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
  202. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
  203. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
  204. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
  205. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
  206. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
  207. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/images.md +73 -0
  208. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
  209. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
  210. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
  211. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
  212. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
  213. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
  214. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
  215. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  216. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  217. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  218. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  219. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  220. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  221. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  222. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  223. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  224. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  225. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  226. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  227. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  228. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  229. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  230. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  231. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  232. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  233. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  234. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  235. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  236. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  237. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  238. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  239. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  240. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  241. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  242. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  243. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  244. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  245. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  246. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  247. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
  248. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
  249. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
  250. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
  251. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
  252. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
  253. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
  254. package/templates/default/.agents/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
  255. package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
  256. package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
  257. package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
  258. package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
  259. package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
  260. package/templates/default/.agents/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
  261. package/templates/default/.agents/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
  262. package/templates/default/.agents/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
  263. package/templates/default/.agents/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
  264. package/templates/default/.agents/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
  265. package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
  266. package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
  267. package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
  268. package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
  269. package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/player.md +33 -0
  270. package/templates/default/.agents/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
  271. package/templates/default/.agents/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
  272. package/templates/default/.agents/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
  273. package/templates/default/.agents/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
  274. package/templates/default/.agents/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
  275. package/templates/default/.agents/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
  276. package/templates/default/.agents/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
  277. package/templates/default/.agents/skills/remotion-captions/SKILL.md +36 -0
  278. package/templates/default/.agents/skills/remotion-captions/agents/openai.yaml +7 -0
  279. package/templates/default/.agents/skills/remotion-captions/assets/remotion-icon.png +0 -0
  280. package/templates/default/.agents/skills/remotion-captions/display-captions.md +190 -0
  281. package/templates/default/.agents/skills/remotion-captions/import-srt-captions.md +73 -0
  282. package/templates/default/.agents/skills/remotion-captions/transcribe-captions.md +70 -0
  283. package/templates/default/.agents/skills/remotion-create/SKILL.md +68 -0
  284. package/templates/default/.agents/skills/remotion-create/agents/openai.yaml +7 -0
  285. package/templates/default/.agents/skills/remotion-create/assets/remotion-icon.png +0 -0
  286. package/templates/default/.agents/skills/remotion-create/tailwind.md +11 -0
  287. package/templates/default/.agents/skills/remotion-create/video-layout.md +9 -0
  288. package/templates/default/.agents/skills/remotion-docs/SKILL.md +46 -0
  289. package/templates/default/.agents/skills/remotion-docs/agents/openai.yaml +7 -0
  290. package/templates/default/.agents/skills/remotion-docs/assets/remotion-icon.png +0 -0
  291. package/templates/default/.agents/skills/remotion-interactivity/SKILL.md +247 -0
  292. package/templates/default/.agents/skills/remotion-interactivity/agents/openai.yaml +7 -0
  293. package/templates/default/.agents/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
  294. package/templates/default/.agents/skills/remotion-maps/SKILL.md +36 -0
  295. package/templates/default/.agents/skills/remotion-maps/agents/openai.yaml +7 -0
  296. package/templates/default/.agents/skills/remotion-maps/assets/remotion-icon.png +0 -0
  297. package/templates/default/.agents/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  298. package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  299. package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  300. package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  301. package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  302. package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  303. package/templates/default/.agents/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  304. package/templates/default/.agents/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  305. package/templates/default/.agents/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  306. package/templates/default/.agents/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  307. package/templates/default/.agents/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  308. package/templates/default/.agents/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  309. package/templates/default/.agents/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  310. package/templates/default/.agents/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  311. package/templates/default/.agents/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  312. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  313. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  314. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  315. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  316. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  317. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  318. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  319. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  320. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  321. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  322. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  323. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  324. package/templates/default/.agents/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  325. package/templates/default/.agents/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  326. package/templates/default/.agents/skills/remotion-markup/3d.md +86 -0
  327. package/templates/default/.agents/skills/remotion-markup/SKILL.md +365 -0
  328. package/templates/default/.agents/skills/remotion-markup/agents/openai.yaml +7 -0
  329. package/templates/default/.agents/skills/remotion-markup/assets/remotion-icon.png +0 -0
  330. package/templates/default/.agents/skills/remotion-markup/audio-visualization.md +198 -0
  331. package/templates/default/.agents/skills/remotion-markup/audio.md +171 -0
  332. package/templates/default/.agents/skills/remotion-markup/calculate-metadata.md +136 -0
  333. package/templates/default/.agents/skills/remotion-markup/compositions.md +117 -0
  334. package/templates/default/.agents/skills/remotion-markup/cropping.md +34 -0
  335. package/templates/default/.agents/skills/remotion-markup/effects.md +251 -0
  336. package/templates/default/.agents/skills/remotion-markup/embedding-videos.md +173 -0
  337. package/templates/default/.agents/skills/remotion-markup/ffmpeg.md +38 -0
  338. package/templates/default/.agents/skills/remotion-markup/gifs.md +187 -0
  339. package/templates/default/.agents/skills/remotion-markup/google-fonts.md +76 -0
  340. package/templates/default/.agents/skills/remotion-markup/html-in-canvas.md +128 -0
  341. package/templates/default/.agents/skills/remotion-markup/images.md +73 -0
  342. package/templates/default/.agents/skills/remotion-markup/light-leaks.md +106 -0
  343. package/templates/default/.agents/skills/remotion-markup/local-fonts.md +69 -0
  344. package/templates/default/.agents/skills/remotion-markup/lottie.md +73 -0
  345. package/templates/default/.agents/skills/remotion-markup/measuring-dom-nodes.md +38 -0
  346. package/templates/default/.agents/skills/remotion-markup/measuring-text.md +146 -0
  347. package/templates/default/.agents/skills/remotion-markup/multi-scene-video.md +81 -0
  348. package/templates/default/.agents/skills/remotion-markup/parameters.md +111 -0
  349. package/templates/default/.agents/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  350. package/templates/default/.agents/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  351. package/templates/default/.agents/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  352. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  353. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  354. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  355. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  356. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  357. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  358. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  359. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  360. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  361. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  362. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  363. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  364. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  365. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  366. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  367. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  368. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  369. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  370. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  371. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  372. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  373. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  374. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  375. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  376. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  377. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  378. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  379. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  380. package/templates/default/.agents/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  381. package/templates/default/.agents/skills/remotion-markup/sequencing.md +169 -0
  382. package/templates/default/.agents/skills/remotion-markup/sfx.md +51 -0
  383. package/templates/default/.agents/skills/remotion-markup/silence-detection.md +71 -0
  384. package/templates/default/.agents/skills/remotion-markup/text-highlights.md +56 -0
  385. package/templates/default/.agents/skills/remotion-markup/timing.md +111 -0
  386. package/templates/default/.agents/skills/remotion-markup/transitions.md +239 -0
  387. package/templates/default/.agents/skills/remotion-markup/video-editing.md +90 -0
  388. package/templates/default/.agents/skills/remotion-markup/voiceover.md +99 -0
  389. package/templates/default/.agents/skills/remotion-multimedia/SKILL.md +20 -0
  390. package/templates/default/.agents/skills/remotion-multimedia/agents/openai.yaml +7 -0
  391. package/templates/default/.agents/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
  392. package/templates/default/.agents/skills/remotion-multimedia/get-audio-duration.md +56 -0
  393. package/templates/default/.agents/skills/remotion-multimedia/get-video-dimensions.md +66 -0
  394. package/templates/default/.agents/skills/remotion-multimedia/get-video-duration.md +58 -0
  395. package/templates/default/.agents/skills/remotion-render/SKILL.md +27 -0
  396. package/templates/default/.agents/skills/remotion-render/agents/openai.yaml +7 -0
  397. package/templates/default/.agents/skills/remotion-render/assets/remotion-icon.png +0 -0
  398. package/templates/default/.agents/skills/remotion-render/transparent-videos.md +106 -0
  399. package/templates/default/.agents/skills/remotion-saas/SKILL.md +33 -0
  400. package/templates/default/.agents/skills/remotion-saas/agents/openai.yaml +7 -0
  401. package/templates/default/.agents/skills/remotion-saas/assets/remotion-icon.png +0 -0
  402. package/templates/default/.agents/skills/remotion-saas/framework.md +21 -0
  403. package/templates/default/.agents/skills/remotion-saas/player.md +33 -0
  404. package/templates/default/.agents/skills/remotion-saas/rendering.md +69 -0
  405. package/templates/default/.agents/skills/remotion-studio/SKILL.md +24 -0
  406. package/templates/default/.agents/skills/remotion-studio/agents/openai.yaml +7 -0
  407. package/templates/default/.agents/skills/remotion-studio/assets/remotion-icon.png +0 -0
  408. package/templates/default/.agents/skills/remotion-upgrade/SKILL.md +31 -0
  409. package/templates/default/.agents/skills/remotion-upgrade/agents/openai.yaml +7 -0
  410. package/templates/default/.agents/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
  411. package/templates/default/.claude/skills/remotion-best-practices/SKILL.md +59 -0
  412. package/templates/default/.claude/skills/remotion-best-practices/agents/openai.yaml +7 -0
  413. package/templates/default/.claude/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
  414. package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
  415. package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
  416. package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
  417. package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
  418. package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
  419. package/templates/default/.claude/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
  420. package/templates/default/.claude/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
  421. package/templates/default/.claude/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
  422. package/templates/default/.claude/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
  423. package/templates/default/.claude/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
  424. package/templates/default/.claude/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
  425. package/templates/default/.claude/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
  426. package/templates/default/.claude/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
  427. package/templates/default/.claude/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
  428. package/templates/default/.claude/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
  429. package/templates/default/.claude/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
  430. package/templates/default/.claude/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
  431. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
  432. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
  433. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
  434. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  435. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  436. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  437. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  438. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  439. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  440. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  441. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  442. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  443. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  444. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  445. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  446. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  447. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  448. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  449. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  450. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  451. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  452. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  453. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  454. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  455. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  456. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  457. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  458. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  459. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  460. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  461. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  462. package/templates/default/.claude/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  463. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
  464. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
  465. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
  466. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
  467. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
  468. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
  469. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
  470. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
  471. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
  472. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
  473. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
  474. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
  475. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
  476. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
  477. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
  478. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/images.md +73 -0
  479. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
  480. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
  481. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
  482. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
  483. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
  484. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
  485. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
  486. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  487. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  488. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  489. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  490. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  491. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  492. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  493. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  494. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  495. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  496. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  497. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  498. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  499. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  500. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  501. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  502. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  503. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  504. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  505. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  506. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  507. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  508. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  509. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  510. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  511. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  512. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  513. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  514. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  515. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  516. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  517. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  518. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
  519. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
  520. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
  521. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
  522. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
  523. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
  524. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
  525. package/templates/default/.claude/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
  526. package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
  527. package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
  528. package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
  529. package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
  530. package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
  531. package/templates/default/.claude/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
  532. package/templates/default/.claude/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
  533. package/templates/default/.claude/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
  534. package/templates/default/.claude/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
  535. package/templates/default/.claude/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
  536. package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
  537. package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
  538. package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
  539. package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
  540. package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/player.md +33 -0
  541. package/templates/default/.claude/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
  542. package/templates/default/.claude/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
  543. package/templates/default/.claude/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
  544. package/templates/default/.claude/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
  545. package/templates/default/.claude/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
  546. package/templates/default/.claude/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
  547. package/templates/default/.claude/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
  548. package/templates/default/.claude/skills/remotion-captions/SKILL.md +36 -0
  549. package/templates/default/.claude/skills/remotion-captions/agents/openai.yaml +7 -0
  550. package/templates/default/.claude/skills/remotion-captions/assets/remotion-icon.png +0 -0
  551. package/templates/default/.claude/skills/remotion-captions/display-captions.md +190 -0
  552. package/templates/default/.claude/skills/remotion-captions/import-srt-captions.md +73 -0
  553. package/templates/default/.claude/skills/remotion-captions/transcribe-captions.md +70 -0
  554. package/templates/default/.claude/skills/remotion-create/SKILL.md +68 -0
  555. package/templates/default/.claude/skills/remotion-create/agents/openai.yaml +7 -0
  556. package/templates/default/.claude/skills/remotion-create/assets/remotion-icon.png +0 -0
  557. package/templates/default/.claude/skills/remotion-create/tailwind.md +11 -0
  558. package/templates/default/.claude/skills/remotion-create/video-layout.md +9 -0
  559. package/templates/default/.claude/skills/remotion-docs/SKILL.md +46 -0
  560. package/templates/default/.claude/skills/remotion-docs/agents/openai.yaml +7 -0
  561. package/templates/default/.claude/skills/remotion-docs/assets/remotion-icon.png +0 -0
  562. package/templates/default/.claude/skills/remotion-interactivity/SKILL.md +247 -0
  563. package/templates/default/.claude/skills/remotion-interactivity/agents/openai.yaml +7 -0
  564. package/templates/default/.claude/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
  565. package/templates/default/.claude/skills/remotion-maps/SKILL.md +36 -0
  566. package/templates/default/.claude/skills/remotion-maps/agents/openai.yaml +7 -0
  567. package/templates/default/.claude/skills/remotion-maps/assets/remotion-icon.png +0 -0
  568. package/templates/default/.claude/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  569. package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  570. package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  571. package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  572. package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  573. package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  574. package/templates/default/.claude/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  575. package/templates/default/.claude/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  576. package/templates/default/.claude/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  577. package/templates/default/.claude/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  578. package/templates/default/.claude/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  579. package/templates/default/.claude/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  580. package/templates/default/.claude/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  581. package/templates/default/.claude/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  582. package/templates/default/.claude/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  583. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  584. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  585. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  586. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  587. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  588. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  589. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  590. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  591. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  592. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  593. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  594. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  595. package/templates/default/.claude/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  596. package/templates/default/.claude/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  597. package/templates/default/.claude/skills/remotion-markup/3d.md +86 -0
  598. package/templates/default/.claude/skills/remotion-markup/SKILL.md +365 -0
  599. package/templates/default/.claude/skills/remotion-markup/agents/openai.yaml +7 -0
  600. package/templates/default/.claude/skills/remotion-markup/assets/remotion-icon.png +0 -0
  601. package/templates/default/.claude/skills/remotion-markup/audio-visualization.md +198 -0
  602. package/templates/default/.claude/skills/remotion-markup/audio.md +171 -0
  603. package/templates/default/.claude/skills/remotion-markup/calculate-metadata.md +136 -0
  604. package/templates/default/.claude/skills/remotion-markup/compositions.md +117 -0
  605. package/templates/default/.claude/skills/remotion-markup/cropping.md +34 -0
  606. package/templates/default/.claude/skills/remotion-markup/effects.md +251 -0
  607. package/templates/default/.claude/skills/remotion-markup/embedding-videos.md +173 -0
  608. package/templates/default/.claude/skills/remotion-markup/ffmpeg.md +38 -0
  609. package/templates/default/.claude/skills/remotion-markup/gifs.md +187 -0
  610. package/templates/default/.claude/skills/remotion-markup/google-fonts.md +76 -0
  611. package/templates/default/.claude/skills/remotion-markup/html-in-canvas.md +128 -0
  612. package/templates/default/.claude/skills/remotion-markup/images.md +73 -0
  613. package/templates/default/.claude/skills/remotion-markup/light-leaks.md +106 -0
  614. package/templates/default/.claude/skills/remotion-markup/local-fonts.md +69 -0
  615. package/templates/default/.claude/skills/remotion-markup/lottie.md +73 -0
  616. package/templates/default/.claude/skills/remotion-markup/measuring-dom-nodes.md +38 -0
  617. package/templates/default/.claude/skills/remotion-markup/measuring-text.md +146 -0
  618. package/templates/default/.claude/skills/remotion-markup/multi-scene-video.md +81 -0
  619. package/templates/default/.claude/skills/remotion-markup/parameters.md +111 -0
  620. package/templates/default/.claude/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  621. package/templates/default/.claude/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  622. package/templates/default/.claude/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  623. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  624. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  625. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  626. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  627. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  628. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  629. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  630. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  631. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  632. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  633. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  634. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  635. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  636. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  637. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  638. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  639. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  640. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  641. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  642. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  643. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  644. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  645. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  646. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  647. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  648. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  649. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  650. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  651. package/templates/default/.claude/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  652. package/templates/default/.claude/skills/remotion-markup/sequencing.md +169 -0
  653. package/templates/default/.claude/skills/remotion-markup/sfx.md +51 -0
  654. package/templates/default/.claude/skills/remotion-markup/silence-detection.md +71 -0
  655. package/templates/default/.claude/skills/remotion-markup/text-highlights.md +56 -0
  656. package/templates/default/.claude/skills/remotion-markup/timing.md +111 -0
  657. package/templates/default/.claude/skills/remotion-markup/transitions.md +239 -0
  658. package/templates/default/.claude/skills/remotion-markup/video-editing.md +90 -0
  659. package/templates/default/.claude/skills/remotion-markup/voiceover.md +99 -0
  660. package/templates/default/.claude/skills/remotion-multimedia/SKILL.md +20 -0
  661. package/templates/default/.claude/skills/remotion-multimedia/agents/openai.yaml +7 -0
  662. package/templates/default/.claude/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
  663. package/templates/default/.claude/skills/remotion-multimedia/get-audio-duration.md +56 -0
  664. package/templates/default/.claude/skills/remotion-multimedia/get-video-dimensions.md +66 -0
  665. package/templates/default/.claude/skills/remotion-multimedia/get-video-duration.md +58 -0
  666. package/templates/default/.claude/skills/remotion-render/SKILL.md +27 -0
  667. package/templates/default/.claude/skills/remotion-render/agents/openai.yaml +7 -0
  668. package/templates/default/.claude/skills/remotion-render/assets/remotion-icon.png +0 -0
  669. package/templates/default/.claude/skills/remotion-render/transparent-videos.md +106 -0
  670. package/templates/default/.claude/skills/remotion-saas/SKILL.md +33 -0
  671. package/templates/default/.claude/skills/remotion-saas/agents/openai.yaml +7 -0
  672. package/templates/default/.claude/skills/remotion-saas/assets/remotion-icon.png +0 -0
  673. package/templates/default/.claude/skills/remotion-saas/framework.md +21 -0
  674. package/templates/default/.claude/skills/remotion-saas/player.md +33 -0
  675. package/templates/default/.claude/skills/remotion-saas/rendering.md +69 -0
  676. package/templates/default/.claude/skills/remotion-studio/SKILL.md +24 -0
  677. package/templates/default/.claude/skills/remotion-studio/agents/openai.yaml +7 -0
  678. package/templates/default/.claude/skills/remotion-studio/assets/remotion-icon.png +0 -0
  679. package/templates/default/.claude/skills/remotion-upgrade/SKILL.md +31 -0
  680. package/templates/default/.claude/skills/remotion-upgrade/agents/openai.yaml +7 -0
  681. package/templates/default/.claude/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
  682. package/templates/default/.cursor/skills/remotion-best-practices/SKILL.md +59 -0
  683. package/templates/default/.cursor/skills/remotion-best-practices/agents/openai.yaml +7 -0
  684. package/templates/default/.cursor/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
  685. package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
  686. package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
  687. package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
  688. package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
  689. package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
  690. package/templates/default/.cursor/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
  691. package/templates/default/.cursor/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
  692. package/templates/default/.cursor/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
  693. package/templates/default/.cursor/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
  694. package/templates/default/.cursor/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
  695. package/templates/default/.cursor/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
  696. package/templates/default/.cursor/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
  697. package/templates/default/.cursor/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
  698. package/templates/default/.cursor/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
  699. package/templates/default/.cursor/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
  700. package/templates/default/.cursor/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
  701. package/templates/default/.cursor/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
  702. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
  703. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
  704. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
  705. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  706. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  707. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  708. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  709. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  710. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  711. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  712. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  713. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  714. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  715. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  716. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  717. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  718. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  719. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  720. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  721. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  722. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  723. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  724. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  725. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  726. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  727. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  728. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  729. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  730. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  731. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  732. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  733. package/templates/default/.cursor/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  734. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
  735. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
  736. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
  737. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
  738. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
  739. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
  740. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
  741. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
  742. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
  743. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
  744. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
  745. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
  746. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
  747. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
  748. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
  749. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/images.md +73 -0
  750. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
  751. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
  752. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
  753. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
  754. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
  755. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
  756. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
  757. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  758. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  759. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  760. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  761. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  762. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  763. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  764. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  765. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  766. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  767. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  768. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  769. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  770. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  771. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  772. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  773. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  774. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  775. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  776. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  777. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  778. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  779. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  780. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  781. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  782. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  783. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  784. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  785. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  786. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  787. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  788. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  789. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
  790. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
  791. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
  792. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
  793. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
  794. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
  795. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
  796. package/templates/default/.cursor/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
  797. package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
  798. package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
  799. package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
  800. package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
  801. package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
  802. package/templates/default/.cursor/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
  803. package/templates/default/.cursor/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
  804. package/templates/default/.cursor/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
  805. package/templates/default/.cursor/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
  806. package/templates/default/.cursor/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
  807. package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
  808. package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
  809. package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
  810. package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
  811. package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/player.md +33 -0
  812. package/templates/default/.cursor/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
  813. package/templates/default/.cursor/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
  814. package/templates/default/.cursor/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
  815. package/templates/default/.cursor/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
  816. package/templates/default/.cursor/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
  817. package/templates/default/.cursor/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
  818. package/templates/default/.cursor/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
  819. package/templates/default/.cursor/skills/remotion-captions/SKILL.md +36 -0
  820. package/templates/default/.cursor/skills/remotion-captions/agents/openai.yaml +7 -0
  821. package/templates/default/.cursor/skills/remotion-captions/assets/remotion-icon.png +0 -0
  822. package/templates/default/.cursor/skills/remotion-captions/display-captions.md +190 -0
  823. package/templates/default/.cursor/skills/remotion-captions/import-srt-captions.md +73 -0
  824. package/templates/default/.cursor/skills/remotion-captions/transcribe-captions.md +70 -0
  825. package/templates/default/.cursor/skills/remotion-create/SKILL.md +68 -0
  826. package/templates/default/.cursor/skills/remotion-create/agents/openai.yaml +7 -0
  827. package/templates/default/.cursor/skills/remotion-create/assets/remotion-icon.png +0 -0
  828. package/templates/default/.cursor/skills/remotion-create/tailwind.md +11 -0
  829. package/templates/default/.cursor/skills/remotion-create/video-layout.md +9 -0
  830. package/templates/default/.cursor/skills/remotion-docs/SKILL.md +46 -0
  831. package/templates/default/.cursor/skills/remotion-docs/agents/openai.yaml +7 -0
  832. package/templates/default/.cursor/skills/remotion-docs/assets/remotion-icon.png +0 -0
  833. package/templates/default/.cursor/skills/remotion-interactivity/SKILL.md +247 -0
  834. package/templates/default/.cursor/skills/remotion-interactivity/agents/openai.yaml +7 -0
  835. package/templates/default/.cursor/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
  836. package/templates/default/.cursor/skills/remotion-maps/SKILL.md +36 -0
  837. package/templates/default/.cursor/skills/remotion-maps/agents/openai.yaml +7 -0
  838. package/templates/default/.cursor/skills/remotion-maps/assets/remotion-icon.png +0 -0
  839. package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  840. package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  841. package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  842. package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  843. package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  844. package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  845. package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  846. package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  847. package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  848. package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  849. package/templates/default/.cursor/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  850. package/templates/default/.cursor/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  851. package/templates/default/.cursor/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  852. package/templates/default/.cursor/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  853. package/templates/default/.cursor/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  854. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  855. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  856. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  857. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  858. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  859. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  860. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  861. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  862. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  863. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  864. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  865. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  866. package/templates/default/.cursor/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  867. package/templates/default/.cursor/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  868. package/templates/default/.cursor/skills/remotion-markup/3d.md +86 -0
  869. package/templates/default/.cursor/skills/remotion-markup/SKILL.md +365 -0
  870. package/templates/default/.cursor/skills/remotion-markup/agents/openai.yaml +7 -0
  871. package/templates/default/.cursor/skills/remotion-markup/assets/remotion-icon.png +0 -0
  872. package/templates/default/.cursor/skills/remotion-markup/audio-visualization.md +198 -0
  873. package/templates/default/.cursor/skills/remotion-markup/audio.md +171 -0
  874. package/templates/default/.cursor/skills/remotion-markup/calculate-metadata.md +136 -0
  875. package/templates/default/.cursor/skills/remotion-markup/compositions.md +117 -0
  876. package/templates/default/.cursor/skills/remotion-markup/cropping.md +34 -0
  877. package/templates/default/.cursor/skills/remotion-markup/effects.md +251 -0
  878. package/templates/default/.cursor/skills/remotion-markup/embedding-videos.md +173 -0
  879. package/templates/default/.cursor/skills/remotion-markup/ffmpeg.md +38 -0
  880. package/templates/default/.cursor/skills/remotion-markup/gifs.md +187 -0
  881. package/templates/default/.cursor/skills/remotion-markup/google-fonts.md +76 -0
  882. package/templates/default/.cursor/skills/remotion-markup/html-in-canvas.md +128 -0
  883. package/templates/default/.cursor/skills/remotion-markup/images.md +73 -0
  884. package/templates/default/.cursor/skills/remotion-markup/light-leaks.md +106 -0
  885. package/templates/default/.cursor/skills/remotion-markup/local-fonts.md +69 -0
  886. package/templates/default/.cursor/skills/remotion-markup/lottie.md +73 -0
  887. package/templates/default/.cursor/skills/remotion-markup/measuring-dom-nodes.md +38 -0
  888. package/templates/default/.cursor/skills/remotion-markup/measuring-text.md +146 -0
  889. package/templates/default/.cursor/skills/remotion-markup/multi-scene-video.md +81 -0
  890. package/templates/default/.cursor/skills/remotion-markup/parameters.md +111 -0
  891. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  892. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  893. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  894. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  895. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  896. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  897. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  898. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  899. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  900. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  901. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  902. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  903. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  904. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  905. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  906. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  907. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  908. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  909. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  910. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  911. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  912. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  913. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  914. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  915. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  916. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  917. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  918. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  919. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  920. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  921. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  922. package/templates/default/.cursor/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  923. package/templates/default/.cursor/skills/remotion-markup/sequencing.md +169 -0
  924. package/templates/default/.cursor/skills/remotion-markup/sfx.md +51 -0
  925. package/templates/default/.cursor/skills/remotion-markup/silence-detection.md +71 -0
  926. package/templates/default/.cursor/skills/remotion-markup/text-highlights.md +56 -0
  927. package/templates/default/.cursor/skills/remotion-markup/timing.md +111 -0
  928. package/templates/default/.cursor/skills/remotion-markup/transitions.md +239 -0
  929. package/templates/default/.cursor/skills/remotion-markup/video-editing.md +90 -0
  930. package/templates/default/.cursor/skills/remotion-markup/voiceover.md +99 -0
  931. package/templates/default/.cursor/skills/remotion-multimedia/SKILL.md +20 -0
  932. package/templates/default/.cursor/skills/remotion-multimedia/agents/openai.yaml +7 -0
  933. package/templates/default/.cursor/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
  934. package/templates/default/.cursor/skills/remotion-multimedia/get-audio-duration.md +56 -0
  935. package/templates/default/.cursor/skills/remotion-multimedia/get-video-dimensions.md +66 -0
  936. package/templates/default/.cursor/skills/remotion-multimedia/get-video-duration.md +58 -0
  937. package/templates/default/.cursor/skills/remotion-render/SKILL.md +27 -0
  938. package/templates/default/.cursor/skills/remotion-render/agents/openai.yaml +7 -0
  939. package/templates/default/.cursor/skills/remotion-render/assets/remotion-icon.png +0 -0
  940. package/templates/default/.cursor/skills/remotion-render/transparent-videos.md +106 -0
  941. package/templates/default/.cursor/skills/remotion-saas/SKILL.md +33 -0
  942. package/templates/default/.cursor/skills/remotion-saas/agents/openai.yaml +7 -0
  943. package/templates/default/.cursor/skills/remotion-saas/assets/remotion-icon.png +0 -0
  944. package/templates/default/.cursor/skills/remotion-saas/framework.md +21 -0
  945. package/templates/default/.cursor/skills/remotion-saas/player.md +33 -0
  946. package/templates/default/.cursor/skills/remotion-saas/rendering.md +69 -0
  947. package/templates/default/.cursor/skills/remotion-studio/SKILL.md +24 -0
  948. package/templates/default/.cursor/skills/remotion-studio/agents/openai.yaml +7 -0
  949. package/templates/default/.cursor/skills/remotion-studio/assets/remotion-icon.png +0 -0
  950. package/templates/default/.cursor/skills/remotion-upgrade/SKILL.md +31 -0
  951. package/templates/default/.cursor/skills/remotion-upgrade/agents/openai.yaml +7 -0
  952. package/templates/default/.cursor/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
  953. package/templates/default/.github/skills/remotion-best-practices/SKILL.md +59 -0
  954. package/templates/default/.github/skills/remotion-best-practices/agents/openai.yaml +7 -0
  955. package/templates/default/.github/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
  956. package/templates/default/.github/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
  957. package/templates/default/.github/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
  958. package/templates/default/.github/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
  959. package/templates/default/.github/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
  960. package/templates/default/.github/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
  961. package/templates/default/.github/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
  962. package/templates/default/.github/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
  963. package/templates/default/.github/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
  964. package/templates/default/.github/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
  965. package/templates/default/.github/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
  966. package/templates/default/.github/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
  967. package/templates/default/.github/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
  968. package/templates/default/.github/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
  969. package/templates/default/.github/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
  970. package/templates/default/.github/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
  971. package/templates/default/.github/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
  972. package/templates/default/.github/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
  973. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
  974. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
  975. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
  976. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  977. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  978. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  979. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  980. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  981. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  982. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  983. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  984. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  985. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  986. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  987. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  988. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  989. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  990. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  991. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  992. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  993. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  994. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  995. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  996. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  997. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  998. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  999. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1000. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1001. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1002. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1003. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1004. package/templates/default/.github/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1005. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
  1006. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
  1007. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
  1008. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
  1009. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
  1010. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
  1011. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
  1012. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
  1013. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
  1014. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
  1015. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
  1016. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
  1017. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
  1018. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
  1019. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
  1020. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/images.md +73 -0
  1021. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
  1022. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
  1023. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
  1024. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
  1025. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
  1026. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
  1027. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
  1028. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  1029. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  1030. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  1031. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  1032. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  1033. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  1034. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  1035. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  1036. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  1037. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  1038. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  1039. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  1040. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  1041. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  1042. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  1043. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  1044. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  1045. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  1046. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  1047. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  1048. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  1049. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  1050. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  1051. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  1052. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  1053. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  1054. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1055. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1056. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1057. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1058. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1059. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1060. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
  1061. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
  1062. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
  1063. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
  1064. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
  1065. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
  1066. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
  1067. package/templates/default/.github/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
  1068. package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
  1069. package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
  1070. package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
  1071. package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
  1072. package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
  1073. package/templates/default/.github/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
  1074. package/templates/default/.github/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
  1075. package/templates/default/.github/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
  1076. package/templates/default/.github/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
  1077. package/templates/default/.github/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
  1078. package/templates/default/.github/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
  1079. package/templates/default/.github/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
  1080. package/templates/default/.github/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
  1081. package/templates/default/.github/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
  1082. package/templates/default/.github/skills/remotion-best-practices/remotion-saas/player.md +33 -0
  1083. package/templates/default/.github/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
  1084. package/templates/default/.github/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
  1085. package/templates/default/.github/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
  1086. package/templates/default/.github/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
  1087. package/templates/default/.github/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
  1088. package/templates/default/.github/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
  1089. package/templates/default/.github/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
  1090. package/templates/default/.github/skills/remotion-captions/SKILL.md +36 -0
  1091. package/templates/default/.github/skills/remotion-captions/agents/openai.yaml +7 -0
  1092. package/templates/default/.github/skills/remotion-captions/assets/remotion-icon.png +0 -0
  1093. package/templates/default/.github/skills/remotion-captions/display-captions.md +190 -0
  1094. package/templates/default/.github/skills/remotion-captions/import-srt-captions.md +73 -0
  1095. package/templates/default/.github/skills/remotion-captions/transcribe-captions.md +70 -0
  1096. package/templates/default/.github/skills/remotion-create/SKILL.md +68 -0
  1097. package/templates/default/.github/skills/remotion-create/agents/openai.yaml +7 -0
  1098. package/templates/default/.github/skills/remotion-create/assets/remotion-icon.png +0 -0
  1099. package/templates/default/.github/skills/remotion-create/tailwind.md +11 -0
  1100. package/templates/default/.github/skills/remotion-create/video-layout.md +9 -0
  1101. package/templates/default/.github/skills/remotion-docs/SKILL.md +46 -0
  1102. package/templates/default/.github/skills/remotion-docs/agents/openai.yaml +7 -0
  1103. package/templates/default/.github/skills/remotion-docs/assets/remotion-icon.png +0 -0
  1104. package/templates/default/.github/skills/remotion-interactivity/SKILL.md +247 -0
  1105. package/templates/default/.github/skills/remotion-interactivity/agents/openai.yaml +7 -0
  1106. package/templates/default/.github/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
  1107. package/templates/default/.github/skills/remotion-maps/SKILL.md +36 -0
  1108. package/templates/default/.github/skills/remotion-maps/agents/openai.yaml +7 -0
  1109. package/templates/default/.github/skills/remotion-maps/assets/remotion-icon.png +0 -0
  1110. package/templates/default/.github/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  1111. package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  1112. package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  1113. package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  1114. package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  1115. package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  1116. package/templates/default/.github/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  1117. package/templates/default/.github/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  1118. package/templates/default/.github/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  1119. package/templates/default/.github/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  1120. package/templates/default/.github/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  1121. package/templates/default/.github/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  1122. package/templates/default/.github/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  1123. package/templates/default/.github/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  1124. package/templates/default/.github/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  1125. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  1126. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  1127. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  1128. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  1129. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  1130. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  1131. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  1132. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  1133. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1134. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1135. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1136. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1137. package/templates/default/.github/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1138. package/templates/default/.github/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1139. package/templates/default/.github/skills/remotion-markup/3d.md +86 -0
  1140. package/templates/default/.github/skills/remotion-markup/SKILL.md +365 -0
  1141. package/templates/default/.github/skills/remotion-markup/agents/openai.yaml +7 -0
  1142. package/templates/default/.github/skills/remotion-markup/assets/remotion-icon.png +0 -0
  1143. package/templates/default/.github/skills/remotion-markup/audio-visualization.md +198 -0
  1144. package/templates/default/.github/skills/remotion-markup/audio.md +171 -0
  1145. package/templates/default/.github/skills/remotion-markup/calculate-metadata.md +136 -0
  1146. package/templates/default/.github/skills/remotion-markup/compositions.md +117 -0
  1147. package/templates/default/.github/skills/remotion-markup/cropping.md +34 -0
  1148. package/templates/default/.github/skills/remotion-markup/effects.md +251 -0
  1149. package/templates/default/.github/skills/remotion-markup/embedding-videos.md +173 -0
  1150. package/templates/default/.github/skills/remotion-markup/ffmpeg.md +38 -0
  1151. package/templates/default/.github/skills/remotion-markup/gifs.md +187 -0
  1152. package/templates/default/.github/skills/remotion-markup/google-fonts.md +76 -0
  1153. package/templates/default/.github/skills/remotion-markup/html-in-canvas.md +128 -0
  1154. package/templates/default/.github/skills/remotion-markup/images.md +73 -0
  1155. package/templates/default/.github/skills/remotion-markup/light-leaks.md +106 -0
  1156. package/templates/default/.github/skills/remotion-markup/local-fonts.md +69 -0
  1157. package/templates/default/.github/skills/remotion-markup/lottie.md +73 -0
  1158. package/templates/default/.github/skills/remotion-markup/measuring-dom-nodes.md +38 -0
  1159. package/templates/default/.github/skills/remotion-markup/measuring-text.md +146 -0
  1160. package/templates/default/.github/skills/remotion-markup/multi-scene-video.md +81 -0
  1161. package/templates/default/.github/skills/remotion-markup/parameters.md +111 -0
  1162. package/templates/default/.github/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  1163. package/templates/default/.github/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  1164. package/templates/default/.github/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  1165. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  1166. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  1167. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  1168. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  1169. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  1170. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  1171. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  1172. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  1173. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  1174. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  1175. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  1176. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  1177. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  1178. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  1179. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  1180. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  1181. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  1182. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  1183. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  1184. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  1185. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  1186. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  1187. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  1188. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1189. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1190. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1191. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1192. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1193. package/templates/default/.github/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1194. package/templates/default/.github/skills/remotion-markup/sequencing.md +169 -0
  1195. package/templates/default/.github/skills/remotion-markup/sfx.md +51 -0
  1196. package/templates/default/.github/skills/remotion-markup/silence-detection.md +71 -0
  1197. package/templates/default/.github/skills/remotion-markup/text-highlights.md +56 -0
  1198. package/templates/default/.github/skills/remotion-markup/timing.md +111 -0
  1199. package/templates/default/.github/skills/remotion-markup/transitions.md +239 -0
  1200. package/templates/default/.github/skills/remotion-markup/video-editing.md +90 -0
  1201. package/templates/default/.github/skills/remotion-markup/voiceover.md +99 -0
  1202. package/templates/default/.github/skills/remotion-multimedia/SKILL.md +20 -0
  1203. package/templates/default/.github/skills/remotion-multimedia/agents/openai.yaml +7 -0
  1204. package/templates/default/.github/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
  1205. package/templates/default/.github/skills/remotion-multimedia/get-audio-duration.md +56 -0
  1206. package/templates/default/.github/skills/remotion-multimedia/get-video-dimensions.md +66 -0
  1207. package/templates/default/.github/skills/remotion-multimedia/get-video-duration.md +58 -0
  1208. package/templates/default/.github/skills/remotion-render/SKILL.md +27 -0
  1209. package/templates/default/.github/skills/remotion-render/agents/openai.yaml +7 -0
  1210. package/templates/default/.github/skills/remotion-render/assets/remotion-icon.png +0 -0
  1211. package/templates/default/.github/skills/remotion-render/transparent-videos.md +106 -0
  1212. package/templates/default/.github/skills/remotion-saas/SKILL.md +33 -0
  1213. package/templates/default/.github/skills/remotion-saas/agents/openai.yaml +7 -0
  1214. package/templates/default/.github/skills/remotion-saas/assets/remotion-icon.png +0 -0
  1215. package/templates/default/.github/skills/remotion-saas/framework.md +21 -0
  1216. package/templates/default/.github/skills/remotion-saas/player.md +33 -0
  1217. package/templates/default/.github/skills/remotion-saas/rendering.md +69 -0
  1218. package/templates/default/.github/skills/remotion-studio/SKILL.md +24 -0
  1219. package/templates/default/.github/skills/remotion-studio/agents/openai.yaml +7 -0
  1220. package/templates/default/.github/skills/remotion-studio/assets/remotion-icon.png +0 -0
  1221. package/templates/default/.github/skills/remotion-upgrade/SKILL.md +31 -0
  1222. package/templates/default/.github/skills/remotion-upgrade/agents/openai.yaml +7 -0
  1223. package/templates/default/.github/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
  1224. package/templates/default/.github/workflows/visual-regression.yml +69 -0
  1225. package/templates/default/.opencode/skills/remotion-best-practices/SKILL.md +59 -0
  1226. package/templates/default/.opencode/skills/remotion-best-practices/agents/openai.yaml +7 -0
  1227. package/templates/default/.opencode/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
  1228. package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
  1229. package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
  1230. package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
  1231. package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
  1232. package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
  1233. package/templates/default/.opencode/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
  1234. package/templates/default/.opencode/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
  1235. package/templates/default/.opencode/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
  1236. package/templates/default/.opencode/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
  1237. package/templates/default/.opencode/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
  1238. package/templates/default/.opencode/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
  1239. package/templates/default/.opencode/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
  1240. package/templates/default/.opencode/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
  1241. package/templates/default/.opencode/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
  1242. package/templates/default/.opencode/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
  1243. package/templates/default/.opencode/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
  1244. package/templates/default/.opencode/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
  1245. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
  1246. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
  1247. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
  1248. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  1249. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  1250. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  1251. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  1252. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  1253. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  1254. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  1255. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  1256. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  1257. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  1258. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  1259. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  1260. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  1261. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  1262. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  1263. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  1264. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  1265. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  1266. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  1267. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  1268. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  1269. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  1270. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  1271. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1272. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1273. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1274. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1275. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1276. package/templates/default/.opencode/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1277. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
  1278. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
  1279. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
  1280. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
  1281. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
  1282. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
  1283. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
  1284. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
  1285. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
  1286. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
  1287. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
  1288. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
  1289. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
  1290. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
  1291. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
  1292. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/images.md +73 -0
  1293. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
  1294. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
  1295. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
  1296. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
  1297. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
  1298. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
  1299. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
  1300. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  1301. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  1302. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  1303. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  1304. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  1305. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  1306. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  1307. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  1308. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  1309. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  1310. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  1311. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  1312. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  1313. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  1314. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  1315. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  1316. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  1317. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  1318. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  1319. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  1320. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  1321. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  1322. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  1323. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  1324. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  1325. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  1326. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1327. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1328. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1329. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1330. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1331. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1332. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
  1333. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
  1334. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
  1335. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
  1336. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
  1337. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
  1338. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
  1339. package/templates/default/.opencode/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
  1340. package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
  1341. package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
  1342. package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
  1343. package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
  1344. package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
  1345. package/templates/default/.opencode/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
  1346. package/templates/default/.opencode/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
  1347. package/templates/default/.opencode/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
  1348. package/templates/default/.opencode/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
  1349. package/templates/default/.opencode/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
  1350. package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
  1351. package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
  1352. package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
  1353. package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
  1354. package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/player.md +33 -0
  1355. package/templates/default/.opencode/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
  1356. package/templates/default/.opencode/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
  1357. package/templates/default/.opencode/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
  1358. package/templates/default/.opencode/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
  1359. package/templates/default/.opencode/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
  1360. package/templates/default/.opencode/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
  1361. package/templates/default/.opencode/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
  1362. package/templates/default/.opencode/skills/remotion-captions/SKILL.md +36 -0
  1363. package/templates/default/.opencode/skills/remotion-captions/agents/openai.yaml +7 -0
  1364. package/templates/default/.opencode/skills/remotion-captions/assets/remotion-icon.png +0 -0
  1365. package/templates/default/.opencode/skills/remotion-captions/display-captions.md +190 -0
  1366. package/templates/default/.opencode/skills/remotion-captions/import-srt-captions.md +73 -0
  1367. package/templates/default/.opencode/skills/remotion-captions/transcribe-captions.md +70 -0
  1368. package/templates/default/.opencode/skills/remotion-create/SKILL.md +68 -0
  1369. package/templates/default/.opencode/skills/remotion-create/agents/openai.yaml +7 -0
  1370. package/templates/default/.opencode/skills/remotion-create/assets/remotion-icon.png +0 -0
  1371. package/templates/default/.opencode/skills/remotion-create/tailwind.md +11 -0
  1372. package/templates/default/.opencode/skills/remotion-create/video-layout.md +9 -0
  1373. package/templates/default/.opencode/skills/remotion-docs/SKILL.md +46 -0
  1374. package/templates/default/.opencode/skills/remotion-docs/agents/openai.yaml +7 -0
  1375. package/templates/default/.opencode/skills/remotion-docs/assets/remotion-icon.png +0 -0
  1376. package/templates/default/.opencode/skills/remotion-interactivity/SKILL.md +247 -0
  1377. package/templates/default/.opencode/skills/remotion-interactivity/agents/openai.yaml +7 -0
  1378. package/templates/default/.opencode/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
  1379. package/templates/default/.opencode/skills/remotion-maps/SKILL.md +36 -0
  1380. package/templates/default/.opencode/skills/remotion-maps/agents/openai.yaml +7 -0
  1381. package/templates/default/.opencode/skills/remotion-maps/assets/remotion-icon.png +0 -0
  1382. package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  1383. package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  1384. package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  1385. package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  1386. package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  1387. package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  1388. package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  1389. package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  1390. package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  1391. package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  1392. package/templates/default/.opencode/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  1393. package/templates/default/.opencode/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  1394. package/templates/default/.opencode/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  1395. package/templates/default/.opencode/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  1396. package/templates/default/.opencode/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  1397. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  1398. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  1399. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  1400. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  1401. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  1402. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  1403. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  1404. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  1405. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1406. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1407. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1408. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1409. package/templates/default/.opencode/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1410. package/templates/default/.opencode/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1411. package/templates/default/.opencode/skills/remotion-markup/3d.md +86 -0
  1412. package/templates/default/.opencode/skills/remotion-markup/SKILL.md +365 -0
  1413. package/templates/default/.opencode/skills/remotion-markup/agents/openai.yaml +7 -0
  1414. package/templates/default/.opencode/skills/remotion-markup/assets/remotion-icon.png +0 -0
  1415. package/templates/default/.opencode/skills/remotion-markup/audio-visualization.md +198 -0
  1416. package/templates/default/.opencode/skills/remotion-markup/audio.md +171 -0
  1417. package/templates/default/.opencode/skills/remotion-markup/calculate-metadata.md +136 -0
  1418. package/templates/default/.opencode/skills/remotion-markup/compositions.md +117 -0
  1419. package/templates/default/.opencode/skills/remotion-markup/cropping.md +34 -0
  1420. package/templates/default/.opencode/skills/remotion-markup/effects.md +251 -0
  1421. package/templates/default/.opencode/skills/remotion-markup/embedding-videos.md +173 -0
  1422. package/templates/default/.opencode/skills/remotion-markup/ffmpeg.md +38 -0
  1423. package/templates/default/.opencode/skills/remotion-markup/gifs.md +187 -0
  1424. package/templates/default/.opencode/skills/remotion-markup/google-fonts.md +76 -0
  1425. package/templates/default/.opencode/skills/remotion-markup/html-in-canvas.md +128 -0
  1426. package/templates/default/.opencode/skills/remotion-markup/images.md +73 -0
  1427. package/templates/default/.opencode/skills/remotion-markup/light-leaks.md +106 -0
  1428. package/templates/default/.opencode/skills/remotion-markup/local-fonts.md +69 -0
  1429. package/templates/default/.opencode/skills/remotion-markup/lottie.md +73 -0
  1430. package/templates/default/.opencode/skills/remotion-markup/measuring-dom-nodes.md +38 -0
  1431. package/templates/default/.opencode/skills/remotion-markup/measuring-text.md +146 -0
  1432. package/templates/default/.opencode/skills/remotion-markup/multi-scene-video.md +81 -0
  1433. package/templates/default/.opencode/skills/remotion-markup/parameters.md +111 -0
  1434. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  1435. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  1436. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  1437. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  1438. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  1439. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  1440. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  1441. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  1442. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  1443. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  1444. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  1445. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  1446. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  1447. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  1448. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  1449. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  1450. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  1451. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  1452. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  1453. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  1454. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  1455. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  1456. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  1457. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  1458. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  1459. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  1460. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1461. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1462. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1463. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1464. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1465. package/templates/default/.opencode/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1466. package/templates/default/.opencode/skills/remotion-markup/sequencing.md +169 -0
  1467. package/templates/default/.opencode/skills/remotion-markup/sfx.md +51 -0
  1468. package/templates/default/.opencode/skills/remotion-markup/silence-detection.md +71 -0
  1469. package/templates/default/.opencode/skills/remotion-markup/text-highlights.md +56 -0
  1470. package/templates/default/.opencode/skills/remotion-markup/timing.md +111 -0
  1471. package/templates/default/.opencode/skills/remotion-markup/transitions.md +239 -0
  1472. package/templates/default/.opencode/skills/remotion-markup/video-editing.md +90 -0
  1473. package/templates/default/.opencode/skills/remotion-markup/voiceover.md +99 -0
  1474. package/templates/default/.opencode/skills/remotion-multimedia/SKILL.md +20 -0
  1475. package/templates/default/.opencode/skills/remotion-multimedia/agents/openai.yaml +7 -0
  1476. package/templates/default/.opencode/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
  1477. package/templates/default/.opencode/skills/remotion-multimedia/get-audio-duration.md +56 -0
  1478. package/templates/default/.opencode/skills/remotion-multimedia/get-video-dimensions.md +66 -0
  1479. package/templates/default/.opencode/skills/remotion-multimedia/get-video-duration.md +58 -0
  1480. package/templates/default/.opencode/skills/remotion-render/SKILL.md +27 -0
  1481. package/templates/default/.opencode/skills/remotion-render/agents/openai.yaml +7 -0
  1482. package/templates/default/.opencode/skills/remotion-render/assets/remotion-icon.png +0 -0
  1483. package/templates/default/.opencode/skills/remotion-render/transparent-videos.md +106 -0
  1484. package/templates/default/.opencode/skills/remotion-saas/SKILL.md +33 -0
  1485. package/templates/default/.opencode/skills/remotion-saas/agents/openai.yaml +7 -0
  1486. package/templates/default/.opencode/skills/remotion-saas/assets/remotion-icon.png +0 -0
  1487. package/templates/default/.opencode/skills/remotion-saas/framework.md +21 -0
  1488. package/templates/default/.opencode/skills/remotion-saas/player.md +33 -0
  1489. package/templates/default/.opencode/skills/remotion-saas/rendering.md +69 -0
  1490. package/templates/default/.opencode/skills/remotion-studio/SKILL.md +24 -0
  1491. package/templates/default/.opencode/skills/remotion-studio/agents/openai.yaml +7 -0
  1492. package/templates/default/.opencode/skills/remotion-studio/assets/remotion-icon.png +0 -0
  1493. package/templates/default/.opencode/skills/remotion-upgrade/SKILL.md +31 -0
  1494. package/templates/default/.opencode/skills/remotion-upgrade/agents/openai.yaml +7 -0
  1495. package/templates/default/.opencode/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
  1496. package/templates/default/.windsurf/skills/remotion-best-practices/SKILL.md +59 -0
  1497. package/templates/default/.windsurf/skills/remotion-best-practices/agents/openai.yaml +7 -0
  1498. package/templates/default/.windsurf/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
  1499. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -0
  1500. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
  1501. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
  1502. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -0
  1503. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -0
  1504. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -0
  1505. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-create/REFERENCE.md +68 -0
  1506. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
  1507. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
  1508. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-create/tailwind.md +11 -0
  1509. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
  1510. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -0
  1511. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
  1512. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
  1513. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +247 -0
  1514. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
  1515. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
  1516. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -0
  1517. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
  1518. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
  1519. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  1520. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  1521. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  1522. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  1523. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  1524. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  1525. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  1526. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  1527. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  1528. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  1529. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  1530. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  1531. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  1532. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  1533. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  1534. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  1535. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  1536. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  1537. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  1538. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  1539. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  1540. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  1541. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  1542. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1543. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1544. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1545. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1546. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1547. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1548. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/3d.md +86 -0
  1549. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/REFERENCE.md +365 -0
  1550. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
  1551. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
  1552. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -0
  1553. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/audio.md +171 -0
  1554. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -0
  1555. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
  1556. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
  1557. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
  1558. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/embedding-videos.md +173 -0
  1559. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -0
  1560. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/gifs.md +187 -0
  1561. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
  1562. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
  1563. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/images.md +73 -0
  1564. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
  1565. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
  1566. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/lottie.md +73 -0
  1567. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -0
  1568. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -0
  1569. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
  1570. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/parameters.md +111 -0
  1571. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  1572. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  1573. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  1574. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  1575. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  1576. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  1577. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  1578. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  1579. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  1580. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  1581. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  1582. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  1583. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  1584. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  1585. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  1586. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  1587. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  1588. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  1589. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  1590. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  1591. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  1592. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  1593. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  1594. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  1595. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  1596. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  1597. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1598. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1599. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1600. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1601. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1602. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1603. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -0
  1604. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
  1605. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -0
  1606. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
  1607. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
  1608. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/transitions.md +239 -0
  1609. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
  1610. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -0
  1611. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -0
  1612. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
  1613. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
  1614. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -0
  1615. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -0
  1616. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -0
  1617. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-render/REFERENCE.md +27 -0
  1618. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
  1619. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
  1620. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -0
  1621. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -0
  1622. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
  1623. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
  1624. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
  1625. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/player.md +33 -0
  1626. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
  1627. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -0
  1628. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
  1629. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
  1630. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -0
  1631. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
  1632. package/templates/default/.windsurf/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
  1633. package/templates/default/.windsurf/skills/remotion-captions/SKILL.md +36 -0
  1634. package/templates/default/.windsurf/skills/remotion-captions/agents/openai.yaml +7 -0
  1635. package/templates/default/.windsurf/skills/remotion-captions/assets/remotion-icon.png +0 -0
  1636. package/templates/default/.windsurf/skills/remotion-captions/display-captions.md +190 -0
  1637. package/templates/default/.windsurf/skills/remotion-captions/import-srt-captions.md +73 -0
  1638. package/templates/default/.windsurf/skills/remotion-captions/transcribe-captions.md +70 -0
  1639. package/templates/default/.windsurf/skills/remotion-create/SKILL.md +68 -0
  1640. package/templates/default/.windsurf/skills/remotion-create/agents/openai.yaml +7 -0
  1641. package/templates/default/.windsurf/skills/remotion-create/assets/remotion-icon.png +0 -0
  1642. package/templates/default/.windsurf/skills/remotion-create/tailwind.md +11 -0
  1643. package/templates/default/.windsurf/skills/remotion-create/video-layout.md +9 -0
  1644. package/templates/default/.windsurf/skills/remotion-docs/SKILL.md +46 -0
  1645. package/templates/default/.windsurf/skills/remotion-docs/agents/openai.yaml +7 -0
  1646. package/templates/default/.windsurf/skills/remotion-docs/assets/remotion-icon.png +0 -0
  1647. package/templates/default/.windsurf/skills/remotion-interactivity/SKILL.md +247 -0
  1648. package/templates/default/.windsurf/skills/remotion-interactivity/agents/openai.yaml +7 -0
  1649. package/templates/default/.windsurf/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
  1650. package/templates/default/.windsurf/skills/remotion-maps/SKILL.md +36 -0
  1651. package/templates/default/.windsurf/skills/remotion-maps/agents/openai.yaml +7 -0
  1652. package/templates/default/.windsurf/skills/remotion-maps/assets/remotion-icon.png +0 -0
  1653. package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  1654. package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  1655. package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  1656. package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  1657. package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  1658. package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  1659. package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  1660. package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  1661. package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  1662. package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  1663. package/templates/default/.windsurf/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  1664. package/templates/default/.windsurf/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  1665. package/templates/default/.windsurf/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  1666. package/templates/default/.windsurf/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  1667. package/templates/default/.windsurf/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  1668. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  1669. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  1670. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  1671. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  1672. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  1673. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  1674. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  1675. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  1676. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1677. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1678. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1679. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1680. package/templates/default/.windsurf/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1681. package/templates/default/.windsurf/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1682. package/templates/default/.windsurf/skills/remotion-markup/3d.md +86 -0
  1683. package/templates/default/.windsurf/skills/remotion-markup/SKILL.md +365 -0
  1684. package/templates/default/.windsurf/skills/remotion-markup/agents/openai.yaml +7 -0
  1685. package/templates/default/.windsurf/skills/remotion-markup/assets/remotion-icon.png +0 -0
  1686. package/templates/default/.windsurf/skills/remotion-markup/audio-visualization.md +198 -0
  1687. package/templates/default/.windsurf/skills/remotion-markup/audio.md +171 -0
  1688. package/templates/default/.windsurf/skills/remotion-markup/calculate-metadata.md +136 -0
  1689. package/templates/default/.windsurf/skills/remotion-markup/compositions.md +117 -0
  1690. package/templates/default/.windsurf/skills/remotion-markup/cropping.md +34 -0
  1691. package/templates/default/.windsurf/skills/remotion-markup/effects.md +251 -0
  1692. package/templates/default/.windsurf/skills/remotion-markup/embedding-videos.md +173 -0
  1693. package/templates/default/.windsurf/skills/remotion-markup/ffmpeg.md +38 -0
  1694. package/templates/default/.windsurf/skills/remotion-markup/gifs.md +187 -0
  1695. package/templates/default/.windsurf/skills/remotion-markup/google-fonts.md +76 -0
  1696. package/templates/default/.windsurf/skills/remotion-markup/html-in-canvas.md +128 -0
  1697. package/templates/default/.windsurf/skills/remotion-markup/images.md +73 -0
  1698. package/templates/default/.windsurf/skills/remotion-markup/light-leaks.md +106 -0
  1699. package/templates/default/.windsurf/skills/remotion-markup/local-fonts.md +69 -0
  1700. package/templates/default/.windsurf/skills/remotion-markup/lottie.md +73 -0
  1701. package/templates/default/.windsurf/skills/remotion-markup/measuring-dom-nodes.md +38 -0
  1702. package/templates/default/.windsurf/skills/remotion-markup/measuring-text.md +146 -0
  1703. package/templates/default/.windsurf/skills/remotion-markup/multi-scene-video.md +81 -0
  1704. package/templates/default/.windsurf/skills/remotion-markup/parameters.md +111 -0
  1705. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -0
  1706. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  1707. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  1708. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  1709. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  1710. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  1711. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  1712. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  1713. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  1714. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  1715. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  1716. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  1717. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  1718. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  1719. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  1720. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  1721. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  1722. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  1723. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  1724. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  1725. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  1726. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  1727. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  1728. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  1729. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  1730. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  1731. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  1732. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  1733. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  1734. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  1735. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  1736. package/templates/default/.windsurf/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  1737. package/templates/default/.windsurf/skills/remotion-markup/sequencing.md +169 -0
  1738. package/templates/default/.windsurf/skills/remotion-markup/sfx.md +51 -0
  1739. package/templates/default/.windsurf/skills/remotion-markup/silence-detection.md +71 -0
  1740. package/templates/default/.windsurf/skills/remotion-markup/text-highlights.md +56 -0
  1741. package/templates/default/.windsurf/skills/remotion-markup/timing.md +111 -0
  1742. package/templates/default/.windsurf/skills/remotion-markup/transitions.md +239 -0
  1743. package/templates/default/.windsurf/skills/remotion-markup/video-editing.md +90 -0
  1744. package/templates/default/.windsurf/skills/remotion-markup/voiceover.md +99 -0
  1745. package/templates/default/.windsurf/skills/remotion-multimedia/SKILL.md +20 -0
  1746. package/templates/default/.windsurf/skills/remotion-multimedia/agents/openai.yaml +7 -0
  1747. package/templates/default/.windsurf/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
  1748. package/templates/default/.windsurf/skills/remotion-multimedia/get-audio-duration.md +56 -0
  1749. package/templates/default/.windsurf/skills/remotion-multimedia/get-video-dimensions.md +66 -0
  1750. package/templates/default/.windsurf/skills/remotion-multimedia/get-video-duration.md +58 -0
  1751. package/templates/default/.windsurf/skills/remotion-render/SKILL.md +27 -0
  1752. package/templates/default/.windsurf/skills/remotion-render/agents/openai.yaml +7 -0
  1753. package/templates/default/.windsurf/skills/remotion-render/assets/remotion-icon.png +0 -0
  1754. package/templates/default/.windsurf/skills/remotion-render/transparent-videos.md +106 -0
  1755. package/templates/default/.windsurf/skills/remotion-saas/SKILL.md +33 -0
  1756. package/templates/default/.windsurf/skills/remotion-saas/agents/openai.yaml +7 -0
  1757. package/templates/default/.windsurf/skills/remotion-saas/assets/remotion-icon.png +0 -0
  1758. package/templates/default/.windsurf/skills/remotion-saas/framework.md +21 -0
  1759. package/templates/default/.windsurf/skills/remotion-saas/player.md +33 -0
  1760. package/templates/default/.windsurf/skills/remotion-saas/rendering.md +69 -0
  1761. package/templates/default/.windsurf/skills/remotion-studio/SKILL.md +24 -0
  1762. package/templates/default/.windsurf/skills/remotion-studio/agents/openai.yaml +7 -0
  1763. package/templates/default/.windsurf/skills/remotion-studio/assets/remotion-icon.png +0 -0
  1764. package/templates/default/.windsurf/skills/remotion-upgrade/SKILL.md +31 -0
  1765. package/templates/default/.windsurf/skills/remotion-upgrade/agents/openai.yaml +7 -0
  1766. package/templates/default/.windsurf/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
  1767. package/templates/default/AGENTS.md +61 -0
  1768. package/templates/default/CLAUDE.md +49 -8
  1769. package/templates/default/openvidstudio-core/package.json +16 -12
  1770. package/templates/default/openvidstudio-core/scripts/gen-fonts.sh +31 -0
  1771. package/templates/default/openvidstudio-core/scripts/gen-sfx.sh +2 -20
  1772. package/templates/default/openvidstudio-core/src/ChecklistPanel.tsx +2 -5
  1773. package/templates/default/openvidstudio-core/src/CinematicScene.tsx +14 -6
  1774. package/templates/default/openvidstudio-core/src/CursorActor.tsx +59 -15
  1775. package/templates/default/openvidstudio-core/src/DirectedShot.tsx +294 -0
  1776. package/templates/default/openvidstudio-core/src/KineticText.tsx +84 -17
  1777. package/templates/default/openvidstudio-core/src/LayeredShot.tsx +80 -0
  1778. package/templates/default/openvidstudio-core/src/RepoCta.tsx +21 -15
  1779. package/templates/default/openvidstudio-core/src/TerminalReplay.tsx +2 -5
  1780. package/templates/default/openvidstudio-core/src/TransitionOverlay.tsx +194 -0
  1781. package/templates/default/openvidstudio-core/src/atmosphere.tsx +109 -0
  1782. package/templates/default/openvidstudio-core/src/camera.tsx +72 -12
  1783. package/templates/default/openvidstudio-core/src/designSystem.ts +179 -0
  1784. package/templates/default/openvidstudio-core/src/handheld.tsx +116 -0
  1785. package/templates/default/openvidstudio-core/src/index.ts +69 -7
  1786. package/templates/default/openvidstudio-core/src/kinetic.tsx +152 -0
  1787. package/templates/default/openvidstudio-core/src/localFonts.ts +67 -0
  1788. package/templates/default/openvidstudio-core/src/motion.ts +6 -0
  1789. package/templates/default/openvidstudio-core/src/motionBlur.tsx +35 -0
  1790. package/templates/default/openvidstudio-core/src/musicClock.tsx +171 -0
  1791. package/templates/default/openvidstudio-core/src/narrationWords.tsx +85 -0
  1792. package/templates/default/openvidstudio-core/src/panels.tsx +367 -0
  1793. package/templates/default/openvidstudio-core/src/pixel.tsx +285 -0
  1794. package/templates/default/openvidstudio-core/src/sfx.tsx +77 -30
  1795. package/templates/default/openvidstudio-core/src/shots.ts +114 -0
  1796. package/templates/default/openvidstudio-core/src/tokens.ts +51 -2
  1797. package/templates/default/openvidstudio-stem/package.json +41 -0
  1798. package/templates/default/openvidstudio-stem/public/fonts/SPACE-GROTESK-LICENSE.txt +93 -0
  1799. package/templates/default/openvidstudio-stem/public/fonts/space-grotesk-latin-500-normal.woff2 +0 -0
  1800. package/templates/default/openvidstudio-stem/public/fonts/space-grotesk-latin-700-normal.woff2 +0 -0
  1801. package/templates/default/openvidstudio-stem/public/mathjax/MATHJAX-LICENSE.txt +202 -0
  1802. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/accents-other.js +1 -0
  1803. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/accents.js +1 -0
  1804. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/arrows.js +1 -0
  1805. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/calligraphic.js +1 -0
  1806. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/cyrillic.js +1 -0
  1807. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/double-struck.js +1 -0
  1808. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/fraktur.js +1 -0
  1809. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/greek.js +1 -0
  1810. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/latin-b.js +1 -0
  1811. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/latin-bi.js +1 -0
  1812. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/latin-i.js +1 -0
  1813. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/latin-m.js +1 -0
  1814. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/latin.js +1 -0
  1815. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/math-other.js +1 -0
  1816. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/monospace.js +1 -0
  1817. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/phonetics.js +1 -0
  1818. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/sans-serif.js +1 -0
  1819. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/script.js +1 -0
  1820. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/shapes.js +1 -0
  1821. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/stretchy.js +1 -0
  1822. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/symbols-other.js +1 -0
  1823. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/symbols.js +1 -0
  1824. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/up-int.js +1 -0
  1825. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg/dynamic/variants.js +1 -0
  1826. package/templates/default/openvidstudio-stem/public/mathjax/fira/svg.js +1 -0
  1827. package/templates/default/openvidstudio-stem/public/mathjax/tex-svg-nofont.js +1 -0
  1828. package/templates/default/openvidstudio-stem/src/ArrayViz.tsx +118 -0
  1829. package/templates/default/openvidstudio-stem/src/Equation.tsx +132 -0
  1830. package/templates/default/openvidstudio-stem/src/FreeBody.tsx +152 -0
  1831. package/templates/default/openvidstudio-stem/src/Nova.tsx +104 -0
  1832. package/templates/default/openvidstudio-stem/src/Spark.tsx +69 -0
  1833. package/templates/default/openvidstudio-stem/src/designSystem.ts +76 -0
  1834. package/templates/default/openvidstudio-stem/src/glow.tsx +52 -0
  1835. package/templates/default/openvidstudio-stem/src/graph.tsx +331 -0
  1836. package/templates/default/openvidstudio-stem/src/index.ts +40 -0
  1837. package/templates/default/openvidstudio-stem/src/localFonts.ts +40 -0
  1838. package/templates/default/openvidstudio-stem/src/mathjax.ts +79 -0
  1839. package/templates/default/openvidstudio-stem/src/paths.ts +148 -0
  1840. package/templates/default/output/.gitignore +3 -0
  1841. package/templates/default/output/README.md +9 -0
  1842. package/templates/default/package.json +19 -13
  1843. package/templates/default/public/fonts/inter-latin-400-normal.woff2 +0 -0
  1844. package/templates/default/public/fonts/inter-latin-500-normal.woff2 +0 -0
  1845. package/templates/default/public/fonts/inter-latin-700-normal.woff2 +0 -0
  1846. package/templates/default/public/fonts/inter-latin-800-normal.woff2 +0 -0
  1847. package/templates/default/public/fonts/inter-latin-900-normal.woff2 +0 -0
  1848. package/templates/default/public/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
  1849. package/templates/default/public/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
  1850. package/templates/default/public/imported_audios/README.md +14 -0
  1851. package/templates/default/public/sfx/CREDITS.md +49 -0
  1852. package/templates/default/public/sfx/bong.wav +0 -0
  1853. package/templates/default/public/sfx/click.wav +0 -0
  1854. package/templates/default/public/sfx/click_soft.wav +0 -0
  1855. package/templates/default/public/sfx/drop.wav +0 -0
  1856. package/templates/default/public/sfx/typing-effect.mp3 +0 -0
  1857. package/templates/default/scripts/visual-regression.mjs +69 -0
  1858. package/templates/default/src/PreflightBenchmark.tsx +49 -0
  1859. package/templates/default/public/sfx/key_a.wav +0 -0
  1860. package/templates/default/public/sfx/key_b.wav +0 -0
  1861. package/templates/default/public/sfx/key_c.wav +0 -0
  1862. package/templates/default/public/sfx/key_enter.wav +0 -0
package/docs/API.md CHANGED
@@ -1,344 +1,1060 @@
1
- # API.md: everything `@openvidstudio/core` exports
2
-
3
- Written because the alternative is reading the library source. If you are an agent
4
- about to write a scene, this file has every prop you need and you should not have to
5
- open `packages/core/src`.
6
-
7
- Import everything from the package root:
8
-
9
- ```tsx
10
- import { CinematicScene, Layer, TerminalReplay, E, color } from "@openvidstudio/core";
11
- ```
12
-
13
- ---
14
-
15
- ## Scene wrapper
16
-
17
- ### `CinematicScene`
18
-
19
- Wraps every scene. Grain, vignette and colour grade are always on, and the camera rig
20
- lives inside it. Nothing renders outside one.
21
-
22
- | Prop | Type | Default | Notes |
23
- |---|---|---|---|
24
- | `camera` | `CamKeyframe[]` | required | At least two, or nothing moves |
25
- | `stageWidth` | `number` | `1920` | |
26
- | `stageHeight` | `number` | `1080` | |
27
- | `variant` | `"dark" \| "light"` | `"dark"` | |
28
- | `grain` | `number` | `0.05` | |
29
- | `vignette` | `number` | `0.32` | |
30
- | `overlay` | `ReactNode` | | Screen space, not camera transformed. Captions and title cards go here |
31
- | `children` | `ReactNode` | required | |
32
-
33
- **The overlay is not optional knowledge.** Anything inside `children` moves with the
34
- camera, so a caption placed there drifts off screen as the shot pushes in. Captions,
35
- title cards and dips belong in `overlay`.
36
-
37
- ---
38
-
39
- ## Camera
40
-
41
- ### `CamKeyframe`
42
-
43
- ```ts
44
- type CamKeyframe = {
45
- frame: number;
46
- x: number; // focal point on the stage, lands at frame centre
47
- y: number;
48
- scale: number; // 1 = stage px equals output px, 1.6 = 160% close up
49
- rotX?: number;
50
- rotY?: number;
51
- rotZ?: number;
52
- easing?: (t: number) => number; // easing INTO this keyframe
53
- };
54
- ```
55
-
56
- **The one thing that catches everyone.** The visible area is the stage divided by
57
- `scale`. At `scale: 1.4` only 1371x771 of a 1920x1080 stage is on screen, so content
58
- laid out at full stage width is cropped at the frame edge, and the render does not
59
- warn. The binding number is the scene's **highest** scale, not its first.
60
-
61
- Rules of thumb:
62
-
63
- - Real captures: 1.2 to 2.5. STYLE.md requires the camera to sit inside the UI
64
- rather than showing a flat full-screen grab.
65
- - Constructed panels: 1.04 to 1.15. They are already built at stage size, so they
66
- need a gentle push, not a zoom.
67
- - Run `validate_scenes` and it will tell you which scenes are cropping.
68
-
69
- ### `Layer`
70
-
71
- | Prop | Type | Default | Notes |
72
- |---|---|---|---|
73
- | `depth` | `number` | `0` | Parallax and blur. `0` is the focal plane |
74
- | `maxBlur` | `number` | `10` | Blur in px at `depth` 1 |
75
- | `style` | `CSSProperties` | | |
76
-
77
- One focal plane per shot. Put background elements on a non-zero depth so they blur.
78
-
79
- ### `CameraRig`, `useCamera`
80
-
81
- `CinematicScene` sets these up for you. Reach for them only when building a scene
82
- that needs the camera state directly.
83
-
84
- ---
85
-
86
- ## Motion
87
-
88
- ### `E` and `SPRING`
89
-
90
- ```ts
91
- E.cinematic // default move: slow out, soft landing
92
- E.whip // aggressive, for cuts and fast pans
93
- E.drift // gentle ambient motion inside a shot
94
- E.snap // snappy UI reaction, button press, blip reveal
95
-
96
- SPRING.soft SPRING.pop SPRING.heavy
97
- ```
98
-
99
- **Linear easing fails QC.** There is no linear preset on purpose.
100
-
101
- ### `tween`, `pop`, `jitter`, `staggerDelay`
102
-
103
- ```ts
104
- tween(frame, [fromFrame, toFrame], [fromValue, toValue], E.cinematic): number
105
- pop(frame, fps, atFrame): number // spring entrance scalar
106
- jitter(seed, n): number // deterministic 0..1, same every render
107
- staggerDelay(index, step = 3): number // 3 frames at 30fps is 100ms
108
- ```
109
-
110
- `jitter` is deterministic. Never use `Math.random()` in a scene: every frame renders
111
- in a separate process and random values differ per frame, which shows up as flicker.
112
-
113
- ---
114
-
115
- ## Text
116
-
117
- ### `TitleSlam`
118
-
119
- | Prop | Type | Default |
120
- |---|---|---|
121
- | `text` | `string` | required |
122
- | `at` | `number` | required |
123
- | `fontSize` | `number` | `120` |
124
- | `color` | `string` | `color.textPrimary` |
125
- | `glowColor` | `string` | |
126
- | `align` | `"center" \| "left"` | `"center"` |
127
- | `sfx` | `boolean` | `true` |
128
-
129
- Per word entrance. Renders nothing before `at`.
130
-
131
- ### `Caption`
132
-
133
- | Prop | Type | Default |
134
- |---|---|---|
135
- | `text` | `string` | required |
136
- | `at` | `number` | required |
137
- | `out` | `number` | |
138
- | `fontSize` | `number` | `34` |
139
-
140
- Sits 84px from the bottom. Put it in `overlay`, not `children`.
141
-
142
- ---
143
-
144
- ## Panels
145
-
146
- ### `BrowserFrame`
147
-
148
- | Prop | Type | Default |
149
- |---|---|---|
150
- | `url` | `string` | required |
151
- | `width` | `number` | `1360` |
152
- | `height` | `number` | `850` |
153
- | `dark` | `boolean` | `true` |
154
- | `children` | `ReactNode` | required |
155
-
156
- Chrome bar is 56px, so `height` must be the capture height plus 56 or the page is
157
- letterboxed. `scaffold_scene` computes this from the real PNG for you.
158
-
159
- Screenshots may only appear inside a `BrowserFrame`. Recordings and AI clips must
160
- not: wrapping generated footage in browser chrome makes it look like a captured
161
- page, which STYLE.md's provenance rule forbids.
162
-
163
- ### `CodePanel`
164
-
165
- | Prop | Type | Default |
166
- |---|---|---|
167
- | `title` | `string` | required |
168
- | `lines` | `CodeLine[]` | required |
169
- | `width` | `number` | `860` |
170
- | `height` | `number` | `640` |
171
- | `fontSize` | `number` | `22` |
172
- | `scroll` | `number` | `0` | px translateY, drive with a tween |
173
- | `highlight` | `number[]` | `[]` | 0-based line indexes |
174
-
175
- ```ts
176
- type Token = { t: string; c?: "kw" | "str" | "fn" | "cm" | "num" | "plain" };
177
- type CodeLine = Token[];
178
- ```
179
-
180
- ```tsx
181
- lines={[
182
- [{ t: "{", c: "plain" }],
183
- [{ t: ' "name"', c: "str" }, { t: ": ", c: "plain" }, { t: '"value"', c: "str" }],
184
- ]}
185
- ```
186
-
187
- ### `ChecklistPanel`
188
-
189
- | Prop | Type | Default |
190
- |---|---|---|
191
- | `title` | `string` | `"Community Standards"` |
192
- | `items` | `ChecklistItem[]` | required |
193
- | `width` | `number` | `760` |
194
- | `fontSize` | `number` | `27` |
195
- | `sfx` | `boolean` | `true` |
196
-
197
- ```ts
198
- type ChecklistItem = { label: string; flipAt?: number }; // omit flipAt to stay unchecked
199
- ```
200
-
201
- `flipAt` is an absolute scene frame.
202
-
203
- ### `TerminalReplay`
204
-
205
- | Prop | Type | Default |
206
- |---|---|---|
207
- | `steps` | `TermStep[]` | required |
208
- | `title` | `string` | `"Project"` |
209
- | `width` | `number` | `1280` |
210
- | `fontSize` | `number` | `26` |
211
- | `cps` | `number` | `16` | characters per second |
212
- | `sfx` | `boolean` | `true` |
213
- | `trailingPrompt` | `boolean` | `true` |
214
-
215
- ```ts
216
- type TermLine = { text: string; color?: string; glow?: boolean; bold?: boolean };
217
- type TermStep =
218
- | { type: "cmd"; text: string }
219
- | { type: "out"; lines: TermLine[]; stagger?: number; preDelay?: number }
220
- | { type: "pause"; frames: number };
221
- ```
222
-
223
- Terminals are always this component, never a screen recording of a terminal.
224
-
225
- `computeTerminalTimeline(steps, fps, cps)` returns `{ items, totalFrames }`, so camera
226
- keyframes can land frame-exact on content events rather than being guessed.
227
-
228
- ### `CursorActor`
229
-
230
- | Prop | Type | Default |
231
- |---|---|---|
232
- | `path` | `CursorKeyframe[]` | required |
233
- | `clicks` | `number[]` | `[]` | frames where a click ring fires |
234
- | `scale` | `number` | `1.6` |
235
- | `sfx` | `boolean` | `true` |
236
-
237
- ```ts
238
- type CursorKeyframe = { frame: number; x: number; y: number };
239
- ```
240
-
241
- Coordinates are stage space. Movement is eased automatically; never linear.
242
-
243
- ### `RepoCta`
244
-
245
- | Prop | Type | Default |
246
- |---|---|---|
247
- | `owner` | `string` | required |
248
- | `name` | `string` | required |
249
- | `description` | `string` | required |
250
- | `chips` | `string[]` | required |
251
- | `titleText` | `string` | required |
252
- | `durationInFrames` | `number` | `270` |
253
-
254
- A whole scene, not a panel. Do not wrap it in a `CinematicScene`; it brings its own.
255
- No star action by default.
256
-
257
- ---
258
-
259
- ## Sound
260
-
261
- All synthesized by `scripts/gen-sfx.sh` with ffmpeg, so a rendered video carries no
262
- third-party audio rights. Regenerate with `bash scripts/gen-sfx.sh`.
263
-
264
- | Component | Props | Use |
265
- |---|---|---|
266
- | `KeySound` | `at`, `seed?`, `volume?` (0.16) | One keystroke |
267
- | `TypingSfx` | `charFrames`, `volume?` | One key per typed character |
268
- | `EnterKey` | `at`, `volume?` (0.2) | End of a typed command |
269
- | `Click` | `at`, `volume?` | Cursor click |
270
- | `Whoosh` | `at`, `volume?` | Camera move or cut |
271
- | `Blip` | `at`, `volume?` (0.3) | UI reveal |
272
- | `SuccessChime` | `at`, `volume?` (0.35) | Completion |
273
- | `Bell` | `at`, `volume?` (0.3) | Heavier completion |
274
- | `MusicBed` | `durationInFrames`, `volume?` (0.16) | Ambient bed, loops |
275
-
276
- `TerminalReplay` emits its own typing sounds. Pass `sfx={false}` to silence it.
277
-
278
- Narration is separate: `generate_narration` writes
279
- `public/audio/vo/<beatId>.mp3` and `stitch_composition` picks it up.
280
-
281
- ---
282
-
283
- ## Look pass
284
-
285
- `FilmGrain`, `Vignette`, `ColorGrade`, `LookPass`. `CinematicScene` applies these, so
286
- reach for them only when compositing outside a scene.
287
-
288
- ---
289
-
290
- ## Tokens
291
-
292
- ```ts
293
- color.bg0 color.bg1 color.panel color.panelBorder
294
- color.textPrimary color.textSecondary
295
- color.accent color.accentAlt color.success color.warn color.danger
296
- color.lightBg color.lightCard color.lightShadow
297
-
298
- font.ui // "Inter"
299
- font.mono // "JetBrains Mono"
300
-
301
- radius.window // 12
302
- radius.card // 10
303
- radius.pill // 999
304
-
305
- glow(color, strength = 1) // returns { textShadow }
306
- panelShadow(dark = true) // returns a box-shadow string
307
- ```
308
-
309
- Use tokens rather than literal hex, so a per-video theme can override them.
310
-
311
- ---
312
-
313
- ## A scene, end to end
314
-
315
- ```tsx
316
- import React from "react";
317
- import { CinematicScene, Layer, TerminalReplay, Caption, color, E } from "@openvidstudio/core";
318
-
319
- export const Install: React.FC = () => (
320
- <CinematicScene
321
- camera={[
322
- { frame: 0, x: 960, y: 540, scale: 1.05, rotZ: -0.4 },
323
- { frame: 300, x: 960, y: 548, scale: 1.15, rotZ: 0.35, easing: E.drift },
324
- ]}
325
- overlay={<Caption text="one command" at={40} out={240} />}
326
- >
327
- <Layer depth={0}>
328
- <div style={{ position: "absolute", inset: 0, display: "flex",
329
- alignItems: "center", justifyContent: "center" }}>
330
- <TerminalReplay
331
- width={1400}
332
- steps={[
333
- { type: "cmd", text: "npx -y @openvidstudio/mcp-server" },
334
- { type: "out", lines: [{ text: "connected over stdio", color: color.success, glow: true }] },
335
- ]}
336
- />
337
- </div>
338
- </Layer>
339
- </CinematicScene>
340
- );
341
- ```
342
-
343
- Two keyframes so it moves, content centred inside the safe area, caption in the
344
- overlay, tokens instead of hex.
1
+ # API.md: everything `@openvidstudio/core` exports
2
+
3
+ Written because the alternative is reading the library source. If you are an agent
4
+ about to write a scene, this file has every prop you need and you should not have to
5
+ open `packages/core/src`.
6
+
7
+ These are **building blocks**, not a template. At peak and mid creative level the agent is
8
+ expected to compose scenes from them against the video's own `design.ts`, and to write its
9
+ own component when the brief's motif needs something the library does not have. Every
10
+ primitive below has a still, rendered for real by `scripts/build-api-gallery.mjs`. The MCP
11
+ tools are listed in [TOOLS.md](TOOLS.md).
12
+
13
+ Import everything from the package root:
14
+
15
+ ```tsx
16
+ import { CinematicScene, Layer, TerminalReplay, E, color } from "@openvidstudio/core";
17
+ ```
18
+
19
+ ---
20
+
21
+ ## Scene wrapper
22
+
23
+ ### `CinematicScene`
24
+
25
+ Wraps every scene. Grain, vignette and colour grade are always on, and the camera rig
26
+ lives inside it. Nothing renders outside one.
27
+
28
+ | Prop | Type | Default | Notes |
29
+ |---|---|---|---|
30
+ | `camera` | `CamKeyframe[]` | required | At least two, or nothing moves |
31
+ | `stageWidth` | `number` | composition width | 1920 in 16:9, 1080 in a 9:16 reel. Camera x/y are in stage px, so the centre is 960,540 or 540,960 |
32
+ | `stageHeight` | `number` | composition height | |
33
+ | `variant` | `"dark" \| "light"` | `"dark"` | |
34
+ | `grain` | `number` | `0.05` | |
35
+ | `vignette` | `number` | `0.32` | |
36
+ | `overlay` | `ReactNode` | | Screen space, not camera transformed. Captions and title cards go here |
37
+ | `children` | `ReactNode` | required | |
38
+
39
+ **The overlay is not optional knowledge.** Anything inside `children` moves with the
40
+ camera, so a caption placed there drifts off screen as the shot pushes in. Captions,
41
+ title cards and dips belong in `overlay`.
42
+
43
+ ---
44
+
45
+ ## Camera
46
+
47
+ ### `CamKeyframe`
48
+
49
+ ```ts
50
+ type CamKeyframe = {
51
+ frame: number;
52
+ x: number; // focal point on the stage, lands at frame centre
53
+ y: number;
54
+ scale: number; // 1 = stage px equals output px, 1.6 = 160% close up
55
+ rotX?: number;
56
+ rotY?: number;
57
+ rotZ?: number;
58
+ easing?: (t: number) => number; // easing INTO this keyframe
59
+ };
60
+ ```
61
+
62
+ **The one thing that catches everyone.** The visible area is the stage divided by
63
+ `scale`. At `scale: 1.4` only 1371x771 of a 1920x1080 stage is on screen, so content
64
+ laid out at full stage width is cropped at the frame edge, and the render does not
65
+ warn. The binding number is the scene's **highest** scale, not its first.
66
+
67
+ Rules of thumb:
68
+
69
+ - Real captures with text: 1.05 to 1.6. STYLE.md requires the camera to sit inside the UI
70
+ rather than showing a flat full-screen grab, but past 1.6 the product text goes soft.
71
+ Captures without text to read can push further.
72
+ - Constructed panels: 1.04 to 1.15. They are already built at stage size, so they
73
+ need a gentle push, not a zoom.
74
+ - Run `validate_scenes` and it will tell you which scenes are cropping. That is a read of
75
+ the source. Pass `render: true` (after `stitch_composition`) to measure the real rendered
76
+ frames instead: cropped text, text below the design system's minimum size, on-screen text
77
+ that takes longer to read than the beat lasts (3 words/sec), and beats that never change.
78
+
79
+ ### `Layer`
80
+
81
+ | Prop | Type | Default | Notes |
82
+ |---|---|---|---|
83
+ | `depth` | `number` | `0` | Distance from the focal plane. `0` is the focal plane, positive is behind it, negative is in front |
84
+ | `maxBlur` | `number` | `10` | Blur in px at `|depth|` 1, scaled by `|depth|`. `0` turns the depth blur off |
85
+ | `style` | `CSSProperties` | | |
86
+
87
+ Depth is a place in space. A layer is moved back (or forward) by `depth * 170` px and scaled
88
+ about the stage centre so it looks the same size, so with the camera still on the stage centre
89
+ every depth shows the same picture. When the camera pans, the rig's perspective does the rest:
90
+ a layer at depth 1 moves 0.89 as far as the focal plane, depth 2 about 0.80, and a layer at
91
+ depth -1 moves 1.14 times as far. Depth also orders layers: one behind stays behind however the
92
+ JSX is ordered. A Layer has to be a direct child of the rig's stage (a plain wrapper `div`
93
+ in between flattens the depth).
94
+
95
+ One focal plane per shot. Blur on a layer softens any text in it, so pass `maxBlur={0}` to a
96
+ layer that carries text.
97
+
98
+ ### `CameraRig`, `useCamera`
99
+
100
+ `CinematicScene` sets these up for you. Reach for them only when building a scene
101
+ that needs the camera state directly.
102
+
103
+ `CameraRig` also takes `viewportWidth` and `viewportHeight`, the size of the window the camera
104
+ looks through (default: the composition's size). A rig nested in a smaller box, such as
105
+ `DirectedShot`, passes that box's size. `resolveCamera(keyframes, frame)` returns the camera
106
+ state the rig renders at a frame, for code that needs to know where the camera is without
107
+ rendering.
108
+
109
+ `useCamera()` returns the camera state plus `stageWidth` and `stageHeight` (type `CameraInfo`), or
110
+ `null` outside a rig. `projectToScreen(camera, viewportWidth, viewportHeight, x, y)` returns where
111
+ a stage point lands on screen, through the same rotation, scale and perspective the rig applies.
112
+
113
+ ### `DirectedShot`
114
+
115
+ A nested camera rig that turns a flat capture into a directed move: a push-in on one point,
116
+ an optional tilt, optional depth of field and motion blur, handheld sway, and a cursor, all in
117
+ the capture's own pixel space. It owns its own `CameraRig`, so it sits inside a `CinematicScene`
118
+ (or anywhere) without touching that scene's camera.
119
+
120
+ ```tsx
121
+ <DirectedShot
122
+ src={staticFile("images/dashboard.png")}
123
+ focus={{ x: 1560, y: 280 }}
124
+ push={1.9}
125
+ tilt={{ y: -4, x: 2 }}
126
+ move={{ from: 0, to: 70 }}
127
+ cursor={{ path: [{ frame: 0, x: 900, y: 600 }, { frame: 55, x: 1500, y: 300 }], clicks: [60] }}
128
+ />
129
+ ```
130
+
131
+ | Prop | Type | Default | Notes |
132
+ |---|---|---|---|
133
+ | `src` | `string` | | Image URL, usually `staticFile("images/<beat>.png")`. Use `children` for anything else |
134
+ | `focus` | `{ x, y }` | the middle | The point in the capture, in capture pixels, the move pushes into |
135
+ | `push` | `number` | `1.4` | End zoom relative to fitting the whole capture in the box. `1` holds the full frame. Keep it at or under `1.6` when the capture has text |
136
+ | `shot` | `ShotName` | | A named move (see Shots below). It supplies zoom, start and end position, tilt, easing and length; `push`, `tilt` and `move` given explicitly win |
137
+ | `tilt` | `{ x?, y?, z? }` | | Rotation in degrees at the end of the move. 2 to 6 reads as depth |
138
+ | `move` | `{ from?, to?, easing? }` | `0` to `90` | Frames, local to the scene. Defaults to `E.cinematic`; a `shot` sets its own length |
139
+ | `depthOfField` | `number` | `0` | Blur in px away from the focal point. Off by default: blur smears product text. Never use it on a shot whose text has to be read |
140
+ | `protect` | `{ x, y, width, height }[]` | | Regions of the capture, in capture pixels, that stay sharp under `depthOfField`. Hard edged, and they follow the camera through a push and a tilt |
141
+ | `rackTo` | `{ x, y }` | | Rack focus: the sharp region slides from `focus` to this point, in capture pixels, across the move |
142
+ | `blur` | `boolean \| { shutterAngle?, samples? }` | on for `whip`, else off | Motion blur while the camera moves, and only then. `true` is a 180 degree shutter with 8 samples. Costs `samples` times the render work for those frames |
143
+ | `handheld` | `number` | `0` | Handheld sway, the largest drift in px at 1080p. 3 to 8 reads as a person holding the camera |
144
+ | `shake` | `number[]` | | Local frames of impacts. The shot jolts 12px (at 1080p) on each and settles within about 24 frames |
145
+ | `cursor` | `{ path, clicks? }` | | A `CursorActor` path and click frames, in capture pixels. The cursor sits above the blur layers and is never blurred |
146
+ | `captureWidth`, `captureHeight` | `number` | `1920`, `1080` | The capture's natural size |
147
+ | `width`, `height` | `number` | the composition | The box the shot fills |
148
+
149
+ The move starts on the whole capture and ends pushed in on `focus`. The end centre is clamped
150
+ so the camera never leaves the capture (empty stage reads as a mistake). Sway and shake move the
151
+ whole shot, cursor included, and the shot is scaled up slightly so the shift never shows an edge;
152
+ with neither set, nothing extra is rendered.
153
+
154
+ `directedKeyframes({ W, H, captureWidth, captureHeight, focus?, push?, tilt?, move?, shot? })`
155
+ returns the two camera keyframes a `DirectedShot` renders with, so `resolveCamera` can read the
156
+ camera at any frame without mounting the component.
157
+
158
+ | Start of the move | End of the move |
159
+ |---|---|
160
+ | ![DirectedShot at frame 0: the whole capture](img/api/directedshot-start.png) | ![DirectedShot at the end of the move: pushed in on the Done column and tilted, with its text sharp and the cursor on the target](img/api/directedshot-end.png) |
161
+
162
+ ### Shots: `resolveShot`, `SHOT_NAMES`
163
+
164
+ `<DirectedShot shot="whip" />` applies a named move. Each is plain data from a pure function, so a
165
+ scene can read it too: `resolveShot(name, { focus?, push?, captureWidth?, captureHeight? })` returns
166
+ `{ startScale, endScale, startFocus, endFocus, startTilt, tilt, easing, moveFrames, blur }`
167
+ (zoom relative to fitting the whole capture, camera positions in capture pixels, tilt in degrees).
168
+ `push` overrides the preset's zoom.
169
+
170
+ | Shot | The move | Zoom | Frames |
171
+ |---|---|---|---|
172
+ | `pushIn` | From the whole capture in to the focus. The default workhorse | 1 to 1.4 | 90 |
173
+ | `pullOut` | Starts close on the focus and backs out to the whole capture, to reveal context | 1.5 to 1 | 90 |
174
+ | `pan` | Same zoom throughout; the camera slides sideways onto the focus with a slight yaw | 1.35 | 75 |
175
+ | `whip` | A fast slide in from the side, `E.whip` easing, motion blur on | 1.5 | 18 |
176
+ | `orbit` | The camera swings around the focus: `rotY` goes from -5 to +5 degrees | 1.15 to 1.35 | 120 |
177
+ | `dutch` | A push that rolls the horizon off level, 3.5 degrees | 1 to 1.35 | 90 |
178
+ | `hold` | The whole capture with a 2% creep so it is never dead. For action inside the frame: a cursor, typing | 1 to 1.02 | 60 |
179
+ | `drift` | Ambient: a long, small move toward the focus with a sub-degree wander in the tilt | 1 to 1.06 | 150 |
180
+
181
+ Each move, caught half way through (the dashboard capture, focus on the Done column):
182
+
183
+ | | | |
184
+ |---|---|---|
185
+ | ![pushIn half way: the board partly zoomed toward the Done column](img/api/shot-pushin.png) `pushIn` | ![pullOut half way: backing away from the Done column to reveal the board](img/api/shot-pullout.png) `pullOut` | ![pan half way: the camera sliding sideways onto the Done column with a slight yaw](img/api/shot-pan.png) `pan` |
186
+ | ![whip mid move: the board streaked sideways by motion blur](img/api/shot-whip.png) `whip` | ![orbit half way: the board seen from a slight angle, swinging around the Done column](img/api/shot-orbit.png) `orbit` | ![dutch half way: a push in with the horizon rolled off level](img/api/shot-dutch.png) `dutch` |
187
+
188
+ ### `LayeredShot`
189
+
190
+ ![LayeredShot mid push and tilt: the Done column's first card floats in front of the board and has slid against it](img/api/layeredshot.png)
191
+
192
+ A `DirectedShot` whose picture is a stack of layers instead of one flat image: a background plus
193
+ the elements that float above it, each at its own depth, so a push and a tilt make them slide
194
+ against each other. At rest the stack composites to the same picture as the flat capture. Takes
195
+ every `DirectedShot` prop except `src` and `children`, plus:
196
+
197
+ | Prop | Type | Default | Notes |
198
+ |---|---|---|---|
199
+ | `manifest` | `{ width, height, background, layers }` | | The capture's size, the flat background URL and the layers |
200
+ | `background`, `layers` | `string`, `ShotLayer[]` | | Instead of `manifest`; give `captureWidth` and `captureHeight` too |
201
+ | `backgroundDepth` | `number` | `1` | Depth of the background plane, a notch behind the focal plane |
202
+ | `maxBlur` | `number` | `0` | Blur per unit of depth, in px. Off, because the layers are real UI |
203
+
204
+ ```ts
205
+ type ShotLayer = { src: string; x: number; y: number; width: number; height: number; depth: number };
206
+ // x, y, width, height in capture pixels; depth > 0 is behind the focal plane, < 0 in front
207
+ ```
208
+
209
+ ### `MotionBlur`
210
+
211
+ ![A rounded blue card with two text lines, moving fast to the right, smeared into a streak at its leading and trailing edges](img/api/motionblur.png)
212
+
213
+ Wraps children in Remotion's `CameraMotionBlur`, but only for the frames of a window. Outside it the
214
+ children render directly, as if the wrapper were not there.
215
+
216
+ | Prop | Type | Default | Notes |
217
+ |---|---|---|---|
218
+ | `from` | `number` | `0` | First frame of the window, local to the scene |
219
+ | `to` | `number` | never | Last frame of the window, inclusive |
220
+ | `shutterAngle` | `number` | `180` | Degrees, 0 to 360. Larger smears more |
221
+ | `samples` | `number` | `8` | Sub-frame renders blended. More is smoother and slower |
222
+
223
+ ### Handheld and impact shake
224
+
225
+ Small deterministic camera motion, as pure functions and hooks. `DirectedShot` uses them for its
226
+ `handheld` and `shake` props; use them directly to move anything else.
227
+
228
+ ```ts
229
+ handheldOffset(frame, amount, seed = 1): { x, y, rot } // px and degrees; |x|, |y| <= amount
230
+ useHandheld(amount, { holds?, seed?, ramp? }): { x, y, rot } // scaled to the composition height
231
+ impactShake(frame, impactFrames, { amplitude = 12, decay = 8 }): { x, y, rot }
232
+ useImpactShake(impactFrames, { amplitude?, decay? }): { x, y, rot }
233
+ ```
234
+
235
+ Sway is two unrelated sines per axis, so the path does not repeat. `holds` is a list of
236
+ `[from, to]` frame windows where `useHandheld` is exactly zero (the camera is set down while a
237
+ cursor clicks or a block of text is read), easing in and out over `ramp` frames (default 6).
238
+ Shake is exactly zero before an impact frame, at full `amplitude` on it, and below 5% of it
239
+ after `3 * decay` frames. All of it is a function of the frame, never `Math.random()`.
240
+
241
+ ---
242
+
243
+ ## Motion
244
+
245
+ ### `E` and `SPRING`
246
+
247
+ ```ts
248
+ E.cinematic // default move: slow out, soft landing
249
+ E.whip // aggressive, for cuts and fast pans
250
+ E.drift // gentle ambient motion inside a shot
251
+ E.snap // snappy UI reaction, button press, blip reveal
252
+ E.sine // symmetric ease in and out along a sine: calm, even, no hard push
253
+ E.expo // symmetric ease in and out along an exponential: still at the ends, fast through the middle
254
+
255
+ SPRING.soft SPRING.pop SPRING.heavy
256
+ ```
257
+
258
+ **Linear easing fails QC.** There is no linear preset on purpose.
259
+
260
+ ### `tween`, `pop`, `jitter`, `staggerDelay`
261
+
262
+ ```ts
263
+ tween(frame, [fromFrame, toFrame], [fromValue, toValue], E.cinematic): number
264
+ pop(frame, fps, atFrame): number // spring entrance scalar
265
+ jitter(seed, n): number // deterministic 0..1, same every render
266
+ staggerDelay(index, step = 3): number // 3 frames at 30fps is 100ms
267
+ ```
268
+
269
+ `jitter` is deterministic. Never use `Math.random()` in a scene: every frame renders
270
+ in a separate process and random values differ per frame, which shows up as flicker.
271
+
272
+ ---
273
+
274
+ ## Text
275
+
276
+ ### `TitleSlam`
277
+
278
+ | Prop | Type | Default |
279
+ |---|---|---|
280
+ | `text` | `string` | required |
281
+ | `at` | `number` | required |
282
+ | `fontSize` | `number` | `120` |
283
+ | `color` | `string` | `color.textPrimary` |
284
+ | `glowColor` | `string` | |
285
+ | `align` | `"center" \| "left"` | `"center"` |
286
+ | `sfx` | `boolean` | `false` |
287
+
288
+ Per word entrance. Renders nothing before `at`. `sfx` adds a blip per word; it is off by
289
+ default because a blip every few frames sounds like a ticking clock under a title.
290
+
291
+ ### `Caption`
292
+
293
+ | Prop | Type | Default |
294
+ |---|---|---|
295
+ | `text` | `string` | required |
296
+ | `at` | `number` | required |
297
+ | `out` | `number` | |
298
+ | `fontSize` | `number` | `34` |
299
+ | `position` | `"bottom" \| "top" \| "left" \| "right" \| "auto"` | `"bottom"` |
300
+ | `avoid` | `{ x, y, width, height }` | |
301
+
302
+ Sits 84px from the chosen edge. Put it in `overlay`, not `children`. Vary `position` from scene to
303
+ scene; the same spot in every scene covers the same part of the product every time.
304
+
305
+ - `"auto"` with `avoid` (the part of the frame that carries the product, in composition pixels)
306
+ takes the edge with the most free room beside that rect, counting only edges where the card fits.
307
+ Ties go bottom, top, right, left. With no `avoid` it stays at the bottom.
308
+ - The reveal is always finished within 8 frames of `at`, however many words there are: the
309
+ per-word stagger shrinks as the caption grows (2 frames for short ones), so no frame a reviewer
310
+ lands on shows a half-typed line.
311
+ - The card is at most `min(1400, 0.9 * composition width)` wide, so it fits a 1080 wide
312
+ vertical frame. `"left"` and `"right"` use a column of `min(640, 0.34 * width)`.
313
+ - `captionLayout(position, avoid, width, height, fontSize)` returns `{ side, maxWidth }`, the
314
+ rule above as a function.
315
+
316
+ ---
317
+
318
+ ## Panels
319
+
320
+ ### `BrowserFrame`
321
+
322
+ | Prop | Type | Default |
323
+ |---|---|---|
324
+ | `url` | `string` | required |
325
+ | `width` | `number` | `1360` |
326
+ | `height` | `number` | `850` |
327
+ | `dark` | `boolean` | `true` |
328
+ | `children` | `ReactNode` | required |
329
+
330
+ Chrome bar is 56px, so `height` must be the capture height plus 56 or the page is
331
+ letterboxed. `scaffold_scene` computes this from the real PNG for you.
332
+
333
+ Screenshots may only appear inside a `BrowserFrame`. Recordings and AI clips must
334
+ not: wrapping generated footage in browser chrome makes it look like a captured
335
+ page, which STYLE.md's provenance rule forbids.
336
+
337
+ ### `CodePanel`
338
+
339
+ | Prop | Type | Default |
340
+ |---|---|---|
341
+ | `title` | `string` | required |
342
+ | `lines` | `CodeLine[]` | required |
343
+ | `width` | `number` | `860` |
344
+ | `height` | `number` | `640` |
345
+ | `fontSize` | `number` | `22` |
346
+ | `scroll` | `number` | `0` | px translateY, drive with a tween |
347
+ | `highlight` | `number[]` | `[]` | 0-based line indexes |
348
+
349
+ ```ts
350
+ type Token = { t: string; c?: "kw" | "str" | "fn" | "cm" | "num" | "plain" };
351
+ type CodeLine = Token[];
352
+ ```
353
+
354
+ ```tsx
355
+ lines={[
356
+ [{ t: "{", c: "plain" }],
357
+ [{ t: ' "name"', c: "str" }, { t: ": ", c: "plain" }, { t: '"value"', c: "str" }],
358
+ ]}
359
+ ```
360
+
361
+ ### `ChecklistPanel`
362
+
363
+ | Prop | Type | Default |
364
+ |---|---|---|
365
+ | `title` | `string` | `"Community Standards"` |
366
+ | `items` | `ChecklistItem[]` | required |
367
+ | `width` | `number` | `760` |
368
+ | `fontSize` | `number` | `27` |
369
+ | `sfx` | `boolean` | `true` |
370
+
371
+ ```ts
372
+ type ChecklistItem = { label: string; flipAt?: number }; // omit flipAt to stay unchecked
373
+ ```
374
+
375
+ `flipAt` is an absolute scene frame.
376
+
377
+ ### `TerminalReplay`
378
+
379
+ | Prop | Type | Default |
380
+ |---|---|---|
381
+ | `steps` | `TermStep[]` | required |
382
+ | `title` | `string` | `"Project"` |
383
+ | `width` | `number` | `1280` |
384
+ | `fontSize` | `number` | `26` |
385
+ | `cps` | `number` | `16` | characters per second |
386
+ | `sfx` | `boolean` | `true` |
387
+ | `trailingPrompt` | `boolean` | `true` |
388
+
389
+ ```ts
390
+ type TermLine = { text: string; color?: string; glow?: boolean; bold?: boolean };
391
+ type TermStep =
392
+ | { type: "cmd"; text: string }
393
+ | { type: "out"; lines: TermLine[]; stagger?: number; preDelay?: number }
394
+ | { type: "pause"; frames: number };
395
+ ```
396
+
397
+ Terminals are always this component, never a screen recording of a terminal.
398
+
399
+ `computeTerminalTimeline(steps, fps, cps)` returns `{ items, totalFrames }`, so camera
400
+ keyframes can land frame-exact on content events rather than being guessed.
401
+
402
+ ### `CursorActor`
403
+
404
+ | Prop | Type | Default |
405
+ |---|---|---|
406
+ | `path` | `CursorKeyframe[]` | required |
407
+ | `clicks` | `number[]` | `[]` | frames where a click ring fires |
408
+ | `scale` | `number` | `1.6` |
409
+ | `sfx` | `boolean` | `true` |
410
+
411
+ ```ts
412
+ type CursorKeyframe = { frame: number; x: number; y: number };
413
+ ```
414
+
415
+ Coordinates are stage space. Movement is eased automatically; never linear. Each segment bows
416
+ sideways by up to 6% of its length (the side alternates from one segment to the next) and swings
417
+ 2.5% of its length past the target before settling, so the cursor moves like a hand. Progress
418
+ along the segment still follows `E.cinematic`, and on a keyframe's own frame the cursor is exactly
419
+ on the keyframe, so a click ring lands on its target. `cursorPositionAt(path, frame)` returns the
420
+ position `CursorActor` draws at a frame.
421
+
422
+ ### `RepoCta`
423
+
424
+ | Prop | Type | Default |
425
+ |---|---|---|
426
+ | `owner` | `string` | required |
427
+ | `name` | `string` | required |
428
+ | `description` | `string` | required |
429
+ | `chips` | `string[]` | required |
430
+ | `titleText` | `string` | required |
431
+ | `durationInFrames` | `number` | `270` |
432
+
433
+ A whole scene, not a panel. Do not wrap it in a `CinematicScene`; it brings its own.
434
+ No star action by default. Laid out from the composition size, so the card is centred in
435
+ 1920x1080 and in a 1080x1920 reel.
436
+
437
+ ---
438
+
439
+ ## Sound
440
+
441
+ Synthesized by `scripts/gen-sfx.sh` with ffmpeg, except `typing-effect.mp3`, a
442
+ copyright-free recording, so a rendered video carries no third-party audio rights.
443
+ Regenerate the synthesized files with `bash scripts/gen-sfx.sh`.
444
+
445
+ | Component | Props | Use |
446
+ |---|---|---|
447
+ | `TypingSfx` | `charFrames`, `volume?` (1) | The typing recording, played across each typed run |
448
+ | `Click` | `at`, `volume?` | Cursor click |
449
+ | `Whoosh` | `at`, `volume?` | Camera move or cut |
450
+ | `Blip` | `at`, `volume?` (0.3) | UI reveal |
451
+ | `SuccessChime` | `at`, `volume?` (0.35) | Completion |
452
+ | `Bell` | `at`, `volume?` (0.3) | Heavier completion |
453
+ | `MusicBed` | `durationInFrames`, `volume?` (0.16) | Ambient bed, loops |
454
+
455
+ `TerminalReplay` emits its own typing sounds. Pass `sfx={false}` to silence it.
456
+
457
+ Narration is separate: `generate_narration` writes
458
+ `public/audio/vo/<beatId>.mp3` and `stitch_composition` picks it up.
459
+
460
+ ---
461
+
462
+ ## Music clock
463
+
464
+ The score's grid as scene-local frames, so a cut, a reveal or a glow can land on the music.
465
+ `stitch_composition` copies the bed's `<stem>.cues.json` next to the composition and mounts
466
+ `MusicClockProvider` with each beat's start frame; a scene just asks for its own beat.
467
+
468
+ ```tsx
469
+ const clock = useMusicClock("reveal"); // the beat id, exactly as in beats.json
470
+ const hit = clock.at(8); // first downbeat of bar 8, as a frame local to this scene
471
+ const glow = clock.beatPulse(); // 1 on each beat, decaying to 0 before the next
472
+ if (clock.onDownbeat()) { /* a bar starts on this frame */ }
473
+ ```
474
+
475
+ ![useMusicClock: on a downbeat the pulse is full](img/api/musicclock-downbeat.png)
476
+ ![...three frames later it has decayed](img/api/musicclock-decay.png)
477
+
478
+ Bars count from 0 at the start of the track, in 4/4 (what `compose_score` writes), and the bed
479
+ is mounted at composition frame 0. `useMusicClock(beatId)` must be called inside that beat's
480
+ scene, because the pulse helpers read the scene's current frame.
481
+
482
+ | Member | Notes |
483
+ |---|---|
484
+ | `at(bar, beat?)` | Scene-local frame of that bar and beat (`beat` may be fractional: `at(8, 2.5)`). Rounded to the nearest frame; negative when it is before the scene starts |
485
+ | `position(frame)` | `{ bar, beat }` a scene-local frame falls in |
486
+ | `impact(label)` | Scene-local frame of the score's impact point with that label, or `null` |
487
+ | `sectionAt(frame)` | The section label a frame falls in, or `null` without sections |
488
+ | `beatPulse({ decay?, strongOnly? })` | 1 on a beat, decaying to 0 over `decay` (0.6) of a beat; `strongOnly` pulses on downbeats only |
489
+ | `onBeat()`, `onDownbeat()` | True on the frame a beat or a bar starts, using the same rounding as `at` |
490
+ | `available`, `bpm`, `framesPerBeat`, `framesPerBar` | `available` is false when the bed has no cues file; the clock then runs a 120 bpm grid so a scene still renders |
491
+
492
+ `createMusicClock({ cues, fps, sceneStartFrame, frame })` is the pure core, for tests.
493
+ `plan_beats` with `snapToBars` plans beat boundaries onto the same downbeats.
494
+
495
+ ---
496
+
497
+ ## Narration words
498
+
499
+ When each word of a beat's narration is said, for a scene that points at the word being spoken.
500
+ `generate_narration` (edge-tts engine) writes `public/audio/vo/<beatId>.words.json`, `stitch_composition`
501
+ copies it next to the composition and mounts it with `NarrationWordsProvider`. See NARRATION.md.
502
+
503
+ ### `useNarrationWords(beatId)`
504
+
505
+ Call it inside the scene of beat `beatId`.
506
+
507
+ | Member | Type | Notes |
508
+ |---|---|---|
509
+ | `available` | `boolean` | False when the beat has no timings (another engine, or none generated) |
510
+ | `words` | `{ word, startMs, endMs }[]` | In the clip as written |
511
+ | `wordAt(frame?)` | `{ index, word, speaking } \| null` | The word being said at a scene-local frame (default: the current one), or in a pause the last one said (`speaking: false`). `null` before the first word |
512
+ | `frameOfWord(index)` | `number \| null` | The scene-local frame word `index` starts on, rounded to the nearest frame |
513
+
514
+ `createNarrationWords(words, fps, frame?)` is the same thing without Remotion, for tests.
515
+
516
+ ---
517
+
518
+ ## Look pass
519
+
520
+ `FilmGrain`, `Vignette`, `ColorGrade`, `LookPass`. `CinematicScene` applies these, so
521
+ reach for them only when compositing outside a scene.
522
+
523
+ ---
524
+
525
+ ## Tokens
526
+
527
+ ```ts
528
+ color.bg0 color.bg1 color.panel color.panelBorder
529
+ color.textPrimary color.textSecondary
530
+ color.accent color.accentAlt color.success color.warn color.danger
531
+ color.lightBg color.lightCard color.lightShadow
532
+
533
+ font.ui // "Inter"
534
+ font.mono // "JetBrains Mono"
535
+
536
+ radius.window // 12
537
+ radius.card // 10
538
+ radius.pill // 999
539
+
540
+ glow(color, strength = 1) // returns { textShadow }
541
+ panelShadow(dark = true) // returns a box-shadow string
542
+ ```
543
+
544
+ Use tokens rather than literal hex, so a per-video theme can override them.
545
+
546
+ ---
547
+
548
+ ## Design system
549
+
550
+ ### `defineDesignSystem(overrides?)`
551
+
552
+ Builds one video's `DesignSystem`: palette, type scale, layout grid, a signature
553
+ motif, a motion personality, a transition vocabulary and a texture pass. Call it
554
+ once in that video's own `src/videos/<name>/design.ts`:
555
+
556
+ ```ts
557
+ export const design = defineDesignSystem({
558
+ motif: "pixel-grid",
559
+ motion: { cameraEnergy: "energetic" },
560
+ });
561
+ ```
562
+
563
+ Anything omitted falls back to the current brand tokens (`color`/`font`, already
564
+ brand-applied if `extract_brand` ran) and STYLE.md's own defaults. The result is a
565
+ plain object, frozen at the point `design.ts` is imported, not a live binding: a
566
+ later `applyBrand` call never reaches into an already-built `DesignSystem`.
567
+
568
+ | Field | Type | Notes |
569
+ |---|---|---|
570
+ | `color`, `font` | tokens | Seeded from the current brand tokens |
571
+ | `typeScale` | `{ display, headline, body, mono: [min, max] }` | px |
572
+ | `grid` | `{ marginX, marginTop, marginBottom }` | px. Default 150 / 130 / 110 at 1920x1080; scaled to `stage` when one is passed (84 / 231 / 196 at 1080x1920). An explicit `grid` wins |
573
+ | `stage` (input only) | `{ width, height }` | The frame the video renders at, default 1920x1080. Pass `{ width: 1080, height: 1920 }` in a native vertical project. Not stored on the result |
574
+ | `motif` | `"pixel-grid" \| "rounded-soft" \| "geometric" \| "editorial" \| "void-spark"` | Default `"rounded-soft"`. `"void-spark"` is Supernova mode's |
575
+ | `motion` | `{ easing, staggerMs, cameraEnergy, cutRhythmSeconds }` | `easing` names an `E.*` preset by string, not a function reference, so the system stays JSON-serializable |
576
+ | `transitions` | `string[]` | Preference order, default `["cut", "whip", "fade", "push", "wipe", "light-leak"]` |
577
+ | `texture` | `{ grainOpacity, vignetteStrength }` | STYLE.md's default ranges |
578
+
579
+ ### `contrastRatio(hexA, hexB)`
580
+
581
+ WCAG relative-luminance contrast ratio, 1 (no contrast) to 21 (black on white).
582
+ Reach for it directly when a bespoke scene picks a text colour against a
583
+ background the design system doesn't already pair.
584
+
585
+ Several primitives below take an optional `design?: DesignSystem` prop: pass
586
+ that video's own `design` export and they read palette, motif and motion from
587
+ it instead of the package's global tokens.
588
+
589
+ ---
590
+
591
+ ## Kinetic text
592
+
593
+ ### `Words`
594
+
595
+ ![Words: a masked word reveal with one accented word](img/api/words.png)
596
+
597
+ Per-word masked reveal. Never a plain opacity fade (STYLE.md): each word clips
598
+ in from below on its own stagger, and clips back out the same way if `out` is
599
+ set.
600
+
601
+ | Prop | Type | Default | Notes |
602
+ |---|---|---|---|
603
+ | `text` | `string` | required | Split on spaces, one reveal per word |
604
+ | `at` | `number` | required | Frame the first word starts |
605
+ | `out` | `number` | | Frame the exit starts. Omit to leave the line on screen |
606
+ | `size` | `number` | `72` | |
607
+ | `weight` | `number` | `800` | |
608
+ | `color` | `string` | `color.textPrimary` | |
609
+ | `accent` | `Record<number, string>` | `{}` | Word index to accent colour, for one word landing harder than the rest |
610
+ | `stagger` | `number` | | Frames between word starts. Explicit value always wins |
611
+ | `design` | `DesignSystem` | | Without `stagger`, reads `design.motion.staggerMs` at the composition's fps; with neither, falls back to 3 frames |
612
+ | `align` | `"left" \| "center" \| "right"` | `"left"` | |
613
+ | `font`, `tracking`, `lineHeight`, `maxWidth`, `glow`, `italic`, `style` | | | |
614
+
615
+ ### `useTyped(text, at, cps?)`
616
+
617
+ Typewriter hook. Returns `{ visible, done, charFrames, end }`: the visible slice
618
+ of `text` at the current frame, plus the per-character reveal frames, so a
619
+ caller can drive `TypingSfx` off the exact same numbers the visible text uses.
620
+ `cps` defaults to 22 characters per second.
621
+
622
+ ### `Caret`
623
+
624
+ ![useTyped and Caret: a typed command with a blinking caret in a Window](img/api/typed-caret.png)
625
+
626
+ | Prop | Type | Default |
627
+ |---|---|---|
628
+ | `h` | `number` | `40` |
629
+ | `color` | `string` | `color.textPrimary` |
630
+ | `blink` | `boolean` | `true` |
631
+
632
+ Blinking text caret, sized to a line height. Pair with `useTyped` for a typed line.
633
+
634
+ ---
635
+
636
+ ## Pixel-grid family
637
+
638
+ ### `DotText`
639
+
640
+ ![DotText: 5x7 dot-matrix text](img/api/dottext.png)
641
+
642
+ 5x7 dot-matrix text, built pixel by pixel rather than drawn with a font file.
643
+
644
+ | Prop | Type | Default | Notes |
645
+ |---|---|---|---|
646
+ | `text` | `string` | required | Uppercased; unsupported characters render as a blank cell |
647
+ | `at` | `number` | required | |
648
+ | `px` | `number` | `14` | px per cell |
649
+ | `colors` | `string[] \| "cycle"` | `"cycle"` | `"cycle"` uses the token/design accent, accentAlt, success, warn four |
650
+ | `solid` | `string` | | Overrides `colors` with one flat colour for every pixel |
651
+ | `build` | `"scatter" \| "wipe" \| "none"` | `"wipe"` | |
652
+ | `out` | `number` | | Frame the exit starts |
653
+ | `glow` | `number` | `0.6` | |
654
+ | `seed` | `number` | `3` | |
655
+
656
+ ### `PixelLogo`
657
+
658
+ ![PixelLogo: a four-square mark assembled from its own rects](img/api/pixellogo.png)
659
+
660
+ Assembles a pixel-grid logo from its own rect shapes, each flying in from a ring
661
+ around the mark (`build="scatter"`) or rendered flat (`build="none"`). The ring's
662
+ centre and spread come from the shapes' own bounding box, so this works for any
663
+ pixel-grid logo.
664
+
665
+ | Prop | Type | Default | Notes |
666
+ |---|---|---|---|
667
+ | `shapes` | `PixelShape[]` | required | `{ x, y, width, height, color }`, the same shape `extract_brand` already produces for an SVG rect |
668
+ | `at` | `number` | required | |
669
+ | `scale` | `number` | `1` | Output px per source (viewBox) unit |
670
+ | `build` | `"scatter" \| "none"` | `"scatter"` | |
671
+ | `glow` | `number` | `0.9` | |
672
+ | `out` | `number` | | Frame the exit starts |
673
+ | `seed` | `number` | `5` | |
674
+ | `style` | `CSSProperties` | | |
675
+
676
+ ### `PixelWipe`
677
+
678
+ ![PixelWipe: a pixel-grid transition part-way through clearing](img/api/pixelwipe.png)
679
+
680
+ Transition pair, pixel-grid's natural home but usable standalone. Call both
681
+ ends of a cut with the same `cell`/`seed` so the out and the following in read
682
+ as one continuous move across the cut.
683
+
684
+ | Prop | Type | Default | Notes |
685
+ |---|---|---|---|
686
+ | `mode` | `"in" \| "out"` | required | `"in"`: starts fully covered, clears. `"out"`: finishes covered at the scene's last frame |
687
+ | `at` | `number` | | Defaults to frame 0 (`in`) or `durationInFrames - dur - 1` (`out`) |
688
+ | `dur` | `number` | `12` | |
689
+ | `cell` | `number` | `60` | |
690
+ | `seed` | `number` | `1` | |
691
+ | `bg`, `tint` | | | Default to `design`'s colours if `design` is passed, else the package tokens |
692
+ | `design` | `DesignSystem` | | Optional; only informs the default tint and background |
693
+
694
+ ---
695
+
696
+ ## Backgrounds and transitions
697
+
698
+ | Component | Props | Notes |
699
+ |---|---|---|
700
+ | `Atmosphere` | `intensity?` (1), `colors?`, `seed?` (2) | Soft drifting radial colour fields behind everything, one blob per colour |
701
+ | `DotGrid` | `gap?` (36), `color?` (`#ffffff`), `opacity?` (0.05), `w?`, `h?` (composition size) | Faint texture pass behind a constructed (non-capture) panel. Covers the whole frame by default, 1080x1920 included |
702
+ | `Flash` | `at`, `color?` (`#ffffff`), `strength?` (0.55), `dur?` (10) | Brief exposure flash on a hard hit |
703
+ | `Black` | `from`, `to?` | Holds solid black. Omit `to` to hold forever |
704
+ | `Letterbox` | `amount?` (1) | Bars for a cinematic moment. `amount` scales the bar height, 1 = 64/1080 of the frame height (64px at 1080, about 114px at 1920 tall) |
705
+ | `TransitionOverlay` | `type` (`"fade"`, `"whip"`, `"push"`, `"wipe"`, `"light-leak"`), `length?` | A transition drawn over a hard cut, in the colour tokens. Mount it in a `Sequence` that starts `length / 2` frames before the cut (`layout="none"`): it peaks on the cut frame and is clear on its first and last frames. `length` is its total frames and defaults to the Sequence's. `stitch_composition` does this for every beat whose `transition` is not `"cut"`, so a scene rarely mounts one by hand |
706
+
707
+ | | |
708
+ |---|---|
709
+ | ![Atmosphere: drifting colour fields](img/api/atmosphere.png) `Atmosphere` | ![DotGrid: a faint dot texture behind a Glass panel](img/api/dotgrid.png) `DotGrid` |
710
+ | ![Flash: the frame during an exposure flash](img/api/flash.png) `Flash` | ![Letterbox: cinematic bars](img/api/letterbox.png) `Letterbox` |
711
+ | ![Black: a solid black frame, with the scene held under it](img/api/black.png) `Black` | |
712
+
713
+ `TransitionOverlay`, one still per type, a few frames into the cut (a blue "before" scene turning into a dark "after" one;
714
+ the light leak is at its peak on the cut itself):
715
+
716
+ | | | |
717
+ |---|---|---|
718
+ | ![fade: the blue scene dimming toward the dark one](img/api/transitionoverlay-fade.png) `fade` | ![whip: a streaked, blurred sweep across the frame as one scene is thrown aside](img/api/transitionoverlay-whip.png) `whip` | ![push: a thin blue strip of the old scene left on the left as the dark scene pushes in](img/api/transitionoverlay-push.png) `push` |
719
+ | ![wipe: an angled edge with a bright line sweeping across, dark scene on the left and blue scene on the right](img/api/transitionoverlay-wipe.png) `wipe` | ![light-leak: a warm wash of light bleeding across the cut](img/api/transitionoverlay-light-leak.png) `light-leak` | |
720
+
721
+ ---
722
+
723
+ ## UI chrome
724
+
725
+ ### `Window`
726
+
727
+ ![Window with JsonView: real JSON revealed line by line](img/api/window-jsonview.png)
728
+
729
+ | Prop | Type | Default | Notes |
730
+ |---|---|---|---|
731
+ | `title` | `string` | | Omit for no title bar |
732
+ | `width` | `number` | required | |
733
+ | `height` | `number` | | |
734
+ | `light` | `boolean` | | Light chrome instead of the dark default, matches `BrowserFrame`'s light mode |
735
+ | `glow` | `string` | | Hex colour for an outer glow, when this window is the shot's focal point |
736
+ | `titleRight` | `ReactNode` | | |
737
+ | `children` | `ReactNode` | required | |
738
+
739
+ ### `JsonView`
740
+
741
+ Syntax-coloured JSON of a real object, revealed line by line. An actually-rendered
742
+ view, not a screenshot of a JSON blob (the same ground-truth bias as `TerminalReplay`
743
+ being DOM text instead of a recorded terminal).
744
+
745
+ | Prop | Type | Default | Notes |
746
+ |---|---|---|---|
747
+ | `value` | `unknown` | required | `JSON.stringify(value, null, 2)`, line by line |
748
+ | `at` | `number` | `0` | |
749
+ | `perLine` | `number` | `1.2` | Frames between each line's reveal |
750
+ | `fontSize` | `number` | `20` | |
751
+ | `highlight` | `(line, i) => string \| undefined` | | Returns a hex accent to highlight a line with |
752
+ | `maxLines` | `number` | `400` | |
753
+ | `scroll` | `number` | `0` | |
754
+
755
+ ### `Check`, `Cross`
756
+
757
+ ![Check and Cross inside a Glass panel](img/api/check-cross-glass.png)
758
+
759
+ | Prop | Type | Default |
760
+ |---|---|---|
761
+ | `size` | `number` | required |
762
+ | `color` | `string` | `color.success` (`Check`) / `color.danger` (`Cross`) |
763
+ | `at` | `number` | `0`, `Check` only (draws its tick stroke in) |
764
+
765
+ ### `ToolChip`
766
+
767
+ ![ToolChip with a finished check, and two Pills](img/api/toolchip-pill.png)
768
+
769
+ | Prop | Type | Default | Notes |
770
+ |---|---|---|---|
771
+ | `name` | `string` | required | |
772
+ | `at` | `number` | required | |
773
+ | `doneAt` | `number` | | Swaps the spinner for a `Check` once passed |
774
+ | `color` | `string` | `color.accent` | |
775
+ | `size` | `number` | `20` | |
776
+
777
+ "▸ tool_name" chip: spinner while running, a check once done.
778
+
779
+ ### `Pill`
780
+
781
+ | Prop | Type | Default |
782
+ |---|---|---|
783
+ | `children` | `ReactNode` | required |
784
+ | `color` | `string` | `color.textSecondary` |
785
+ | `size` | `number` | `18` |
786
+ | `style` | `CSSProperties` | |
787
+
788
+ ### `Glass`
789
+
790
+ | Prop | Type | Default |
791
+ |---|---|---|
792
+ | `children` | `ReactNode` | required |
793
+ | `style` | `CSSProperties` | |
794
+ | `pad` | `number` | `28` |
795
+
796
+ Frosted glass panel: `backdrop-filter: blur`, for a floating card over motion.
797
+
798
+ ### `ChapterHud`
799
+
800
+ ![ChapterHud: the chapter label top left and the progress rail along the bottom](img/api/chapterhud.png)
801
+
802
+ Screen space, meant for a scene's `overlay` (like `Caption`), not camera-transformed.
803
+ A dot-matrix chapter number and label top-left, a progress rail bottom.
804
+
805
+ | Prop | Type | Default | Notes |
806
+ |---|---|---|---|
807
+ | `chapters` | `Chapter[]` | required | `{ label: string }` |
808
+ | `activeIndex` | `number` | required | |
809
+ | `firstFrame` | `boolean` | `true` | True during this chapter's own opening stretch (plays the label-in and rail fill-in); false just holds the rail filled |
810
+ | `at` | `number` | `4` | |
811
+ | `fillDurationInFrames` | `number` | `90` | Pass the chapter's own duration so the fill lands exactly as it ends |
812
+ | `design` | `DesignSystem` | | Reads `grid.marginBottom` and palette from it when passed |
813
+ | `accentColor` | `string` | | Overrides `design`'s or the token success colour |
814
+
815
+ ---
816
+
817
+ ## A scene, end to end
818
+
819
+ ```tsx
820
+ import React from "react";
821
+ import { CinematicScene, Layer, TerminalReplay, Caption, color, E } from "@openvidstudio/core";
822
+
823
+ export const Install: React.FC = () => (
824
+ <CinematicScene
825
+ camera={[
826
+ { frame: 0, x: 960, y: 540, scale: 1.05, rotZ: -0.4 },
827
+ { frame: 300, x: 960, y: 548, scale: 1.15, rotZ: 0.35, easing: E.drift },
828
+ ]}
829
+ overlay={<Caption text="one command" at={40} out={240} />}
830
+ >
831
+ <Layer depth={0}>
832
+ <div style={{ position: "absolute", inset: 0, display: "flex",
833
+ alignItems: "center", justifyContent: "center" }}>
834
+ <TerminalReplay
835
+ width={1400}
836
+ steps={[
837
+ { type: "cmd", text: "node packages/mcp-server/dist/stdio.js" },
838
+ { type: "out", lines: [{ text: "connected over stdio", color: color.success, glow: true }] },
839
+ ]}
840
+ />
841
+ </div>
842
+ </Layer>
843
+ </CinematicScene>
844
+ );
845
+ ```
846
+
847
+ Two keyframes so it moves, content centred inside the safe area, caption in the
848
+ overlay, tokens instead of hex.
849
+
850
+ ---
851
+
852
+ ## Catalog primitives
853
+
854
+ Small components that are not in `@openvidstudio/core` but are in the motion primitives catalog:
855
+ `catalog_motion_primitives` finds one and `add_motion_primitive` copies its source into the video's
856
+ `primitives/` folder, where it is yours to edit. Each imports only `react`, `remotion` and core.
857
+
858
+ ### `CollageBroll`
859
+
860
+ ![A red paper field with two cardstock cards, halftone figures on them, a green arrow between and a yellow disc above](img/api/collagebroll.png)
861
+
862
+ A halftone paper-collage b-roll beat for an abstract idea between screen captures, made in code: free, and
863
+ nothing in it is invented footage. A flat colour field, black and white halftone cut-outs, a few cardstock accents,
864
+ thin cream keylines, soft low-opacity shadows and fine paper grain. Pieces assemble structure first (structure,
865
+ then people or key cards, then connectors, then the result): each enters from empty space on a spring, in a set
866
+ order, with no fade and no zoom. It is inspired by the look of the MIT-licensed `gbro-collage-broll` skill, which
867
+ generates it with a paid model API; this is written from scratch and calls no model.
868
+
869
+ | Prop | Type | Default | Notes |
870
+ |---|---|---|---|
871
+ | `pieces` | `CollagePiece[]` | required | See below |
872
+ | `background` | `string` | `#D9503F` | The flat colour field |
873
+ | `order` | `("structure" \| "people" \| "connector" \| "result")[]` | that order | The order the roles arrive in; within a role, as listed |
874
+ | `at` | `number` | `0` | Composition frame the first piece starts to move. Before it the frame is the empty field |
875
+ | `stagger` | `number` | `10` | Frames between one piece starting and the next |
876
+
877
+ A piece is `{ src | shape, x, y, width, aspect?, rotation?, tone?, role? }`: `x`, `y` and `width` are fractions of the
878
+ frame (so it follows the frame size); `src` is an image (`staticFile(...)`) cut out in halftone; `shape` is
879
+ `"card"`, `"circle"`, `"person"` or `"arrow"`; `tone` is `"halftone"` (default), `"red"`, `"blue"`, `"yellow"`,
880
+ `"green"` or `"cream"`; `role` says when it arrives (default `"structure"`).
881
+
882
+ ## Supernova: `@openvidstudio/stem`
883
+
884
+ The primitives for STEM lesson videos (production mode `"supernova"`, 1080x1920). A project made
885
+ with `init_project` `mode: "supernova"` can import them; a standard project cannot. Everything here is
886
+ a pure function of the frame, takes its sizes from `useVideoConfig()` and uses no random numbers.
887
+ Stills are 540x960, rendered for real by `scripts/build-api-gallery.mjs`.
888
+
889
+ ```tsx
890
+ import { Spark, Nova, supernovaDesignSystem } from "@openvidstudio/stem";
891
+ ```
892
+
893
+ ### `supernovaDesignSystem(subject)`
894
+
895
+ The Void + Spark design system for one subject (`"math" | "physics" | "cs" | "chemistry" | "biology"`):
896
+ a flat dark Void (`#07060B`, panels `#0E0C16`, hairline at 5% white), warm white text (`#F3EFE6`, never
897
+ pure white, dim `#8C8799`), one accent per subject (math `#5CC8FF`, physics `#FFB347` with ember
898
+ `#FF7A3D`, cs `#B58CFF`, chemistry `#FF4D5E`, biology `#7CFFB2`), the `"void-spark"` motif, and a layout
899
+ grid that keeps key content clear of the Reels interface (108 / 270 / 420). `design.display` is the
900
+ display face, Space Grotesk; the body face is Inter. Both load from local files.
901
+
902
+ ### `Spark`
903
+
904
+ ![A glowing amber point at the head of a fading arc, a launch trail on the Void](img/api/stem-spark.png)
905
+
906
+ A luminous point: a bright core, a soft bloom and a fading trail. The pen, the pointer and the particle
907
+ of a lesson, with one on screen at a time.
908
+
909
+ | Prop | Type | Default | Notes |
910
+ |---|---|---|---|
911
+ | `path` | `Path \| Keyframe[]` | required | `(t) => ({ x, y })` with `t` in frames since `at`, or keyframes `{ frame, x, y, easing? }` (held at the ends, eased between) |
912
+ | `at` | `number` | `0` | Composition frame it appears. Nothing is drawn before it |
913
+ | `trail` | `number` | `18` | Frames of tail. Brighter near the head |
914
+ | `color` | `string` | the subject's accent | |
915
+ | `subject` | `Subject` | `"math"` | Picks the default colour |
916
+ | `size` | `number` | 1.4% of the shorter side | Radius of the core, px |
917
+
918
+ Behaviours are helpers that return a `Path`, so they compose: `trace(curve | points, { duration })`,
919
+ `carry(fn, from, to, { duration, map? })` (the Spark rides `y = fn(x)`; `map` is a graph-to-screen
920
+ mapping), `orbit(target, radius, { period })`, `split(parent, n, { at, spread })` (n paths),
921
+ `fall(g, { x, y, vx, vy }, { floorY? })` and `walk(points, { hop, hold })`.
922
+
923
+ ### `Nova`
924
+
925
+ ![A thin shockwave ring part-way out, particles converging on a blurred line of text that is still condensing](img/api/stem-nova.png)
926
+
927
+ The payoff, once per video, on the aha sentence. Nothing before `at`; then a three-frame flash, a thin
928
+ shockwave ring that decelerates and fades, and the `children` condense from particles. Leave a beat of
929
+ silence in the narration before it.
930
+
931
+ | Prop | Type | Default | Notes |
932
+ |---|---|---|---|
933
+ | `at` | `number` | | Composition frame of the flash. Or: |
934
+ | `beatId`, `impact` | `string` | | Take the frame from `useMusicClock(beatId).impact(impact)`, the score's named impact |
935
+ | `origin` | `{ x, y }` | frame centre | |
936
+ | `color`, `subject` | | the subject's accent | |
937
+ | `duration` | `number` | `60` | Frames from the flash until the content is fully formed |
938
+ | `children` | node | | The payoff. Fully formed by `at + duration` |
939
+
940
+ ### `Equation`
941
+
942
+ ![The quadratic formula in sans-serif maths on the Void, at 1080x1920](img/api/stem-equation.png)
943
+
944
+ An equation typeset in sans-serif maths and revealed term by term: each top-level term fades in and rises
945
+ a little, one after the next, as a pure function of the frame (never a fade of the whole thing).
946
+
947
+ | Prop | Type | Default | Notes |
948
+ |---|---|---|---|
949
+ | `tex` | `string` | required | The equation as TeX |
950
+ | `spoken` | `string` | **required** | The equation as it is said, in plain words: "x squared plus one". Required by the types (and at runtime), and exposed on the element as `data-spoken`, so `check_script` can compare it with the narration of the beat |
951
+ | `at` | `number` | `0` | Composition frame the first term appears |
952
+ | `stagger` | `number` | `7` | Frames between one term and the next |
953
+ | `size` | `number` | 8.5% of the shorter side | Font size in px |
954
+ | `color` | `string` | the Void's warm white | |
955
+ | `center` | `{ x, y }` | frame centre | |
956
+
957
+ Terms are the children of the equation's top-level row, so `\frac{d}{dx}\left(x^{2}+1\right)=2x` reveals as
958
+ the fraction, `(`, `x²`, `+`, `1`, `)`, `=`, `2`, `x`. A fully revealed equation is pixel for pixel the same as
959
+ the unrevealed one. `texToSvg(tex)` gives the SVG markup directly.
960
+
961
+ **Why MathJax 4 with the Fira font, not KaTeX.** The visible goal is sans-serif maths, which is the biggest
962
+ break from the usual serif look. Measured on the same three equations at 1080 wide (MathJax and Fira first,
963
+ then KaTeX with `\mathsf`, the closest it gets):
964
+
965
+ ![Three equations in sans-serif maths, MathJax with the Fira font: a derivative of x squared plus one, the quadratic formula and an integral](img/supernova/maths-mathjax-fira.png)
966
+
967
+ | | MathJax 4 + Fira (SVG) | KaTeX 0.19 |
968
+ |---|---|---|
969
+ | Look | Sans throughout: math italics, Greek, `sin` and `cos` in one family | Hybrid: `\mathsf` makes Latin letters upright sans, but `sin`, `cos`, `theta` and every operator stay serif, and variables lose their italics |
970
+ | Offline | Runs from the project's `public/mathjax/` (copied by `init_project`), no font files, glyphs are vector paths | Needs its CSS and about six font files shipped and loaded |
971
+ | Size | about 1.3MB of scripts, plus 2.2MB of Fira glyph ranges loaded on demand | about 360KB |
972
+ | Time | 3 equations typeset in about 140ms after a one-off start-up of about 0.5s | 3 equations in 6ms |
973
+ | Determinism | Same TeX, same markup, so a frame is a pure function of the frame | Same |
974
+
975
+ ![The same equations in KaTeX with \mathsf: serif sin, cos and theta, upright variables](img/supernova/maths-katex.png)
976
+
977
+ MathJax costs more to load and to typeset, once per document, and that is paid for a look that KaTeX cannot
978
+ produce. Its speech and braille workers are switched off (they would fetch 800KB of rule files).
979
+
980
+ ### `Axes`, `Plot`, `NumberLine`
981
+
982
+ ![Projectile motion: a parabola in physics amber on dim axes, the area under its first half shaded, a tangent line, and the peak and range marked](img/api/stem-plot.png)
983
+
984
+ `Axes` draws labelled axes with ticks and owns the graph-to-screen mapping. Its children are placed in
985
+ graph coordinates: `useAxes()` returns `{ toScreen(x, y), toWorld(px, py), box, xRange, yRange, weight }`,
986
+ so a `Plot`, a label or a Spark's path (`carry(fn, a, b, { duration, map: toScreen })`) can use it.
987
+
988
+ | `Axes` prop | Type | Default | Notes |
989
+ |---|---|---|---|
990
+ | `xRange`, `yRange` | `[min, max]` | required | Graph units |
991
+ | `box` | `{ x, y, width, height }` | sized to the frame | The plot area, composition px |
992
+ | `xStep`, `yStep` | `number` | a round step, about five ticks | |
993
+ | `xLabel`, `yLabel` | `string` | | |
994
+ | `grid` | `boolean` | `true` | Gridlines at the ticks in the dim token, fainter than the axes |
995
+ | `subject` | `Subject` | `"math"` | Picks the accent children use |
996
+
997
+ | `Plot` prop | Type | Default | Notes |
998
+ |---|---|---|---|
999
+ | `fn` | `(x) => number` | required | A value that is not finite breaks the line |
1000
+ | `domain` | `[a, b]` | the axes' x range | |
1001
+ | `samples` | `number` | `240` | Across the domain |
1002
+ | `progress` | `0..1` | `1` | How much is drawn. Or `at` and `duration` for a draw-on that eases from 0 to 1 |
1003
+ | `color` | `string` | the accent | |
1004
+ | `tangent` | `{ at, span?, color? }` | | A tangent at x, once the curve has reached it. `span` is its half-length in x units |
1005
+ | `area` | `{ from, to, color? }` | | Shades between the curve and the x axis, as far as the curve has been drawn |
1006
+ | `points` | `{ x, label? }[]` | | Dots on the curve, appearing as it reaches them |
1007
+
1008
+ `NumberLine` takes `range`, `step`, `points` (`{ value, label? }`), `intervals` (`{ from, to, openFrom?,
1009
+ openTo? }`, open ends are hollow) and `arrow` (`{ value, label? }`), plus an optional `box` (`{ x, y,
1010
+ width }`). `useNumberLine().toScreen(value)` lets a Spark ride the line.
1011
+
1012
+ ![A number line from -5 to 5 with an open-ended interval from -3 to 1 in the accent, a labelled point at 2 and an arrow at -4](img/api/stem-numberline.png)
1013
+
1014
+ Strokes are never thinner than `lineWeight(width, height)`, 3px at 1080 on the shorter side (the plot
1015
+ line is about 1.7 times that). None of these glow: the Spark is the one element that does.
1016
+
1017
+ ### `FreeBody`
1018
+
1019
+ ![A block on a slope at rest: weight, the normal force and friction as labelled arrows from its centre, with a 10 N scale bar](img/api/stem-freebody.png)
1020
+
1021
+ An object with labelled force arrows, for a physics lesson. The picture is honest: every arrow is exactly
1022
+ `magnitude * scale` px from tail to tip and a scale bar says how much that is, so two forces compared by
1023
+ eye are compared correctly. Arrows arrive one at a time. A block on a slope at rest (three forces that sum
1024
+ to zero) is the sample scene.
1025
+
1026
+ | Prop | Type | Default | Notes |
1027
+ |---|---|---|---|
1028
+ | `forces` | `{ label, magnitude, angle, color? }[]` | required | `angle` in degrees counter-clockwise from the right (0 right, 90 up, 270 down) |
1029
+ | `scale` | `number` | required | Pixels per unit of magnitude |
1030
+ | `unit`, `scaleValue` | `string`, `number` | `"N"`, a round value near half the largest force | The scale bar's unit and the length it stands for |
1031
+ | `scaleAt` | `{ x, y }` | lower left | Left end of the scale bar |
1032
+ | `origin` | `{ x, y }` | frame centre | Where the object is; arrows start at its centre |
1033
+ | `objectSize`, `objectRotation`, `objectLabel` | | 9% of the shorter side, 0, none | Rotation in degrees clockwise: -30 puts a block flat on a 30 degree slope that rises to the right |
1034
+ | `at`, `stagger`, `order` | | `0`, `18`, as given | When the first arrow starts, frames between arrows, and the order as indices into `forces` |
1035
+ | `net` | `boolean` | `false` | Also draw the net force as a dashed arrow once the others are in. Left out when the net is zero |
1036
+
1037
+ ### `ArrayViz`
1038
+
1039
+ ![A row of ten sorted numbers with cells 5 to 9 lit and the rest dimmed, pointers low, mid and high under cells 5, 7 and 9](img/api/stem-arrayviz.png)
1040
+
1041
+ A row of cells holding values, with named pointers, a highlighted range and a dimmed one: enough to teach
1042
+ binary search and a sorting pass. Binary search over a sorted array is the sample scene.
1043
+
1044
+ | Prop | Type | Default | Notes |
1045
+ |---|---|---|---|
1046
+ | `values` | `(number \| string)[]` | required | One cell each, numbered above |
1047
+ | `pointers` | `{ name, index, color?, spark? }[]` | | `index` is a cell, or keyframes `{ frame, index }` that move the pointer (eased, fractional between cells). With `spark: true` the pointer's tip is the Spark, so its move leaves a trail. At most one pointer may (one glowing element at a time) |
1048
+ | `highlights` | `{ from, to, color? }[]` | | Cells to fill with the accent, inclusive: the range still in play |
1049
+ | `dimmed` | `{ from, to }[]` | | Cells ruled out, inclusive |
1050
+ | `origin`, `cellSize` | | centred, fits 84% of the width | |
1051
+ | `subject` | `Subject` | `"cs"` | Picks the accent |
1052
+
1053
+ `useArrayViz()` returns `{ cellSize, left, top, cellCenter(i) }` so a Spark's path (`walk`) can be built from
1054
+ the cells' own positions.
1055
+
1056
+ ### The glow budget
1057
+
1058
+ One glowing element at a time. Spark and Nova draw their glow through `Glow`, which tags its element
1059
+ with `data-ovs-glow` and `data-ovs-glow-level`; `countGlowing(root)` counts the elements above
1060
+ `GLOW_VISIBLE_LEVEL`. A Spark is one, a Nova's flash is one (the ring and particles do not glow).