When to Use
- Create GIFs and animated diagrams from JSON / CSV / benchmark results.
- Show card movement, rankings, comparison bars, and state transitions through animation.
- Create articles / social media assets where numerical accuracy and the distinction between presentation time and measured time matter.
Out of scope: infographics made only of static PNGs, analysis of existing videos, editable structural diagrams.
Inputs
- Source artifact: JSON / CSV / text. If there are measured values, use these as the SSOT.
- Audience language and target medium: Japanese blog, X, slides, etc.
- Timing mode:
illustrative: Motion is presentation. It does not represent processing speed.measured: Build frame timing from measured timestamps.mixed: Numbers are measured; card and bar movement is presentation.
- Output size. Default is for blog/X
1200x675, and create a static fallback if needed.
Workflow
-
Freeze the evidence
- Fix the source artifact, acquisition date and time, target count, and measurement boundary.
- latencyは
1 request、serial total、fresh-process end to endetc., decide what was measured. - When processing external media, record the original URL, acquisition date, source-relative path, and SHA-256 in the manifest, and verify the hash before generation.
-
Design the story
- Limit 1 GIF to 1 claim. Move long explanations back to the body text.
- Fix the reading order, such as input → decision → next process, before → after, comparison → conclusion.
- If a narrow decision gate is the main subject, make it the protagonist of the visual hierarchy using one of the following: accent color, thick outline, center placement, or callout. Place input and output on both sides, and write the value determined by the gate inside the box.
- Do not assert official terminology and the author's own layers/classifications with the same appearance. For original models, within the asset
この記事での整理indicate the scope, such as, and avoid arrows or nesting that make them look like product inclusion or maturity.
-
Localize before rendering
- Match explanatory UI, status, and captions to the reader's language. Do not leave generic English UI in Japanese articles.
- Preserve official notation for proper nouns such as product names, API fields, and model IDs.
- Avoid literal translation style. Example:
段階で採点rather than定義した基準のどの段階に近いか。
-
Make timing explicit inside the asset
illustrative:カード移動は演出(実測速度ではありません)display.measured: Display the measurement boundary and units, and build frame duration from measured values.mixed:表示値は実測 / 棒・カードの動きは演出write both.
-
Generate reproducibly
- Keep the generator script, GIF, static fallback, and, if necessary, source snapshot.
- Do not manually enter numbers; read them from the source artifact.
- Limit third-party videos to the minimum frames necessary for the claim (e.g., before / operation / after), and remove unrelated browser chrome. Within the asset, display the source and information to prevent misreading, such as dummy data, unsent, and author-added notes, in a distinguishable way.
-
Validate mechanically
python scripts/helper.py output.gif ` --expected-width 1200 --expected-height 675 ` --timing-mode illustrative ` --contact-sheet output-contact.jpg ` --report output-validation.json--timing-mode measuredalso requires--measured-ms <total>;--duration-tolerancedefaults to 0.1. Pillow is required.
-
Inspect visually
- Check the start, middle, and end frames at original size and target embed width (about 360px for mobile).
- Fix text overlap, clipping, order, whitespace, unreadable annotations, and remaining English UI, then regenerate.
Timing Rules
- The total playback time of a GIF does not necessarily match API latency. Do not automatically equate them.
- For the sum of multiple requests, indicate whether they are parallel or serial.
- If the measurement boundaries of the comparison targets differ,
model speedrather thanobserved end-to-end timetreat as. - Also verify the estimated cost, accuracy, and token count against the source artifact, and add a note so they are not misread from the asset alone.
Done Criteria
- The GIF is animated and meets the expected dimensions and minimum frame count.
- The timing mode and measurement boundaries are visible within the asset.
- The values in the source artifact match the displayed values.
- If derived from external media, the source URL / retrieval date / SHA-256 match the manifest.
- The explanatory UI is unified in the reader's language.
- The subject's decision gate is visible first, and it is readable what it receives and what it returns.
- Official definitions and the author's own organization can be distinguished from the asset alone.
- The start, middle, and end frames and loop playback have been confirmed.
- The text is readable at the target embed width.
- The locations of the generator, GIF, static fallback, and validation report have been reported.