dsh-remotion 0.3.3 → 0.4.0

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 (293) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.en.md +26 -65
  3. package/README.md +25 -67
  4. package/docs/USAGE.en.md +93 -0
  5. package/docs/USAGE.md +97 -0
  6. package/docs/VALIDATION.md +22 -0
  7. package/lib/client.js +90 -0
  8. package/lib/index.d.ts +3 -0
  9. package/lib/index.js +5 -1
  10. package/lib/media-store.d.ts +25 -0
  11. package/lib/media-store.js +174 -0
  12. package/lib/media-templates.d.ts +52 -0
  13. package/lib/media-templates.js +91 -0
  14. package/lib/media-workbench.d.ts +42 -0
  15. package/lib/media-workbench.js +476 -0
  16. package/package.json +18 -5
  17. package/scripts/build-client.mjs +4 -0
  18. package/skills/remotion-best-practices/SKILL.md +54 -54
  19. package/skills/remotion-best-practices/agents/openai.yaml +7 -7
  20. package/skills/remotion-best-practices/assets/remotion-icon.svg +4 -4
  21. package/skills/remotion-best-practices/remotion-captions/REFERENCE.md +36 -36
  22. package/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -7
  23. package/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.svg +4 -4
  24. package/skills/remotion-best-practices/remotion-captions/display-captions.md +190 -190
  25. package/skills/remotion-best-practices/remotion-captions/import-srt-captions.md +73 -73
  26. package/skills/remotion-best-practices/remotion-captions/transcribe-captions.md +70 -70
  27. package/skills/remotion-best-practices/remotion-create/REFERENCE.md +85 -85
  28. package/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -7
  29. package/skills/remotion-best-practices/remotion-create/assets/remotion-icon.svg +4 -4
  30. package/skills/remotion-best-practices/remotion-create/tailwind.md +11 -11
  31. package/skills/remotion-best-practices/remotion-create/video-layout.md +9 -9
  32. package/skills/remotion-best-practices/remotion-docs/REFERENCE.md +46 -46
  33. package/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -7
  34. package/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.svg +4 -4
  35. package/skills/remotion-best-practices/remotion-interactivity/REFERENCE.md +315 -315
  36. package/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -7
  37. package/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.svg +4 -4
  38. package/skills/remotion-best-practices/remotion-maps/REFERENCE.md +36 -36
  39. package/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -7
  40. package/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.svg +4 -4
  41. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -89
  42. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -284
  43. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -299
  44. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -12
  45. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -39
  46. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -35
  47. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -215
  48. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -43
  49. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -128
  50. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -57
  51. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -161
  52. package/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -449
  53. package/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -64
  54. package/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +484 -484
  55. package/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -64
  56. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -80
  57. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -70
  58. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -80
  59. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -363
  60. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -22
  61. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -7535
  62. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -605
  63. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -34
  64. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -91
  65. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -129
  66. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -85
  67. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -64
  68. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -202
  69. package/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -37
  70. package/skills/remotion-best-practices/remotion-markup/3d.md +86 -86
  71. package/skills/remotion-best-practices/remotion-markup/REFERENCE.md +358 -358
  72. package/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -7
  73. package/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.svg +4 -4
  74. package/skills/remotion-best-practices/remotion-markup/audio-visualization.md +198 -198
  75. package/skills/remotion-best-practices/remotion-markup/audio.md +169 -169
  76. package/skills/remotion-best-practices/remotion-markup/calculate-metadata.md +136 -136
  77. package/skills/remotion-best-practices/remotion-markup/compositions.md +123 -123
  78. package/skills/remotion-best-practices/remotion-markup/connected-compositions.md +79 -79
  79. package/skills/remotion-best-practices/remotion-markup/cropping.md +34 -34
  80. package/skills/remotion-best-practices/remotion-markup/effects.md +251 -251
  81. package/skills/remotion-best-practices/remotion-markup/embedding-videos.md +171 -171
  82. package/skills/remotion-best-practices/remotion-markup/ffmpeg.md +38 -38
  83. package/skills/remotion-best-practices/remotion-markup/gifs.md +187 -187
  84. package/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -76
  85. package/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -128
  86. package/skills/remotion-best-practices/remotion-markup/images.md +73 -73
  87. package/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -106
  88. package/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -69
  89. package/skills/remotion-best-practices/remotion-markup/lottie.md +73 -73
  90. package/skills/remotion-best-practices/remotion-markup/measuring-dom-nodes.md +38 -38
  91. package/skills/remotion-best-practices/remotion-markup/measuring-text.md +146 -146
  92. package/skills/remotion-best-practices/remotion-markup/motion-blur.md +60 -60
  93. package/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -81
  94. package/skills/remotion-best-practices/remotion-markup/parameters.md +111 -111
  95. package/skills/remotion-best-practices/remotion-markup/remotion-maps/REFERENCE.md +36 -36
  96. package/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -7
  97. package/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.svg +4 -4
  98. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -89
  99. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -284
  100. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -299
  101. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -12
  102. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -39
  103. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -35
  104. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -215
  105. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -43
  106. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -128
  107. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -57
  108. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -161
  109. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -449
  110. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -64
  111. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +484 -484
  112. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -64
  113. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -80
  114. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -70
  115. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -80
  116. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -363
  117. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -22
  118. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -7535
  119. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -605
  120. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -34
  121. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -91
  122. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -129
  123. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -85
  124. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -64
  125. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -202
  126. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -37
  127. package/skills/remotion-best-practices/remotion-markup/sequencing.md +169 -169
  128. package/skills/remotion-best-practices/remotion-markup/sfx.md +51 -51
  129. package/skills/remotion-best-practices/remotion-markup/silence-detection.md +71 -71
  130. package/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -56
  131. package/skills/remotion-best-practices/remotion-markup/timing.md +111 -111
  132. package/skills/remotion-best-practices/remotion-markup/transitions.md +239 -239
  133. package/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -90
  134. package/skills/remotion-best-practices/remotion-markup/voiceover.md +99 -99
  135. package/skills/remotion-best-practices/remotion-multimedia/REFERENCE.md +20 -20
  136. package/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -7
  137. package/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.svg +4 -4
  138. package/skills/remotion-best-practices/remotion-multimedia/get-audio-duration.md +56 -56
  139. package/skills/remotion-best-practices/remotion-multimedia/get-video-dimensions.md +66 -66
  140. package/skills/remotion-best-practices/remotion-multimedia/get-video-duration.md +58 -58
  141. package/skills/remotion-best-practices/remotion-render/REFERENCE.md +35 -35
  142. package/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -7
  143. package/skills/remotion-best-practices/remotion-render/assets/remotion-icon.svg +4 -4
  144. package/skills/remotion-best-practices/remotion-render/transparent-videos.md +106 -106
  145. package/skills/remotion-best-practices/remotion-saas/REFERENCE.md +33 -33
  146. package/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -7
  147. package/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.svg +4 -4
  148. package/skills/remotion-best-practices/remotion-saas/framework.md +19 -19
  149. package/skills/remotion-best-practices/remotion-saas/player.md +33 -33
  150. package/skills/remotion-best-practices/remotion-saas/rendering.md +69 -69
  151. package/skills/remotion-best-practices/remotion-studio/REFERENCE.md +24 -24
  152. package/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -7
  153. package/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.svg +4 -4
  154. package/skills/remotion-best-practices/remotion-upgrade/REFERENCE.md +31 -31
  155. package/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -7
  156. package/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.svg +4 -4
  157. package/skills/remotion-captions/SKILL.md +31 -31
  158. package/skills/remotion-captions/agents/openai.yaml +7 -7
  159. package/skills/remotion-captions/assets/remotion-icon.svg +4 -4
  160. package/skills/remotion-captions/display-captions.md +190 -190
  161. package/skills/remotion-captions/import-srt-captions.md +73 -73
  162. package/skills/remotion-captions/transcribe-captions.md +70 -70
  163. package/skills/remotion-create/SKILL.md +80 -80
  164. package/skills/remotion-create/agents/openai.yaml +7 -7
  165. package/skills/remotion-create/assets/remotion-icon.svg +4 -4
  166. package/skills/remotion-create/tailwind.md +11 -11
  167. package/skills/remotion-create/video-layout.md +9 -9
  168. package/skills/remotion-docs/SKILL.md +41 -41
  169. package/skills/remotion-docs/agents/openai.yaml +7 -7
  170. package/skills/remotion-docs/assets/remotion-icon.svg +4 -4
  171. package/skills/remotion-interactivity/SKILL.md +310 -310
  172. package/skills/remotion-interactivity/agents/openai.yaml +7 -7
  173. package/skills/remotion-interactivity/assets/remotion-icon.svg +4 -4
  174. package/skills/remotion-maps/SKILL.md +31 -31
  175. package/skills/remotion-maps/agents/openai.yaml +7 -7
  176. package/skills/remotion-maps/assets/remotion-icon.svg +4 -4
  177. package/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -89
  178. package/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -284
  179. package/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -299
  180. package/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -12
  181. package/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -39
  182. package/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -35
  183. package/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -215
  184. package/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -43
  185. package/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -128
  186. package/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -57
  187. package/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -161
  188. package/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -449
  189. package/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -64
  190. package/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +484 -484
  191. package/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -64
  192. package/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -80
  193. package/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -70
  194. package/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -80
  195. package/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -363
  196. package/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -22
  197. package/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -7535
  198. package/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -605
  199. package/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -34
  200. package/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -91
  201. package/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -129
  202. package/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -85
  203. package/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -64
  204. package/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -202
  205. package/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -37
  206. package/skills/remotion-markup/3d.md +86 -86
  207. package/skills/remotion-markup/SKILL.md +353 -353
  208. package/skills/remotion-markup/agents/openai.yaml +7 -7
  209. package/skills/remotion-markup/assets/remotion-icon.svg +4 -4
  210. package/skills/remotion-markup/audio-visualization.md +198 -198
  211. package/skills/remotion-markup/audio.md +169 -169
  212. package/skills/remotion-markup/calculate-metadata.md +136 -136
  213. package/skills/remotion-markup/compositions.md +123 -123
  214. package/skills/remotion-markup/connected-compositions.md +79 -79
  215. package/skills/remotion-markup/cropping.md +34 -34
  216. package/skills/remotion-markup/effects.md +251 -251
  217. package/skills/remotion-markup/embedding-videos.md +171 -171
  218. package/skills/remotion-markup/ffmpeg.md +38 -38
  219. package/skills/remotion-markup/gifs.md +187 -187
  220. package/skills/remotion-markup/google-fonts.md +76 -76
  221. package/skills/remotion-markup/html-in-canvas.md +128 -128
  222. package/skills/remotion-markup/images.md +73 -73
  223. package/skills/remotion-markup/light-leaks.md +106 -106
  224. package/skills/remotion-markup/local-fonts.md +69 -69
  225. package/skills/remotion-markup/lottie.md +73 -73
  226. package/skills/remotion-markup/measuring-dom-nodes.md +38 -38
  227. package/skills/remotion-markup/measuring-text.md +146 -146
  228. package/skills/remotion-markup/motion-blur.md +60 -60
  229. package/skills/remotion-markup/multi-scene-video.md +81 -81
  230. package/skills/remotion-markup/parameters.md +111 -111
  231. package/skills/remotion-markup/remotion-maps/REFERENCE.md +36 -36
  232. package/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -7
  233. package/skills/remotion-markup/remotion-maps/assets/remotion-icon.svg +4 -4
  234. package/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -89
  235. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -284
  236. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -299
  237. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -12
  238. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -39
  239. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -35
  240. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -215
  241. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -43
  242. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -128
  243. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -57
  244. package/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -161
  245. package/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -449
  246. package/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -64
  247. package/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +484 -484
  248. package/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -64
  249. package/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -80
  250. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -70
  251. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -80
  252. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -363
  253. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -22
  254. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -7535
  255. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -605
  256. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -34
  257. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -91
  258. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -129
  259. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -85
  260. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -64
  261. package/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -202
  262. package/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -37
  263. package/skills/remotion-markup/sequencing.md +169 -169
  264. package/skills/remotion-markup/sfx.md +51 -51
  265. package/skills/remotion-markup/silence-detection.md +71 -71
  266. package/skills/remotion-markup/text-highlights.md +56 -56
  267. package/skills/remotion-markup/timing.md +111 -111
  268. package/skills/remotion-markup/transitions.md +239 -239
  269. package/skills/remotion-markup/video-editing.md +90 -90
  270. package/skills/remotion-markup/voiceover.md +99 -99
  271. package/skills/remotion-multimedia/SKILL.md +15 -15
  272. package/skills/remotion-multimedia/agents/openai.yaml +7 -7
  273. package/skills/remotion-multimedia/assets/remotion-icon.svg +4 -4
  274. package/skills/remotion-multimedia/get-audio-duration.md +56 -56
  275. package/skills/remotion-multimedia/get-video-dimensions.md +66 -66
  276. package/skills/remotion-multimedia/get-video-duration.md +58 -58
  277. package/skills/remotion-render/SKILL.md +30 -30
  278. package/skills/remotion-render/agents/openai.yaml +7 -7
  279. package/skills/remotion-render/assets/remotion-icon.svg +4 -4
  280. package/skills/remotion-render/transparent-videos.md +106 -106
  281. package/skills/remotion-saas/SKILL.md +28 -28
  282. package/skills/remotion-saas/agents/openai.yaml +7 -7
  283. package/skills/remotion-saas/assets/remotion-icon.svg +4 -4
  284. package/skills/remotion-saas/framework.md +19 -19
  285. package/skills/remotion-saas/player.md +33 -33
  286. package/skills/remotion-saas/rendering.md +69 -69
  287. package/skills/remotion-studio/SKILL.md +19 -19
  288. package/skills/remotion-studio/agents/openai.yaml +7 -7
  289. package/skills/remotion-studio/assets/remotion-icon.svg +4 -4
  290. package/skills/remotion-upgrade/SKILL.md +26 -26
  291. package/skills/remotion-upgrade/agents/openai.yaml +7 -7
  292. package/skills/remotion-upgrade/assets/remotion-icon.svg +4 -4
  293. package/templates/DESIGN.md +26 -0
