PTENES
MODULE 1.3

💬 How to Talk to Claude

Animation quality improves with each turn. You don’t need the perfect prompt right away—you need a functional skeleton in turn 1 and cumulative refinements in the following turns.

6
Topics
25
Minutes
Basic
Level
Method
Type
live demo same animation evolving over 4 turns
Turn 1
📦
static · renders only
Turn 2
📦
fade in · 30 frames
Turn 3
📦
slide-up · easing
Turn 4
✨
spring · polished

Each turn adds a layer. Turn 1 never needs to be perfect — it needs to work.

1

🦴 Skeleton first (turn 1, no perfection)

The goal for turn 1 is simple: make the component render. No precise timing, no spring, no perfect colors. You just want to see something on screen to confirm the structure makes sense.

// Turn 1 — ideal prompt
"Create a Remotion component called HeroCard.
A dark rectangle with a centered white title.
No animation yet — I just want to see it render."
💡

Why ask for no animation first?

Separating structure from motion makes it possible to spot layout problems before any timing work. If the card is the wrong size, you'd rather find out in turn 1 than after spending half an hour adjusting the spring.

✗ Common Turn 1 mistake

  • ✗Ask for layout + animation + colors + responsiveness all at once.
  • ✗Describe the final animation before the structure is validated.
  • ✗Demanding perfection in the first response and giving up if you don’t get it.

✓ Well-done Turn 1

  • ✓Component renders without errors in the studio.
  • ✓The element structure makes visual sense.
  • ✓You can describe what you want to change in turn 2.
Meta
Render
Focus
Structure only
Duration
1 short prompt
Criterion
Appears on screen
2

⏱️ Add timing (turn 2)

With the structure validated, turn 2 defines the duration and pacing. When each element enters, how long it stays visible, and when it exits. Still no spring—use interpolate() or a simple fade.

// Turn 2 — timing prompt
"Now add basic animation:
- The card fades in from frame 0 to 20
- The title appears from frame 15 to 35
- Total duration: 90 frames (3s at 30fps)"
1

Define FPS and total duration

30fps is the safe default. Duration in frames: 3s = 90 frames, 5s = 150 frames. Make it explicit.

2

Use frame intervals, not seconds

Remotion works in frames. “Appears in 0.5s” becomes “frame 15 at 30fps.” Thinking in frames gives you fine-grained control.

3

interpolate() is your friend here

interpolate(frame, [0,20], [0,1]) is a simple, predictable linear mapping — perfect for validating timing before adding spring.

API
interpolate()
Unit
Frames (not s)
Pattern
30fps
Focus
Pacing and entrance
3

🎨 Refine the motion (turn 3, easing, and spring)

With the timing validated, turn 3 replaces the linear interpolate with spring physics. Now you have a foundation for asking for specific parameters — because you already know the structure and pacing are right.

// Turn 3 — refinement prompt
"Replace the card's interpolate with spring().
I want a slight overshoot — damping 14, stiffness 100.
The title still uses a simple fade, without a spring."
TRACK 1 · structure T2 · timing T3 · spring T4 · polished ✨ quality

Each turn incrementally raises quality — no rewrites, just refinement.

💡

When should you add spring vs. keep interpolate?

Use spring() for elements that enter the scene or change state. Use interpolate() for values that need exact linear control — such as a progress bar or fade-out.

spring()
Entrances and states
interpolate()
Linear values
Damping
14 is safe
Result
Natural and organic
4

🧠 Context builds — same session, quality compounds

Claude doesn’t forget. Each turn in the same session builds context: it knows the component names, the parameters already defined, what you approved, and what you asked to change. Never restart a session in the middle of an animation.

live demo refined card in a loop
simple
card v1
→
polished
card v4 ✨

Same session. The v4 card was built on v1 — no rewriting, no loss of context.

✗ Context break

  • ✗Open a new window in the middle of the workflow—context reset.
  • ✗Copy the code into a new chat to “make it faster.”
  • ✗Repeating information Claude already knows wastes tokens.

✓ Session best practices

  • ✓Keeps the same session from the beginning to the end of the component.
  • ✓References elements by the names you gave them: "the HeroCard," "the animated title."
  • ✓When resuming an old session, recap the status in 2 lines.
Context
Builds up with each turn
Session
Don’t interrupt
Reference
Use fixed names
Quality
Grows with turns
5

📋 Describe the Sequence in a Numbered List

For animations with more than one element or scene, write the sequence as numbered list of events. This eliminates ambiguity and lets Claude map each item to a frame range.

// Prompt with a numbered sequence — template
"Intro animation for a tutorial:
1. Frame 0–20: background appears with a fade
2. Frame 15–40: logo enters with a spring (damping 12)
3. Frame 35–55: subtitle rises with a slide-up
4. Frame 50–70: CTA appears with a bounce"
💡

Intentional frame overlap

Notice that the logo starts at frame 15 while the background is still coming in (until frame 20). This 5-frame overlap creates fluidity—everything coming in at once would feel rigid, while doing it all sequentially would be slow.

1

Numbering defines visual priority

Item 1 on the list is the most important—background, container, hero. Later items are supporting elements.

2

Specify the frame range

Saying “after the logo” is ambiguous. Saying “frame 35–55” is deterministic and editable in the next turn.

3

Mention the type of motion for each item

"spring", "slide-up", "fade", "bounce" — Claude uses these terms to choose the right API.

List
No ambiguity
Frames
Precise intervals
Overlap
5–10 frames
Type
spring/fade/slide
6

🎯 Motion hierarchy — the main element leads, the rest supports

Every scene has a main element that carries the message — it animates with the greatest intensity (spring, scale, slide). The other elements are supporting: they enter smoothly, stay quiet, and leave first. Reverse this and the scene turns chaotic.

✗ No hierarchy

  • ✗Background animates with a spring as strong as the title.
  • ✗Support icons bounce, drawing more attention than the text.
  • ✗Everything comes in at once — the viewer doesn't know where to look.

✓ With clear hierarchy

  • ✓Background: simple fade, enters first, no overshoot.
  • ✓Main title: spring with overshoot — it's the scene's hero.
  • ✓Supporting elements: smooth slide with high damping; they come in later.
💡

How to describe hierarchy to Claude

Just name the role: "The title is the main element — spring with overshoot. The icons are supporting elements — simple fade, coming in 10 frames later." Claude uses this to calibrate damping, delay, and animation type for each element.

Main
Spring + overshoot
Support
Smooth fade or slide
Background
Comes in first, simply
Rule
The hero always leads

📋 Module Summary

You completed Track 1 — Fundamentals. You’re ready to move on to the libraries.

✓
Turn 1 → functional skeleton, no animation, just render.
✓
Turn 2 → duration and timing via interpolate and frame intervals.
✓
Turn 3 → replace interpolate with spring physics where it makes sense.
✓
Context → the same session builds up knowledge — don't interrupt.
✓
Numbered list → describe the sequence with explicit frame intervals.
✓
Hierarchy → animate the main element strongly; supporting elements enter softly and later.

🎉 Track 1 complete!

You’ve mastered the mental model: stack, skill, spring physics, and iterative dialogue. In Track 2, you’ll learn the animation libraries that unlock advanced effects — GSAP, Framer Motion, and Lottie inside Remotion.