Emoji Mirror

2026
Creative CodingWebGLthree.jsJavaScriptPhysical experience

A real-time installation that rebuilds whoever stands in front of it as a mosaic of emoji. A quadtree subdivides the live camera image, finer where there is detail and larger where there is less detail, then fills each cell with the closest match from an atlas of 1,245 emoji. Runs as a 24/7 kiosk on a 55-inch portrait touchscreen in a moulded housing.

An experience to show off our brand new 3D emoji.

Vermeer's Girl with a Pearl Earring rebuilt as a mosaic of emoji

The mirror

I built the Emoji Mirror to promote the Noto 3D emoji redesign at Made By Google in August 2026, an invite-only press and marketing event with influencers, senior Googlers, and friends of Pixel. It shows you your own reflection, rebuilt out of emoji.

Where it came from

I make generative art, so I'm familiar with ways to use code to make beautiful things. The quadtree is perfect for this: it can show emoji as large images so you can get a feel for what they look like, and small emoji to reveal the detail of the subject.

Every cell on the wall is an emoji!

How it works

A quadtree subdivides the live camera feed, finer where there is detail and coarser where there is not, then fills each cell with the nearest match from an atlas of 1,245 emoji. A flat wall behind you resolves to a handful of large emoji. The Einstein render below used 437 distinct emoji across 21,099 cells, picked in real time, with a rule that stops identical emoji from landing side by side.

Einstein, photographed by Ferdinand Schmutzer in 1921, rebuilt as a mosaic of emoji

A quadtree is a square that can divide itself into four smaller squares, each of which can do the same. Here the test is contrast: measure the brightest and darkest points inside a square, and if they are far enough apart, divide it and ask the same question of each quarter. A plain wall can come out as a single cell a quarter of the frame across. Anything with an edge in it keeps dividing.

Jared Leto in the Choupette cat costume at the 2023 Met Gala with the quadtree drawn over it in black: large cells where the frame is flat, dividing down to the smallest across both faces and the press pit behind him

Photograph: The New York Times

This is the list of viable emoji for the experience:

The first emoji spritesheet: a 32 by 32 grid of Noto 3D emoji

The second emoji spritesheet: the remaining 221 emoji in seven rows

The build

One person in front of the screen, standing, at their own height. A 55" panel sits in a moulded MDF and fiberglass housing with the camera just above the glass, so the experiencer's eye line sits near the reflection.

It ran 24/7 through the event.

How it's built

The whole installation is a web page running in a MacOS wrapper app. A Node server with no dependencies serves it to Chrome in kiosk mode, and Chrome reads the camera input.

LayerChoice
Renderthree.js, one instanced mesh, orthographic camera, up to 120,000 cells
SubdivisionWeb Worker running the quadtree off the main thread
Face detailMediaPipe face detection in WASM, driving finer cells inside the face
Atlas1,245 Noto emoji across two spritesheets, each tagged with its mean color
CameragetUserMedia at 720p, pinhole module behind a cutout in the bezel
ServerNode standard library, zero dependencies
KioskChrome fullscreen on Apple Silicon, isolated profile, camera auto-granted

Afterwards

The social media posts melted my face off!

Ricky Yurewitch

Emoji Mirror