@@ -1,161 +1,161 @@
1
- // Camera-path generator for the Cesium flythrough. Turns a river/route centerline GeoJSON into a LONG,
2
- // CONTINUOUSLY-curving camera path so the camera banks through smooth flowing curves (no
3
- // straight-then-corner). Method: clip → resample to even spacing → moving-average smooth (inherently
4
- // continuous curvature) → dampen lateral deviation toward the straight chord (dials swerve amplitude).
5
- // No Douglas-Peucker (that concentrates curvature at sparse control points → corners).
6
- //
7
- // RUN (out of the box, against the shipped sample):
8
- // node prep-cesium-path.mjs
9
- // → reads assets/sample-river.geojson (override: node prep-cesium-path.mjs <input.geojson> <output.json>)
10
- // → writes assets/cesium-path.json (then import that JSON in CesiumFlythrough.tsx, or copy it
11
- // into your Remotion project's src/geo/ and adjust the import)
12
- //
13
- // ADAPT for a new location: change START (a point ON your centerline where the corridor opens),
14
- // WINDOW_KM, and DAMP/SMOOTH below. Input must be a single LineString feature (features[0].geometry).
15
-
16
- import {readFileSync, writeFileSync, mkdirSync} from 'fs';
17
- import {dirname, resolve} from 'path';
18
- import {fileURLToPath} from 'url';
19
-
20
- const __dir = dirname(fileURLToPath(import.meta.url));
21
- const IN = process.argv[2] || resolve(__dir, '../assets/sample-river.geojson');
22
- const OUT = process.argv[3] || resolve(__dir, '../assets/cesium-path.json');
23
- const havKm = (a, b) => {
24
- const R = 6371,
25
- r = Math.PI / 180,
26
- dLat = (b[1] - a[1]) * r,
27
- dLng = (b[0] - a[0]) * r;
28
- const h =
29
- Math.sin(dLat / 2) ** 2 +
30
- Math.cos(a[1] * r) * Math.cos(b[1] * r) * Math.sin(dLng / 2) ** 2;
31
- return 2 * R * Math.asin(Math.sqrt(h));
32
- };
33
-
34
- const gorge = JSON.parse(readFileSync(IN, 'utf8')).features[0].geometry
35
- .coordinates;
36
-
37
- // ADAPT: clip ~24 km of river from the reach where the flythrough opens. START must be a point ON the
38
- // centerline (the script snaps to the nearest vertex). The sample's opening is the Yarlung gorge:
39
- const START = [94.968, 29.757];
40
- let s0 = 0,
41
- best = Infinity;
42
- gorge.forEach((p, i) => {
43
- const d = havKm(p, START);
44
- if (d < best) {
45
- best = d;
46
- s0 = i;
47
- }
48
- });
49
- const WINDOW_KM = 30; // clip to ~end of gorge data; smoothing+dampening shrink it to the usable corridor
50
- const clip = [];
51
- for (let i = s0, acc = 0; i < gorge.length; i++) {
52
- if (i > s0) acc += havKm(gorge[i - 1], gorge[i]);
53
- if (acc > WINDOW_KM) break;
54
- clip.push(gorge[i]);
55
- }
56
-
57
- // Resample to even arc-length spacing so curvature is distributed evenly along the path.
58
- const STEP_KM = 0.1;
59
- const resample = (coords) => {
60
- const out = [coords[0].slice()];
61
- let carry = 0,
62
- from = coords[0];
63
- for (let i = 1; i < coords.length; i++) {
64
- let segLen = havKm(from, coords[i]);
65
- while (carry + segLen >= STEP_KM) {
66
- const t = (STEP_KM - carry) / segLen;
67
- const np = [
68
- from[0] + (coords[i][0] - from[0]) * t,
69
- from[1] + (coords[i][1] - from[1]) * t,
70
- ];
71
- out.push(np);
72
- from = np;
73
- segLen = havKm(from, coords[i]);
74
- carry = 0;
75
- }
76
- carry += segLen;
77
- from = coords[i];
78
- }
79
- return out;
80
- };
81
-
82
- // Moving-average smoothing — inherently continuous (no kinks). Window in points; repeat for extra glass.
83
- const smoothMA = (coords, w, passes) => {
84
- let c = coords;
85
- for (let p = 0; p < passes; p++) {
86
- c = c.map((_, i) => {
87
- let sx = 0,
88
- sy = 0,
89
- n = 0;
90
- for (
91
- let j = Math.max(0, i - w);
92
- j <= Math.min(c.length - 1, i + w);
93
- j++
94
- ) {
95
- sx += c[j][0];
96
- sy += c[j][1];
97
- n++;
98
- }
99
- return [sx / n, sy / n];
100
- });
101
- }
102
- return c;
103
- };
104
-
105
- const SMOOTH_W = 28; // ±2.8 km window — turns meanders into smooth flowing curves
106
- const SMOOTH_PASSES = 2;
107
- const DAMP = 0.45; // keep 45% of the (already-smooth) deviation → gentle, continuous swerve
108
-
109
- const even = resample(clip);
110
- const sm = smoothMA(even, SMOOTH_W, SMOOTH_PASSES);
111
-
112
- const lat0 = (sm[0][1] * Math.PI) / 180;
113
- const kx = 111.32 * Math.cos(lat0),
114
- ky = 110.57;
115
- const toXY = (p) => [(p[0] - sm[0][0]) * kx, (p[1] - sm[0][1]) * ky];
116
- const toLL = (xy) => [sm[0][0] + xy[0] / kx, sm[0][1] + xy[1] / ky];
117
- const A = toXY(sm[0]),
118
- B = toXY(sm[sm.length - 1]);
119
- const AB = [B[0] - A[0], B[1] - A[1]],
120
- len2 = AB[0] ** 2 + AB[1] ** 2;
121
- const path = sm.map((p) => {
122
- const P = toXY(p);
123
- const t = ((P[0] - A[0]) * AB[0] + (P[1] - A[1]) * AB[1]) / len2;
124
- const proj = [A[0] + t * AB[0], A[1] + t * AB[1]];
125
- return toLL([
126
- proj[0] + (P[0] - proj[0]) * DAMP,
127
- proj[1] + (P[1] - proj[1]) * DAMP,
128
- ]);
129
- });
130
-
131
- mkdirSync(dirname(OUT), {recursive: true});
132
- writeFileSync(OUT, JSON.stringify(path));
133
-
134
- let len = 0;
135
- for (let i = 1; i < path.length; i++) len += havKm(path[i - 1], path[i]);
136
- console.log(
137
- `cesium-path: clip ${clip.length} → resample ${even.length} → smooth → ${path.length} pts · ${len.toFixed(1)} km`,
138
- );
139
- const bear = (a, b) => {
140
- const r = Math.PI / 180;
141
- const y = Math.sin((b[0] - a[0]) * r) * Math.cos(b[1] * r);
142
- const x =
143
- Math.cos(a[1] * r) * Math.sin(b[1] * r) -
144
- Math.sin(a[1] * r) * Math.cos(b[1] * r) * Math.cos((b[0] - a[0]) * r);
145
- return (Math.atan2(y, x) * 180) / Math.PI;
146
- };
147
- // heading sampled every ~1.5 km — should change gradually & continuously (no big jumps = no corners)
148
- const stepPts = Math.round(1.5 / STEP_KM);
149
- let prev = null,
150
- hs = [];
151
- for (let i = 0; i + stepPts < path.length; i += stepPts) {
152
- const h = bear(path[i], path[i + stepPts]);
153
- if (prev !== null) {
154
- let d = h - prev;
155
- while (d > 180) d -= 360;
156
- while (d < -180) d += 360;
157
- hs.push(d.toFixed(0));
158
- }
159
- prev = h;
160
- }
161
- console.log(` heading deltas every 1.5km (deg): ${hs.join(', ')}`);
1
+ // Camera-path generator for the Cesium flythrough. Turns a river/route centerline GeoJSON into a LONG,
2
+ // CONTINUOUSLY-curving camera path so the camera banks through smooth flowing curves (no
3
+ // straight-then-corner). Method: clip → resample to even spacing → moving-average smooth (inherently
4
+ // continuous curvature) → dampen lateral deviation toward the straight chord (dials swerve amplitude).
5
+ // No Douglas-Peucker (that concentrates curvature at sparse control points → corners).
6
+ //
7
+ // RUN (out of the box, against the shipped sample):
8
+ // node prep-cesium-path.mjs
9
+ // → reads assets/sample-river.geojson (override: node prep-cesium-path.mjs <input.geojson> <output.json>)
10
+ // → writes assets/cesium-path.json (then import that JSON in CesiumFlythrough.tsx, or copy it
11
+ // into your Remotion project's src/geo/ and adjust the import)
12
+ //
13
+ // ADAPT for a new location: change START (a point ON your centerline where the corridor opens),
14
+ // WINDOW_KM, and DAMP/SMOOTH below. Input must be a single LineString feature (features[0].geometry).
15
+
16
+ import {readFileSync, writeFileSync, mkdirSync} from 'fs';
17
+ import {dirname, resolve} from 'path';
18
+ import {fileURLToPath} from 'url';
19
+
20
+ const __dir = dirname(fileURLToPath(import.meta.url));
21
+ const IN = process.argv[2] || resolve(__dir, '../assets/sample-river.geojson');
22
+ const OUT = process.argv[3] || resolve(__dir, '../assets/cesium-path.json');
23
+ const havKm = (a, b) => {
24
+ const R = 6371,
25
+ r = Math.PI / 180,
26
+ dLat = (b[1] - a[1]) * r,
27
+ dLng = (b[0] - a[0]) * r;
28
+ const h =
29
+ Math.sin(dLat / 2) ** 2 +
30
+ Math.cos(a[1] * r) * Math.cos(b[1] * r) * Math.sin(dLng / 2) ** 2;
31
+ return 2 * R * Math.asin(Math.sqrt(h));
32
+ };
33
+
34
+ const gorge = JSON.parse(readFileSync(IN, 'utf8')).features[0].geometry
35
+ .coordinates;
36
+
37
+ // ADAPT: clip ~24 km of river from the reach where the flythrough opens. START must be a point ON the
38
+ // centerline (the script snaps to the nearest vertex). The sample's opening is the Yarlung gorge:
39
+ const START = [94.968, 29.757];
40
+ let s0 = 0,
41
+ best = Infinity;
42
+ gorge.forEach((p, i) => {
43
+ const d = havKm(p, START);
44
+ if (d < best) {
45
+ best = d;
46
+ s0 = i;
47
+ }
48
+ });
49
+ const WINDOW_KM = 30; // clip to ~end of gorge data; smoothing+dampening shrink it to the usable corridor
50
+ const clip = [];
51
+ for (let i = s0, acc = 0; i < gorge.length; i++) {
52
+ if (i > s0) acc += havKm(gorge[i - 1], gorge[i]);
53
+ if (acc > WINDOW_KM) break;
54
+ clip.push(gorge[i]);
55
+ }
56
+
57
+ // Resample to even arc-length spacing so curvature is distributed evenly along the path.
58
+ const STEP_KM = 0.1;
59
+ const resample = (coords) => {
60
+ const out = [coords[0].slice()];
61
+ let carry = 0,
62
+ from = coords[0];
63
+ for (let i = 1; i < coords.length; i++) {
64
+ let segLen = havKm(from, coords[i]);
65
+ while (carry + segLen >= STEP_KM) {
66
+ const t = (STEP_KM - carry) / segLen;
67
+ const np = [
68
+ from[0] + (coords[i][0] - from[0]) * t,
69
+ from[1] + (coords[i][1] - from[1]) * t,
70
+ ];
71
+ out.push(np);
72
+ from = np;
73
+ segLen = havKm(from, coords[i]);
74
+ carry = 0;
75
+ }
76
+ carry += segLen;
77
+ from = coords[i];
78
+ }
79
+ return out;
80
+ };
81
+
82
+ // Moving-average smoothing — inherently continuous (no kinks). Window in points; repeat for extra glass.
83
+ const smoothMA = (coords, w, passes) => {
84
+ let c = coords;
85
+ for (let p = 0; p < passes; p++) {
86
+ c = c.map((_, i) => {
87
+ let sx = 0,
88
+ sy = 0,
89
+ n = 0;
90
+ for (
91
+ let j = Math.max(0, i - w);
92
+ j <= Math.min(c.length - 1, i + w);
93
+ j++
94
+ ) {
95
+ sx += c[j][0];
96
+ sy += c[j][1];
97
+ n++;
98
+ }
99
+ return [sx / n, sy / n];
100
+ });
101
+ }
102
+ return c;
103
+ };
104
+
105
+ const SMOOTH_W = 28; // ±2.8 km window — turns meanders into smooth flowing curves
106
+ const SMOOTH_PASSES = 2;
107
+ const DAMP = 0.45; // keep 45% of the (already-smooth) deviation → gentle, continuous swerve
108
+
109
+ const even = resample(clip);
110
+ const sm = smoothMA(even, SMOOTH_W, SMOOTH_PASSES);
111
+
112
+ const lat0 = (sm[0][1] * Math.PI) / 180;
113
+ const kx = 111.32 * Math.cos(lat0),
114
+ ky = 110.57;
115
+ const toXY = (p) => [(p[0] - sm[0][0]) * kx, (p[1] - sm[0][1]) * ky];
116
+ const toLL = (xy) => [sm[0][0] + xy[0] / kx, sm[0][1] + xy[1] / ky];
117
+ const A = toXY(sm[0]),
118
+ B = toXY(sm[sm.length - 1]);
119
+ const AB = [B[0] - A[0], B[1] - A[1]],
120
+ len2 = AB[0] ** 2 + AB[1] ** 2;
121
+ const path = sm.map((p) => {
122
+ const P = toXY(p);
123
+ const t = ((P[0] - A[0]) * AB[0] + (P[1] - A[1]) * AB[1]) / len2;
124
+ const proj = [A[0] + t * AB[0], A[1] + t * AB[1]];
125
+ return toLL([
126
+ proj[0] + (P[0] - proj[0]) * DAMP,
127
+ proj[1] + (P[1] - proj[1]) * DAMP,
128
+ ]);
129
+ });
130
+
131
+ mkdirSync(dirname(OUT), {recursive: true});
132
+ writeFileSync(OUT, JSON.stringify(path));
133
+
134
+ let len = 0;
135
+ for (let i = 1; i < path.length; i++) len += havKm(path[i - 1], path[i]);
136
+ console.log(
137
+ `cesium-path: clip ${clip.length} → resample ${even.length} → smooth → ${path.length} pts · ${len.toFixed(1)} km`,
138
+ );
139
+ const bear = (a, b) => {
140
+ const r = Math.PI / 180;
141
+ const y = Math.sin((b[0] - a[0]) * r) * Math.cos(b[1] * r);
142
+ const x =
143
+ Math.cos(a[1] * r) * Math.sin(b[1] * r) -
144
+ Math.sin(a[1] * r) * Math.cos(b[1] * r) * Math.cos((b[0] - a[0]) * r);
145
+ return (Math.atan2(y, x) * 180) / Math.PI;
146
+ };
147
+ // heading sampled every ~1.5 km — should change gradually & continuously (no big jumps = no corners)
148
+ const stepPts = Math.round(1.5 / STEP_KM);
149
+ let prev = null,
150
+ hs = [];
151
+ for (let i = 0; i + stepPts < path.length; i += stepPts) {
152
+ const h = bear(path[i], path[i + stepPts]);
153
+ if (prev !== null) {
154
+ let d = h - prev;
155
+ while (d > 180) d -= 360;
156
+ while (d < -180) d += 360;
157
+ hs.push(d.toFixed(0));
158
+ }
159
+ prev = h;
160
+ }
161
+ console.log(` heading deltas every 1.5km (deg): ${hs.join(', ')}`);