OptiMoss.ai ← Resources
Showcase · Side project May 2026

emoji-mosaic.

Upload any image and have it repainted with ~3,944 Noto Color Emoji as the palette. The matcher runs entirely in your browser — your picture never leaves the page.

§ Try it

Mosaic an image

Pick a photograph or screenshot. Bigger grids look more detailed but take longer to render. LAB matching is perceptual and almost always reads better than RGB; restrict the palette to a category or two for stylised results (animals-only, food-only, flags-only).

Client-side renderer

Leave all unchecked to use the full ~3,944-emoji palette.

The rendered mosaic opens in a new tab. Assets (~1.6 MB — sprite atlas plus a precomputed color → emoji lookup table) are downloaded once and cached.

§ Notes

A short version

The full toolkit behind this — CLI image and video renderers, a real-time screen-capture mosaic, a small Flask LAN upload UI — lives in a single Python package. The browser demo here is the same algorithm: a precomputed LUT that maps a quantised LAB color to its nearest emoji, plus a sprite-sheet atlas of all the emoji rendered at a fixed swatch size. Both the Python and JavaScript renderers consume the same artifact files, so the matching is bit-for-bit identical across the CLI and the page you're looking at.

A longer write-up — what the AI coding assistant did well, where I had to intervene, why LAB beat RGB more decisively than I expected — is coming in a later pass. The source repo will go up alongside it.