AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Web Animation Engine

skill-smkeramati-web-animation-engine-web-animation-engine · by smk-labs

Build code-driven animated web sections, scenes, and explainers using a tiny bundled React + SVG runtime (Stage / Sprite / playhead). Use this skill whenever the user wants to *create* an animation from scratch — animated heroes, motion graphics, diagrammatic explainers, animated dashboards, scrubable scene compositions, or "bring this SVG to life" requests. Output is runnable HTML (CDN React + B…

No reviews yet
0 installs
20 views
0.0% view→install

Install

$ agentstack add skill-smkeramati-web-animation-engine-web-animation-engine

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-smkeramati-web-animation-engine-web-animation-engine)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Web Animation Engine? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Web Animation Engine

A tiny bundled runtime for composing time-driven web animations: multi-scene explainers, animated heroes, motion graphics, diagrammatic videos. Code-only — no image editor, no MP4 export, just runnable HTML.

When to use this skill

Use it when the user wants to build animated content:

  • "animate this hero section"
  • "make a motion graphic explaining X"
  • "bring this SVG diagram to life"
  • "animated explainer for our pitch deck"
  • "scrubable timeline showing the data reveal"

Do NOT use it for:

  • Polishing motion on an existing UI (button hovers, modal slide-ins, page-load staggers) → that's UI-micro-interaction territory; use /frontend-design for the visual layer or a UI animation skill if installed.
  • Producing video files (MP4/GIF) → this engine outputs runnable HTML, not exports.
  • Static design (typography, color, layout) → defer to /frontend-design.

Two-step rule: script first, code second

Never start with code. Time-driven animation falls apart without a script. Always:

  1. Write the beats. Three to six sentences describing what happens, in order, with rough seconds. "0–3s: two distant nodes appear. 3–6s: a loop forms between them. 6–10s: the loop replicates across a network. 10–15s: punchline." This is the entire script for a 15-second piece.
  2. Build the scenes. One `` per beat. Inside each Sprite, compose SVG/HTML that reads the beat's progress and animates accordingly.

If the user gave you a vague request, draft the beats first and confirm with them before writing code. Skipping this step produces incoherent animations.

For deeper guidance on beat writing, rhythm, easing-as-emotion, and choreography, read [references/motion-principles.md](references/motion-principles.md). For pattern inspiration (diagrammatic-documentary, narrative montage, data reveal, hero loop, stat slam) read [references/scene-patterns.md](references/scene-patterns.md) — these are thinking patterns, not code templates. Stay creative; don't copy them shape-for-shape.

The engine in 30 seconds

The bundled runtime in [assets/animations.jsx](assets/animations.jsx) gives you:

  • **`** — wraps everything, drives a time value (seconds) via requestAnimationFrame`, provides a playback bar with scrub/play/pause.
  • **`** — only renders during that time window; gives children localTime and progress (0→1) via useSprite()`.
  • useTime() — read the global playhead anywhere in the tree.
  • Easing — ~15 hand-rolled easing functions (easeOutCubic, easeInOutQuart, easeOutBack, etc.).
  • interpolate(input, output, ease) — Popmotion-style keyframe interpolation.
  • animate({ from, to, start, end, ease }) — single-segment tween.
  • TextSprite, ImageSprite, RectSprite — convenience components for common entries.

Full API reference: [references/engine-api.md](references/engine-api.md). Read it when you reach for a primitive.

How to start a new animation

  1. Copy assets/animations.jsx and assets/starter.html into the project (rename starter.html to whatever fits, e.g. feedback-loop.html).
  2. Create scenes.jsx next to them. Define a top-level component (e.g. VideoScene) that returns a tree of `` blocks, one per beat.
  3. Adjust the ` props in the HTML (width, height, duration, background`) to match your composition.
  4. Open the HTML in a browser. The playback bar appears at the bottom; scrub through to verify each beat.

The runtime is React 18 + Babel standalone, both loaded from CDN. No npm, no build step. The whole thing is three files (HTML + animations.jsx + scenes.jsx).

Mental model

  • SVG layer for diagrammatic content (nodes, edges, paths, traveling pulses). Inline ` inside a , attributes driven by useSprite().progress or useTime()`.
  • HTML layer for text and images (captions, HUD, hero copy). Regular ``s positioned absolutely; opacity/transform driven by progress.
  • One source of time. Stage owns it. Everything else reads it. Don't add side-channel timers or animation loops — they desync.

Anti-rules

  • Don't reach for npm packages. The runtime is intentionally CDN-only; adding GSAP, Framer Motion, or anime.js fragments the time source and bloats the output.
  • Don't replace the runtime. If it's missing something, extend it (add an easing, a primitive) — don't swap it.
  • Don't put motion in /frontend-design's lane. Typography, color palette, spatial composition belong there. This skill handles movement over time; the other handles look at any single frame.
  • Don't skip the beats step. Even a 5-second hero animation has 2–3 beats. Naming them prevents incoherent transitions.

When motion goes on a real website

If the animation will embed in a production site (not just a presentation), respect prefers-reduced-motion — the engine's principles reference covers the patterns. See [references/motion-principles.md](references/motion-principles.md#accessibility).

How this skill composes with others

  • /frontend-design → visual decisions (palette, typography, layout). Run it alongside this one when building animated UI from scratch — it picks the look, this skill makes it move.
  • UI micro-interaction skills (e.g. impeccable@animate, web-animation-design) → polish on existing components. Different problem; can coexist.
  • Design-thinking and UX skills → upstream of this. They decide what should be animated; this skill executes the how.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.