i collapsed it into 1 pass over a Uint32Array, downsampled to ~45x45, reused canvases at module level, and added caching so changing baseSize/scaleFactor doesn’t re-scan
content detection: 1.4ms -> 37us per logo (38x)
full mount: 29ms -> 828us for 20 logos (35x)
github.com/sanity-labs/...