Lossless pixel art resizing — at fractional scales, not just whole numbers.
pixelzoom.app · Paper (Applied Sciences) · Buy me a coffee
A piece of pixel art is not a bitmap of independent pixels. It is a small grid of dots that someone enlarged — every visual dot is a square block of identical size.
Bilinear and bicubic interpolation blur the hard edges that define pixel art, so nearest-neighbour is the usual answer. But nearest-neighbour alone is not enough. At a fractional scale it has to round each dot independently, so some dots come out a pixel wider than their neighbours and the grid stops being uniform. This is what people call pixel wobble.
| Scaling a block-size-2 sprite by 1.25× | Dot widths |
|---|---|
| Plain nearest-neighbour | 3, 2, 3, 2, 3, 2 — uneven |
| PixelZoom | 3, 3, 3, 3, 3, 3 — identical |
PixelZoom finds the intrinsic block size of the artwork, reduces it to the minimum unit image in which one visual dot occupies exactly one real pixel, and then multiplies that by a whole number of pixels per dot. The requested scale picks the nearest whole number, so the output always lands on an exact multiple of the dot grid — and every dot stays exactly square.
Not every image is sound pixel art, and the service says so rather than pretending: it offers to trim background margins that hide the grid, and falls back to plain nearest-neighbour with a clear label when no block size exists.
No account, no cookies, no analytics. Uploaded images are analysed in memory and never stored, and the resizing itself runs in your browser.
Structure-Aware Pixel Art Scaling via Block Size Detection Jun Won Seo, Jun Won Lee, Jong Hyuck Lee, Jun Beom Kim, Jin-Woo Jung Applied Sciences 16(5), 2314 (2026) · doi:10.3390/app16052314
The project began as an undergraduate team design assignment in a Human-Computer Interaction course at Dongguk University, and the block-size detection idea was taken up by the HRI Lab and developed into a peer-reviewed paper.
The paper carries what this service only summarises: the mathematical definition of pixel art and of sound pixel art, the full pseudocode for minimum unit detection, and the evaluation metrics used to prove the algorithm's integrity — colour loss, block size consistency, and reversibility.
| Repository | What it is |
|---|---|
| pixelzoom-web | The live service. A monorepo: FastAPI on AWS Lambda for detection, React for the resizing itself, Terraform for the infrastructure. This is where development happens |
| pixelzoom-frontend-archived | The original prototype frontend. Superseded by frontend/ in the monorepo |
| pixelzoom-backend-archived | The original prototype backend. Superseded by backend/ in the monorepo |
| Coldlapse/PixelZoom | The core algorithm as a CLI, plus the paper and presentation materials. Kept outside this organization on purpose — the paper's DOI points at it, and research output has a different lifecycle from a running service |
The service splits the work: the server only detects the block structure and reports what it found, while the browser does the actual resizing on a canvas. The two paths were verified to produce bit-identical results, so nothing is lost by doing it locally — and the uploaded image never has to travel back down the wire.
| Role | ||
|---|---|---|
| Web service — development and deployment | Coldlapse | Jun Won Seo |
| Prototype — frontend | Jhcki222 | Jong Hyuck Lee |
| Prototype — backend | LJW0907 | Jun Won Lee |
| Prototype — backend | Semitigerx | Jun Beom Kim |
| Infrastructure architecture — advisory | PokingTeemo | Yoon Sub Jung |
And Professor Jin-Woo Jung, who secured the research funding that made this work possible and gave the project unstinting support, and everyone at the HRI Lab we worked alongside.
PixelZoom is free and runs on a personal AWS account. If it saved you some time: