Live face filters, computed on your device by a small C engine compiled to WebAssembly, and sent as a normal WebRTC video track.
You send · the filtered camera track (preview mirrored)They receive · decoded from a WebRTC peer connection
Live stats
Status
Press “Start camera”
How it works
Each camera frame is copied in its native I420/NV12 layout straight into WebAssembly memory. No RGB conversion is needed.
The C engine finds your face with pico on a downscaled luma plane and follows head tilt with rotated cascades. A One-Euro filter smooths the tracking before the effect is applied.
The result becomes a new video frame on an ordinary video track, which WebRTC encodes like any camera.
The right-hand panel is a real peer connection back to this page, so it shows exactly what a remote viewer would see. Your camera does not leave this device.
The DataChannel option sends 44-byte face packets instead of pixels, so a receiver can draw effects itself.