CavalryGeo Plugin

Free open source mapping script for Cavalry. Map animation based videos are incredibly popular online but were previously relatively expensive (After effects & Geolayers) to make. CavalryGeo ends that by making it free and more accessible for users.

Duration

Oct 2026

Client

Personal

Services

#

UI/UX

#

Motion

Challenge

Animated maps are everywhere in motion design: travel sequences, news graphics, data stories. Yet making them in Cavalry, Canva’s procedural 2D animation app, meant working around the tool rather than with it. Designers built maps in GIS or web tools, exported flat images or image sequences, and lost everything that makes Cavalry powerful: live parameters, procedural animation, one camera driving the whole scene. A change of location or framing meant starting again.

I wanted maps to be native Cavalry layers: searchable, styleable, keyframeable, and driven by a single camera. That brought hard problems to solve inside a scripting environment with real limits:

  • Projections: Web Mercator, Equal Earth and a 3D-looking globe, all from one camera.

  • Data at very different scales: world vector data, street-level OpenStreetMap data, and live satellite imagery at a zoom suited to every frame of a camera flight.

  • The app’s constraints: an ES5 scripting runtime, a panel UI with no hover or scroll events, and an app that slows sharply as layer counts grow.

  • Ease of use: everything had to stay friendly for motion designers, not cartographers.

Karel Martens’ “Architecture as a Craft” poster with stacked multicoloured letters and a list of seminar dates
Karel Martens’ “Architecture as a Craft” poster with stacked multicoloured letters and a list of seminar dates
Karel Martens’ “Architecture as a Craft” poster with stacked multicoloured letters and a list of seminar dates

Solution

I designed and built Cavalry Geo with Claude code. It pairs a script panel with a custom GPU plugin.

  • The panel: search a place and it builds the map as ordinary Cavalry layers. Each layer is a small script driven by a shared camera, so one keyframe moves every country, route, pin and label together.

  • Imagery:

    • It plans exactly the tiles each camera flight needs, downloads them in the background, and reuses cached images.

    • Two SkSL filters run on the GPU. One bends flat satellite imagery onto the globe and Equal Earth. The other draws a physically correct day-and-night terminator with real twilight.

  • Layered on top:

    • routes with great-circle arcs and travellers;

    • data maps from spreadsheets;

    • callouts, highlights, map styles;

    • NASA city lights revealed through the night side;

    • a flat world that wraps seamlessly past the date line.

  • Map controls: every map gets a Controls component that gathers its settings in Cavalry’s own interface, so designers tweak maps the way they tweak any other layer.

  • How I built it: I developed it in phased releases, from v0.1 to v1.0. Each feature was designed, specified, tested against an automated suite of over 1,300 tests, and then checked live in Cavalry.


Impact

Cavalry Geo v1.0.0 is publicly released under the GPL-3.0 license, works on Windows and macOS, and turns map animation in Cavalry from a multi-tool workflow into a few clicks.

  • One place to work: a designer can search a city, fly the camera from orbit to street level over satellite imagery, draw a route, and render, all without leaving the app. Every element stays live and editable.

  • Performance:

    • Moving the day-and-night rendering onto the GPU raised playback from about 5 to a full 25 fps on HD compositions.

    • Planning imagery as large blocks cut a typical world-to-city flight from over 500 footage layers to around 50.

  • Craft and openness:

    • It builds only on open data (Natural Earth, OpenStreetMap, NASA), with credits and licences handled for users.

    • It ships with a full user guide, tooltips on every control, an in-app update check, and a settings panel.

  • Beyond the code: I’m extending the project with a pixel-art brand identity and promo videos explaining the tool. It’s now both a product I maintain and a showcase of designing developer tools specifically for motion designers.