| Crates.io | pixie-anim |
| lib.rs | pixie-anim |
| version | 0.1.5 |
| created_at | 2026-01-10 23:49:48.903779+00 |
| updated_at | 2026-01-21 23:20:03.10239+00 |
| description | A zero-dependency, SIMD-accelerated GIF optimizer |
| homepage | https://ghchinoy.github.io/pixie-anim/ |
| repository | https://github.com/ghchinoy/pixie-anim |
| max_upload_size | |
| id | 2034960 |
| size | 9,274,891 |

A high-performance, zero-dependency short-form animation optimizer written in Rust and WebAssembly.
Inspired by Lee Robinson's pixo, Pixie-Anim follows a similar philosophy: building mission-critical codecs from scratch without heavy runtime dependencies, optimized for both native CLI performance and zero-latency in-browser execution.
📖 Read more: Optimizing GIFs with Pixo: Extending Lessons Learned - A technical writeup on the architecture and philosophy behind Pixie-Anim.
| Tool | Mode | Size (KB) | Subjective Score (1-10) |
|---|---|---|---|
| Gifsicle -O3 | Standard | 19,034 | 6 |
| FFmpeg | 2-Pass HQ | 19,290 | 6 |
| Pixie-Anim | Quality/Lossy | 9,821 | 7 |
Benchmarked on the high-complexity "Space Waves" sequence (Veo 3.1). Pixie-Anim provides a massive size advantage while improving visual stability through Ordered Dithering.
By ordering the 256-color palette by visual similarity, we maximize the length of LZW strings, gaining "free" compression with negligible compute cost.
A unique optimization where the encoder can match visually similar "neighbor" indices in the Zeng-ordered palette to continue an LZW sequence, further collapsing file size.
We discovered that standard interleaved RGB SIMD is often slower than scalar for small palettes. Pixie-Anim uses a Planar data layout to unlock the true potential of AVX2/NEON for nearest-color search.
Build the native binary:
cargo build --release --features="cli"
The binary will be available at target/release/pixie-anim.
Optimize an image sequence:
./target/release/pixie-anim frames/*.png --output optimized.gif --fps 15 --lossy 8 --fuzz 10
The web UI is a Lit-based application that leverages the Rust core via WASM.
cd webpnpm installpnpm run dev (This automatically triggers build-wasm to generate bindings)Note: To prevent browser memory exhaustion, the web playground currently scales video to 640px and caps extraction at 300 frames. Use the CLI for unlimited high-resolution processing.
Pixie-Anim includes a unified benchmarking tool to compare performance and visual quality against Gifsicle, FFmpeg, and gifski.
See tests/README.md for detailed instructions on the Hill-Climbing workflow and iterative performance tuning.
Quick Benchmark:
./target/release/pixie-bench --input video.mp4 --name my_test --lossy 8 --report tests/benchmarks.md
This tool automatically:
ffmpeg.Pixie-Anim includes a judge tool that uses Gemini 3 Flash to perform a comparative analysis of the output, identifying artifacts like banding or temporal jitter that traditional metrics (PSNR/SSIM) might miss.
cargo install wasm-bindgen-cli)To run the comparative benchmarks and the subjective judge, you'll need:
GEMINI_API_KEY in your environment or .env file for the judge tool.Install on macOS via Homebrew:
brew install ffmpeg gifsicle gifski bc
Part of the Pixie family of high-performance media tools