Skip to content
ExamsLibraryFor agentsConnect your agent

Story, cursor and loops

intermediate·8 min·Markdown for agents

What this lesson teaches

Script an animated product demo with three to five beats, a cursor that moves like a hand, a poster frame that works alone, and a loop that resets for a reason.

  1. 1Pick the story's shape
  2. 2Beats and the payoff
  3. 3Resets that have a reason
  4. 4Two clocks: story and product
  5. 5A cursor that moves like a hand
  6. 6Drags, selections and phones

Watch the pointer. It travels to the empty assignee, presses, the menu opens from that button, it picks Maya, and the result lands twice: her avatar on the row, a small toast at the bottom. Then everything holds still long enough to read.

Four beats and a payoff that holds. Replay is the reset, so it has a cause.

An animated demo is a short film the viewer did not ask for. Every move needs a reason, and the whole thing has to survive being watched twice.

Pick the story's shape

What is the product valued for? That decides the shape:

  • How it feels to use. The gesture is the story: a cursor does one satisfying thing and the result appears under its hand. The demo above is this kind.
  • A flow in an app. A few screens told as one continuous object, the payoff on the last.
  • What the system does. The consequence lands somewhere else, and the link is drawn: a value travelling along a line, a card flying into a list. Usually no cursor at all.

And one tie-breaker from Benji Taylor: between a richer story and a calmer, better-framed one, choose the frame.

Beats and the payoff

  • 10 to 16 seconds per loop, 3 to 5 beats, building to a . One gesture and one response can be enough.
  • Open on a finished screen that works as a still. The first real content is there before the first beat.
  • The payoff arrives whole and is visible at the shown size: a panel, a state change, a card coming forward. Never a blank surface for a quarter second.
  • The payoff holds about 2 seconds, and nothing sits still for more than 3.

Resets that have a reason

A loop has to get back to the start. A good has a seen cause (an undo with its keys shown, a Clear button, a panel closing), or it happens while hidden. Data never rewinds in view. A number counting backwards on screen looks like a bug, because it is one.

Also: no product shrinks an app back into its notification. Leave the way the real product leaves.

Two clocks: story and product

Storytelling motion is unhurried. Taylor's kit moves things across the stage on cubic-bezier(0.45, 0, 0.1, 1) and brings new things in over 0.8 to 1 second on cubic-bezier(0.25, 0.8, 0.25, 1).

But the product's own feedback, a button press, a menu opening, keeps the product's real speed, under 300ms. That menu in the demo opens in about 240ms. Only the story slows down; the UI never does.

Motion in the kitValue
A card flying to its slot750ms on a soft arc, no bounce on landing
A new row openingheight over 0.42s, content fading in with it
A popoverscales over 0.24s from the side nearest its trigger
A stagger within a scene40 to 80ms apart, in reading order

A cursor that moves like a hand

The cursor is a character. Drag the slider, then move both:

Timed by distance404ms, bows 13px
Fixed for every move600ms, straight line

clamp(260 + 0.9 × distance, 300, 650) ms. Try 40px: the fixed cursor takes more than twice as long for a tiny hop.

Short hops are quick, long trips don't drag. A fixed duration makes every hop crawl.

The rules for the pointer, with the numbers from Stageshow's code:

  • Travel is timed by distance on a shallow arc: clamp(260 + 0.9 × distance, 300, 650) ms, bowing sideways by up to 24px.
  • A press reads: a short pause on arrival, the pointer dips to 0.9 for a moment, and the state changes after the click completes. The pressed control shows its own press.
  • It never covers the words it clicks. Aim inside the target, off its text, about 85% across and 60% down.
  • It rests on empty surface near its next move, never parked on a control, and fades after about 4 seconds still.
  • Its shape comes from what it crosses: an I-beam over text, a hand on a link, an open hand over something draggable. That is the , and it switches as the pointer crosses the edge, not after it arrives.
A cursor parked on the button it just pressed hides the one thing the beat is about. Move it off as soon as the press lands.

Drags, selections and phones

A drag is one motion: the thing follows the pointer the whole way. The , where the hand took hold, stays fixed through travel and drop. A carried card lifts slightly (scale 1.03, a deeper shadow, a degree of tilt) and lands flat.

A text selection reads left to right from a word boundary and stays under the I-beam on every frame. Nothing scrolls unless the pointer is over it. And the camera pushes in only when the payoff would be too small to read, once per story.

On a phone there is no arrow cursor. A touch dot appears only where the finger taps or drags. A swipe is a flick: a third of the screen in about a quarter second. A notification is tapped to open its app, the way people actually use phones.

Script a product demo· for your agent
Script this faux UI as an animated demo:
- Story shape: how it feels to use. One gesture: assign the selected conversation to Maya.
- 4 beats: travel to the assignee, press, pick Maya from the menu, result lands (avatar on the row + a toast). Payoff holds 2s.
- Set the poster frame first: the assigned state with the toast visible.
- Cursor travel clamp(260 + 0.9 × distance, 300, 650)ms on a shallow arc; aim off the label (85% across, 60% down); rest on empty surface.
- The menu opens at product speed (~240ms) from its trigger; story motion may be slower.
- play once with a Replay button, or loop with a visible cause for the reset and a pause button if it runs over 5s.

Quick check

Your demo loops every 12 seconds. At the end, the revenue number on screen counts back down from $4,210 to $3,980 so the next loop can count up again. What should change?

What this lesson builds on and leads to, across every course.

  • Why fake UI looks fake
  • Routing the job
  • What is a skill?