Technique 02 — Map Explainer

A river draws itself across the map

A flat, editorial explainer beat: a river or route traces on with a white-hot electric head, and each country lights up the moment the water reaches it—border draws, fill blooms, label rises. For “where is this?”, “what’s the path?”, and “who is upstream of whom?”

Basemap MapTilerGeometry GeoJSON Labels React overlayRender Remotion

/ Rendered proof

The river system in sequence

A finished Water Wars render: the route establishes the geography, then the countries and labels enter in the order required by the narration.

Actual output · China → India → Bangladesh6 seconds · 1920 × 1080 source

/ Interactive model

Control the reveal choreography

The same visual grammar in a simplified model: the draw head follows the river; each region’s complete border, fill, and label respond to its entry trigger.

River headTriggered regionRegion 1 · border

/ Fit

What it’s for

Reach for it when

  • The viewer needs to place the story: where the river runs, which countries it crosses, and in what order.
  • Regions should light up in a meaningful sequence—upstream before downstream, cause before consequence.
  • Labels must be typographically yours, not map-engine text.

Not the tool for

  • 3D terrain or city reveals—use the 3D Flyover skill.
  • Non-geographic data visualisation—use Chart Animations.

/ Architecture

Three layers, one job each

The map draws the geography, Remotion runs the clock, and the labels live in React where typography is fully in your control.

Draws the map

MapTiler SDK

A vector or satellite basemap, stripped of unwanted labels and inner borders, plus filtered MapTiler Planet vectors and custom GeoJSON layers.

Runs the clock

Remotion

Per frame, update layers imperatively and hold capture until the map reports idle. For camera moves, use a fixed map plate rather than per-frame jumpTo().

Sets the type

React HTML overlay

Labels are positioned HTML elements projected from map coordinates to screen pixels every frame: any font, any entrance, pixel-exact.

/ Basemap

Basemap and camera choices

Default vector mode

MapTiler Basic

Begin with MapStyle.BASIC. Remove labels and inner admin borders, then let the production’s own configuration define colour and type.

Surface truth

Satellite

Use satellite imagery when terrain, land use, construction, or the river’s physical course carries narrative evidence. Keep overlays sparse.

Documentary framing

Subtle tilt

For depth without a flythrough, use a restrained pitch of 6–12° and bearing offset of roughly ±6–12°. Verify the rendered map for shimmer.

/ Element data

Use provider vectors before duplicating geography

Choose the source for each map element. Roads, waterways, water bodies, boundaries, land cover, and places can often be surfaced directly from MapTiler Planet and filtered by their attributes. Custom geodata remains essential when the story owns the geometry.

Option 01

MapTiler vector layers

Use an existing source-layer when its feature and attributes are editorially correct. Animate opacity, colour, width, blur, radius, fill, or stable feature state without maintaining duplicate GeoJSON.

Option 02

Custom GeoJSON

Use verified custom data for proposed, historical, disputed, corrected, private, or missing features—and whenever motion must follow an exact geometry in a meaningful order.

Hybrid is usually the strongest choice

Use MapTiler vectors for ordinary geographic context and custom GeoJSON only for the story-specific evidence. A tiled provider line can fade or highlight cleanly, but a deterministic start-to-end draw requires an ordered line baked to custom geometry.

/ Labels

Label by what it is

Geographic region

Country or region

Use a high-contrast uppercase display label with a short accent divider. Position it in clear territory, never over a marker cluster or river.

Physical geography

River or route

Anchor a leader directly on the real geometry and run it to the label. Use the route accent colour; omit redundant category words such as “RIVER”.

Constructed object

Dam, tunnel, plant, site

Use a smaller italic callout beside its actual point or line. Infrastructure is an object in geography, not geography itself.

Sequence labels after evidence

Animate each label only after its geographic or data layer is established. Keep it visible long enough to read, avoid overlap, and test the actual 16:9 and 9:16 renders.

/ Pipeline

From raw geodata to a finished beat

Choose each element’s source

Check MapTiler Planet first. Use provider vectors when their geometry and attributes support the claim; use custom GeoJSON when the story requires its own verified or ordered geometry.

Bake custom geography

When custom data is required, the prep script calculates entry triggers, interior label anchors, and complete border geometry. Never trim a line or boundary to the viewport.

Strip the basemap

Remove basemap labels and inner admin borders. What remains is quiet context, so the story geography is the only thing talking.

Reveal the river

Draw the line by arc length, led by a white-hot electric head—the final few percent rendered in its own bright, glowing layers.

Light the countries

As the head enters each country, its complete border draws over a constant duration, its fill blooms with a slight overshoot, and its label rises.

/ Tuning

Every feel decision is one number

You wantTurn thisProven value
River colour or glowCOLORS in tokens.tsIcy core, electric-blue glow
Bigger or smaller electric headHead length and widths3% of the line
Border draw timeBORDER_S2.5 seconds per country
Fill bloom strengthOpacity overshoot curve×1.25, settling to ×1
Label positionStory-region bbox + nudgePer country
Country triggerRiver-arrival fractionRecompute from geometry
Overall paceRiver draw windowBeat length follows

The contract that prevents silent failures

Each country’s lowercase key must be identical in the prep script’s country list, the component’s draw order, the palette tokens, and the generated data. A mismatch does not error—the country simply never appears.

/ Contents

What ships in the skill

SKILL.mdworkflow, architecture, semantics, and stability rules
assets/RiverReveal.tsxriver reveal and country sequence
assets/MapTilerVectorElement.tsprovider-vector layer setup and paint animation
assets/CountryLabel.tsxreusable example label
assets/tokens.tsexample palette and durations
assets/example-Root.tsxminimal composition scaffold
assets/sample-data/runnable sample geography
scripts/prep-geo.mjsgeo preparation pipeline
references/data sourcing, architecture, geo prep, and render stability

Canonical skill, components, preparation script, sample data, and stability guidance.

Download ZIP