VideosSubscribe

Why Every AI-Made Video Looks the Same

Both promos and both prompts are below: one that just asks for "make it look great", and one with 7 pacing rules added.

Version one: just “make it look great”

Version one · prompt
Make me a 15-second promo animation for a product. The product is a Pomodoro timer app called FOCUS. Three selling points:
1. One tap starts a 25-minute focus session
2. Notifications are silenced automatically while you focus
3. A focus report every week
Make it look great and polished, like a promo you'd see at a real product launch.

Build it as a single HTML file (1920×1080) animated with GSAP.
Export requirements: load gsap.min.js from the same folder; put every animation in one paused gsap.timeline assigned to window.tl, 15 seconds long in total (I'll step through it with tl.seek() and screenshot each frame to export a video); don't drive any animation with CSS animations, setTimeout or requestAnimationFrame; no external images or font files.

Mia's tips

  • I used Claude Opus 5.5 and DeepSeek. Every time it just wrote one HTML file: no preview, no back-and-forth.
  • The “export requirements” part is only there so I could record it frame by frame. If you just want to watch it in a browser, swap it for “play automatically on a loop when the page opens.”

Version two: add 7 pacing rules

The 7 pacing rules · paste after your request
Follow these pacing rules. Don't make the usual "text fades in, holds, fades out, next screen does the same thing":
1. Hook at second 0: the very first frame is the most striking image of the whole piece (say, a giant 25:00). No slow fade-up from black, a logo or an empty screen.
2. Shots of different lengths: some flash by in 0.3 seconds, some hold for 2 seconds so people can read them. Never make every shot the same length.
3. Densest in the middle: from 6 to 9 seconds, a run of quick cuts that keep getting faster.
4. Quiet before the loudest moment: from 9.5 to 10 seconds the whole screen is black and nothing moves (the music cuts out too), then at second 10 everything slams in at once.
5. Light and heavy motion: things land fast and hard (0.15–0.3 seconds, with a little overshoot and bounce); only the final hold can be slow. Don't make every move a soft 0.5-second ease.
6. A different entrance for every shot: hard cut, slam, swipe, push-in zoom… not a fade in and out on every screen.
7. Cut on the beat: the music is 120 BPM, one beat every 0.5 seconds from second 0, and every shot change lands on a beat.
Version two · full prompt
Make me a 15-second promo animation for a product. The product is a Pomodoro timer app called FOCUS. Three selling points:
1. One tap starts a 25-minute focus session
2. Notifications are silenced automatically while you focus
3. A focus report every week
Make it look great and polished, like a promo you'd see at a real product launch.

Follow these pacing rules. Don't make the usual "text fades in, holds, fades out, next screen does the same thing":
1. Hook at second 0: the very first frame is the most striking image of the whole piece (say, a giant 25:00). No slow fade-up from black, a logo or an empty screen.
2. Shots of different lengths: some flash by in 0.3 seconds, some hold for 2 seconds so people can read them. Never make every shot the same length.
3. Densest in the middle: from 6 to 9 seconds, a run of quick cuts that keep getting faster.
4. Quiet before the loudest moment: from 9.5 to 10 seconds the whole screen is black and nothing moves (the music cuts out too), then at second 10 everything slams in at once.
5. Light and heavy motion: things land fast and hard (0.15–0.3 seconds, with a little overshoot and bounce); only the final hold can be slow. Don't make every move a soft 0.5-second ease.
6. A different entrance for every shot: hard cut, slam, swipe, push-in zoom… not a fade in and out on every screen.
7. Cut on the beat: the music is 120 BPM, one beat every 0.5 seconds from second 0, and every shot change lands on a beat.

Build it as a single HTML file (1920×1080) animated with GSAP.
Export requirements: load gsap.min.js from the same folder; put every animation in one paused gsap.timeline assigned to window.tl, 15 seconds long in total (I'll step through it with tl.seek() and screenshot each frame to export a video, and I'll add the music myself); don't drive any animation with CSS animations, setTimeout or requestAnimationFrame; no external images or font files.

Mia's tips

  • Same Claude Opus 5.5, still one shot, still no preview.
  • Catch one: in rule 1 I tossed in an example, “say, a giant 25:00”, and all three first frames were exactly that. It treats your example as the answer, so give the example you actually want.
  • Catch two: I never said a word about color, and all three came back red and black again. If you care about it, write it down.
  • It doesn't make the music. For rule 7 I picked a 120 BPM track first and added it after, so the slam at second 10 lands right on the beat.

More videos

All videos →