← all repositories
jeeliz/jeelizWeboji

Apple's lawyers killed the fox, long live the raccoon

A browser-based face-tracking library that turns your grimaces into animated 3D emoticons—no server required, GPU mandatory.

1.1k stars JavaScript Computer Vision
jeelizWeboji
Velocity · 7d
+0.4
★ / day
Trend
steady
star history

What it does

JeelizWeboji runs real-time face detection and expression tracking entirely in the browser via WebGL. It captures 11 facial expressions and head rotation on three axes from a webcam feed, then pipes that data into animated avatars built with Three.js or SVG. The neural network and all processing stay client-side.

The interesting bit

The README opens with a genuinely funny legal notice: Apple allegedly threatened IP action over a 3D fox demo in 2019, so the project now features a “cute raccoon” instead. The library also ships with a mesh converter that assembles morph-ready 3D models from separate .OBJ files—useful if you want to build your own expression-driven characters.

Key highlights

  • Detects 11 facial expressions plus 3-axis head rotation
  • Includes helpers for Three.js and SVG animation pipelines
  • Works with bundled module imports or plain script tags
  • Apache Cordova demo for native iOS (with a websocket hack for older versions)
  • Third-party projects include hands-free mouse control, drowsiness detection, and a face-controlled piano

Caveats

  • Requires HTTPS even for local development; HTTP blocks camera access in most browsers
  • GPU performance directly impacts smoothness; underpowered graphics will stutter
  • Beards, glasses, and bad backlighting degrade detection accuracy
  • No official React/Vue/Angular demos included, though community boilerplates exist

Verdict

Worth a look if you’re building web-based avatars, accessibility tools, or novelty camera apps. Skip it if you need server-side processing or guaranteed accuracy across all lighting and hardware conditions.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.