dorkhub

motion-anything

✨ The agentic motion layer — an open-source, chat-native motion engine. Describe the feeling; your AI ships the animati…

nexu-io
JavaScript63065 forksApache-2.0updated 3 weeks ago
git clone https://github.com/nexu-io/motion-anything.gitnexu-io/motion-anything

motion-anything

A project in the nexu.io · Open Design family — the same team's take on motion. If motion-anything clicks for you, Open Design is where the full agent-era design studio lives.

Describe the feeling — your AI ships the animation. The agentic motion layer: a local-first, chat-native motion engine. Generate animated pages and launch videos from one sentence, then edit motion on the running page, component by component — 4 triggers, 13 motion verbs, spring easing, a full keyframe editor. Driven by 8 coding-agent engines + BYOK (Claude Code · Codex · Cursor · OpenCode · Grok Build · Hermes · Gemini · Open Design Cloud), armed with 403 curated motion recipes, wired into the Open Design ecosystem (59 DESIGN.md brand packs · 58 HyperFrames video templates · 112 HTML prototype templates · 2,680 icons), and exported to anything: JSON · CSS · React · Lottie · MP4 · GIF · portable skills. Zero npm dependencies. No watermark. No per-render fees.

motion-anything — Anything becomes motion, on your laptop. Editorial dark banner with light-mode app windows: the component-motion workbench and the launch-video compositor, plus a stats row — 403 motion recipes, 230 portable skills, 2,680 icons, 59 design systems.

License Engines Recipes Export Quickstart Zero deps

Design systems Video templates HTML templates Icons Portable skills

Family Follow on X

English · 简体中文


Showcase

Every tile below is a live, dependency-free recipe from the library — real GPU shaders, canvas engines and kinetic text, faithfully ported so they run with two <script> tags on any page (no React, no three.js, no build step). All tiles are animated GIFs recorded from the actual previews.

Typewriter multi — terminal-style lines typing in sequence Shiny text — a highlight band sweeps across the label
typewriter-multi · kinetic text
Terminal-style multi-line typing with live cursors — agent-boot energy.
shiny-text · kinetic text
A sheen sweeps across text-clipped gradient type. One class to use.
Star border — a slow light circles the button border Rotating text — words cycle in place
star-border · ambient CTA
A slow light orbits the border of your call-to-action. Pure CSS.
rotating-text · kinetic text
One line, many claims — words cycle in place with a soft travel.
Magnet lines — a grid of lines tracks the pointer Elastic slider — a springy gradient fill follows the drag
magnet-lines · interactive
A field of compass needles that swivel toward your pointer.
elastic-slider · feedback
A slider whose fill overshoots with a spring — tactile, GPU-safe.
Bounce cards — a stack fans out with a bounce Strands — flowing luminous fibers
bounce-cards · entrance
A card stack fans out with a staggered bounce as it enters the view.
strands · GPU shader
Luminous fibers drifting like hair in water — a quiet hero backdrop.
Silk — flowing silky fabric waves Waves — perlin-warped line field with a pointer wake
silk · GPU shader
Flowing fabric, ported from a three.js scene to a single fragment shader.
waves · canvas 2D
A perlin-warped line field with a pointer wake — organic, editorial, calm.
Faulty terminal — CRT glitch grid Pixel blast — drifting pixel pattern with click ripples
faulty-terminal · GPU shader
A glitching CRT grid for cyber / dev-tool moods.
pixel-blast · GPU shader · interactive
A drifting pixel pattern that ripples outward from every click.

Kinetic text

Motion is not only backgrounds — text is a first-class citizen. These run on plain DOM, dependency-free:

Decrypted text — glyphs resolve into ACCESS GRANTED Text scramble — a techy decode reveal between phrases
decrypted-text · kinetic text
Random glyphs resolve left-to-right into the real line — hacker-movie energy, one attribute to use.
text-scramble · kinetic text
Decode-reveal between any phrases, programmable via scrambleTo(el, text).
Count up — stats rolling from zero to their values True focus — a focus frame hops word to word, blurring the rest
count-up · kinetic text
Numbers roll up to their value on view — the stat-block moment, eased properly.
true-focus · kinetic text
A focus frame hops word to word while the rest stays blurred — spotlight your claim.

