ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

terrain-route-video

Generate a minimalist terrain-style animated driving route video (MP4) from a list of stops (cities/POIs) without Remotion. Uses OSRM for road-following geometry, OpenTopoMap terrain tiles for basemap, Matplotlib for frame rendering, and FFmpeg for encoding. Use when the user asks to create/export a dynamic self-driving route map video (fly-follow camera, route draw animation, labels) and wants it along roads/highways.

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/jack4world/terrain-route-video
Or

Terrain Route Video (no Remotion)

Output defaults (recommended)

  • Size: 1600x900
  • FPS: 30
  • Duration: 12s
  • Style: dark terrain basemap + red route line + cyan head dot

Inputs

Option A) Road-follow (OSRM) via stops.json

Create a stops.json file:

{
  "stops": [
    {"id": "01", "name": "襄阳", "lon": 112.1163785, "lat": 32.0109980},
    {"id": "02", "name": "老河口", "lon": 111.7575073, "lat": 32.4370526}
  ]
}

Schema reference: references/stops.schema.json.

Option B) Track-follow via .gpx / .kml

If you already have a route track (GPX/KML), you can generate the video directly from the track geometry (no OSRM calls):

  • GPX: uses <trkpt> (track points) or falls back to <rtept>
  • KML: supports both:
    • standard <LineString><coordinates>
    • 2bulu/Google-style <gx:Track><gx:coord> (common in hiking app exports)

Runbook

  1. Create a fresh working folder (keeps caches + frames local).

  2. Create a Python venv and install deps:

python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install numpy matplotlib pillow requests
  1. Render video (choose one):

OSRM road-follow mode (stops.json)

python /path/to/skills/terrain-route-video/scripts/terrain_route_video.py \
  --stops stops.json \
  --out out.mp4 \
  --size 1600x900 \
  --fps 30 --duration 12 \
  --title "江汉平原到洞庭湖 · 足迹" \
  --subtitle "襄阳 → 老河口 → 荆州 → 监利 → 洪湖·峰口镇 → 岳阳"

GPX/KML track mode

python /path/to/skills/terrain-route-video/scripts/terrain_route_video.py \
  --route my-track.gpx \
  --out out.mp4 \
  --size 1600x900 \
  --fps 30 --duration 12 \
  --title "My Trip" \
  --subtitle "GPX/KML track"

Notes:

  • The script creates frames/ and .tile-cache/ in the current folder.
  • If the user complains the line is not “hugging highways”, keep full OSRM geometry (default) and avoid any simplification.
  • If text shows missing glyphs, pass --font /System/Library/Fonts/Hiragino Sans GB.ttc (default) or another CJK font path.
  • OpenTopoMap tile availability can vary by zoom/region/network. The script will auto-fallback to a lower zoom if tile requests fail.

Useful tuning flags

Camera / route

  • --zoom 18 (terrain tile zoom; default is 18; may auto-fallback if tiles fail)
  • --lookahead 0.02 (camera looks ahead on the route; smaller = steadier)
  • --dwell 0 (pause frames at each stop; default 0)
  • --no-follow (static full-route view, no fly-follow)

Basemap readability (new)

These are useful when map labels feel too dark/washed out.

  • --basemap-alpha 0.85 (make basemap more visible)
  • --overlay-alpha 0.25 (reduce the dark overlay; clearer labels)
  • --basemap-contrast 1.20 (increase contrast)
  • --basemap-sharpness 1.45 (sharpen text/lines)
  • --basemap-color 0.80 (saturation multiplier)

Metadata

Stars2032
Views0
Updated2026-03-05
View Author Profile
AI Skill Finder

Not sure this is the right skill?

Describe what you want to build — we'll match you to the best skill from 16,000+ options.

Find the right skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-jack4world-terrain-route-video": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.

Related Skills

elon-x-actionbook-recap

(DEPRECATED) Use x-actionbook-recap instead. This slug is kept for backward compatibility. Collect, scroll, extract, and summarize X posts using actionbook-rs.

jack4world 2032

remotion-excalidraw-tts

Generate a narrated Remotion video from an Excalidraw (.excalidraw) diagram using text-to-speech (macOS say) and render to MP4. Use when creating explainer videos with pan/zoom + focus highlights over Excalidraw diagrams, with automated voiceover generation and Remotion CLI rendering.

jack4world 2032

yc-new-way

Apply Y Combinator’s “New Way to Build a Startup” playbook to ship fast, validate with real distribution, and iterate using data. Use when the user asks to follow “New Way”, design a 7-day startup sprint, pick a narrow wedge, build a lightweight MVP/SEO site/newsletter, set up experiments, or turn a vague idea into a testable plan with metrics, launch checklist, and weekly iteration loop.

jack4world 2032

trail-nav-telegram

Offline-capable hiking route guidance via Telegram location messages (OpenClaw). Use when building/operating an LLM agent workflow that: (1) imports a GPX/KML route, (2) answers 'am I off-route / which way should I go' with low-token fixed outputs, (3) scrapes/publicly discovers route links from 2bulu track_search, and (4) prepares trip risk checklists + gear lists for an overnight hike.

jack4world 2032

x-actionbook-recap

Collect, scroll, extract, and summarize recent X (Twitter) posts for any handle (optionally filtered by keyword search) using the Actionbook Rust CLI (actionbook-rs) workflow (open → snapshot/accessibility tree → extract `article` text). Use when asked to analyze a handle over a time window (e.g., last 7 days), produce Chinese working notes, and publish a neutral English recap (single post or thread) from a specified account.

jack4world 2032