Skip to main content

travel-animator

Render Travel Animator route animations to MP4 on a computer instead of a phone — the route drawing itself as it is travelled, a 3D vehicle following it, map labels, country flags, and the distance badge and watermark the app draws on top.

Two ways to use it:

  • MCP server — an AI assistant plans the route, chooses how the animation looks and renders it for you. The only path that goes from nothing to a finished video.
  • Command line — render-bundle turns an already-prepared render bundle into an MP4, for pipelines that receive bundles from elsewhere.

It is a companion to Lascade's Travel Animator service, so it needs an account — and rendering needs a premium one. This is not open-source software; see Licence. The Python import path is tada_render.

Install

pip install travel-animator          # command line
pip install "travel-animator[mcp]"   # command line + MCP server

Python 3.12 or newer. Rendering also needs a platform wheel — see Rendering.

Use it from an AI assistant

Log in once from a terminal — the server cannot prompt you for credentials itself.

uvx travel-animator login

Register the server with your client. For Claude Code:

claude mcp add travel-animator -e TADA_SOURCE=pypi -- uvx --from "travel-animator[mcp]@latest" travel-animator mcp

For Claude Desktop, or any other client that takes a JSON config:

{
  "mcpServers": {
    "travel-animator": {
      "command": "uvx",
      "args": ["--from", "travel-animator[mcp]@latest", "travel-animator", "mcp"],
      "env": { "TADA_SOURCE": "pypi" }
    }
  }
}

@latest picks up the newest release on every launch. Drop it, or use a pip-installed travel-animator as the command, to stay on a fixed version.

TADA_SOURCE records which set of instructions this config came from — here, this page — so we can tell which of them are worth maintaining. It is optional and safe to delete; it carries nothing about you or your routes.

Then describe the animation you want — the route, the vehicle, the map style, the resolution. The assistant builds the project, reports progress while it renders, and hands back the finished MP4.

If the server fails to start from a desktop app, give the command's absolute path instead: apps launched from a GUI do not inherit your shell's PATH, and which uvx prints it.

Commands

travel-animator login           # log in: magic link, or a bearer token for CI
travel-animator logout          # remove credentials stored on this machine
travel-animator analytics       # show, grant or revoke analytics consent
travel-animator render-bundle   # render a prepared bundle to MP4
travel-animator mcp             # run the MCP server (needs the mcp extra)

login uses the same account as the Travel Animator mobile app. Logging in is not the same as being able to render: a free account can log in, browse the catalogues and author a project, but only a premium account can render one.

Render bundles come from the Travel Animator service — this package renders them, it does not create them. travel-animator render-bundle --help lists every flag.

When a newer release exists, a command upgrades itself to it after finishing and says so on stderr; the new version applies to the next command. TADA_AUTO_UPGRADE=0 keeps the notice without installing, TADA_UPDATE_CHECK=0 turns off both.

Rendering

Everything other than rendering — logging in, running the MCP server, authoring a project through it — needs only Python 3.12+ and this package.

Rendering needs a platform wheel. Those are published for Linux on x86-64 and arm64, macOS on Apple silicon, and Windows on x64; any other platform, including Intel macOS, gets a pure Python wheel that cannot render frames.

A platform wheel brings its own Java runtime, so there is nothing to install. It also bundles a graphics driver on macOS and Windows; on Linux it uses the system's own GLES driver, or Mesa for software rendering.

Rendering is not offline: the map's tiles, glyphs and sprites are fetched as frames are drawn, then cached under ~/.cache/tada/render. Everything else a render needs comes from the bundle itself.

If a machine cannot render at all, the MCP server can fall back to a server-side render — and it says so up front, before a project is built that the machine cannot finish.

Credits

Each rendered video costs one credit, whatever its length or resolution. The charge is made by the render service when it prepares the video, so nothing is spent by a project you build and never render, and re-rendering the same video within the hour is free.

get_credit_balance says how many are left, list_credit_packages what is on sale, and buy_credits returns a Stripe link to open in a browser. Credits are added once payment completes, so check the balance again afterwards rather than assuming. A render with an empty wallet is refused before anything starts.

Analytics

