E1 · Five frames and seam
5 minRun the "check, five frames and seam" block and open quadros/contact-sheet.jpg.
Done when: ◇ Check passed, 5 quadros em quadros/, COSTURA: igual (quadro inicial = quadro final) and saída: 0.
Lesson 3 · 15 min
A vague request produces generic animation and ten rounds of fixes. RISE organizes the request into four parts: References, Idea, Style, and Examine. The last one saves you the most: the agent checks five frames and fixes things before you render. In this lesson you write the request and check the result with a command.
Start the lesson
Goal: write a RISE request for your agent and check the result in five frames before rendering.
Click each letter.
RISE method from the INEMA motion-rise course, adapted to HyperFrames: the E uses check and snapshot instead of its own canvas.
A 6 s loop over an editing timeline. Copy it into the project folder and paste it into the agent (Claude Code or Codex, with the top model of your subscription).
R — REFERENCES Read the DESIGN.md in this folder before anything else: colors, fonts and motion rules come from it. Do not invent a logo, color or font. HyperFrames 0.8.176 project in this folder (index.html already created by init). I — IDEA A 6-second loop, 1920x1080, over an editing timeline. - Start (0–0.6 s): the timeline track and the playhead stopped on the left. - Middle (0.6–4.2 s): the playhead runs to the right; the title "Cena 1" enters and leaves. - End (4.2–6 s): the playhead goes back to the left and stops. The last frame is the same as the first. S — STYLE Look: background #0c0c10 with soft light in the center, track #3f3f47, playhead #e9b949 (the only accent color), white title #f4f4f5 in the system sans-serif, weight 700. Motion: nothing at constant speed (power1 to power3, soft ease-in and ease-out); the title stays legible for at least 1.2 s; one thing moves at a time. E — EXAMINE Write everything in a single paused GSAP timeline registered in window.__timelines["main"], with no Math.random and no Date.now. Run `npx hyperframes@0.8.176 check` and fix until "Check passed" shows up. Take 5 frames with `npx hyperframes@0.8.176 snapshot --at 0,1.5,3,4.5,5.9 --no-end -o quadros`, look at the contact-sheet.jpg and check: the 0 s frame is the same as the 5.9 s frame; no cut-off letters; no single word alone on a line; the title appears in full in the 3 s frame. Fix whatever fails and repeat until everything passes. Do not render the MP4: I render it after I see the frames.
Read rise-loop.md and do exactly what it asks. At the end, tell me the check result and what you fixed after looking at the 5 frames.
The kit/exemplos/a3-loop folder has a composition made from this request. The rehearsal runs the check, takes five frames, and compares the first with the last.
K=~/projetos/formacao-cinema-ia-motion-v72/kit
export HYPERFRAMES_NO_TELEMETRY=1 NO_COLOR=1
unset GEMINI_API_KEY # sem isso, o snapshot manda os quadros ao Gemini sozinho
E=${TMPDIR:-/tmp}/ensaio-motion/a3; rm -rf "$E"; mkdir -p "$E"
cp -r "$K/exemplos/a3-loop" "$E/loop"; cd "$E/loop"
npx -y hyperframes@0.8.176 check 2>&1 | grep -E "Check passed|✗"
npx -y hyperframes@0.8.176 snapshot --at 0,1.5,3,4.5,5.9 --no-end -o quadros > snapshot.log 2>&1
bash "$K/costura.sh" quadros; echo "saída: $?"K=~/projetos/formacao-cinema-ia-motion-v72/kit
export HYPERFRAMES_NO_TELEMETRY=1 NO_COLOR=1
unset GEMINI_API_KEY
cd ${TMPDIR:-/tmp}/ensaio-motion/a3/loop
sed -i '/x: 0, duration: 1.2/d' index.html # tira a volta da cabeça de leitura
npx -y hyperframes@0.8.176 snapshot --at 0,1.5,3,4.5,5.9 --no-end -o quadros > snapshot.log 2>&1
bash "$K/costura.sh" quadros; echo "saída: $?"◇ Check passed 5 quadros em quadros/ COSTURA: igual (quadro inicial = quadro final) saída: 0
The frames are saved in quadros/ (frame-00-at-0s.png through frame-04-at-5.9s.png) with a contact-sheet.jpg, the grid that you and the agent look at.
5 quadros em quadros/ COSTURA: diferente — o último quadro não volta ao primeiro saída: 1
Without the last movement, the playhead ends on the right and the loop jumps. The command catches the failure before any render.
In 0.8.176, snapshot has the --describe option, which sends the frames to Gemini for analysis and runs on its own when GEMINI_API_KEY exists in the environment (text from snapshot --help). The blocks run unset GEMINI_API_KEY so nothing leaves the machine.
The 10 motion-rise failures, in four groups. Paste the list at the end of the request or check it yourself in the contact-sheet.
Clipped letters (line height 1.1 or more; check g, j, p, q, y).
A single word alone on the last line: rewrite it, or tie the last two words together with a non-breaking space.
Every piece of text holds still for at least 1.2 s.
The visual fills 80% to 95% of the frame.
Light falls off across the frame: no flat color.
One idea on a calm background.
Nothing at constant speed: smooth entrances and exits.
In a loop, the last frame matches the first (costura.sh checks it).
Logo only from the file, never drawn from memory.
Subtle texture so it doesn't look like plastic.
The rehearsal, the error, and your agent.
Run the "check, five frames and seam" block and open quadros/contact-sheet.jpg.
Done when: ◇ Check passed, 5 quadros em quadros/, COSTURA: igual (quadro inicial = quadro final) and saída: 0.
Run the error block, which removes the playhead's return.
Done when: COSTURA: diferente — o último quadro não volta ao primeiro and saída: 1.
In a new project (npx hyperframes@0.8.176 init meu-loop --non-interactive), copy kit/prompts/rise-loop.md and kit/exemplos/a4-marca/DESIGN.md into the folder and send the request to your agent. (The DESIGN.md comes ready; lesson 4 explains each section.) Then run the check and the snapshot from the block yourself.
Done when: In the meu-loop folder: npx hyperframes@0.8.176 check ends with Check passed and bash ~/projetos/formacao-cinema-ia-motion-v72/kit/costura.sh quadros; echo "saída: $?" → COSTURA: igual and saída: 0.
The explanation appears after you answer.
Question 1 of 4
Which part of RISE tells the agent how to prove it's finished?
Question 2 of 4
Why does the request end with "don't render the MP4"?
Question 3 of 4
costura.sh said "diferente". What should you ask the agent for?
Question 4 of 4
Where do the colors and the font go in the request?
Pick one option. The explanation appears after your attempt.