DEV Community

saidev ac
saidev ac

Posted on

I built a free SVG animation editor that exports self-contained, callable .svg files — no runtime, no proprietary format

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
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
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

Enter fullscreen mode Exit fullscreen mode

Top comments (0)