The conversion core uses a deterministic, browser-compatible pipeline:
decode → framing → preview rasterization → image adjustments
→ optional edge-connected background removal → grid resize
→ active palette selection → CIEDE2000 matching
→ optional Floyd–Steinberg-style error diffusion → PixelBeadProject
The product UI, accounts, persistence, and cloud storage are separate layers. The core is intentionally side-effect free apart from browser adapters.
For a target grid area P and active palette size K, final quantization is
O(P × K). The project rejects grids above 60,000 cells as a practical browser
and export safeguard.