agentsclimarketplace

Remotion animation

Skill phamthanhnghia/remotion-agent-skills/skills/remotion-animation

All animation knowledge for Remotion. Atomic motion rules using interpolate/spring, multi-phase scene blueprints, scene transitions, and broader motion-design techniques.From its SKILL.md

Install
npx -y skills add phamthanhnghia/remotion-agent-skills --skill remotion-animation

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.1 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it

Remotion Animation

All motion knowledge in one skill: rules (atomic recipes), blueprints (multi-phase scene templates), transitions (scene-to-scene), and techniques (broader motion-design patterns).

For the composition contract (useCurrentFrame, Sequence, determinism) see remotion-core.

Default: compose atomic rules

Pick 2–4 rules from rules-index.md, express them with interpolate() and spring() from a single useCurrentFrame() call, done. This is faster and produces less code than starting from a blueprint.

Load a blueprint when

  • The scene matches an existing pre-designed multi-phase template (brand-reveal, data-story, social-proof, etc.) and reusing its phase pipeline saves real authoring time
  • You want runnable ground-truth code for a complex 4–5 phase choreography

Blueprints live in blueprints-index.md. Each entry points to blueprints/<id>.md (recipe). Load it only when you've decided you need scene-level orchestration.

Routing

Want to…Read
Pick an atomic motion pattern by trigger / tagrules-index.md
Read one rule's full TSX reciperules/<name>.md
Pick a multi-phase scene templateblueprints-index.md
Read one blueprint's full recipeblueprints/<id>.md
Author a scene transition (interpolate-driven, between two Sequences)transitions/overview.md, transitions/catalog.md
Look up a broader motion-design techniquetechniques.md
spring() — physics config, damping, stiffness, massadapters/spring.md
interpolate() — extrapolation, input/output ranges, clampadapters/interpolate.md
Stagger — indexed delay patterns, spring staggeradapters/stagger.md
Text animations — word-by-word, char-by-char, line revealsadapters/text-animation.md
SVG path animations, stroke draw, shape morph via CSSadapters/svg.md
Three.js / R3F — 3D scenes in React, AnimationMixer seekadapters/three.md
Lottie — After Effects exports via @remotion/lottieadapters/lottie.md

Picking an animation primitive

  • spring() is the default for entrance motions — provides natural deceleration, no easing curve math
  • interpolate() is the default for timed value mapping — opacity fade, position lerp, color transitions
  • Stagger — map an array index to a delayed spring() or delayed interpolate() frame offset
  • CSS keyframes — only for infinite decorative loops (spinners, shimmer) where seek doesn't matter
  • Three.js / R3F — for 3D scenes; use useCurrentFrame to drive AnimationMixer.setTime(frame / fps)
  • Lottie via @remotion/lottie — for After Effects exports; LottieAnimationData + Lottie component

Multiple primitives can coexist in one composition. Each derives from the same useCurrentFrame().

Critical Constraints

Prerequisite: remotion-core → Non-Negotiable Rules (frame-deterministic, no Math.random, no Date.now, no CSS transitions for timeline-synchronized motion, no useState/useEffect for visual properties, all values derived from useCurrentFrame()).

Animation-craft additions on top of core's contract:

  • Pre-calculated layout constants — never call getBoundingClientRect() at render time. DOM measurements are unreliable during parallel frame rendering; compute coordinates from composition width/height via useVideoConfig() instead
  • Spatial motion uses React inline stylestransform: translateX(${x}px) not left/top (avoid layout recalc)
  • spring() never re-evaluates at different times — the same frame always returns the same value for the same config
  • interpolate() with clamp extrapolation for entrance/exit to prevent values leaking beyond scene boundaries

Core Animation Patterns

Entrance with spring

const frame = useCurrentFrame();
const {fps} = useVideoConfig();

const scale = spring({frame, fps, config: {damping: 12, stiffness: 200}});
const opacity = interpolate(frame, [0, 15], [0, 1], {extrapolateRight: 'clamp'});

Timed interpolation

const x = interpolate(frame, [30, 60], [-200, 0], {
  extrapolateLeft: 'clamp',
  extrapolateRight: 'clamp',
});

Stagger pattern

const items = ['A', 'B', 'C', 'D'];
// Each item enters 8 frames after the previous
const getItemSpring = (index: number) =>
  spring({frame: frame - index * 8, fps, config: {damping: 200}});

Scene exit

const {durationInFrames} = useVideoConfig();
const exitStart = durationInFrames - 20;
const opacity = interpolate(frame, [exitStart, durationInFrames], [1, 0], {
  extrapolateLeft: 'clamp',
  extrapolateRight: 'clamp',
});

See Also

  • remotion-core — composition structure, determinism contract, Sequence, media elements
  • remotion-creative — palettes, typography, narration, beat planning
  • remotion-clinpx remotion render / studio / lambda
  • remotion-keyframes — detailed spring configs, interpolate recipes, advanced stagger

What ships with it: 13 files

31.1 KB alongside SKILL.md

adapters/

blueprints/

rules/

transitions/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.