BetaFree during the beta, for Web, React Native and Unity.Try it on your face
VIDRIPMIMIC
100% ON-DEVICENo frames or face data leave the device

Your face is the
controller.

Bind gameplay verbs and interactive triggers to a blink, a wink, a smile, a raised brow or a turn of the head. Mimic reads the face on the device, calibrates to each player in seconds, and hands your code clean start and end events.

Try the live demo
Calibration
~2.5 s per player
Every threshold is relative to it
Privacy
0 bytes uploaded
No telemetry, no network calls
Library
19 gestures
Eyes, brows, mouth and head
Platforms
3 engines
Web, React Native, Unity
Live testbed

Try every gesture on your face

Standby

Turn on your camera

The face tracker runs in this tab. Each frame is read and discarded on your device; nothing is uploaded.

No frames or landmarks leave your device.

Standby
Detected:–
KEYBOARD:
SPACE blinkS smileW browsA / D headQ / E wink

Gesture matrix

Click a tile to simulate
Event stream
mimic.on('*')
// Waiting for a face. Turn on the camera, or hold a key.
Mimic arcade

Play Neon Glider with your face

Feel the latency yourself. The ship follows your head: turn a little left or right to steer, and blink or raise your brows to fire. No camera? A/D steer and Space fires.

Turn your head left / rightSteer
Blink or raise browsFire
Score · best0000 · 0000

Ready

Dodge the neon mines or shoot them. Turn your head to steer, blink to fire.

How it works

Built for instant, expressive play.

Face tracking gives you hundreds of moving points. Mimic gives your game a short list of things the player meant to do.

Calibrated to every face

About two and a half seconds of a resting face sets each player's own baseline. Every threshold is relative to it, so wide eyes, narrow eyes, glasses and laptop webcams all read the same way.

Blink fires below68% of YOUR rest
And it follows your eyes as they relax over a session.

Events, not noisy numbers

Each gesture has a start and an end, stamped at the moment it began, with a strength. A one-frame flicker never fires.

Subscribe to a family:
mimic.on('head.*', (e) => …)
head.left, head.right, head.up, head.down, head.neutral

On the device, always

No video frames, face measurements or calibration profiles leave the phone or the browser. The SDK makes no network calls and has no telemetry.

Network requests from the SDK 0
Nothing to declare in app-store privacy labels.
Idiomatic SDKs

The same gestures on every engine

One gesture engine, one set of thresholds, three platforms.

controller.ts
import { Mimic } from '@vidrip/mimic-web';

// Load the face tracker; the camera opens on start()
const mimic = await Mimic.create({ modelUrl, wasm, preview: video, blendshapes: true });

// Bind verbs to the start and end of each gesture
mimic.on('blink', (e) => { if (e.phase === 'start') fireLaser(); });
mimic.on('smile', (e) => setBoost(e.phase === 'start' ? e.strength : 0));

// Subscribe to a whole family at once
mimic.on('head.*', (e) => steer(e.id, e.phase));

await mimic.start();
await mimic.calibrate(); // about 2.5 s of a resting face

Getting-started guides: Web · React Native · Unity

Every gesture, start and end

Each one carries a strength and a start/end life cycle. The full catalog →

Eyes & brows

  • blink both eyes
  • blink.left wink left
  • blink.right wink right
  • brows.raise surprise

Mouth

  • smile corners up
  • laugh smile + open
  • mouth.open jaw down
  • expression.match copy a face

Gaze

  • eyes.away off screen
  • eyes.left look left
  • eyes.right look right
  • eyes.up look up

Head & face

  • head.left turn left
  • head.right turn right
  • head.up tilt up
  • head.down tilt down
  • head.neutral centred
  • face.lost no face
DEVELOPER BETA

Free during the beta.

Mimic is invite-only for now: game studios, indie developers and accessibility builders. Tell us what you're making and we'll send package access for Web, React Native and Unity. A commercial license comes with 1.0; beta users hear about it first.