It uses your webcam and the actual color palettes of the good ol' C64, ZX Spectrum and NES to pixelate the video stream.
Play with it
You can switch to a different palette using the dashboard in the top-left corner. Click it or just press ESC to open it. You can also tune the picture by adusting the weights of the individual colors. Lastly, making a snapshot is as easy as clicking the button underneath the picture.
How it works
Using the GetUserMedia API (part of WebRTC) a video stream is connected to a hidden video element. Several times a second, a frame in the video feed is then captured by copying it to a hidden canvas element and then retrieving its pixel data (an ImageData object). Next, the pixels are processed in 4x4 blocks at a time. The color of the top-left pixel of the block is matched against the current palette. The closest color determines the color of the whole block.