35 of the library's distinctive effects are faithful dependency-free ports — see ATTRIBUTION.md for sources and permissions. The full library holds 403 recipes.


Product tour

Home — describe the motion you want in one sentence
Home — one sentence in, animated artifact out. Pick a design system (59 brand packs) and a motion profile (Subtle → Cinematic), or just type.
Workbench — component-level motion editing on the running page, with the agent's plan, a keyframes inspector and the timeline
Workbench — the heart. The agent plans, generates and self-checks on the left; click any component on the running page and give it motion — triggers, presets or a 6-track keyframe editor with scrub + auto-keyframe. The timeline below warns when a view exceeds the restraint budget.
Video editor — layers, five scenes with transitions, film background and reference upload
Video editor — a canvas compositor for launch videos: text / shape / image / video layers, five scenes with real transitions, a shared film background, kinetic typography, and in-browser WebCodecs MP4 export. No watermark, nothing uploaded.
Motion path — draw a curve on the canvas and the selected text travels it
Motion paths — draw a line on the canvas, and the selected layer travels it: as drawn, or snapped to a clean line / circle / ellipse, with eased speed and per-character text motion on top.
Motion presets — entrance, emphasis, attention and exit presets stack onto any layer
Motion presets — entrance / emphasis / attention / exit presets stack onto any layer (text, image, video, shapes), plus the full 200+ recipe library one click away.
Library — recipe cards with live animated previews
Library — 403 curated recipes with live card previews, searchable by intent. Every recipe carries avoid_when and a restraint budget: taste is enforced, not hoped for.
Engines — 8 coding-agent CLIs plus BYOK
Engines — bring the agent you already pay for. 8 CLIs auto-detected on your PATH, plus BYOK for direct Anthropic / OpenAI / Google API calls. Keys never leave your machine.
Dark mode
Dark mode — the whole app, both ways. Follows your OS in system mode.

Why motion-anything

Motion is one of the highest-leverage, lowest-understood parts of digital craft. Four problems keep great motion out of reach:

  1. AI-generated pages are dead ends — you can generate a landing page, but tweaking its motion means re-rolling the whole page or hand-writing CSS. There is a gap between generating and refining. motion-anything edits motion on the running page, per component, and writes it back to the file.
  2. AI has no taste — default output is either everything-fades-in-at-once or a fireworks show. Here, taste is a feature: every recipe declares avoid_when and a restraint budget; the editor warns when a view exceeds it; prefers-reduced-motion is always honored; GPU-safe properties only.
  3. The ecosystem is scattered — GSAP, Framer Motion, anime.js, Lottie… each a learning curve. You express intent ("a liquid-metal background"), the router picks from curated recipes. You never need to know a library name.
  4. Tools lock you in — proprietary models, per-render fees, watermarks, handoff-only artifacts. This is Apache-2.0, local-first, engine-agnostic, and everything exports.

vs. Figma Motion — their artifact is a handoff; ours is the running page itself. Their timeline has no interaction triggers; hover and click are first-class here. Their motion lives in their app; ours exports to JSON / CSS / React / Lottie or a portable skill any agent can use.


Open Design ecosystem

motion-anything is not a standalone island — it is the motion layer of the Open Design family, and the interop is real, not a logo wall:

  • Every recipe is an Open-Design-compatible SKILL.md — export any of the 230 portable skills and drop it straight into Open Design's skills/ (or any agent that reads skills).
  • 59 brand packs in Open Design's DESIGN.md format — generation starts on-brand; the same contract your team already uses in OD drives motion here.
  • 58 HyperFrames video templates + 112 OD HTML prototype templates shipped in the library — briefs get matched against them so output starts from proven structure, not a blank canvas.
  • Open Design Cloud is a first-class engine — the same ACP runtime (vela) that powers OD drives motion-anything, with one recharge across GPT / Claude / Gemini / DeepSeek.
  • Shared craft assets — agent engine icons, the icon library (2,680 icons · 38 categories), and the design language all come from the same family.

