PIXEL REFINER

Smeared, smoothed, screenshot-mangled pixel art in — crisp cells out. The grid is detected from the image's own run-lengths, or forced by hand when the guess lands near. One file, zero calls: the entire engine (MIT, vendored at v0.11.1 · bd5c1c7) runs in this page — nothing leaves the machine, online or off.
grid × px cells hex-top dither colors
hex-top + the two hex dithers: locked because cells = square — the words, not just the grey.

INPUT — as it arrived

nothing loaded

RESULT — cells, re-snapped

The engine is local. The refine button is honest even in airplane mode.
Provenance. Engine: PixelRefiner v0.11.1 by Happy Onigiri, MIT, mirrored in our org and vendored whole — detector, quantizer (Oklab k-means; Floyd–Steinberg; Bayer 2×2/4×4/8×8), flood-fill, outline, processor — types stripped, one file, no build step, no worker, no dependencies. The FUNGI sheet button composes sprites read live from the FUNGI contract (getSvg seeds 1 & 7, Base mainnet, census-verified selector) and smears them the way screenshots do — every pixel of the demo is made on your device.
Hex cells are a MODE alongside square, never a replacement — same engine, same palette, the artist picks. The lattice path (lane/hex) re-lattices the refined grid onto equal-area hexes in Oklab and re-snaps through the same quantizer; its dithers are serpentine tone-dependent error diffusion per Jodoin & Ostromoukhov, Halftoning Over a Hexagonal Grid, Proc. SPIE 5008 (2003), DOI 10.1117/12.473230, and a void-and-cluster hex blue-noise mask (Ulichney 1993) — five dependency-free modules inlined under the same one-file-zero-calls law. Picking a square dither with hex cells dithers the square pass first, then hexifies — an option, not a swap.
Auto-detect reads run-lengths and can land near-but-wrong on fine cells (a 96-cell sheet at 16px cells reads 92). That is why W × H sits in the open: correct it, and force takes over.
⌂ hub