- E-paper display simulator: Python port of the C++ Floyd-Steinberg
dithering (same palette, same coefficients) with side-by-side preview
in the web UI. Interactive pan/zoom controls with live re-rendering.
- Frame orientation: landscape / portrait_cw / portrait_ccw setting
controls logical display dimensions (800x480 vs 480x800). Images are
rotated to match the physical buffer after processing.
- Display modes: zoom (cover+crop) and letterbox (fit with padding),
configurable globally and per-image. Zoom mode supports pan_x/pan_y
(0.0-1.0) to control crop position.
- Settings persistence: frame settings, per-image settings, and frame
state stored as JSON, surviving restarts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>