I built a free SVG animation editor that exports self-contained, callable .svg files — no runtime, no proprietary format A developer built SVGMotion, a free, local-first SVG motion studio that exports self-contained, callable .svg files with no proprietary runtime. The tool bakes physics into keyframes at export time, producing roughly 3 KB of markup, and exposes a JavaScript player API for calling actions and setting inputs. It is built with vanilla ES modules and no build step, uses bring-your-own-key AI providers with an optional in-browser WebLLM tier, and is hosted on Cloudflare Workers. Every vector animation tool makes the same trade: nice editor, but output locked to its runtime. Rive needs .riv , Lottie needs lottie-web . I wanted the opposite — an editor whose export is a plain .svg file that renders anywhere, yet stays interactive and callable from code. So I built SVGMotion — a free, local-first, AI-assisted SVG motion studio, split into three editors that build on each other: 🎨 Vector Editor — https://app.svgmotion.workers.dev/vectoreditor https://app.svgmotion.workers.dev/vectoreditor The core. Prompt → editable SVG layers → actions, keyframes, state machine. Physics bounce, roll, tumble, pendulum is baked into keyframes at export time, so the file ships ~3 KB of markup — not a solver. Every export is callable: js js const player = SVGMotionPlayer mount, scene ; player.call 'launch' ; player.setInput 'armed', true ; 🤖 Character Studio — https://app.svgmotion.workers.dev/characterstudio Same editor engine, wearing a character hat: skeleton roles, micro-actions, named macros, a multi-entity world stage, and an AI director that composes motion at runtime. Builds directly on the Vector Editor's action/state model. 📱 Asset Studio — https://app.svgmotion.workers.dev/assetstudio The downstream consumer: draw or prompt one SVG, preview it inside real OS masks/safe zones, export ready-made Xcode, Android & PWA bundles. Reuses the same scene format and layer pipeline. Stack: vanilla ES modules, no framework, no build step. AI is BYOK Ollama/OpenRouter/OpenAI — keys stay in the browser , with an optional WebLLM tier running Llama-3.2-1B in-browser. Cloudflare Workers for hosting. Free, no sign-up, no ads, no watermarks. Gallery of live exports — every item is a real callable .svg: https://app.svgmotion.workers.dev/gallery Source: https://github.com/saidevac/svgmotion