Turning structured data into animated infographic GIFs and short clips: timing each reveal, placing labels so they stay readable, checking representative frames, and export specs per platform. Use when asked to animate a chart, make a data GIF, build an animated infographic, or turn numbers into a short looping clip.
./install.sh animated-infographicname: "animated_infographic" description: "Turning structured data into animated infographic GIFs and short clips: timing each reveal, placing labels so they stay readable, checking representative frames, and export specs per platform. Use when asked to animate a chart, make a data GIF, build an animated infographic, or turn numbers into a short looping clip."
Turn verified numbers into a short looping animation that a viewer can read without pausing it. The skill ships a tested rendering pipeline: a JSON plan in, a GIF and an MP4 out, with a frame QA pass that checks size, dimensions, contrast, label fit, and representative frames before anything ships.
source field, it prints on every frame. If a number cannot be verified, cut it or label the piece as illustrative, the way assets/sample-plan.json does. Never use the sample numbers as real data.assets/sample-plan.json. Required: title, and steps, where each step has a heading and bars with label and value. Keep 2 to 5 steps and 2 to 5 bars per step. Bar labels and order stay the same across steps, a new bar enters from zero. Add unit and value_format when values need them, for example "{:.1f}" with unit "%".references/timing-and-layout.md. Defaults in the renderer are a 1.0s first hold, 0.7s transitions, 0.8s between steps, and a 1.5s final hold. One change per step, bar positions never move, bars scale to the largest value across all steps.references/platform-specs.md. Width and height must be even.bin/infographic.py plan.json --both out/name for a GIF and an MP4, or -o out/name.gif for one format. The GIF path uses ffmpeg palettegen and paletteuse in a single split graph, with stats_mode diff and Bayer dithering, which suits flat chart graphics. Rendering uses Pillow only, so it works on machines where matplotlib is broken.bin/frame_qa.py plan.json out/name.gif --expect 1080x1080 --max-mb 8 --out-dir qa/ and the same for the MP4. Then look at the three extracted frames, first, middle, and last, and view the last frame shrunk to about 360 px wide. If values cannot be read at that size, fix the plan, not the render.references/platform-specs.md. Re-run QA after every change.bin/frame_qa.py with all checks passing, and the three representative frames kept with the output for review.references/platform-specs.md were checked on 2026-10-14 and are export targets, not guarantees. Verify the current limit at upload time for a launch that matters.bin/frame_qa.py computes the ratio from the plan colours and fails body text under 4.5 to 1, which is a rule of this skill.bin/. Commands verified on ffmpeg 8.1.2 and Pillow 10.2.0 on 2026-10-14: the sample rendered 56 frames in 4.67 seconds, 0.11 MB as a GIF and 0.062 MB as an MP4, all QA checks passing.publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.