Animation delivery assets, 3 October 2026

No simulation rerun or interpolated states. Resized from the original GIFs, which remain on the website at /assets/img/projects/soft-robot/<name>.gif. Source hashes and sampled indices are in manifest.json.

Basic PI contact: 1400x780 to 1000x557, 12 to 10 fps, same 9.5 s duration, first and final source frames retained.
Straight, curved, and free-insertion: smaller dimensions; all original frames and durations retained (4, 4, and 5 fps).

Fallback GIF uses a shared 256-color palette; primary WebP uses quality 85, method 6, minimize_size=True, allow_mixed=True. The first-frame preview is a 480-pixel-wide lossless WebP. Quality comparison is against the optimized GIF, not the original full-resolution raster.

To reproduce, place these scripts in a writable directory and provide the four original GIFs:
python optimize_media.py --source-dir /path/to/original-gifs
python encode_webp.py

The first script also produces a lossless WebP intermediate; the second replaces it with the final smaller mixed-mode version.
