About mapstage
mapstage is a skill for agents building or tuning MapStage scenes, then transferring the result to a production renderer. It covers projections, terrain, styling, settlement tiers, and JSON export.
Key features
- 01Adjust map and globe projections
- 02Switch satellite and relief rendering
- 03Isolate regions and tune CSS color
- 04Set settlement tiers
- 05Export and migrate version 3 JSON
Use cases
- 01Tune a map scene for an app
- 02Export a preset after locking camera and style
- 03Reuse tuner settings in production rendering
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ hopechen067/ mapstage --skill mapstageAfter installing, type/mapstagein Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlreferences/city-tier-schema.mdtested-config.mdtuner-workflow.mdwater-overlay.md参数列表说明.mdschemas/map-preset.schema.jsonsample-sites.schema.jsontuner/.nojekyllindex.htmlmap-tiles.config.example.jsmap-tiles.config.jspreset-antique-default.jsonREADME.mdvector-layers.htmltuner/assets/han-city-3d.jsisolate-workbench.jsmap-fx.jspolar-ice.geojsonregion-isolate.jssample-sites.jsonsite-nav.jsterrain-island.jsvector-paint.jswater-pack.jsontuner/presets/antique-default.jsontuner/scripts/patch-china-boundaries.mjspatch-maritime-islands.mjspatch-zangnan-region.pytuner/vendor/maplibre-contour.min.jsDetails
From the project READMEMapStage
Use this skill when building or tuning a MapStage scene: map/globe projection, satellite, hypsometric relief, Mapterhorn terrain, region isolate, CSS color grade, and JSON export.
When to use
- Need a live MapStage tuner (map vs globe, satellite vs relief, isolate).
- Need to lock paint / CSS / camera, then export JSON into another host.
- Need tiered settlements (
capital/large/medium/small/pass/station/ordos).
Do not use the tuner page as the final render host.
Modes
| Mode | Purpose |
|---|---|
| Production stack | Embed MapStage in your app: optional satellite/raster + Mapterhorn DEM (encoding: 'terrarium') + hillshade + OpenFreeMap vector water + CSS filter + city extrusions. Drive look from exported JSON. |
| Tuner | HTTP page under tuner/ (or the public demo) for sliders, projection, isolate, preset load/export. |
Workflow
- Open the tuner: public demo https://hopechen067.github.io/MapStage/ or
cd tuner && python -m http.serverand open the local URL printed in the terminal. - Tiles: default EOX Sentinel-2 cloudless (on) + Mapterhorn (
tuner/map-tiles.config.js). Override with gitignoredmap-tiles.config.local.js. - Apply default preset
tuner/preset-antique-default.json(same astuner/presets/antique-default.json). Schema version 3. - Adjust projection / satellite / relief / isolate / CSS / cities until the look locks.
- Export JSON (copy or download). Confirm
version: 3plusui.projection,ui.showSatellite,ui.showRelief,ui.showCssFilter,isolate. - Migrate those fields into the production MapStage scene (see references).
- In production:
jumpTocamera; wait foridle; optionally pre-cache tiles. AvoideaseTo/flyTofor recorded frames. - Always set DEM with
encoding: 'terrarium'. Wrong encoding breaks hillshade/terrain. - Final frames render from the production host — not from the tuner UI.
Hard rules
- Tiles not bundled — MapStage fetches DEM and basemap at runtime from configured URLs only.
- Only use basemap endpoints you are allowed to use — defaults are public demo tiles (EOX); swap via config when needed.
encoding: 'terrarium'on the terrain source — mandatory.- No
easeTo/flyToin recorded production paths; preferjumpTo+idle. - Do not host final render on tuner.
- Water on the public tuner is OpenFreeMap / OpenMapTiles vector layers (
water/waterway). Exportui.showWateris alwaysfalse(old GeoJSON overlay is off). Do not expect or committuner/assets/water-data.js.
Repo vs skill
git clone of this GitHub repo pulls the whole project. The agent skill is only mapstage/. Install that folder with npx skills add hopechen067/MapStage --skill mapstage -g or gh skill install hopechen067/MapStage mapstage --scope user, or copy it into the host skills directory and reload. Agents do not auto-discover mapstage/SKILL.md from a clone.
References
references/参数列表说明.md— parameter tables + v3 defaultsreferences/tested-config.md— sources, layer order, jumpTo + idlereferences/tuner-workflow.md— HTTP tuner → export → productionreferences/city-tier-schema.md— settlement tiersschemas/map-preset.schema.jsonschemas/sample-sites.schema.jsontuner/— live page, verify script, default preset, sample sites
Agents
See agents/openai.yaml for display name / default prompt.