Skill · #300 trending skills repo
MapStage
hopechen067/MapStage
MapStage: a narrative map stage for historical videos. MapLibre engine + agent skill, antique parchment look, routes, place names, seek(t) frame capture.
- Stars
- 516
- This week
- —
- Forks
- 73
- Open issues
- 2
- Skills inside
- 1
Get started
Install the skills
npx skills add hopechen067/MapStageInstalls into Claude Code, Codex, Cursor, OpenCode and the other agents it finds on your machine.
git clone --depth 1 https://github.com/hopechen067/MapStage.git /tmp/mapstage
cp -r /tmp/mapstage ~/.claude/skills/mapstageClaude Code reads ~/.claude/skills/ (or .claude/skills/ in a project). Other agents read the same SKILL.md format from their own skills folder.
Inside this repo
1 skill
Documentation
README
MapStage
English | 中文
A narrative map stage for historical videos: one MapLibre engine plus one agent skill. Antique parchment basemap, routes that march, place names that fade in, cameras that follow the narration, and a seek(t) contract so HyperFrames, Remotion or Playwright can capture frame by frame.
Live site
- https://hopechen067.github.io/MapStage/ (GitHub Pages)
- https://mapstage1.pages.dev/ (Cloudflare Pages mirror)
Home, docs, examples and the Studio tuner. Satellite imagery and terrain tiles are fetched at runtime, so you need internet access. Nothing to install.
| Path | What |
|---|---|
/ |
Home: live map hero with a scrubbable timeline |
/docs/ |
Docs, rendered straight from mapstage/references/*.md (people and agents read the same files) |
/examples/ |
Example library, filtered by Look / Story / Stage / Play, each with source |
/studio/ |
Studio: tune the look, copy the preset JSON |
Recent changes: CHANGELOG.md.
What it does
Three layers:
- Look: the basemap preset (v3), exported from the Studio tuner. Skins, relief, settlement tiers, optional region isolate.
- Story:
story.jsonv1. Places, routes, place-name beats, camera, cards, compliance. - Stage: the
seek(t)time contract, frame capture and QA.
Plus Play: MapStageBoard gives games and interactive pages the same parchment map. MapStage only draws the map; the rules are yours.
Built-in rules for platform-safe output: no provincial or national border lines, no fog or vignette, Taiwan, Hainan and the South China Sea shown complete. The ten-dash line appears only on full-China shots. See mapstage/references/compliance.md.
Not in scope: interactive web-map products, a marketplace, navigation or surveying.
Demo video
Example output of this stack in a real map-story episode (Long March ep.14, 西路军). Low-res clip:
https://hopechen067.github.io/MapStage/media/long-march-ep14-demo.mp4
Longer clip (~36s): showcases/long-march-ep14/ep14-map-clip.mp4
Showcases
Still frames from the same episode.
Route + timeline card |
Yellow River · date card |
Terrain · route arrow |
3D walled city (Gaotai) |
Campaign area · tiered labels |
Whole route |
More files: showcases/long-march-ep14/
| Item | Value |
|---|---|
| Skill folder | mapstage |
| Runtime | MapLibre GL JS 5.6.0, no bundler, no npm runtime dependency |
| Default basemap | EOX Sentinel-2 cloudless (public demo WMTS; check provider terms) |
| Terrain / hillshade | Terrarium-encoded DEM tiles (runtime fetch; encoding: 'terrarium') |
| Water / roads | OpenFreeMap vector tiles (OpenMapTiles); no data file in the repo, see DATA-PROVENANCE.md |
| Region isolate | Optional parchment mask (ui.showRegionIsolate). The China outline comes from Natural Earth 10m (public domain); provincial / city shapes are simplified OSM polygons (ODbL). Narrative silhouettes, not official borders |
| License | MIT for code and docs; showcase media and third-party terms in LICENSE-EXCEPTIONS.md / NOTICE.md |
Install as an agent skill
The skill lives in mapstage/. Copy that folder into your agent skills directory and reload skills.
git clone https://github.com/hopechen067/MapStage.git
cp -R MapStage/mapstage ~/.grok/skills/mapstage
# or: ~/.claude/skills/mapstage, ~/.codex/skills/mapstage
On Windows (PowerShell):
git clone https://github.com/hopechen067/MapStage.git
Copy-Item -Recurse -Force .\MapStage\mapstage (Join-Path $env:USERPROFILE ".grok\skills\mapstage")
Then tell your agent:
请使用 mapstage skill。
官网与调参台:https://hopechen067.github.io/MapStage/
仓库:https://github.com/hopechen067/MapStage
我会在 Studio 里调好风格后导出 JSON,请按 SKILL.md / references 应用到地图场景。
Style workflow: open the Studio, tune, Copy JSON, paste to your agent.
Run locally
Only needed for offline work or development. Do not open pages as file://.
git clone https://github.com/hopechen067/MapStage.git
cd MapStage
node mapstage/site/serve.mjs # http://127.0.0.1:8770/ (same layout as the live site)
Only the Studio:
cd mapstage/tuner
python -m http.server 8765 # then open http://127.0.0.1:8765/
Static check (Node on PATH; expect verify ok at the end):
cd mapstage/tuner
node verify.mjs
Build the full static site into out/_site:
node mapstage/site/build.mjs
The build refuses to run if data of unconfirmed license is present (see DATA-PROVENANCE.md).
Map tiles
Satellite, DEM and vector tiles are not bundled; they are fetched at runtime from configured URLs.
- Read NOTICE.md.
- Defaults are in
mapstage/tuner/map-tiles.config.js. - Personal endpoints go in
map-tiles.config.local.js(gitignored); seemap-tiles.config.example.js.
EOX public tiles are typically non-commercial and need attribution. This project does not grant rights to any commercial map vendor.
Attribution & compliance
- Follow each basemap / DEM / CDN provider's terms for your use case.
- Data: the China outline is Natural Earth (public domain); OSM-derived shapes are ODbL. No separate hydrography pack is shipped. See DATA-PROVENANCE.md and LICENSE-EXCEPTIONS.md.
- Maps shown to the public may need a review number (审图号) depending on platform and use; judge this for your own release.
- MapLibre / Three.js: keep their licenses when redistributing builds.
- Showcase images and video: All Rights Reserved demo media unless noted otherwise (LICENSE-EXCEPTIONS.md).
Releases