dsh-remotion 0.2.0 → 0.3.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 (292) hide show
  1. package/README.en.md +7 -5
  2. package/README.md +3 -3
  3. package/lib/index.d.ts +2 -2
  4. package/lib/index.js +15 -2
  5. package/package.json +1 -1
  6. package/skills/remotion-best-practices/SKILL.md +59 -0
  7. package/skills/remotion-best-practices/agents/openai.yaml +7 -0
  8. package/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
  9. package/skills/remotion-best-practices/remotion-captions/SKILL.md +36 -0
  10. package/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
  11. package/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
  12. package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/display-captions.md +9 -3
  13. package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/import-srt-captions.md +5 -1
  14. package/skills/remotion-best-practices/remotion-create/SKILL.md +68 -0
  15. package/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
  16. package/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
  17. package/skills/{remotion/rules → remotion-best-practices/remotion-create}/tailwind.md +1 -1
  18. package/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
  19. package/skills/remotion-best-practices/remotion-docs/SKILL.md +46 -0
  20. package/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
  21. package/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
  22. package/skills/remotion-best-practices/remotion-interactivity/SKILL.md +247 -0
  23. package/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
  24. package/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
  25. package/skills/remotion-best-practices/remotion-maps/SKILL.md +36 -0
  26. package/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
  27. package/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
  28. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  29. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  30. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  31. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  32. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  33. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  34. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  35. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  36. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  37. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  38. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  39. package/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  40. package/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  41. package/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  42. package/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  43. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  44. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  45. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  46. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  47. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  48. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  49. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  50. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  51. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  52. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  53. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  54. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  55. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  56. package/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  57. package/skills/remotion-best-practices/remotion-markup/SKILL.md +365 -0
  58. package/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
  59. package/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
  60. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/audio.md +4 -2
  61. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/calculate-metadata.md +4 -2
  62. package/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
  63. package/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
  64. package/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
  65. package/skills/{remotion/rules/videos.md → remotion-best-practices/remotion-markup/embedding-videos.md} +6 -4
  66. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/ffmpeg.md +5 -1
  67. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/gifs.md +55 -9
  68. package/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
  69. package/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
  70. package/skills/remotion-best-practices/remotion-markup/images.md +73 -0
  71. package/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
  72. package/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
  73. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/lottie.md +4 -1
  74. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/measuring-dom-nodes.md +5 -1
  75. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/measuring-text.md +8 -2
  76. package/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
  77. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/parameters.md +3 -1
  78. package/skills/remotion-best-practices/remotion-markup/remotion-maps/SKILL.md +36 -0
  79. package/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  80. package/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  81. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  82. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  83. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  84. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  85. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  86. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  87. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  88. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  89. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  90. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  91. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  92. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  93. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  94. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  95. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  96. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  97. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  98. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  99. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  100. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  101. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  102. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  103. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  104. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  105. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  106. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  107. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  108. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  109. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  110. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/sequencing.md +63 -12
  111. package/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
  112. package/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
  113. package/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
  114. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/transitions.md +49 -7
  115. package/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
  116. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/voiceover.md +2 -2
  117. package/skills/remotion-best-practices/remotion-multimedia/SKILL.md +20 -0
  118. package/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
  119. package/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
  120. package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-audio-duration.md +1 -3
  121. package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-video-dimensions.md +1 -3
  122. package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-video-duration.md +1 -3
  123. package/skills/remotion-best-practices/remotion-render/SKILL.md +27 -0
  124. package/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
  125. package/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
  126. package/skills/remotion-best-practices/remotion-saas/SKILL.md +33 -0
  127. package/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
  128. package/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
  129. package/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
  130. package/skills/remotion-best-practices/remotion-saas/player.md +33 -0
  131. package/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
  132. package/skills/remotion-best-practices/remotion-studio/SKILL.md +24 -0
  133. package/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
  134. package/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
  135. package/skills/remotion-best-practices/remotion-upgrade/SKILL.md +31 -0
  136. package/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
  137. package/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
  138. package/skills/remotion-captions/SKILL.md +36 -0
  139. package/skills/remotion-captions/agents/openai.yaml +7 -0
  140. package/skills/remotion-captions/assets/remotion-icon.png +0 -0
  141. package/skills/remotion-captions/display-captions.md +190 -0
  142. package/skills/remotion-captions/import-srt-captions.md +73 -0
  143. package/skills/remotion-captions/transcribe-captions.md +70 -0
  144. package/skills/remotion-create/SKILL.md +68 -0
  145. package/skills/remotion-create/agents/openai.yaml +7 -0
  146. package/skills/remotion-create/assets/remotion-icon.png +0 -0
  147. package/skills/remotion-create/tailwind.md +11 -0
  148. package/skills/remotion-create/video-layout.md +9 -0
  149. package/skills/remotion-docs/SKILL.md +46 -0
  150. package/skills/remotion-docs/agents/openai.yaml +7 -0
  151. package/skills/remotion-docs/assets/remotion-icon.png +0 -0
  152. package/skills/remotion-interactivity/SKILL.md +247 -0
  153. package/skills/remotion-interactivity/agents/openai.yaml +7 -0
  154. package/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
  155. package/skills/remotion-maps/SKILL.md +36 -0
  156. package/skills/remotion-maps/agents/openai.yaml +7 -0
  157. package/skills/remotion-maps/assets/remotion-icon.png +0 -0
  158. package/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  159. package/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  160. package/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  161. package/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  162. package/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  163. package/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  164. package/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  165. package/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  166. package/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  167. package/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  168. package/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  169. package/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  170. package/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  171. package/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  172. package/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  173. package/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  174. package/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  175. package/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  176. package/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  177. package/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  178. package/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  179. package/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  180. package/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  181. package/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  182. package/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  183. package/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  184. package/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  185. package/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  186. package/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  187. package/skills/remotion-markup/3d.md +86 -0
  188. package/skills/remotion-markup/SKILL.md +365 -0
  189. package/skills/remotion-markup/agents/openai.yaml +7 -0
  190. package/skills/remotion-markup/assets/remotion-icon.png +0 -0
  191. package/skills/remotion-markup/audio-visualization.md +198 -0
  192. package/skills/remotion-markup/audio.md +171 -0
  193. package/skills/remotion-markup/calculate-metadata.md +136 -0
  194. package/skills/remotion-markup/compositions.md +117 -0
  195. package/skills/remotion-markup/cropping.md +34 -0
  196. package/skills/remotion-markup/effects.md +251 -0
  197. package/skills/remotion-markup/embedding-videos.md +173 -0
  198. package/skills/remotion-markup/ffmpeg.md +38 -0
  199. package/skills/remotion-markup/gifs.md +187 -0
  200. package/skills/remotion-markup/google-fonts.md +76 -0
  201. package/skills/remotion-markup/html-in-canvas.md +128 -0
  202. package/skills/remotion-markup/images.md +73 -0
  203. package/skills/remotion-markup/light-leaks.md +106 -0
  204. package/skills/remotion-markup/local-fonts.md +69 -0
  205. package/skills/remotion-markup/lottie.md +73 -0
  206. package/skills/remotion-markup/measuring-dom-nodes.md +38 -0
  207. package/skills/remotion-markup/measuring-text.md +146 -0
  208. package/skills/remotion-markup/multi-scene-video.md +81 -0
  209. package/skills/remotion-markup/parameters.md +111 -0
  210. package/skills/remotion-markup/remotion-maps/SKILL.md +36 -0
  211. package/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  212. package/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  213. package/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  214. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  215. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  216. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  217. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  218. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  219. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  220. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  221. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  222. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  223. package/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  224. package/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  225. package/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  226. package/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  227. package/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  228. package/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  229. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  230. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  231. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  232. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  233. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  234. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  235. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  236. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  237. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  238. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  239. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  240. package/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  241. package/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  242. package/skills/remotion-markup/sequencing.md +169 -0
  243. package/skills/remotion-markup/sfx.md +51 -0
  244. package/skills/remotion-markup/silence-detection.md +71 -0
  245. package/skills/remotion-markup/text-highlights.md +56 -0
  246. package/skills/remotion-markup/timing.md +111 -0
  247. package/skills/remotion-markup/transitions.md +239 -0
  248. package/skills/remotion-markup/video-editing.md +90 -0
  249. package/skills/remotion-markup/voiceover.md +99 -0
  250. package/skills/remotion-multimedia/SKILL.md +20 -0
  251. package/skills/remotion-multimedia/agents/openai.yaml +7 -0
  252. package/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
  253. package/skills/remotion-multimedia/get-audio-duration.md +56 -0
  254. package/skills/remotion-multimedia/get-video-dimensions.md +66 -0
  255. package/skills/remotion-multimedia/get-video-duration.md +58 -0
  256. package/skills/remotion-render/SKILL.md +27 -0
  257. package/skills/remotion-render/agents/openai.yaml +7 -0
  258. package/skills/remotion-render/assets/remotion-icon.png +0 -0
  259. package/skills/remotion-render/transparent-videos.md +106 -0
  260. package/skills/remotion-saas/SKILL.md +33 -0
  261. package/skills/remotion-saas/agents/openai.yaml +7 -0
  262. package/skills/remotion-saas/assets/remotion-icon.png +0 -0
  263. package/skills/remotion-saas/framework.md +21 -0
  264. package/skills/remotion-saas/player.md +33 -0
  265. package/skills/remotion-saas/rendering.md +69 -0
  266. package/skills/remotion-studio/SKILL.md +24 -0
  267. package/skills/remotion-studio/agents/openai.yaml +7 -0
  268. package/skills/remotion-studio/assets/remotion-icon.png +0 -0
  269. package/skills/remotion-upgrade/SKILL.md +31 -0
  270. package/skills/remotion-upgrade/agents/openai.yaml +7 -0
  271. package/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
  272. package/skills/remotion/SKILL.md +0 -95
  273. package/skills/remotion/rules/animations.md +0 -31
  274. package/skills/remotion/rules/assets.md +0 -78
  275. package/skills/remotion/rules/can-decode.md +0 -81
  276. package/skills/remotion/rules/charts.md +0 -120
  277. package/skills/remotion/rules/compositions.md +0 -154
  278. package/skills/remotion/rules/extract-frames.md +0 -229
  279. package/skills/remotion/rules/fonts.md +0 -152
  280. package/skills/remotion/rules/images.md +0 -134
  281. package/skills/remotion/rules/light-leaks.md +0 -73
  282. package/skills/remotion/rules/maps.md +0 -412
  283. package/skills/remotion/rules/sfx.md +0 -30
  284. package/skills/remotion/rules/subtitles.md +0 -36
  285. package/skills/remotion/rules/text-animations.md +0 -20
  286. package/skills/remotion/rules/timing.md +0 -136
  287. package/skills/remotion/rules/trimming.md +0 -51
  288. /package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/transcribe-captions.md +0 -0
  289. /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/3d.md +0 -0
  290. /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/audio-visualization.md +0 -0
  291. /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/silence-detection.md +0 -0
  292. /package/skills/{remotion/rules → remotion-best-practices/remotion-render}/transparent-videos.md +0 -0
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: light-leaks
3
+ description: Light leak overlay effects for Remotion using lightLeak() from @remotion/effects.
4
+ metadata:
5
+ tags: light-leaks, overlays, effects, transitions
6
+ ---
7
+
8
+ ## Light Leaks
9
+
10
+ This only works from Remotion 4.0.500 and up. Use `npx remotion versions` to check your Remotion version and `npx remotion upgrade` to upgrade your Remotion version.
11
+
12
+ Apply `lightLeak()` from `@remotion/effects/light-leak` to a canvas-based component such as `<Solid>`. Animate `progress` from `0` to `1`; the light leak reveals during the first half and retracts during the second half.
13
+
14
+ Typically use it inside a `<TransitionSeries.Overlay>` to play over the cut point between two scenes. See the **transitions** rule for `<TransitionSeries>` and overlay usage.
15
+
16
+ ## Prerequisites
17
+
18
+ ```bash
19
+ npx remotion add @remotion/effects
20
+ ```
21
+
22
+ ## Light leak overlay component
23
+
24
+ Keep the `progress` calculation inline so it is editable in Remotion Studio:
25
+
26
+ ```tsx
27
+ import {lightLeak} from '@remotion/effects/light-leak';
28
+ import {interpolate, Solid, useCurrentFrame, useVideoConfig} from 'remotion';
29
+
30
+ const LightLeakOverlay: React.FC<{
31
+ seed?: number;
32
+ hueShift?: number;
33
+ }> = ({seed = 0, hueShift = 0}) => {
34
+ const frame = useCurrentFrame();
35
+ const {durationInFrames, height, width} = useVideoConfig();
36
+
37
+ return (
38
+ <Solid
39
+ width={width}
40
+ height={height}
41
+ effects={[
42
+ lightLeak({
43
+ seed,
44
+ hueShift,
45
+ progress: interpolate(frame, [0, durationInFrames - 1], [0, 1], {
46
+ extrapolateLeft: 'clamp',
47
+ extrapolateRight: 'clamp',
48
+ }),
49
+ }),
50
+ ]}
51
+ />
52
+ );
53
+ };
54
+ ```
55
+
56
+ ## Basic usage with TransitionSeries
57
+
58
+ ```tsx
59
+ import {TransitionSeries} from '@remotion/transitions';
60
+
61
+ <TransitionSeries>
62
+ <TransitionSeries.Sequence durationInFrames={60}>
63
+ <SceneA />
64
+ </TransitionSeries.Sequence>
65
+ <TransitionSeries.Overlay durationInFrames={30}>
66
+ <LightLeakOverlay />
67
+ </TransitionSeries.Overlay>
68
+ <TransitionSeries.Sequence durationInFrames={60}>
69
+ <SceneB />
70
+ </TransitionSeries.Sequence>
71
+ </TransitionSeries>;
72
+ ```
73
+
74
+ ## Options
75
+
76
+ - `progress?` — controls the evolve/retract phase from `0` to `1`. Effects do not animate on their own, so drive it with `useCurrentFrame()` and `interpolate()`. Default: `0.5`.
77
+ - `seed?` — determines the shape of the light leak pattern. Different seeds produce different patterns. Default: `0`.
78
+ - `hueShift?` — rotates the hue in degrees (`0`–`360`). Default: `0` (yellow-to-orange). `120` = green, `240` = blue.
79
+ - `disabled?` — skips the effect when `true`. Default: `false`.
80
+
81
+ ## Customizing the look
82
+
83
+ ```tsx
84
+ // Blue-tinted light leak with a different pattern
85
+ <LightLeakOverlay seed={5} hueShift={240} />;
86
+
87
+ // Green-tinted light leak
88
+ <LightLeakOverlay seed={2} hueShift={120} />;
89
+ ```
90
+
91
+ ## Standalone usage
92
+
93
+ The overlay component can also be used outside of `<TransitionSeries>` as a decorative layer in any composition:
94
+
95
+ ```tsx
96
+ import {AbsoluteFill} from 'remotion';
97
+
98
+ const MyComp: React.FC = () => (
99
+ <AbsoluteFill>
100
+ <MyContent />
101
+ <LightLeakOverlay seed={3} />
102
+ </AbsoluteFill>
103
+ );
104
+ ```
105
+
106
+ `lightLeak()` uses WebGL2. Enable WebGL during rendering with `Config.setChromiumOpenGlRenderer("angle")`.
@@ -0,0 +1,69 @@
1
+ For local font files, use the `@remotion/fonts` package.
2
+
3
+ ### Prerequisites
4
+
5
+ First, install @remotion/fonts:
6
+
7
+ ```bash
8
+ npx remotion add @remotion/fonts # If project uses npm
9
+ bunx remotion add @remotion/fonts # If project uses bun
10
+ yarn remotion add @remotion/fonts # If project uses yarn
11
+ pnpm exec remotion add @remotion/fonts # If project uses pnpm
12
+ ```
13
+
14
+ ### Loading a local font
15
+
16
+ Place your font file in the `public/` folder and use `loadFont()`:
17
+
18
+ ```tsx
19
+ import { loadFont } from "@remotion/fonts";
20
+ import { staticFile } from "remotion";
21
+
22
+ await loadFont({
23
+ family: "MyFont",
24
+ url: staticFile("MyFont-Regular.woff2"),
25
+ });
26
+
27
+ export const MyComposition = () => {
28
+ return (
29
+ <div style={{ fontFamily: "MyFont" }}>
30
+ Hello World
31
+ </div>
32
+ );
33
+ };
34
+ ```
35
+
36
+ ### Loading multiple weights
37
+
38
+ Load each weight separately with the same family name:
39
+
40
+ ```tsx
41
+ import { loadFont } from "@remotion/fonts";
42
+ import { staticFile } from "remotion";
43
+
44
+ await Promise.all([
45
+ loadFont({
46
+ family: "Inter",
47
+ url: staticFile("Inter-Regular.woff2"),
48
+ weight: "400",
49
+ }),
50
+ loadFont({
51
+ family: "Inter",
52
+ url: staticFile("Inter-Bold.woff2"),
53
+ weight: "700",
54
+ }),
55
+ ]);
56
+ ```
57
+
58
+ ### Available options
59
+
60
+ ```tsx
61
+ loadFont({
62
+ family: "MyFont", // Required: name to use in CSS
63
+ url: staticFile("font.woff2"), // Required: font file URL
64
+ format: "woff2", // Optional: auto-detected from extension
65
+ weight: "400", // Optional: font weight
66
+ style: "normal", // Optional: normal or italic
67
+ display: "block", // Optional: font-display behavior
68
+ });
69
+ ```
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: lottie
3
+ description: Embedding Lottie animations in Remotion.
4
+ metadata:
5
+ category: Animation
6
+ ---
7
+
8
+ # Using Lottie Animations in Remotion
9
+
10
+ ## Prerequisites
11
+
12
+ First, the @remotion/lottie package needs to be installed.
13
+ If it is not, use the following command:
14
+
15
+ ```bash
16
+ npx remotion add @remotion/lottie # If project uses npm
17
+ bunx remotion add @remotion/lottie # If project uses bun
18
+ yarn remotion add @remotion/lottie # If project uses yarn
19
+ pnpm exec remotion add @remotion/lottie # If project uses pnpm
20
+ ```
21
+
22
+ ## Displaying a Lottie file
23
+
24
+ To import a Lottie animation:
25
+
26
+ - Fetch the Lottie asset
27
+ - Wrap the loading process in `delayRender()` and `continueRender()`
28
+ - Save the animation data in a state
29
+ - Render the Lottie animation using the `Lottie` component from the `@remotion/lottie` package
30
+
31
+ ```tsx
32
+ import { Lottie, LottieAnimationData } from "@remotion/lottie";
33
+ import { useEffect, useState } from "react";
34
+ import { cancelRender, continueRender, delayRender } from "remotion";
35
+
36
+ export const MyAnimation = () => {
37
+ const [handle] = useState(() => delayRender("Loading Lottie animation"));
38
+
39
+ const [animationData, setAnimationData] =
40
+ useState<LottieAnimationData | null>(null);
41
+
42
+ useEffect(() => {
43
+ fetch("https://assets4.lottiefiles.com/packages/lf20_zyquagfl.json")
44
+ .then((data) => data.json())
45
+ .then((json) => {
46
+ setAnimationData(json);
47
+ continueRender(handle);
48
+ })
49
+ .catch((err) => {
50
+ cancelRender(err);
51
+ });
52
+ }, [handle]);
53
+
54
+ if (!animationData) {
55
+ return null;
56
+ }
57
+
58
+ return <Lottie animationData={animationData} />;
59
+ };
60
+ ```
61
+
62
+ ## Styling and animating
63
+
64
+ Lottie supports the `style` prop to allow styles and animations:
65
+
66
+ ```tsx
67
+ return (
68
+ <Lottie
69
+ animationData={animationData}
70
+ style={{ width: 400, height: 400 }}
71
+ />
72
+ );
73
+ ```
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: measuring-dom-nodes
3
+ description: Measuring DOM element dimensions in Remotion
4
+ metadata:
5
+ tags: measure, layout, dimensions, getBoundingClientRect, scale
6
+ ---
7
+
8
+ # Measuring DOM nodes in Remotion
9
+
10
+ Remotion applies a `scale()` transform to the video container, which affects values from `getBoundingClientRect()`. Use `useCurrentScale()` to get correct measurements.
11
+
12
+ ## Measuring element dimensions
13
+
14
+ ```tsx
15
+ import { useCurrentScale } from "remotion";
16
+ import { useRef, useEffect, useState } from "react";
17
+
18
+ export const MyComponent = () => {
19
+ const ref = useRef<HTMLDivElement>(null);
20
+ const scale = useCurrentScale();
21
+ const [dimensions, setDimensions] = useState({ width: 0, height: 0 });
22
+
23
+ useEffect(() => {
24
+ if (!ref.current) return;
25
+ const rect = ref.current.getBoundingClientRect();
26
+ setDimensions({
27
+ width: rect.width / scale,
28
+ height: rect.height / scale,
29
+ });
30
+ }, [scale]);
31
+
32
+ return (
33
+ <div ref={ref}>
34
+ Content to measure
35
+ </div>
36
+ );
37
+ };
38
+ ```
@@ -0,0 +1,146 @@
1
+ ---
2
+ name: measuring-text
3
+ description: Measuring text dimensions, fitting text to containers, and checking overflow
4
+ metadata:
5
+ tags: measure, text, layout, dimensions, fitText, fillTextBox
6
+ ---
7
+
8
+ # Measuring text in Remotion
9
+
10
+ ## Prerequisites
11
+
12
+ Install @remotion/layout-utils if it is not already installed:
13
+
14
+ ```bash
15
+ npx remotion add @remotion/layout-utils
16
+ ```
17
+
18
+ ## Measuring text dimensions
19
+
20
+ Use `measureText()` to calculate the width and height of text:
21
+
22
+ ```tsx
23
+ import { measureText } from "@remotion/layout-utils";
24
+
25
+ const { width, height } = measureText({
26
+ text: "Hello World",
27
+ fontFamily: "Arial",
28
+ fontSize: 32,
29
+ fontWeight: "bold",
30
+ });
31
+ ```
32
+
33
+ Results are cached - duplicate calls return the cached result.
34
+
35
+ ## Fitting text to a width
36
+
37
+ Use `fitText()` to find the optimal font size for a container:
38
+
39
+ ```tsx
40
+ import { fitText } from "@remotion/layout-utils";
41
+
42
+ const { fontSize } = fitText({
43
+ text: "Hello World",
44
+ withinWidth: 600,
45
+ fontFamily: "Inter",
46
+ fontWeight: "bold",
47
+ });
48
+
49
+ return (
50
+ <div
51
+ style={{
52
+ fontSize: Math.min(fontSize, 80), // Cap at 80px
53
+ fontFamily: "Inter",
54
+ fontWeight: "bold",
55
+ }}
56
+ >
57
+ Hello World
58
+ </div>
59
+ );
60
+ ```
61
+
62
+ ## Checking text overflow
63
+
64
+ Use `fillTextBox()` to check if text exceeds a box:
65
+
66
+ ```tsx
67
+ import { fillTextBox } from "@remotion/layout-utils";
68
+
69
+ const box = fillTextBox({ maxBoxWidth: 400, maxLines: 3 });
70
+
71
+ const words = ["Hello", "World", "This", "is", "a", "test"];
72
+ for (const word of words) {
73
+ const { exceedsBox } = box.add({
74
+ text: word + " ",
75
+ fontFamily: "Arial",
76
+ fontSize: 24,
77
+ });
78
+ if (exceedsBox) {
79
+ // Text would overflow, handle accordingly
80
+ break;
81
+ }
82
+ }
83
+ ```
84
+
85
+ ## Best practices
86
+
87
+ **Load fonts first:** Only call measurement functions after fonts are loaded.
88
+
89
+ ```tsx
90
+ import { loadFont } from "@remotion/google-fonts/Inter";
91
+
92
+ const { fontFamily, waitUntilDone } = loadFont("normal", {
93
+ weights: ["400"],
94
+ subsets: ["latin"],
95
+ });
96
+
97
+ waitUntilDone().then(() => {
98
+ // Now safe to measure
99
+ const { width } = measureText({
100
+ text: "Hello",
101
+ fontFamily,
102
+ fontSize: 32,
103
+ });
104
+ });
105
+ ```
106
+
107
+ **Use validateFontIsLoaded:** Catch font loading issues early:
108
+
109
+ ```tsx
110
+ measureText({
111
+ text: "Hello",
112
+ fontFamily: "MyCustomFont",
113
+ fontSize: 32,
114
+ validateFontIsLoaded: true, // Throws if font not loaded
115
+ });
116
+ ```
117
+
118
+ **Match font properties:** Use the same properties for measurement and rendering:
119
+
120
+ ```tsx
121
+ const fontStyle = {
122
+ fontFamily: "Inter",
123
+ fontSize: 32,
124
+ fontWeight: "bold" as const,
125
+ letterSpacing: "0.5px",
126
+ };
127
+
128
+ const { width } = measureText({
129
+ text: "Hello",
130
+ ...fontStyle,
131
+ });
132
+
133
+ return (
134
+ <div style={fontStyle}>
135
+ Hello
136
+ </div>
137
+ );
138
+ ```
139
+
140
+ **Avoid padding and border:** Use `outline` instead of `border` to prevent layout differences:
141
+
142
+ ```tsx
143
+ <div style={{ outline: "2px solid red" }}>
144
+ Text
145
+ </div>
146
+ ```
@@ -0,0 +1,81 @@
1
+ If the video being created is a multi-scene video, it should be structured in a special way.
2
+ Create a new folder and put each scene in a separate file.
3
+
4
+ ```tsx
5
+ // SceneA.tsx
6
+ export const SceneA: React.FC = () => {
7
+ return // ...
8
+ }
9
+ ```
10
+
11
+ ```tsx
12
+ // SceneB.tsx
13
+ export const SceneB: React.FC = () => {
14
+ return // ...
15
+ }
16
+ ```
17
+
18
+ Install `@remotion/transitions` if not yet available:
19
+
20
+ ```
21
+ npx remotion add @remotion/transitions
22
+ ```
23
+
24
+ // MyVideo.tsx
25
+ ```tsx
26
+ import {TransitionSeries} from '@remotion/transitions';
27
+
28
+ const MyVideo: React.FC = () => {
29
+ return (
30
+ <TransitionSeries>
31
+ <TransitionSeries.Sequence durationInFrames={4 * fps} name="SceneA">
32
+ <SceneA />
33
+ </TransitionSeries.Sequence>
34
+ <TransitionSeries.Sequence durationInFrames={4 * fps} name="SceneB">
35
+ <SceneB />
36
+ </TransitionSeries.Sequence>
37
+ </TransitionSeries>
38
+ )
39
+ }
40
+ ```
41
+
42
+ It could also make sense to register each scene individually in the root file so it can be edited there.
43
+ If a composition with the same component is registered, one can double click the sequence in the main composition and jump to that composition.
44
+
45
+ ```tsx
46
+ export const Root: React.FC = () => {
47
+ return (
48
+ <>
49
+ <Folder id="MyVideo-Scenes">
50
+ <Composition
51
+ id="Scene1"
52
+ component={Scene1}
53
+ durationInFrames={5 * fps}
54
+ fps={30}
55
+ width={1920}
56
+ height={1080}
57
+ />
58
+ <Composition
59
+ id="Scene2"
60
+ component={Scene2}
61
+ durationInFrames={5 * fps}
62
+ fps={30}
63
+ width={1920}
64
+ height={1080}
65
+ />
66
+ </Folder>
67
+ <Composition
68
+ id="MyVideo"
69
+ component={MyVideo}
70
+ durationInFrames={10 * fps}
71
+ fps={30}
72
+ width={1920}
73
+ height={1080}
74
+ />
75
+ </>
76
+ )
77
+ }
78
+ ```
79
+
80
+ This allows the user to trim the start and end of the durations visually and add [transitions](./transitions.md) later.
81
+ Prefer inlining the `durationInFrames` values, because only then they are editable. It's okay if the value is redundant.
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: parameters
3
+ description: Make a video parametrizable by adding a Zod schema
4
+ metadata:
5
+ tags: parameters, zod, schema
6
+ ---
7
+
8
+ To make a video parametrizable, a Zod schema can be added to a composition.
9
+
10
+ First, `zod` must be installed .
11
+
12
+ Search the project for lockfiles and run the correct command depending on the package manager:
13
+
14
+ If `package-lock.json` is found, use the following command:
15
+
16
+ ```bash
17
+ npm i zod
18
+ ```
19
+
20
+ If `bun.lockb` is found, use the following command:
21
+
22
+ ```bash
23
+ bun i zod
24
+ ```
25
+
26
+ If `yarn.lock` is found, use the following command:
27
+
28
+ ```bash
29
+ yarn add zod
30
+ ```
31
+
32
+ If `pnpm-lock.yaml` is found, use the following command:
33
+
34
+ ```bash
35
+ pnpm i zod
36
+ ```
37
+
38
+ Then, a Zod schema can be defined alongside the component:
39
+
40
+ ```tsx title="src/MyComposition.tsx"
41
+ import { z } from "zod";
42
+
43
+ export const MyCompositionSchema = z.object({
44
+ title: z.string(),
45
+ });
46
+
47
+ const MyComponent: React.FC<z.infer<typeof MyCompositionSchema>> = () => {
48
+ return (
49
+ <div>
50
+ <h1>
51
+ {props.title}
52
+ </h1>
53
+ </div>
54
+ );
55
+ };
56
+ ```
57
+
58
+ In the root file, the schema can be passed to the composition:
59
+
60
+ ```tsx title="src/Root.tsx"
61
+ import { Composition } from "remotion";
62
+ import { MycComponent, MyCompositionSchema } from "./MyComposition";
63
+
64
+ export const RemotionRoot = () => {
65
+ return (
66
+ <Composition
67
+ id="MyComposition"
68
+ component={MyComponent}
69
+ durationInFrames={100}
70
+ fps={30}
71
+ width={1080}
72
+ height={1080}
73
+ defaultProps={{ title: "Hello World" }}
74
+ schema={MyCompositionSchema}
75
+ />
76
+ );
77
+ };
78
+ ```
79
+
80
+ Now, the user can edit the parameter visually in the sidebar.
81
+
82
+ All schemas that are supported by Zod are supported by Remotion.
83
+
84
+ Remotion requires that the top-level type is a z.object(), because the collection of props of a React component is always an object.
85
+
86
+ ## Color picker
87
+
88
+ For adding a color picker, use `zColor()` from `@remotion/zod-types`.
89
+
90
+ If it is not installed, use the following command:
91
+
92
+ ```bash
93
+ npx remotion add @remotion/zod-types # If project uses npm
94
+ bunx remotion add @remotion/zod-types # If project uses bun
95
+ yarn remotion add @remotion/zod-types # If project uses yarn
96
+ pnpm exec remotion add @remotion/zod-types # If project uses pnpm
97
+ ```
98
+
99
+ Then import `zColor` from `@remotion/zod-types`:
100
+
101
+ ```tsx
102
+ import { zColor } from "@remotion/zod-types";
103
+ ```
104
+
105
+ Then use it in the schema:
106
+
107
+ ```tsx
108
+ export const MyCompositionSchema = z.object({
109
+ color: zColor(),
110
+ });
111
+ ```
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: remotion-maps
3
+ description: Remotion Map animation knowledge
4
+ version: 4.0.519
5
+ ---
6
+
7
+ # Remotion Maps
8
+
9
+ Choose exactly one technique from the intended shot, then load only that technique's `TECHNIQUE.md`.
10
+ Every technique directory is self-contained and may be removed without breaking the others.
11
+
12
+ ## [Static map](techniques/static-map/TECHNIQUE.md)
13
+
14
+ - Requires you grab a satellite image and mount it in a `<Img>` tag, and animate on top
15
+
16
+ ## [Mapbox](techniques/mapbox/TECHNIQUE.md)
17
+
18
+ - Requires a Mapbox key
19
+ - Nicer styles by default
20
+ - Map can display a round globe when zoomed out
21
+ - Includes nice 3D buildings such as the Eiffel tower
22
+
23
+ ## [MapLibre](techniques/maplibre/TECHNIQUE.md)
24
+
25
+ - Requires no API key, fully free
26
+ - Does not include 3D building
27
+
28
+ ## [MapTiler](techniques/maptiler/TECHNIQUE.md)
29
+
30
+ - Uses MapTiler
31
+ - Annotations can be drawn on top of geographic features: borders, rivers, labels
32
+
33
+ ## [CesiumJS](techniques/cesium/TECHNIQUE.md)
34
+
35
+ - Flythroughs through terrain and mountains
36
+ - "Flight simulator" perspective
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: '/remotion-maps'
3
+ short_description: 'Create animated maps in Remotion videos'
4
+ icon_small: './assets/remotion-icon.png'
5
+ icon_large: './assets/remotion-icon.png'
6
+ brand_color: '#0B84F3'
7
+ default_prompt: '$remotion-maps: Animate a dot from Zurich to New York.'