dsh-remotion 0.2.0 → 0.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.
- package/README.en.md +37 -6
- package/README.md +33 -4
- package/lib/index.d.ts +8 -41
- package/lib/index.js +30 -99
- package/lib/skill-bundle.d.ts +56 -0
- package/lib/skill-bundle.js +218 -0
- package/package.json +1 -1
- package/skills/remotion-best-practices/SKILL.md +59 -0
- package/skills/remotion-best-practices/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
- package/skills/remotion-best-practices/remotion-captions/SKILL.md +36 -0
- package/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
- package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/display-captions.md +9 -3
- package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/import-srt-captions.md +5 -1
- package/skills/remotion-best-practices/remotion-create/SKILL.md +68 -0
- package/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
- package/skills/{remotion/rules → remotion-best-practices/remotion-create}/tailwind.md +1 -1
- package/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
- package/skills/remotion-best-practices/remotion-docs/SKILL.md +46 -0
- package/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
- package/skills/remotion-best-practices/remotion-interactivity/SKILL.md +247 -0
- package/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/skills/remotion-best-practices/remotion-maps/SKILL.md +36 -0
- package/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/skills/remotion-best-practices/remotion-markup/SKILL.md +365 -0
- package/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
- package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/audio.md +4 -2
- package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/calculate-metadata.md +4 -2
- package/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
- package/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
- package/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
- package/skills/{remotion/rules/videos.md → remotion-best-practices/remotion-markup/embedding-videos.md} +6 -4
- package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/ffmpeg.md +5 -1
- package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/gifs.md +55 -9
- package/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
- package/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
- package/skills/remotion-best-practices/remotion-markup/images.md +73 -0
- package/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
- package/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
- package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/lottie.md +4 -1
- package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/measuring-dom-nodes.md +5 -1
- package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/measuring-text.md +8 -2
- package/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
- package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/parameters.md +3 -1
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/SKILL.md +36 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/sequencing.md +63 -12
- package/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
- package/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
- package/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
- package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/transitions.md +49 -7
- package/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
- package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/voiceover.md +2 -2
- package/skills/remotion-best-practices/remotion-multimedia/SKILL.md +20 -0
- package/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-audio-duration.md +1 -3
- package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-video-dimensions.md +1 -3
- package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-video-duration.md +1 -3
- package/skills/remotion-best-practices/remotion-render/SKILL.md +27 -0
- package/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
- package/skills/remotion-best-practices/remotion-saas/SKILL.md +33 -0
- package/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
- package/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
- package/skills/remotion-best-practices/remotion-saas/player.md +33 -0
- package/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
- package/skills/remotion-best-practices/remotion-studio/SKILL.md +24 -0
- package/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
- package/skills/remotion-best-practices/remotion-upgrade/SKILL.md +31 -0
- package/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
- package/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/skills/remotion-captions/SKILL.md +36 -0
- package/skills/remotion-captions/agents/openai.yaml +7 -0
- package/skills/remotion-captions/assets/remotion-icon.png +0 -0
- package/skills/remotion-captions/display-captions.md +190 -0
- package/skills/remotion-captions/import-srt-captions.md +73 -0
- package/skills/remotion-captions/transcribe-captions.md +70 -0
- package/skills/remotion-create/SKILL.md +68 -0
- package/skills/remotion-create/agents/openai.yaml +7 -0
- package/skills/remotion-create/assets/remotion-icon.png +0 -0
- package/skills/remotion-create/tailwind.md +11 -0
- package/skills/remotion-create/video-layout.md +9 -0
- package/skills/remotion-docs/SKILL.md +46 -0
- package/skills/remotion-docs/agents/openai.yaml +7 -0
- package/skills/remotion-docs/assets/remotion-icon.png +0 -0
- package/skills/remotion-interactivity/SKILL.md +247 -0
- package/skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
- package/skills/remotion-maps/SKILL.md +36 -0
- package/skills/remotion-maps/agents/openai.yaml +7 -0
- package/skills/remotion-maps/assets/remotion-icon.png +0 -0
- package/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/skills/remotion-markup/3d.md +86 -0
- package/skills/remotion-markup/SKILL.md +365 -0
- package/skills/remotion-markup/agents/openai.yaml +7 -0
- package/skills/remotion-markup/assets/remotion-icon.png +0 -0
- package/skills/remotion-markup/audio-visualization.md +198 -0
- package/skills/remotion-markup/audio.md +171 -0
- package/skills/remotion-markup/calculate-metadata.md +136 -0
- package/skills/remotion-markup/compositions.md +117 -0
- package/skills/remotion-markup/cropping.md +34 -0
- package/skills/remotion-markup/effects.md +251 -0
- package/skills/remotion-markup/embedding-videos.md +173 -0
- package/skills/remotion-markup/ffmpeg.md +38 -0
- package/skills/remotion-markup/gifs.md +187 -0
- package/skills/remotion-markup/google-fonts.md +76 -0
- package/skills/remotion-markup/html-in-canvas.md +128 -0
- package/skills/remotion-markup/images.md +73 -0
- package/skills/remotion-markup/light-leaks.md +106 -0
- package/skills/remotion-markup/local-fonts.md +69 -0
- package/skills/remotion-markup/lottie.md +73 -0
- package/skills/remotion-markup/measuring-dom-nodes.md +38 -0
- package/skills/remotion-markup/measuring-text.md +146 -0
- package/skills/remotion-markup/multi-scene-video.md +81 -0
- package/skills/remotion-markup/parameters.md +111 -0
- package/skills/remotion-markup/remotion-maps/SKILL.md +36 -0
- package/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
- package/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
- package/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
- package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
- package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
- package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
- package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
- package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
- package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
- package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
- package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
- package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
- package/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
- package/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
- package/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
- package/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
- package/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
- package/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
- package/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
- package/skills/remotion-markup/sequencing.md +169 -0
- package/skills/remotion-markup/sfx.md +51 -0
- package/skills/remotion-markup/silence-detection.md +71 -0
- package/skills/remotion-markup/text-highlights.md +56 -0
- package/skills/remotion-markup/timing.md +111 -0
- package/skills/remotion-markup/transitions.md +239 -0
- package/skills/remotion-markup/video-editing.md +90 -0
- package/skills/remotion-markup/voiceover.md +99 -0
- package/skills/remotion-multimedia/SKILL.md +20 -0
- package/skills/remotion-multimedia/agents/openai.yaml +7 -0
- package/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
- package/skills/remotion-multimedia/get-audio-duration.md +56 -0
- package/skills/remotion-multimedia/get-video-dimensions.md +66 -0
- package/skills/remotion-multimedia/get-video-duration.md +58 -0
- package/skills/remotion-render/SKILL.md +27 -0
- package/skills/remotion-render/agents/openai.yaml +7 -0
- package/skills/remotion-render/assets/remotion-icon.png +0 -0
- package/skills/remotion-render/transparent-videos.md +106 -0
- package/skills/remotion-saas/SKILL.md +33 -0
- package/skills/remotion-saas/agents/openai.yaml +7 -0
- package/skills/remotion-saas/assets/remotion-icon.png +0 -0
- package/skills/remotion-saas/framework.md +21 -0
- package/skills/remotion-saas/player.md +33 -0
- package/skills/remotion-saas/rendering.md +69 -0
- package/skills/remotion-studio/SKILL.md +24 -0
- package/skills/remotion-studio/agents/openai.yaml +7 -0
- package/skills/remotion-studio/assets/remotion-icon.png +0 -0
- package/skills/remotion-upgrade/SKILL.md +31 -0
- package/skills/remotion-upgrade/agents/openai.yaml +7 -0
- package/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
- package/skills/remotion/SKILL.md +0 -95
- package/skills/remotion/rules/animations.md +0 -31
- package/skills/remotion/rules/assets.md +0 -78
- package/skills/remotion/rules/can-decode.md +0 -81
- package/skills/remotion/rules/charts.md +0 -120
- package/skills/remotion/rules/compositions.md +0 -154
- package/skills/remotion/rules/extract-frames.md +0 -229
- package/skills/remotion/rules/fonts.md +0 -152
- package/skills/remotion/rules/images.md +0 -134
- package/skills/remotion/rules/light-leaks.md +0 -73
- package/skills/remotion/rules/maps.md +0 -412
- package/skills/remotion/rules/sfx.md +0 -30
- package/skills/remotion/rules/subtitles.md +0 -36
- package/skills/remotion/rules/text-animations.md +0 -20
- package/skills/remotion/rules/timing.md +0 -136
- package/skills/remotion/rules/trimming.md +0 -51
- /package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/transcribe-captions.md +0 -0
- /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/3d.md +0 -0
- /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/audio-visualization.md +0 -0
- /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/silence-detection.md +0 -0
- /package/skills/{remotion/rules → remotion-best-practices/remotion-render}/transparent-videos.md +0 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# CesiumJS — 3D flyovers in Remotion
|
|
2
|
+
|
|
3
|
+
Instructions for achieving map animations with "flight-simulator" perspective in Remotion.
|
|
4
|
+
|
|
5
|
+
## Modes
|
|
6
|
+
|
|
7
|
+
| Mode | Data | Use for |
|
|
8
|
+
| ----------- | ----------------------------------------------------- | ------------------------------------------------------ |
|
|
9
|
+
| `landscape` | MapTiler `terrain-quantized-mesh-v2` + `satellite-v2` | Mountains, gorges, rivers, coastlines and rural routes |
|
|
10
|
+
| `city` | Google Photorealistic 3D Tiles | Cities, architecture and recognizable landmarks |
|
|
11
|
+
|
|
12
|
+
Do not use footprint extrusions for city flyovers. They produce crude building blocks rather than
|
|
13
|
+
textured architecture.
|
|
14
|
+
|
|
15
|
+
## Credentials
|
|
16
|
+
|
|
17
|
+
For `landscape`, set:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
REMOTION_MAPTILER_KEY=...
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Create a MapTiler key at https://cloud.maptiler.com/account/keys/.
|
|
24
|
+
|
|
25
|
+
For `city`, set:
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
REMOTION_GOOGLE_MAPS_API_KEY=...
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Create a billing-enabled Google Map Tiles API key by following
|
|
32
|
+
https://developers.google.com/maps/documentation/tile/get-api-key. Enable the **Map Tiles API** and
|
|
33
|
+
restrict the key to that API. Ensure its application restriction permits local headless Remotion
|
|
34
|
+
requests.
|
|
35
|
+
|
|
36
|
+
## Build the flight
|
|
37
|
+
|
|
38
|
+
1. Copy `assets/CesiumFlythrough.tsx`, a path JSON and `assets/example-Root.tsx` into the Remotion
|
|
39
|
+
project, or import the component directly.
|
|
40
|
+
2. Supply the camera route as `[longitude, latitude][]`. Use only meaningful control points; do not hand-author dozens of tiny corrections.
|
|
41
|
+
3. Leave `pathSmoothingPasses={3}` initially. The component applies repeated Chaikin corner cutting, turning straight-then-corner input into a continuous swerve. Increase to `4` for a softer route or reduce to `2` when the camera must follow a tight corridor.
|
|
42
|
+
4. Set absolute camera altitudes for the location. City cameras normally fly lower than landscape
|
|
43
|
+
cameras.
|
|
44
|
+
5. Render a middle-frame still before rendering the full video.
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
<CesiumFlythrough
|
|
48
|
+
mode="city"
|
|
49
|
+
path={cameraPath}
|
|
50
|
+
pathSmoothingPasses={3}
|
|
51
|
+
altitudeStart={700}
|
|
52
|
+
altitudeEnd={500}
|
|
53
|
+
lookAheadKm={0.7}
|
|
54
|
+
travelKm={4.5}
|
|
55
|
+
/>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Camera behavior
|
|
59
|
+
|
|
60
|
+
Walk the smoothed curve by arc length for constant ground speed. Aim at a real point farther along
|
|
61
|
+
the curve rather than its next vertex. Derive roll from the change in look-ahead bearing so the
|
|
62
|
+
camera banks into a turn instead of twitching left and right.
|
|
63
|
+
|
|
64
|
+
For landscape routes, `scripts/prep-cesium-path.mjs` also clips, resamples, smooths and dampens a
|
|
65
|
+
GeoJSON centerline before the component applies its final curve smoothing.
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
## Mechanics
|
|
69
|
+
|
|
70
|
+
- Set `viewer.useDefaultRenderLoop = false`.
|
|
71
|
+
- Call `viewer.render()`, never `scene.render()`, while settling.
|
|
72
|
+
- Use `preserveDrawingBuffer: true`.
|
|
73
|
+
- Gate initialization and every frame with `delayRender`.
|
|
74
|
+
- Drive camera animation from `useCurrentFrame()`; do not use CSS transitions or browser-timed animation.
|
|
75
|
+
- Settle landscapes on `globe.tilesLoaded` and cities on `tileset.tilesLoaded`.
|
|
76
|
+
- Keep all provider attribution visible.
|
|
77
|
+
- Record the source and effective date of custom or disputed geography.
|
|
78
|
+
- Inspect rendered pixels, not only Studio playback, at every required aspect ratio.
|
|
79
|
+
- Read `references/3d-flyover-architecture.md` for camera math, `references/3d-data-sources.md` for provider details, and `references/3d-troubleshooting.md` for blank, coarse, unauthorized or timed-out renders.
|
|
80
|
+
|
|
81
|
+
## Files
|
|
82
|
+
|
|
83
|
+
- `assets/CesiumFlythrough.tsx` — reusable two-mode component.
|
|
84
|
+
- `assets/flight-path.ts` — dependency-free Chaikin route smoothing.
|
|
85
|
+
- `assets/example-Root.tsx` — landscape and city compositions.
|
|
86
|
+
- `assets/cesium-path.json` — sample landscape route.
|
|
87
|
+
- `assets/city-path.json` — sample city route.
|
|
88
|
+
- `assets/sample-river.geojson` — sample path-preparation input.
|
|
89
|
+
- `scripts/prep-cesium-path.mjs` — dependency-free landscape route preparation.
|
package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import React, {useEffect, useMemo, useRef, useState} from 'react';
|
|
2
|
+
import {
|
|
3
|
+
AbsoluteFill,
|
|
4
|
+
cancelRender,
|
|
5
|
+
continueRender,
|
|
6
|
+
delayRender,
|
|
7
|
+
useCurrentFrame,
|
|
8
|
+
useVideoConfig,
|
|
9
|
+
} from 'remotion';
|
|
10
|
+
import terrainPath from './cesium-path.json';
|
|
11
|
+
import {smoothFlightPath, type LngLat} from './flight-path';
|
|
12
|
+
|
|
13
|
+
export type FlyoverMode = 'landscape' | 'city';
|
|
14
|
+
export type {LngLat} from './flight-path';
|
|
15
|
+
|
|
16
|
+
export type CesiumFlythroughProps = {
|
|
17
|
+
mode?: FlyoverMode;
|
|
18
|
+
path?: LngLat[];
|
|
19
|
+
pathSmoothingPasses?: number;
|
|
20
|
+
altitudeStart?: number;
|
|
21
|
+
altitudeEnd?: number;
|
|
22
|
+
lookAheadKm?: number;
|
|
23
|
+
travelKm?: number;
|
|
24
|
+
pitchFromNadir?: number;
|
|
25
|
+
verticalExaggeration?: number;
|
|
26
|
+
maximumScreenSpaceError?: number;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const MAPTILER_KEY = process.env.REMOTION_MAPTILER_KEY;
|
|
30
|
+
const GOOGLE_MAPS_API_KEY = process.env.REMOTION_GOOGLE_MAPS_API_KEY;
|
|
31
|
+
const CESIUM_VER = '1.143';
|
|
32
|
+
const CDN = `https://cesium.com/downloads/cesiumjs/releases/${CESIUM_VER}/Build/Cesium/`;
|
|
33
|
+
const R = 6371;
|
|
34
|
+
const MAX_BANK = 0.13;
|
|
35
|
+
const BANK_GAIN = 0.6;
|
|
36
|
+
|
|
37
|
+
const havKm = (a: number[], b: number[]) => {
|
|
38
|
+
const r = Math.PI / 180;
|
|
39
|
+
const dLat = (b[1] - a[1]) * r;
|
|
40
|
+
const dLng = (b[0] - a[0]) * r;
|
|
41
|
+
const h =
|
|
42
|
+
Math.sin(dLat / 2) ** 2 +
|
|
43
|
+
Math.cos(a[1] * r) * Math.cos(b[1] * r) * Math.sin(dLng / 2) ** 2;
|
|
44
|
+
return 2 * R * Math.asin(Math.sqrt(h));
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const makePathWalker = (path: LngLat[]) => {
|
|
48
|
+
if (path.length < 2)
|
|
49
|
+
throw new Error('Flyover path needs at least two points');
|
|
50
|
+
const cumulative = [0];
|
|
51
|
+
for (let i = 1; i < path.length; i++) {
|
|
52
|
+
cumulative.push(cumulative[i - 1] + havKm(path[i - 1], path[i]));
|
|
53
|
+
}
|
|
54
|
+
const lengthKm = cumulative[cumulative.length - 1];
|
|
55
|
+
const along = (km: number): LngLat => {
|
|
56
|
+
const d = Math.max(0, Math.min(lengthKm, km));
|
|
57
|
+
let i = 1;
|
|
58
|
+
while (i < cumulative.length && cumulative[i] < d) i++;
|
|
59
|
+
if (i >= cumulative.length) return path[path.length - 1];
|
|
60
|
+
const segmentLength = cumulative[i] - cumulative[i - 1] || 1;
|
|
61
|
+
const t = (d - cumulative[i - 1]) / segmentLength;
|
|
62
|
+
return [
|
|
63
|
+
path[i - 1][0] + (path[i][0] - path[i - 1][0]) * t,
|
|
64
|
+
path[i - 1][1] + (path[i][1] - path[i - 1][1]) * t,
|
|
65
|
+
];
|
|
66
|
+
};
|
|
67
|
+
return {along, lengthKm};
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const bearing = (a: number[], b: number[]) => {
|
|
71
|
+
const r = Math.PI / 180;
|
|
72
|
+
const y = Math.sin((b[0] - a[0]) * r) * Math.cos(b[1] * r);
|
|
73
|
+
const x =
|
|
74
|
+
Math.cos(a[1] * r) * Math.sin(b[1] * r) -
|
|
75
|
+
Math.sin(a[1] * r) * Math.cos(b[1] * r) * Math.cos((b[0] - a[0]) * r);
|
|
76
|
+
return Math.atan2(y, x);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
const lerp = (a: number, b: number, t: number) => a + (b - a) * t;
|
|
80
|
+
const clamp = (v: number, lo: number, hi: number) =>
|
|
81
|
+
Math.max(lo, Math.min(hi, v));
|
|
82
|
+
|
|
83
|
+
const loadCesium = () =>
|
|
84
|
+
new Promise<any>((resolve, reject) => {
|
|
85
|
+
if ((window as any).Cesium) return resolve((window as any).Cesium);
|
|
86
|
+
(window as any).CESIUM_BASE_URL = CDN;
|
|
87
|
+
const css = document.createElement('link');
|
|
88
|
+
css.rel = 'stylesheet';
|
|
89
|
+
css.href = `${CDN}Widgets/widgets.css`;
|
|
90
|
+
document.head.appendChild(css);
|
|
91
|
+
const script = document.createElement('script');
|
|
92
|
+
script.src = `${CDN}Cesium.js`;
|
|
93
|
+
script.onload = () => resolve((window as any).Cesium);
|
|
94
|
+
script.onerror = () =>
|
|
95
|
+
reject(new Error(`Failed to load CesiumJS ${CESIUM_VER}`));
|
|
96
|
+
document.head.appendChild(script);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
export const CesiumFlythrough: React.FC<CesiumFlythroughProps> = ({
|
|
100
|
+
mode = 'landscape',
|
|
101
|
+
path = terrainPath as LngLat[],
|
|
102
|
+
pathSmoothingPasses = 3,
|
|
103
|
+
altitudeStart = 4600,
|
|
104
|
+
altitudeEnd = 4300,
|
|
105
|
+
lookAheadKm = 1.5,
|
|
106
|
+
travelKm = 13,
|
|
107
|
+
pitchFromNadir = 76,
|
|
108
|
+
verticalExaggeration = 1.1,
|
|
109
|
+
maximumScreenSpaceError = 8,
|
|
110
|
+
}) => {
|
|
111
|
+
const containerRef = useRef<HTMLDivElement>(null);
|
|
112
|
+
const started = useRef(false);
|
|
113
|
+
const viewerRef = useRef<any>(null);
|
|
114
|
+
const tilesetRef = useRef<any>(null);
|
|
115
|
+
const frame = useCurrentFrame();
|
|
116
|
+
const {durationInFrames, fps, width, height} = useVideoConfig();
|
|
117
|
+
const [ready, setReady] = useState(false);
|
|
118
|
+
const [handle] = useState(() =>
|
|
119
|
+
delayRender(`cesium init: ${mode}`, {timeoutInMilliseconds: 120000}),
|
|
120
|
+
);
|
|
121
|
+
const walker = useMemo(
|
|
122
|
+
() => makePathWalker(smoothFlightPath(path, pathSmoothingPasses)),
|
|
123
|
+
[path, pathSmoothingPasses],
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
const setCamera = (C: any, viewer: any, progress: number) => {
|
|
127
|
+
const maxTravel = Math.max(0, walker.lengthKm - lookAheadKm * 2);
|
|
128
|
+
const cameraDistance = Math.min(travelKm, maxTravel) * progress;
|
|
129
|
+
const camera = walker.along(cameraDistance);
|
|
130
|
+
const aim = walker.along(cameraDistance + lookAheadKm);
|
|
131
|
+
const aim2 = walker.along(cameraDistance + lookAheadKm * 2);
|
|
132
|
+
const heading = bearing(camera, aim);
|
|
133
|
+
let headingDelta = bearing(aim, aim2) - heading;
|
|
134
|
+
while (headingDelta > Math.PI) headingDelta -= 2 * Math.PI;
|
|
135
|
+
while (headingDelta < -Math.PI) headingDelta += 2 * Math.PI;
|
|
136
|
+
viewer.camera.setView({
|
|
137
|
+
destination: C.Cartesian3.fromDegrees(
|
|
138
|
+
camera[0],
|
|
139
|
+
camera[1],
|
|
140
|
+
lerp(altitudeStart, altitudeEnd, progress),
|
|
141
|
+
),
|
|
142
|
+
orientation: {
|
|
143
|
+
heading,
|
|
144
|
+
pitch: C.Math.toRadians(-(90 - pitchFromNadir)),
|
|
145
|
+
roll: clamp(headingDelta * BANK_GAIN, -MAX_BANK, MAX_BANK),
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
const tilesAreLoaded = (viewer: any) => {
|
|
151
|
+
if (mode === 'landscape') return viewer.scene.globe.tilesLoaded;
|
|
152
|
+
return Boolean(tilesetRef.current?.tilesLoaded);
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
const settle = (viewer: any) =>
|
|
156
|
+
new Promise<void>((resolve) => {
|
|
157
|
+
let stable = 0;
|
|
158
|
+
let ticks = 0;
|
|
159
|
+
const tick = () => {
|
|
160
|
+
viewer.render();
|
|
161
|
+
ticks++;
|
|
162
|
+
stable = tilesAreLoaded(viewer) ? stable + 1 : 0;
|
|
163
|
+
if (stable > 8 || ticks > 600) {
|
|
164
|
+
viewer.render();
|
|
165
|
+
resolve();
|
|
166
|
+
} else {
|
|
167
|
+
setTimeout(tick, 8);
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
tick();
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
useEffect(() => {
|
|
174
|
+
if (started.current) return;
|
|
175
|
+
started.current = true;
|
|
176
|
+
(async () => {
|
|
177
|
+
if (mode === 'landscape' && !MAPTILER_KEY) {
|
|
178
|
+
throw new Error(
|
|
179
|
+
'Set REMOTION_MAPTILER_KEY. Create a key at https://cloud.maptiler.com/account/keys/',
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
if (mode === 'city' && !GOOGLE_MAPS_API_KEY) {
|
|
183
|
+
throw new Error(
|
|
184
|
+
'Set REMOTION_GOOGLE_MAPS_API_KEY. Create a Map Tiles API key at https://developers.google.com/maps/documentation/tile/get-api-key',
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
if (mode === 'city' && durationInFrames / fps > 30) {
|
|
188
|
+
throw new Error(
|
|
189
|
+
'Google Photorealistic 3D Tiles compositions must not exceed 30 seconds',
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
const C = await loadCesium();
|
|
194
|
+
const viewer = new C.Viewer(containerRef.current, {
|
|
195
|
+
baseLayer: false,
|
|
196
|
+
baseLayerPicker: false,
|
|
197
|
+
geocoder: false,
|
|
198
|
+
homeButton: false,
|
|
199
|
+
sceneModePicker: false,
|
|
200
|
+
navigationHelpButton: false,
|
|
201
|
+
animation: false,
|
|
202
|
+
timeline: false,
|
|
203
|
+
fullscreenButton: false,
|
|
204
|
+
infoBox: false,
|
|
205
|
+
selectionIndicator: false,
|
|
206
|
+
contextOptions: {webgl: {preserveDrawingBuffer: true}},
|
|
207
|
+
});
|
|
208
|
+
if (mode === 'landscape') {
|
|
209
|
+
viewer.imageryLayers.addImageryProvider(
|
|
210
|
+
new C.UrlTemplateImageryProvider({
|
|
211
|
+
url: `https://api.maptiler.com/tiles/satellite-v2/{z}/{x}/{y}.jpg?key=${MAPTILER_KEY}`,
|
|
212
|
+
maximumLevel: 20,
|
|
213
|
+
}),
|
|
214
|
+
);
|
|
215
|
+
viewer.terrainProvider = await C.CesiumTerrainProvider.fromUrl(
|
|
216
|
+
`https://api.maptiler.com/tiles/terrain-quantized-mesh-v2/?key=${MAPTILER_KEY}`,
|
|
217
|
+
{requestVertexNormals: true},
|
|
218
|
+
);
|
|
219
|
+
viewer.creditDisplay.addStaticCredit(
|
|
220
|
+
new C.Credit(
|
|
221
|
+
'<a href="https://www.maptiler.com/copyright/" target="_blank">© MapTiler</a>',
|
|
222
|
+
true,
|
|
223
|
+
),
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
if (mode === 'city') {
|
|
227
|
+
viewer.scene.globe.show = false;
|
|
228
|
+
const tileset = await C.Cesium3DTileset.fromUrl(
|
|
229
|
+
`https://tile.googleapis.com/v1/3dtiles/root.json?key=${GOOGLE_MAPS_API_KEY}`,
|
|
230
|
+
{
|
|
231
|
+
showCreditsOnScreen: true,
|
|
232
|
+
maximumScreenSpaceError,
|
|
233
|
+
},
|
|
234
|
+
);
|
|
235
|
+
viewer.scene.primitives.add(tileset);
|
|
236
|
+
tilesetRef.current = tileset;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
viewer.useDefaultRenderLoop = false;
|
|
240
|
+
viewer.scene.skyAtmosphere.show = true;
|
|
241
|
+
viewer.scene.fog.enabled = true;
|
|
242
|
+
viewer.scene.globe.enableLighting = false;
|
|
243
|
+
viewer.scene.verticalExaggeration = verticalExaggeration;
|
|
244
|
+
(window as any).__CESIUM_FLYOVER__ = {C, mode};
|
|
245
|
+
viewerRef.current = viewer;
|
|
246
|
+
setCamera(C, viewer, 0);
|
|
247
|
+
await settle(viewer);
|
|
248
|
+
setReady(true);
|
|
249
|
+
continueRender(handle);
|
|
250
|
+
})().catch((error) => cancelRender(error));
|
|
251
|
+
}, [durationInFrames, fps, handle, mode]);
|
|
252
|
+
|
|
253
|
+
useEffect(() => {
|
|
254
|
+
if (!ready) return;
|
|
255
|
+
const frameHandle = delayRender(`cesium ${mode} frame ${frame}`, {
|
|
256
|
+
timeoutInMilliseconds: 60000,
|
|
257
|
+
});
|
|
258
|
+
const C = (window as any).__CESIUM_FLYOVER__.C;
|
|
259
|
+
const viewer = viewerRef.current;
|
|
260
|
+
const progress = durationInFrames <= 1 ? 0 : frame / (durationInFrames - 1);
|
|
261
|
+
setCamera(C, viewer, progress);
|
|
262
|
+
settle(viewer).then(() => continueRender(frameHandle));
|
|
263
|
+
}, [ready, frame, durationInFrames, mode]);
|
|
264
|
+
|
|
265
|
+
return (
|
|
266
|
+
<AbsoluteFill style={{backgroundColor: '#000'}}>
|
|
267
|
+
<div ref={containerRef} style={{width, height, position: 'absolute'}} />
|
|
268
|
+
{mode === 'city' ? (
|
|
269
|
+
<div
|
|
270
|
+
style={{
|
|
271
|
+
position: 'absolute',
|
|
272
|
+
top: 20,
|
|
273
|
+
right: 24,
|
|
274
|
+
color: 'white',
|
|
275
|
+
font: '500 18px/1.2 sans-serif',
|
|
276
|
+
textShadow: '0 1px 4px black',
|
|
277
|
+
}}
|
|
278
|
+
>
|
|
279
|
+
For promotional purposes only
|
|
280
|
+
</div>
|
|
281
|
+
) : null}
|
|
282
|
+
</AbsoluteFill>
|
|
283
|
+
);
|
|
284
|
+
};
|
package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json
ADDED
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
[
|
|
2
|
+
[94.986139893537, 29.76417312959953],
|
|
3
|
+
[94.98637054463002, 29.764163024004816],
|
|
4
|
+
[94.98661427422437, 29.764153025681516],
|
|
5
|
+
[94.9868698103708, 29.764142908388347],
|
|
6
|
+
[94.98713600736019, 29.764132461562934],
|
|
7
|
+
[94.98741179569139, 29.76412145291623],
|
|
8
|
+
[94.9876962466277, 29.764109663422126],
|
|
9
|
+
[94.98798853462426, 29.764096898390772],
|
|
10
|
+
[94.98828790834106, 29.764082995679242],
|
|
11
|
+
[94.98859364523021, 29.764067827511347],
|
|
12
|
+
[94.98890509685035, 29.764051279216236],
|
|
13
|
+
[94.98922167960325, 29.76403324759024],
|
|
14
|
+
[94.98954294512464, 29.76401367774424],
|
|
15
|
+
[94.9898685550894, 29.76399255290906],
|
|
16
|
+
[94.99019820264337, 29.76396985787546],
|
|
17
|
+
[94.9905316178847, 29.763945606334815],
|
|
18
|
+
[94.9908685732739, 29.763919866576575],
|
|
19
|
+
[94.99120886105722, 29.763892700951896],
|
|
20
|
+
[94.99155229116181, 29.7638641665054],
|
|
21
|
+
[94.99189872300363, 29.76383429811986],
|
|
22
|
+
[94.99224811692223, 29.763803085651237],
|
|
23
|
+
[94.99260053337049, 29.763770509641105],
|
|
24
|
+
[94.99295601118384, 29.76373658086857],
|
|
25
|
+
[94.99331456742908, 29.763701322339223],
|
|
26
|
+
[94.99367598745215, 29.763664830647013],
|
|
27
|
+
[94.99404000156176, 29.763627219082974],
|
|
28
|
+
[94.99440635968021, 29.763588592698778],
|
|
29
|
+
[94.99477481502787, 29.76354905236459],
|
|
30
|
+
[94.9951451006731, 29.763508748648892],
|
|
31
|
+
[94.99578766204738, 29.763462125646818],
|
|
32
|
+
[94.99643710580968, 29.763412119743368],
|
|
33
|
+
[94.99709296623192, 29.763358988682928],
|
|
34
|
+
[94.99775479298779, 29.763302979031952],
|
|
35
|
+
[94.99842214521965, 29.763244327404465],
|
|
36
|
+
[94.99909470569231, 29.763183258547627],
|
|
37
|
+
[94.9997722961385, 29.76312010454948],
|
|
38
|
+
[95.00045474013422, 29.763055184243758],
|
|
39
|
+
[95.00114189582168, 29.762988795623112],
|
|
40
|
+
[95.00183368970049, 29.762921207778405],
|
|
41
|
+
[95.0025300799095, 29.76285270023514],
|
|
42
|
+
[95.00323103443773, 29.762783549665084],
|
|
43
|
+
[95.00393658318124, 29.76271400155497],
|
|
44
|
+
[95.00464681949704, 29.76264432424487],
|
|
45
|
+
[95.00536183331896, 29.76257477740286],
|
|
46
|
+
[95.00608171146906, 29.762505612813378],
|
|
47
|
+
[95.00680653793428, 29.762437075077955],
|
|
48
|
+
[95.00753639864557, 29.762369398844733],
|
|
49
|
+
[95.00827137837749, 29.762302811854063],
|
|
50
|
+
[95.00901153006761, 29.762237519590354],
|
|
51
|
+
[95.00975680776318, 29.76217368790719],
|
|
52
|
+
[95.01050716875933, 29.762111478518566],
|
|
53
|
+
[95.0112626067996, 29.76205102042169],
|
|
54
|
+
[95.01202312290016, 29.761992432502932],
|
|
55
|
+
[95.01278871942189, 29.76193583156792],
|
|
56
|
+
[95.01355940108247, 29.761881333165324],
|
|
57
|
+
[95.01433525277555, 29.761829093407865],
|
|
58
|
+
[95.01511636205572, 29.761779224166457],
|
|
59
|
+
[95.01590278872715, 29.76173180995877],
|
|
60
|
+
[95.0166868810408, 29.76168612055982],
|
|
61
|
+
[95.01746871725406, 29.761642332250204],
|
|
62
|
+
[95.0182483756254, 29.76160062131038],
|
|
63
|
+
[95.01902596675926, 29.761561177619345],
|
|
64
|
+
[95.019801682618, 29.761524238306453],
|
|
65
|
+
[95.02057570378254, 29.76149004865798],
|
|
66
|
+
[95.02134818878243, 29.761458838563573],
|
|
67
|
+
[95.02211921065114, 29.761430763930672],
|
|
68
|
+
[95.02288888930805, 29.761405973069504],
|
|
69
|
+
[95.02365734467304, 29.761384614290225],
|
|
70
|
+
[95.02442469666667, 29.761366835902948],
|
|
71
|
+
[95.02519095257038, 29.761352731197437],
|
|
72
|
+
[95.02595602043016, 29.761342344990513],
|
|
73
|
+
[95.02671980829304, 29.761335722099044],
|
|
74
|
+
[95.02748221022355, 29.76133286485609],
|
|
75
|
+
[95.02824308111781, 29.761333684556867],
|
|
76
|
+
[95.02900227020879, 29.761338090875398],
|
|
77
|
+
[95.02975960629327, 29.76134599002589],
|
|
78
|
+
[95.03051480114966, 29.76135728786741],
|
|
79
|
+
[95.03126749207338, 29.761371921751238],
|
|
80
|
+
[95.03201723576402, 29.761389829130785],
|
|
81
|
+
[95.03276363398774, 29.761410893146387],
|
|
82
|
+
[95.03350632277824, 29.761434973117545],
|
|
83
|
+
[95.03424521675927, 29.76146183394706],
|
|
84
|
+
[95.03498037607913, 29.761491215377145],
|
|
85
|
+
[95.035711917426, 29.761522866578012],
|
|
86
|
+
[95.03643998610582, 29.761556530192124],
|
|
87
|
+
[95.03716475930274, 29.761591886465347],
|
|
88
|
+
[95.03788653744915, 29.761628566185358],
|
|
89
|
+
[95.03860571883365, 29.76166618469001],
|
|
90
|
+
[95.03932258585421, 29.76170436456548],
|
|
91
|
+
[95.04003738892985, 29.76174273062808],
|
|
92
|
+
[95.04075025083816, 29.76178094997509],
|
|
93
|
+
[95.0414610559133, 29.76181870813213],
|
|
94
|
+
[95.04216961904287, 29.761855638407084],
|
|
95
|
+
[95.04287591713418, 29.761891331889718],
|
|
96
|
+
[95.04357986124926, 29.761925397709096],
|
|
97
|
+
[95.04428137757625, 29.761957488479126],
|
|
98
|
+
[95.04498041854592, 29.76198725048925],
|
|
99
|
+
[95.04567682817188, 29.762014317811357],
|
|
100
|
+
[95.04637032968634, 29.762038376323694],
|
|
101
|
+
[95.04706059416637, 29.762059099770216],
|
|
102
|
+
[95.04774726432963, 29.762076162373777],
|
|
103
|
+
[95.0484300050609, 29.762089241174117],
|
|
104
|
+
[95.04910871445378, 29.762098042845082],
|
|
105
|
+
[95.04978328153793, 29.762102280852183],
|
|
106
|
+
[95.05045359964508, 29.76210167552205],
|
|
107
|
+
[95.05111966253706, 29.76209602004179],
|
|
108
|
+
[95.05178153406797, 29.762085106891018],
|
|
109
|
+
[95.05243927503516, 29.762068731547185],
|
|
110
|
+
[95.05309287649075, 29.762046750046103],
|
|
111
|
+
[95.0537422946664, 29.762019099359485],
|
|
112
|
+
[95.05438748396233, 29.761985721609257],
|
|
113
|
+
[95.05502839823626, 29.76194655859307],
|
|
114
|
+
[95.05566488201883, 29.761901557942874],
|
|
115
|
+
[95.05629656919591, 29.761850805510885],
|
|
116
|
+
[95.05692313234233, 29.761794428680094],
|
|
117
|
+
[95.0575442743842, 29.761732580860688],
|
|
118
|
+
[95.0581596433054, 29.761665348138973],
|
|
119
|
+
[95.05876888708963, 29.761592816601354],
|
|
120
|
+
[95.05937164047754, 29.761515065256333],
|
|
121
|
+
[95.05996759228947, 29.761432144038746],
|
|
122
|
+
[95.06055643134583, 29.761344102883623],
|
|
123
|
+
[95.06113793491645, 29.761251010034922],
|
|
124
|
+
[95.06171214230999, 29.761153046649387],
|
|
125
|
+
[95.06227907948092, 29.761050389948267],
|
|
126
|
+
[95.06283877238438, 29.760943217152814],
|
|
127
|
+
[95.06339127381165, 29.760831691663462],
|
|
128
|
+
[95.06393669678933, 29.760716002374487],
|
|
129
|
+
[95.06447520396281, 29.76059636241658],
|
|
130
|
+
[95.06500695797821, 29.760472984920362],
|
|
131
|
+
[95.06553212847378, 29.760346104258282],
|
|
132
|
+
[95.0660508986937, 29.760216015040477],
|
|
133
|
+
[95.06656344194985, 29.760083025494016],
|
|
134
|
+
[95.06707002648291, 29.75994741412334],
|
|
135
|
+
[95.06757112978441, 29.759809440866206],
|
|
136
|
+
[95.06806722979658, 29.759669344181514],
|
|
137
|
+
[95.06855878142073, 29.759527354008487],
|
|
138
|
+
[95.06904617625263, 29.759383697903765],
|
|
139
|
+
[95.06952978875404, 29.75923861533451],
|
|
140
|
+
[95.07000993080214, 29.759092371156385],
|
|
141
|
+
[95.07048679175114, 29.758945227682446],
|
|
142
|
+
[95.07096044787545, 29.75879742836973],
|
|
143
|
+
[95.07143096114058, 29.758649219939148],
|
|
144
|
+
[95.0718984144853, 29.758500858117706],
|
|
145
|
+
[95.07236278188816, 29.7583525823887],
|
|
146
|
+
[95.07282412506945, 29.758204644682806],
|
|
147
|
+
[95.07328275575983, 29.75805728963777],
|
|
148
|
+
[95.07373905641253, 29.757910760813612],
|
|
149
|
+
[95.07419366476313, 29.757765217208473],
|
|
150
|
+
[95.07464735762416, 29.757620800921966],
|
|
151
|
+
[95.07510085345471, 29.757477677507868],
|
|
152
|
+
[95.07555467766437, 29.757336168750566],
|
|
153
|
+
[95.07600940811365, 29.757196598118206],
|
|
154
|
+
[95.07646537399586, 29.75705931280275],
|
|
155
|
+
[95.0769228207089, 29.756924677394206],
|
|
156
|
+
[95.07738220221682, 29.756793075496777],
|
|
157
|
+
[95.07784401968648, 29.75666487927172],
|
|
158
|
+
[95.07830874492939, 29.756540496044202],
|
|
159
|
+
[95.07877690647402, 29.756420332181715],
|
|
160
|
+
[95.07924898851259, 29.75630478841808],
|
|
161
|
+
[95.07972503722137, 29.756194196891926],
|
|
162
|
+
[95.08020511490892, 29.756088882533362],
|
|
163
|
+
[95.0806891403115, 29.75598918720403],
|
|
164
|
+
[95.08117690920173, 29.75589531641115],
|
|
165
|
+
[95.08166835685006, 29.755807414283098],
|
|
166
|
+
[95.08216335868525, 29.75572566824862],
|
|
167
|
+
[95.08266177736347, 29.755650250535062],
|
|
168
|
+
[95.08316349491537, 29.75558120546187],
|
|
169
|
+
[95.08366839703267, 29.755518567048284],
|
|
170
|
+
[95.08417639041532, 29.75546236367944],
|
|
171
|
+
[95.08468755179344, 29.755412571989652],
|
|
172
|
+
[95.08520236790308, 29.755369015997044],
|
|
173
|
+
[95.08572134650697, 29.75533148313236],
|
|
174
|
+
[95.0862450098908, 29.755299740305322],
|
|
175
|
+
[95.08677390781156, 29.75527358808779],
|
|
176
|
+
[95.08730861289804, 29.755252808551163],
|
|
177
|
+
[95.08784970300886, 29.755237175354623],
|
|
178
|
+
[95.08839755885471, 29.755226476280296],
|
|
179
|
+
[95.08895256438073, 29.755220494902016],
|
|
180
|
+
[95.089514993805, 29.755219019351184],
|
|
181
|
+
[95.09008489086116, 29.7552217729881],
|
|
182
|
+
[95.09066229928165, 29.75522847917293],
|
|
183
|
+
[95.09124726342738, 29.755238870403907],
|
|
184
|
+
[95.09183976966378, 29.755252726598844],
|
|
185
|
+
[95.09243978867215, 29.75526985018834],
|
|
186
|
+
[95.09304723439128, 29.755290065097345],
|
|
187
|
+
[95.09366184648091, 29.75531326126932],
|
|
188
|
+
[95.09428337414857, 29.755339326723966],
|
|
189
|
+
[95.09491171647382, 29.755368102171502],
|
|
190
|
+
[95.09554680939114, 29.75539940595205],
|
|
191
|
+
[95.09618846028675, 29.755433126230766],
|
|
192
|
+
[95.09683632409143, 29.75546923335011],
|
|
193
|
+
[95.09749004228215, 29.75550775219342],
|
|
194
|
+
[95.09814924669702, 29.755548754655436],
|
|
195
|
+
[95.0988136358514, 29.755592374644042],
|
|
196
|
+
[95.09948290826172, 29.755638746066982],
|
|
197
|
+
[95.1001568080277, 29.75568798494813],
|
|
198
|
+
[95.10083517891061, 29.75574017449467],
|
|
199
|
+
[95.10151797539464, 29.75579531974171],
|
|
200
|
+
[95.1022051519645, 29.755853425724286],
|
|
201
|
+
[95.10289664375364, 29.755914488290983],
|
|
202
|
+
[95.10359258928374, 29.755978570204803],
|
|
203
|
+
[95.10429306658138, 29.756045742645284],
|
|
204
|
+
[95.10499798654989, 29.756116067070348],
|
|
205
|
+
[95.10570717321444, 29.75618958016383],
|
|
206
|
+
[95.10642032295875, 29.75626636089044],
|
|
207
|
+
[95.10713711848761, 29.756346492746122],
|
|
208
|
+
[95.10785729025027, 29.75643004436662],
|
|
209
|
+
[95.10858043622838, 29.75651688160893],
|
|
210
|
+
[95.10930611534633, 29.75660684892344],
|
|
211
|
+
[95.11003407093642, 29.756699686157475],
|
|
212
|
+
[95.11076414467685, 29.756795123665622],
|
|
213
|
+
[95.1114960914754, 29.756892893838618],
|
|
214
|
+
[95.11222971288655, 29.756992700238396],
|
|
215
|
+
[95.1129649452222, 29.75709420093414],
|
|
216
|
+
[95.11370170201873, 29.75719709582746],
|
|
217
|
+
[95.11443986012442, 29.757301125099488],
|
|
218
|
+
[95.11517935555177, 29.7574061249826],
|
|
219
|
+
[95.11592009761476, 29.757511940391662],
|
|
220
|
+
[95.11666232015585, 29.75761835330566],
|
|
221
|
+
[95.11740624233691, 29.757725222810585],
|
|
222
|
+
[95.11815181076378, 29.75783253698326],
|
|
223
|
+
[95.11889913308254, 29.757940178669305],
|
|
224
|
+
[95.11964841222917, 29.758048000558695],
|
|
225
|
+
[95.12039993276164, 29.758155854652614],
|
|
226
|
+
[95.12115399312397, 29.75826357999786],
|
|
227
|
+
[95.1219108497459, 29.75837102690515],
|
|
228
|
+
[95.1226706293697, 29.758478081829693],
|
|
229
|
+
[95.12343325561484, 29.758584686897258],
|
|
230
|
+
[95.12419857627997, 29.758690818430438],
|
|
231
|
+
[95.12496638982559, 29.75879646083105],
|
|
232
|
+
[95.12573649209446, 29.7589015818837],
|
|
233
|
+
[95.12650863318528, 29.75900618637391],
|
|
234
|
+
[95.12728253192327, 29.759110282431784],
|
|
235
|
+
[95.12805798566751, 29.75921386162033],
|
|
236
|
+
[95.12883477913662, 29.759316919371038],
|
|
237
|
+
[95.12961273528985, 29.759419445656786],
|
|
238
|
+
[95.13039166301432, 29.759521458216526],
|
|
239
|
+
[95.13117134363408, 29.759622963323043],
|
|
240
|
+
[95.13195155721434, 29.759723948972997],
|
|
241
|
+
[95.13273211930314, 29.759824349786275],
|
|
242
|
+
[95.13351286507051, 29.759924061406032],
|
|
243
|
+
[95.13428648274362, 29.76002351015658],
|
|
244
|
+
[95.1350533298064, 29.760122544307915],
|
|
245
|
+
[95.1358137532818, 29.760221010686855],
|
|
246
|
+
[95.13656784419986, 29.760318809952974],
|
|
247
|
+
[95.13731567503761, 29.76041584848236],
|
|
248
|
+
[95.1380573752464, 29.760511990985425],
|
|
249
|
+
[95.13879310931623, 29.76060704815151],
|
|
250
|
+
[95.13952306473344, 29.760700794123938],
|
|
251
|
+
[95.14024751710419, 29.7607929520901],
|
|
252
|
+
[95.14096671686433, 29.760883206230545],
|
|
253
|
+
[95.14168092332761, 29.76097123202995],
|
|
254
|
+
[95.14239029599311, 29.761056732470486],
|
|
255
|
+
[95.14309486625548, 29.761139484506582],
|
|
256
|
+
[95.14379454089128, 29.761219462160696],
|
|
257
|
+
[95.14448922306659, 29.76129664046317],
|
|
258
|
+
[95.14517882147311, 29.76137100941381],
|
|
259
|
+
[95.14586312132259, 29.761442532574584],
|
|
260
|
+
[95.14654188135431, 29.761511168945386],
|
|
261
|
+
[95.14721489938523, 29.761576901934955],
|
|
262
|
+
[95.14788204807155, 29.761639772673718],
|
|
263
|
+
[95.14854319868547, 29.76169982923195],
|
|
264
|
+
[95.14919822095698, 29.761757127412878],
|
|
265
|
+
[95.14984699116548, 29.76181173598209],
|
|
266
|
+
[95.15048960377052, 29.761863851723042],
|
|
267
|
+
[95.15112617637942, 29.761913696049017],
|
|
268
|
+
[95.15175681293137, 29.761961561816054],
|
|
269
|
+
[95.15238148064795, 29.762007691856205],
|
|
270
|
+
[95.15300009096235, 29.762052309028526],
|
|
271
|
+
[95.1533539374323, 29.762086082676035],
|
|
272
|
+
[95.15370650809008, 29.762118928860186],
|
|
273
|
+
[95.15405759583123, 29.762150875711065],
|
|
274
|
+
[95.15440704121897, 29.76218191319173],
|
|
275
|
+
[95.1547548321985, 29.762211967913583],
|
|
276
|
+
[95.15510097264206, 29.762240955288657],
|
|
277
|
+
[95.15544525415498, 29.762268829619945],
|
|
278
|
+
[95.15578751039571, 29.76229553455492],
|
|
279
|
+
[95.15612769998111, 29.762320941845203],
|
|
280
|
+
[95.15646565712565, 29.762344985615734],
|
|
281
|
+
[95.156801142589, 29.76236761294652],
|
|
282
|
+
[95.1571338046714, 29.76238883654028],
|
|
283
|
+
[95.15746323934037, 29.76240869370805],
|
|
284
|
+
[95.15778903282519, 29.762427217766984],
|
|
285
|
+
[95.15811077257146, 29.762444433666733],
|
|
286
|
+
[95.15842800577592, 29.762460368791256],
|
|
287
|
+
[95.15874028837707, 29.76247502889767],
|
|
288
|
+
[95.15904716834646, 29.76248842410003],
|
|
289
|
+
[95.1593481499996, 29.762500590502704],
|
|
290
|
+
[95.15964271930007, 29.76251153961251],
|
|
291
|
+
[95.1599303416933, 29.76252129267978],
|
|
292
|
+
[95.16021045104225, 29.762529892932115],
|
|
293
|
+
[95.16048243037355, 29.762537389252305],
|
|
294
|
+
[95.16074559672008, 29.762543832974302],
|
|
295
|
+
[95.1609993202866, 29.762549265122786],
|
|
296
|
+
[95.16124294069552, 29.762553753099137],
|
|
297
|
+
[95.16147571071544, 29.762557390653928],
|
|
298
|
+
[95.16169677155058, 29.762560323342807]
|
|
299
|
+
]
|