Arinze Clinton

Loupe

Motion Tool / Open Source

A timeline-first tool for reviewing web animations. You scrub to the exact moment, point at it, and hand a coding agent something precise instead of a paragraph.

0:00
0:00

Loupe running on a real project build.

Loupe is a tool I built and put on npm, free to use. It came out of the projects I was working on: the back-and-forth of fixing animations by describing them to a coding agent.

The loop you already know

If you've fixed an animation by describing it to a coding agent, you know how it goes. You say the card comes in too fast. It changes a number. You reload. Still not right, so you describe it better and go again.

The part you can't say

The thing you can't give it is when. You can name the element and what's wrong with it, but the moment it goes wrong is the part you have no words for. “When it fades in.” When exactly? “About halfway.” Halfway through what? That's not you being vague. The animation doesn't hold still long enough to be precise about. It runs for 600 milliseconds and it's gone.

What Loupe does

Loupe ties every animated value in a scene to one clock, so time becomes a number the tool controls. Pausing freezes the number. Scrubbing sets it to 840. You can hold the animation still and look at it.

Loading demo…
This isn't a video. It's Loupe running here in the page — drag the timeline, pause on any frame.

How you use it

You install it, wrap the scene you're working on, and a panel shows up in the corner while you run the project locally. You click the element you care about, scrub to the frame where it goes wrong, and type your note right there.

Loading demo…
The panel, live. Scrub to the frame where it goes wrong — the same move you make before typing a note.

What the note carries

What comes out is the part that matters for an agent. The note carries your sentence plus the element, the file, the line number, and the moment: something like 308 milliseconds into 600. Paste that into Claude or Cursor and it doesn't have to guess which thing you meant or when. It opens the file and changes the right number.

The Loupe note pasted into Claude Code, with the element, file, line, and timing
The note the agent receives: your words, the element, the file, the line, the timing.

A production version when you're done

When you've finished tweaking, you can ask Loupe for a production version, and it hands the animation back as ordinary code with the timeline taken out. It won't invent a number, though. If it can't work a value out honestly, it stops and tells you which one. A wrong duration doesn't throw an error; it just runs slightly wrong from then on.

When it's worth it

Making a scene scrubbable means writing it against the timeline rather than firing animations off, which is a different way of working. For a single fade, it isn't worth it. It pays off once four or five things are moving and they all need to agree on where they are in time.

Get it

It's free. Two lines to start:

npm install @arinze-clinton/loupe -D
npx loupe init

Docs are here. The code's on GitHub.

I built it while handling projects at work, because I got tired of writing paragraphs to describe a moment I could have pointed at.