🍜 Logo Soup
Real-world logos are messy. Some have padding, some don’t. Some are dense and blocky, others are thin and airy. Put them in a row and they look chaotic. Logo Soup fixes this automatically.What it does
Logo Soup analyzes each logo image on a<canvas> and normalizes them so they appear visually balanced when displayed together. No server, no AI, fully deterministic.
- Content Detection — Finds the true boundaries of each logo, ignoring whitespace and padding baked into the image
- Aspect Ratio Normalization — Balances wide and tall logos so neither dominates
- Density Compensation — Measures visual weight so dense/bold logos don’t overpower light/thin ones
- Irradiation Compensation — Adjusts for the optical illusion where light content on dark backgrounds appears larger
Read the deep-dive
The full story behind the problem and the math behind the solution.
Try the playground
Interactive Storybook with real logos and tunable parameters.
Framework support
Logo Soup is a single npm package with subpath exports for every major framework:Architecture
The library is built around a framework-agnostic core engine (createLogoSoup) that handles all image loading, measurement, normalization, caching, and cancellation. Each framework adapter is a thin wrapper (30–80 lines) that bridges the engine’s subscribe/getSnapshot interface into the framework’s reactivity model.