Usage analytics are optional and on by default, and nothing at all is collected outside the MCP server. Turning them off takes one command, takes effect immediately — including in a server that is already running — and is remembered permanently. The first interactive login says so on the terminal; it does not ask, because there is nothing to answer.

travel-animator analytics status   # what is currently set, and what it covers
travel-animator analytics off      # turn it off, effective immediately and for good
travel-animator analytics on       # turn it back on

Collected: which tools an assistant calls, in what order, how long they take and whether they failed; render settings such as resolution, duration, animation style, map and vehicle; the number of points in a route and the set of countries it crosses.

One free-text exception: when an assistant asks for a tool this server does not have, the description it writes of what it was trying to accomplish is collected with that request (up to 2048 characters). The assistant writes that sentence about your task, so it can quote what you asked for. It is collected because a server cannot otherwise learn which capability it is missing, and it is sent only on that request — never as a reason attached to an ordinary tool call. Like everything else here, it is collected by default; analytics off stops it along with the rest.

Never collected: route coordinates, place labels, route annotations, file paths, your media, the contents of any route you save or load, the names you give projects, and what a tool returned. These are excluded unconditionally, and consent does not unlock them: a route records where somebody has actually been.

Analytics data is processed in the United States by a third-party analytics provider.

Support

Questions, bug reports and feature requests go to connect@travelanimator.com. Please include the command you ran, the error message it printed, and your operating system. For an MCP problem, the failing tool's error_code is the most useful single detail.

More about Travel Animator: https://travelanimator.com.

Licence

This is a limited use licence, not an open-source one. In short: you may install and run travel-animator unmodified to prepare and render Travel Animator content and to talk to Lascade's services. You may not redistribute it, modify it, or build a competing service with it. The full terms ship inside the package at tada_render/LICENSE.

The bundled fonts, the flag artwork and the libraries inside the renderer are third-party works under their own licences, which that restriction does not touch. Their notices and full licence texts are in tada_render/THIRD-PARTY-NOTICES.md.

For redistribution or modification rights, contact Lascade.

Release files for travel-animator 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for travel-animator 1.1.1
File
travel_animator-1.1.1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
travel_animator-1.1.1-py3-none-manylinux_2_34_aarch64.whl Python 3 none Linux glibc 2.34+ ARM64 Details
travel_animator-1.1.1-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
travel_animator-1.1.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 289.3 MB

Release files / travel_animator-1.1.1-py3-none-win_amd64.whl

Download URL travel_animator-1.1.1-py3-none-win_amd64.whl
Size 73.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
3fd5833d63b42d4e7c7bc4742d3f5bd6b884e27df28c20dc072b883971ad5f3d
BLAKE2b-256 checksum
How to use checksums
0aeeb0fc6a89bc8035cff194389e03993ccd0fea7450236474b6708d928721f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / travel_animator-1.1.1-py3-none-manylinux_2_34_aarch64.whl

Download URL travel_animator-1.1.1-py3-none-manylinux_2_34_aarch64.whl
Size 72.0 MB
Tags Linux glibc 2.34+ ARM64 Python 3
SHA-256 checksum
How to use checksums
321cf38092c151b64e3fa76722c0d078957bf8928ab556a48537c463ab42d8de
BLAKE2b-256 checksum
How to use checksums
39486a16cf6d4eb8084d9354d71594d09e4debd49d45a25a3f7ee89c0f99659b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / travel_animator-1.1.1-py3-none-manylinux_2_28_x86_64.whl

Download URL travel_animator-1.1.1-py3-none-manylinux_2_28_x86_64.whl
Size 72.9 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
5a351ee42af7e4da7d4e1901c7823ba09c5e90f9726e626cd6328d1927bea482
BLAKE2b-256 checksum
How to use checksums
4da74f47ef86933326df4c93e663298da605738a43bf272ef30ba805c58227cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / travel_animator-1.1.1-py3-none-macosx_11_0_arm64.whl

Download URL travel_animator-1.1.1-py3-none-macosx_11_0_arm64.whl
Size 70.8 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
94e328143ee08d49b1035ebc025a59dfb35bbd4e46a3a69dc12e1223e883377a
BLAKE2b-256 checksum
How to use checksums
6c7d3766ab421e6bd9ce95b24daddcc9738c0764b0275a8cd3e27369a8fe77f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page