---
name: dialogue-window
description: Author an editable page conversation with a live circular participant, timed waiting dots and a downward answer reveal.
version: 1.0.2
---
# Dialogue Window

Use this parameterized renderer for a short question and actionable response connected to photographic evidence. The page remains present while the participant moves naturally in a circular crop. A finite waiting sequence separates the question from the answer. A slow page push supports the reading interval.

Install Node.js 22 or later and FFmpeg/ffprobe. Run `npm ci`, then `node compose.mjs /absolute/brief.json /absolute/project`. Render with `npx hyperframes render /absolute/project --fps 30 --quality high --strict --workers 1 --output /absolute/film.mp4`. The output is 1920 × 1080, 30 fps, 8.4 seconds. Render each project sequentially.

The JSON requires `identity`, `heading`, `context`, `prompt`, `answer`, `credit`, `image`, `portrait`, `footage`, and `palette`. Paths resolve relative to the JSON. Palettes are `iris`, `abyss`, and `grove`; `crop` optionally supplies the presenter's CSS object-position. Text limits are 34, 45, 85, 90, 150, and 50 characters respectively. Choose a concise topic, evidence photograph, short question and concrete answer. Do not infer factual claims from a stock actor.

Supply licensed JPEG page and portrait images, and a continuous MP4 at least 8.4 seconds long. No repeated short footage, avatar stand-ins or implied endorsements. Input assets are external to this package. Videos are intentionally muted; no narration or audio alignment is claimed. Record photo and person rights in each project delivery.

The generated HTML, brief and GSAP timeline remain editable. Chinese text selects the local Noto Sans SC face; Latin compositions use Manrope. Font declarations are inline so strict rendering resolves them. Runtime assets and dependency licenses are copied locally.

Verify text bounds, crop and face motion at native resolution. Seek forward, backward and to zero; the `dwSeek` helper returns a boolean. Verify the encoded film, full decode, font loading, and a single normal-speed playback. Preserve measured playback drops. Rebuild and rerender after changes. Two demonstrations prove the documented parameterized layout, not unrestricted automatic storytelling.