The loop: pick a beautiful design system (OD's superpower) → generate a brand-grade page → give it motion, per component (our superpower) → export it back as a skill anyone's agent can reuse.


Quickstart

git clone https://github.com/nexu-io/motion-anything.git
cd motion-anything
node cli/bin/motion.js serve 4399
# open http://localhost:4399

That is the whole install. No npm install — the project has zero dependencies. You need Node 18+ and at least one agent engine: any supported CLI on your PATH (it will be auto-detected), or an API key for BYOK (Settings → Execution mode).


Engines

Your prompt runs on your agent — the CLI session you already pay for, or your own API key. Nothing is proxied through anyone's server.

Engine Vendor Transport
Claude Code Anthropic headless -p + stream-json
Codex CLI OpenAI exec --json event stream
Cursor Agent Cursor stream-json
OpenCode OpenCode run --format json event stream
Grok Build xAI plain text via prompt file
Hermes xAI ACP (JSON-RPC over stdio)
Gemini CLI Google plain text
Open Design Cloud nexu.io ACP via the vela CLI
BYOK Anthropic / OpenAI / Google direct API with your key

The library

  • 403 motion recipes — 77 real effects with live previews, plus curated reference cards. Categories: ambient backgrounds, feedback & delight, interaction, text, transitions.
  • Standardized manifests — every recipe is a folder with recipe.motion.yaml, a self-contained preview.html, the implementation, and a SKILL.md. Three fields you will not find elsewhere: intent_keywords, avoid_when, restraint.
  • 59 design-system brand packs + 58 video templates + 112 HTML prototype templates + 2,680 icons — generation starts brand-grade, not blank.
  • 230 portable skills — export any recipe as a SKILL.md and drop it into Open Design or any agent that reads skills.

The taste contract lives in MOTION-SPEC.md. The library golden path (how to add a recipe) lives in AGENTS.md.


Export anything

From To
Any component's motion JSON (portable) · CSS · React · Lottie
Any animated page MP4 (freezable-timeline frame capture) · GIF · single-file HTML
Any launch video MP4 via in-browser WebCodecs — no watermark, no upload, no fees
Any recipe a portable SKILL.md for your agent

Architecture

Plain files, no build step, zero npm dependencies — the whole app is deliberately boring to run:

  • app/index.html — the entire client (workbench, editors, library, i18n ×4) in one file.
  • cli/bin/motion.js — server + CLI in one file: static serving, project store, and the engine dispatch (stream-json / JSONL events / plain / ACP / BYOK behind one interface).
  • app/video/ — the canvas compositor: engine, WebCodecs MP4 export, HTML frame capture, vendored mp4-muxer + gifenc (MIT).
  • recipes/ — the library. recipes/web/_fx/shaderbg.js (58 lines) is the dependency-free WebGL runner behind all shader recipes.
  • skills/ — the router skill + bundled companion skills.

Agents are first-class citizens of the codebase itself: AGENTS.md is a working agreement any coding agent can follow, and PROGRESS.md keeps the state.


Roadmap

  • v0.1 — recipe library + router skill + workbench + video line + 8 engines + BYOK ← we are here
  • v0.x — richer video motion (recipe reuse inside video), deeper Figma import, streaming BYOK
  • v1 — auto-add motion to existing Open Design artifacts; design-component → motion auto-assign

License & credits

Apache-2.0. A project in the nexu.io / Open Design family. Third-party sources and permissions are recorded in ATTRIBUTION.md.


📖 中文文档见 README.zh-CN.md

more like this

veille-techno

Skill Claude Code de veille tech francophone. Agrège les flux RSS (Journal du Hacker, Human Coders News…) et produit un…

Python51

uchroma

An advanced driver for Razer Chroma hardware in Linux with multi-layer animation support

Python52

Agent-Signal-Bar

本地优先的 macOS AI Agent 信号灯:状态栏 + 桌面悬浮信号灯,自动监控 Codex / Claude Code。Local menu bar and floating desktop status lights for A…

Swift53

search

search projects, people, and tags