# Three-product launch: a reproducible editing fixture

This package contains three self-authored SVG product illustrations for an invented ARC / FORM COLLECTION practice brand. They are not product photographs, model-generated videos, or evidence for product features. The finished MP4 is a labelled local edit of static images. The MiniMax H3 generation stage has **not been executed**.

## 01. Inputs and naming

Keep `01-lamp-overview`, `02-bottle-detail`, and `03-pouch-context` separate. Each has an SVG source and PNG first frame. `manifest.json` records the shot purpose and an optional, untested model prompt in both languages. Use your own authorized assets and approved copy for a real launch. When replacing an illustration with a photograph, rewrite the illustration-style clause and all product-specific details to match that input.

The `end-card.en.svg` and `end-card.zh.svg` contain editable SVG text for fictional practice copy only. Verify actual brand wording, dates, prices, and claims independently; none are inferred from a model output. `demo-disclosure-overlay.svg` supplies the persistent demonstration label.

## 02. Optional model generation: not performed here

For each product, prepare a separate image-to-video task. Upload **only that shot's** first frame; do not upload the three products into one first-frame slot or ask one product to morph into another. Inspect current controls and cost before manually submitting. Give each accepted clip its shot ID, retain task/version information, and compare the complete visible shape against the authorized source. The local fixture uses stills instead of these unexecuted model clips.

## 03. Reproduce the local assembly

Requirements: Python 3 and an FFmpeg build supporting libx264. The supplied PNGs are ready to use; SVG edits need new PNG exports from your vector editor. An optional `render-assets.mjs` uses an existing Sharp installation; this package does not install dependencies.

```sh
python3 assemble-demo.py --ffmpeg /path/to/ffmpeg --language en --output-dir my-demo
```

This creates four static 3-second segments: overview, detail, context, and end card. It uses hard cuts, no animation or camera-motion simulation, and no audio. Every segment is composited with the demonstration label. The output is 1280×720, 24 fps, H.264. It then decodes the full output, checks 288 frames and 12 seconds, extracts four keyframes, and records SHA-256 hashes and checks in `execution-receipt.json`. Temporary segments are removed in cleanup. Choose another output folder for subsequent runs or explicitly pass `--overwrite`.

After editing SVG files, an existing Sharp installation can rasterize them:

```sh
node render-assets.mjs --sharp-module /path/to/existing/node_modules/sharp
```

For an actual video edit, review your three separately generated or filmed clips first, keep their IDs, trim according to the delivery brief, then add the approved end card in the editor. This script's 3-second segments are **fixture timings**, not promised model settings or a universal publishing format.

## 04. Inspect and hand off

Review the keyframes and watch the complete MP4. Read the end-card wording at normal viewing size and confirm it does not clip. Match the order with `shot-list.csv`; complete `export-checklist.csv` for the real delivery. Hand off source illustrations, PNGs, approved copy, accepted clip IDs, edit/export settings and the final receipt. No audio stream is expected in the fixture; play the exported file before declaring a real deliverable silent.

If a generated clip changes an outline, replace that clip rather than masking the product error with a caption. If products contaminate another shot, split the tasks and source lists again. If the card has missing glyphs, change to a font containing the required characters and export again. If the output does not decode, inspect FFmpeg's error and the source PNGs; do not rename a failed file to MP4.
