love motion recreation.

Hosted video playback is web-optimized. Dimensions, timing and soundtrack are preserved. Full-quality originals on GitHub.

love

A 20.5-second kinetic-type and pixel-icon video, rebuilt in code by Claude Code and refined by rounds of AI judges.

18 versions so far. Every side-by-side puts the reference on the left and the recreation on the right.

latest comparisonReference left, recreation right. Fast cuts and flashing imagery.
Commit
…
Message
…
Commit date
…
Rendered
…
Video
…
Judge score
…

Original video

The reference video and soundtrack used for this recreation.

Latest comparison sheets

Left is the referenceRight is this render4 fps, 10 frames per sheet. Select one to enlarge.

Compare versions

Pick any two versions and play them side by side, synced. Left is older by default.

Version history

Every iteration, newest first. Open one to load its video and comparison sheets.

What it is

The piece is a stack of 14 shots, each a pure function of time, so any frame can be rendered in any order. Frames combine procedural type, pixel-art icons and effects with source-derived tracing: the later hand and head silhouettes, pen/brush ink, tone maps and sampled sprite grids come from the reference and are rendered in code. The main sequences, in order:

  1. how do you kinetic type opener
  2. Typing line with handwritten scribbles
  3. Giant cyan sparkle with floating pixel icons
  4. Thermal head profile “you dont.” / “you just show it.”
  5. 3D ring of 12 pixel-art icons and a bouncing ink ball
  6. Word cards “action.” “intention.” “curiosity.”
  7. Ink scatter
  8. Thermal hand “through ones own ability to”
  9. L-O-V-E finale with red pen loops

How it is made

Read the actual messages and what Claude did after each one, or the full session.

Renderer. Node with @napi-rs/canvas (Skia) draws each frame across worker threads. Segments are encoded with ffmpeg and muxed with the audio. The latest archived v18 render is 1440×1080; its side-by-side comparison is 2880×1080. The earlier v14 export is 2880×2160 with 4-sample motion blur, not a high-resolution v18 result.

Judge loop. After each render, a script builds contact sheets of the reference next to the render at 4 fps. Several Sonnet “judge” agents compare them, score sections out of 10 and list the biggest differences. Those notes become the next iteration’s fixes, and the cycle repeats.

Score progress

Judge scores out of 10, per section of the timeline.

These are historical scores, not a consistent benchmark: judging became stricter, and some archived comparisons paired different frames. Read the evaluation and alignment caveats.