---
name: row-handoff
description: Make a photograph-rich two-board film with a moving reading band and a visible transfer of attention between boards.
version: 1.0.3
category: video
delivery: local
---

# Row Handoff

Build a comparison that a viewer can read in order. This parameterized renderer creates a paused GSAP timeline, editable HTML and a HyperFrames composition. An Agent authors a concise brief and supplies authorized local photographs; the tool does not invent claims or acquire media.

Read [the input contract](references/brief.md), [direction](references/direction.md) and [dependency scope](references/dependencies.md). Use Node.js 22 and run from this directory:

```sh
node scripts/install.mjs
node scripts/compose.mjs --brief /absolute/brief.json --dest /absolute/project --palette porcelain
node scripts/render.mjs /absolute/project /absolute/film.mp4
```

The installer runs ordinary locked `npm ci` with lifecycle scripts. Browser GSAP and Latin/CJK fonts are bundled with required notices. HyperFrames 0.8.30 and GSAP 3.14.2 are pinned. Network access is needed for installation. Rendering performs lint and strict export at 1920×1080, 30 fps, one worker.

The first board opens vertically. Its reading band visits each row; the second board slides in beside it, the first recedes to 81% opacity, and the second band reads the next sequence. Photographs and captions stay anchored. Row dwell determines duration, including at least 1.6 seconds of final reading time. Choose `porcelain`, `mulberry`, `terracotta` or `graphite`; Chinese text selects the included Noto Sans SC font.

Inspect every row arrival, handoff and final hold at native resolution. Confirm the highlighted row and readout actually advance. `window.__timelines['row-handoff']` is the HyperFrames timeline, `seekFilm(seconds)` seeks locally, and `frameState` exposes measured numeric state. A GSAP-driven property setter reconstructs every visual property from time, so seeking also works when timeline callbacks are suppressed.

Keep finished videos, brief-specific photos and rights records outside this generic package. This version exports silent films and provides no audio editor or music mix. Technical checks do not establish visual acceptance or publication.
