# Smooth exports

[Open gallery](gallery.html) · [Validation report](smooth-validation.json)

The checked **Smooth** control changes every gallery preview, enlarged image and PNG/SVG download. Uncheck it for the unchanged original square exports. Ideal targets remain unchanged.

Each data module is drawn at 90% width and height over a smoothed rendering of its associated target. Required function cells stay full-size. Every module center still matches the independently reconstructed QR matrix, and the quiet zone remains solid white. SVGs embed their background image and need no external resources. This is visual rendering; no codeword bits or parity are altered.

The actual saved PNG and a separate SVG raster at another integer scale are decoded independently by ZXing and OpenCV. Every one of the 480 designs across the three collections passes both checks. One difficult texture, `full-field-fractals/voronoi-10`, keeps its outer nine-module band full-size to preserve OpenCV detection. The eight research prototypes pass ZXing; seven pass OpenCV, with the original square-textile detector limitation retained and explicitly reported. No physical-phone or print qualification is claimed.

Activate the project Python virtual environment, install requirements.txt there, and run `python src/smooth.py`. The research collection needs `python src/smooth.py --allow-opencv-miss` to retain its explicitly labelled OpenCV miss. Run `node src/build-gallery.mjs` afterward. The three collection galleries also have `node src/test-gallery.mjs`, which checks filtering, smooth/default/reset behavior, modal and download synchronization, and export links in a minimal DOM harness; this is not a browser test.

Each design carries `qr-smooth.validation.json`; the aggregate is `smooth-validation.json`. Original `qr.png` and `qr.svg` files are preserved.
