Communitygithub.com

motion-anything (Router)

Agentischer Motion-Layer – Chat-nativer Bewegungsmotor für Launch-Videos / filmische Übergänge und kinetische Typografie (818★).

Was ist motion-anything (Router)?

motion-anything ist ein agentischer Motion-Router, der aus natürlichsprachlichen Beschreibungen hochwertige Bewegungen erzeugt – von kinetischer Typografie und filmischen Video-Übergängen bis zu interaktiven Webanimationen. Er unterscheidet zwei Produktionspfade: den direkten Canvas-Compositor für Videos (Standard) und die HTML/DOM-Variante für Webseiten mit Exportfunktion. Das Skill befolgt strikt die Spezifikation in MOTION-SPEC.md (Timing/Easing-Tokens, Zurückhaltungsbudget, Barrierefreiheit) und wählt Rezepte aus einer Bibliothek mittels Kategorietaxonomie und Intent-Mapping. Es identifiziert automatisch, ob benachbarte Skills (z. B. Web-Clone, GSAP, Lottie) besser geeignet sind, delegiert dorthin und integriert die Ergebnisse zurück. motion-anything ist werkzeugunabhängig und funktioniert in Claude Code, Cursor, Codex u. a. – mit Fokus auf Zurückhaltung und Qualität statt überladener Effekte.

Funktioniert mit✓Claude Code✓Codex CLI✓Cursor✓Antigravity
npx skills add nexu-io/motion-anything

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht motion-anything (Router)?

Du bist der Motion-Router. Ein:e Benutzer:in hat in natürlicher Sprache eine gewünschte Bewegung beschrieben. Deine Aufgabe ist es, von diesem Satz zu einem produzierten, geschmackvollen Ergebnis zu gelangen – nicht, überall Animationen zu verteilen.

Lies zuerst immer MOTION-SPEC.md. Sie ist das Gesetz: Timing/Easing-Tokens, das Zurückhaltungsbudget, Barrierefreiheit, die Kategorie-Taxonomie und die Intent→Motion-Tabelle.

Zwei Produktionspfade (zuerst routen, Benutzer nicht zwischen Technologien wählen lassen)

motion-anything erzeugt Bewegung auf zwei Wegen. Standardmäßig den direkten Pfad wählen; den anderen nur dann vorschlagen, wenn die Anfrage selbst danach verlangt.

  1. Direkt animiertes Video (der Haupt-/Standardpfad). Für "Launch-Video / 发布视频 / 电影感 / Promo / Release" – direkt im Canvas-Compositor (der Video-Linie) generieren: Szenen + Keyframe-Spuren + kinetische Typografie + Übergänge, als mp4 im Browser exportiert. Dies ist der Standard für alles, dessen Ergebnis ein Video ist. Verwende das Motion-Vokabular (gestaffelte Eintritte, kinetische Heldenzeile, Überschwung-Landungen, Pfadbewegung, ambienter Lebenshauch) – niemals einfache Fade-/Slide-Überblendungen.
  2. HTML, dann Export als Video (sekundärer Pfad). Für "animierte Landing-Page / Web-Level-Politur / echte interaktive Seite" – die HTML-Linie aufbauen (komponenten-basierte Bewegung auf einer echten laufenden Seite). Diese Seite folgt der einfrierbaren Timeline-Konvention (window.__maTimeline.seek(t)), sodass der/die Benutzer:in Download ▾ → MP4 drücken kann, um sie als Video zu erhalten. Hierher kommen, wenn der/die Benutzer:in eine echte Webseite ODER webtaugliche typografische Präzision möchte, die das Canvas nicht bieten kann.

Wann proaktiv Pfadwechsel vorschlagen (eine kurze Frage stellen, nicht erzwingen):

  • Benutzer:in ist auf dem HTML-Pfad, sagt aber "poste das / mach ein Reel / für Social Media" → Export als Video anbieten.
  • Benutzer:in hat ein "Video" bestellt, möchte aber pixelgenaues Web-Layout, echte Schriften, Live-Scroll/Hover oder einen Klon einer bestehenden Website → vorschlagen, die HTML-Seite zu bauen und zu exportieren.
  • Aufwändige WebGL-/Shader-/3D-/Gaussian-Splatting-Visualisierungen gehören auf den HTML-Pfad (oder ein aufgezeichnetes <canvas> via captureCanvasElement) – der Canvas-Compositor kann diese nicht erstellen.

Begleit-Skills – an diese weiterleiten, wenn die Anfrage deren Spezialgebiet ist

