---
name: chapter-plates
description: Create a chapter marker, cut to three photographic reading plates, then push the group upward to emphasize a chosen detail.
version: 1.0.5
---

# Chapter Plates

A parameterized renderer for a 7.4-second, 1920×1080, 30 fps editorial insert. A monumental translucent marker sits behind a heading band. The scene cuts at 2.05 seconds; three image plates arrive separately before an upward camera push and final reading hold.

Use Node.js 22, FFmpeg and a compatible Chromium installation. Run `npm ci` to install HyperFrames at its pinned version, then:

```
node scripts/compose.mjs /absolute/brief.json /absolute/new-project porcelain
node scripts/render.mjs /absolute/new-project /absolute/film.mp4
```

The output project must be new. Used fonts, GSAP and images are copied into it. Edit index.html and brief.json as needed, then render again. Encoding uses HyperFrames 0.8.30, one worker and the editable GSAP 3.14.2 timeline. No model call or key is needed.

Author a JSON object with these fields:

- `marker`: 1–3 uppercase letters or digits.
- `heading`: single-line text, at most 44 characters. Prefer fewer than 30 Latin or 18 CJK characters.
- `plates`: exactly three objects, each with `label` (at most 52 characters), `photo` (a local PNG/JPEG/WebP), `alt` (an accurate description, at most 140 characters), and optional `fit` (`contain` or `cover`). Paths resolve beside the brief file.
- `spotlight`: a zero-based integer from 0 to 2.

Supply rights-cleared photographs. No topic photos or encoded examples are bundled. Use `contain` when artwork edges matter; check all `cover` crops. Missing or malformed images fail visibly. Retain photo licenses with each project. Photographic content must remain a real raster asset rather than an HTML drawing. The tool does not acquire photos or verify factual claims.

Choose porcelain (cool light), foundry (warm dark), tidal (green light), or graphite (neutral dark). All palettes use the same choreography. CJK text selects Noto Sans SC; Latin text selects Manrope. Supply a local custom font as the optional fourth command argument, after the palette. Verify its license and glyph coverage. Third-party notices remain in assets/.

The export is silent. No audio editor, presenter or matte input is included. If a brief needs sound, add licensed music and effects in an external editor and verify the actual mix separately.

Inspect actual encoded frames at 0, 2.02, 2.06, 2.76, 3.45, 4.25 and 7.36 seconds. Check photo crops, text, scene replacement and settled reading states at native size. After `window.__ready` becomes true, use `window.__timelines['chapter-plates']` to seek in both directions and return to zero. Watch the encoded film at 1×. A successful render does not establish content quality or user acceptance. Long text can fit while losing impact; shorten it for small screens.

Read [Brief and photograph preparation](references/briefing.md) before choosing copy and image crops. Use [Render and playback review](references/verification.md) to check the generated project, exported frames and delivery files.
