Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

travel-animator

travel-animator (PyPI name; the Python import path is tada_render) is the public half of TADA, the off-device renderer for Travel Animator export configs. It renders an already-resolved input (a "render bundle") to an H.264 MP4 with no credentials and no private choreography code:

render bundle (config.json + frame_plan.pb + cached assets/tiles) -> OpenGL/Skia render -> H.264 MP4

It ships the rendering pipeline, the encoder, an offline bundle reader, a CLI, and an optional MCP server. It does not include the animation choreography builder or the credentialed asset fetchers that turn a live Travel Animator export into a render bundle in the first place — those stay in the private tada package.

Install

pip install travel-animator

Requirements: Python 3.12+, an OpenGL implementation (a GPU driver in production, Mesa/llvmpipe for CPU-only use), and FFmpeg/PyAV's usual runtime libraries.

For the MCP server, install the mcp extra:

pip install "travel-animator[mcp]"

The extra keeps the MCP SDK out of the base install (and out of the GPU worker's dependency set — the renderer itself never imports it).

CLI

Console script: travel-animator.

travel-animator login           # interactive magic-link login, or store a bearer token
travel-animator logout          # remove locally stored credentials (local only; see below)
travel-animator render-bundle   # render a prepared, offline bundle to MP4
travel-animator mcp             # run the stdio MCP server (requires the `mcp` extra, below)

login authenticates against the same account system the Travel Animator mobile app uses. With no argument on an interactive terminal it runs a magic-link flow (email -> 6-digit code); with a token argument, -, or piped stdin it stores a bearer token directly (for CI). Credentials are written to ~/.config/tada/credentials.json (or $XDG_CONFIG_HOME/tada/credentials.json) with mode 0600.

logout removes whatever is stored locally. There is currently no server-side session revocation: a stolen credentials file remains valid at the login service until it naturally expires. logout only stops this machine from presenting it.

render-bundle renders a bundle produced by the private tada prepare command (or an equivalent producer) with no network access. Its --encoder default is libx264 (CPU-only, works on any machine); a GPU worker with NVIDIA hardware should pass --encoder h264_nvenc explicitly. Run travel-animator render-bundle --help for the full flag reference.

travel-animator never imports the private tada package, so it works standalone for every command above, including render-bundle (ADR 0007: the bundle carries its own embedded frame plan, so no choreography code is needed to play it back).

MCP server

The mcp extra adds travel-animator mcp: a stdio MCP server that lets an agent author a Travel Animator export config (build a route, tune the animation, render a video) without the private tada package. (Earlier versions shipped this as a standalone tada-render-mcp console script; it's now a subcommand so future public CLI features don't each need their own binary — ADR 0009 amendment.) A typical MCP client configuration:

{
  "mcpServers": {
    "travel-animator-mcp": {
      "command": "travel-animator",
      "args": ["mcp"]
    }
  }
}

Run travel-animator login in a terminal first — tools that need a credential fail with a clear message telling you to do so, and auth_status lets an agent check before it builds a trip it cannot render.

Licence

travel-animator is published under a limited use licence, not an open-source licence. In short: you may install and run it 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 (SIL Open Font License 1.1) and flag artwork (MIT) are third-party assets 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

travel_animator-0.2.0a1-py3-none-any.whl (10.1 MB view details)

Uploaded Python 3

File details

Details for the file travel_animator-0.2.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for travel_animator-0.2.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 4380269cc6f001027eaeb031c76ec8fe006d0387e888e0efc9f0c48224859b46
MD5 c26dd86a91c1dddfc9130d98b47a8663
BLAKE2b-256 1906dd77109f373f5f687b9c8724e7e9ea4e401820aa7b2994e5813d076e4cc0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page