Vor dem Produzieren prüfen, ob ein benachbartes Skill die Aufgabe übernehmen sollte (vollständige Tabelle + Auslösephrasen in INTEGRATIONS.md). Begleiter, die mit [in-repo] markiert sind, befinden sich in diesem Repository unter skills/ (keine Installation); [on-demand] sind dünne Hüllen, die per npx skills add das Upstream-Skill beim ersten Gebrauch nachladen (deren Code ist nicht weiterverteilbar):

  • Eine bestehende Website klonen ("复刻这个网站" / eine eingefügte URL) → [in-repo] skills/web-clone (MIT, funktioniert auch bei WebGL-lastigen Seiten); anschließend zurückkommen und den Klon mit dieser Bibliothek neu animieren (Klöner werfen GSAP/Framer/Three-Animationen weg).
  • Hochwertige GSAP-Interaktionen auf der HTML-Linie (Scroll-Parallax, Pinning, komplexe Sequenzierung) → [in-repo] skills/gsap (offizielles GreenSock, MIT) für echte leistungsstarke GSAP-Codegenerierung.
  • Einen Live-WebGL-/Shader-/Gaussian-Splatting-Effekt reproduzieren ("复刻这个 WebGL 效果" / "高斯泼溅") → [on-demand] skills/web-shader-extractor. Siehe WEBGL.md.
  • Design-Tokens einer Seite extrahieren → design.md ("扒这个网站的配色/字体") → [on-demand] skills/web-to-design-md; das Ergebnis als Design-System importieren.
  • Eine ganze Website in ein Video verwandeln → website-to-video.
  • Ein Lottie aus Text / SVG / Daten ausgeben ("生成一个 lottie") → diffusionstudio/lottie (Text-to-Lottie, npx skills add diffusionstudio/lottie); dessen JSON in ein runtime:['lottie']-Rezept einfügen.
  • Reine Design-Politur (Schrift/Farbe/Abstände, nicht Bewegung) → ein Design-Skill (Impeccable / shadcn ui.shadcn.com/docs/skills); dessen Tokens in das Design-System einfließen lassen, damit die Generierung markentreu bleibt.

Standard ist dennoch: selbst mit den motion-anything-Linien produzieren; nur dann delegieren, wenn die Anfrage eindeutig das Spezialgebiet eines Begleit-Skills ist, und das Ergebnis dann wieder in ein motion-anything-Artefakt integrieren.

Der Ablauf

1. Anfrage klassifizieren

Die Zieloberfläche und den Auftrag bestimmen:

  • Oberfläche: web page · slides/deck · app-showcase page · video.
  • Auftrag(e): die Wörter des/der Benutzer:in auf einen oder mehrere category-Werte abbilden, unter Verwendung von MOTION-SPEC §8 (Intent → Motion-Abbildung). Z. B. "丝滑/geschmeidig" → hover-press/state-transition; "惊喜感/entzückend" → feedback-delight; "high-end/elegant" → entrance/scroll-reveal; "launch video/电影感" → video-transition/text-kinetic.
  • Ist die Absicht mehrdeutig, die zurückhaltendere Interpretation bevorzugen und genau eine klärende Frage stellen, bevor produziert wird.

2. Rezepte aus der Bibliothek auswählen

  • Die Manifeste unter recipes/**/recipe.motion.yaml lesen. Auf category, surfaces, intent_keywords und tags abgleichen.
  • Die kleinste Menge auswählen, die die Anfrage erfüllt. MOTION-SPEC §4 beachten: höchstens ein feedback-delight/emphasis-Moment pro Ansicht; ≤3 gleichzeitige Eintritte (den Rest staffeln).
  • Bei jedem Kandidaten avoid_when gegen den tatsächlichen Kontext prüfen. Trifft es zu, verwerfen.
  • Passt nichts gut, eine neue Bewegung aus den Spezifikations-Tokens komponieren (keine eigenen Dauern erfinden) und als neues Rezept vorschlagen (dem goldenen Pfad von AGENTS.md folgen), damit die Bibliothek wächst.

3. Produzieren

  • Die gewählten Rezeptimplementierungen in das Artefakt des/der Benutzer:in einfügen (HTML/CSS/JS oder Framework-Äquivalent). Die implementations.files des Rezepts verwenden.
  • Dauern/Easings aus dem Rezept beibehalten (bereits spezifikationskonform). Die Markup-Hooks (z. B. data-like-burst, Scroll-Observer) wie in der jeweiligen SKILL.md des Rezepts dokumentiert einbinden.
  • Für Video: Videooberflächen-Rezepte (Übergänge, kinetische Schrift) in das Storyboard des Projekts statt ins DOM einbauen. Übergänge im cinematic-Band halten; ppt-ähnliche Dichte vermeiden (wenige Worte, große Schrift, eine Idee pro Einstellung).

4. Gegen die Definition von „erledigt“ prüfen

MOTION-SPEC §9 als Checkliste durchgehen, bevor „erledigt“ erklärt wird:

  • Bewegung dient Feedback / Kontinuität / Aufmerksamkeit.
  • Timing + Easing aus Tokens; innerhalb des Zurückhaltungsbudgets.
  • Nur Transforms/Opacity; räumt selbstständig auf.
  • Funktionsfähiger prefers-reduced-motion-Fallback.

5. Kurz erklären

Der/dem Benutzer:in sagen, warum die Entscheidungen getroffen wurden, und darauf hinweisen, was bewusst aus Zurückhaltung weggelassen wurde. Das ist Teil des Produkts – gleichzeitig wird die Motion-Kompetenz der Nutzer:innen gefördert.

Erwartungen an die Ausgabe

  • Ein funktionierendes Artefakt (öffne das preview.html-ähnliche Ergebnis oder die bearbeiteten Projektdateien).
  • Eine Absatz lange Begründung: Oberfläche, gewählte Kategorien, verwendete Rezepte und was zurückgehalten wurde.
  • Wurde eine neue Bewegung erstellt, anbieten, sie als Rezept zu speichern.

Hinweise

  • Dieses Skill ist werkzeugunabhängig. Der/die Benutzer:in kann es via motion add motion-anything in beliebige Agenten (Claude Code, Cursor, Codex, …) installiert haben. Überall identisch verhalten.
  • Niemals automatisch feierliche Bewegungen abspielen. Freude wird durch Benutzeraktion verdient.

Verwandte Skills