Case study
Squish
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