← All work

Case study

Squish

constraint: zero server storage GoAPI 2025
Problem

Game assets ship as individual sprites. Spritesheets reduce draw calls — one texture bind instead of dozens. Every existing packer tool either required a server upload, cost money, or produced 60–70% packing efficiency. Needed something fast, free, and private.

Approach

Implemented MaxRects bin-packing from the 2010 Jylanki paper — the same algorithm game engines use internally. Go backend handles the geometry math; everything renders client-side on a Canvas element. Images never leave the browser.

Outcome

85–95% packing efficiency at interactive frame rates. Zero server storage costs. Handles up to ~500 sprites before browser memory becomes a constraint.

Stack
GoAPI