Fourteen reactions turn your webcam into the joke
It's Giving watches a webcam feed, recognizes 14 poses or expressions, and places a matching image or animated GIF over your head. The altered frame can stay in a local preview or go to a virtual camera that meeting apps see as an ordinary webcam. The supplied set includes heart hands, side-eye, a gasp, a nose pinch, dancing, and leaving the frame for a spin effect. Swap one file in assets/ to change the visual attached to a pose.
The second script is the one worth trying. It records seven seconds of your neutral face, calculating a mean and standard deviation for 52 MediaPipe blendshape channels. Later readings become deviations from your own baseline instead of fixed values shared by every face. Gesture distances are divided by face width, so moving from 40 cm to roughly 1.5 metres should not change the intended threshold. These are design rules from the README, not accuracy results from our sandbox.
The 978 MB install is only half the setup
The repository runs as two Python files, with no wheel or application installer on the default branch. Python 3.11 or 3.12 is required. A preview needs a working webcam. Sending video into Zoom, Meet, Teams, Discord, or OBS also needs a virtual-camera backend: OBS on macOS or Windows, or v4l2loopback-dkms and a loaded kernel module on Linux. Meeting apps may need to start after the virtual device appears.
Dependency pins are deliberate and brittle. The requirements hold MediaPipe at 0.10.21, NumPy below 2, and both OpenCV packages below 5. The README says newer macOS MediaPipe wheels can abort when a detector opens, while OpenCV 5 wants NumPy 2 and conflicts with the pinned MediaPipe build. This is useful troubleshooting, but it leaves the app on old combinations. Our audit found 2 known vulnerabilities and supplied no severity breakdown.
What happened when we ran it
Our sandbox installed commit 591a363 in 21 seconds with Python 3.12, 3 CPUs, 8 GB of RAM, no secrets, and no elevated privileges. Pip installed 61 packages, and the environment occupied 978 MB. The checkout itself had 24 files, about 1,271 source lines, and used 39.3 MB. Its build step completed in 2 seconds. Pip-audit reported 2 known vulnerabilities.
There was no test script or test target, so the harness skipped tests. The repository also had no CI workflow, Dockerfile, or tests directory. We did not have a webcam or virtual-camera device in this container, so our run says nothing about recognition quality, frame rate, overlay alignment, or compatibility with a meeting client. A successful 2-second build proves packaging mechanics only; it does not prove the live path works.
The code expects you to tune false triggers yourself
Pose rules run in an ordered list, and the first match wins. The README explains that adding a new pose means adding an asset, a name, a decide() branch, and sometimes an arming count. Removing a pose without removing its mapped test key can crash when that key is pressed. A missing asset produces a red placeholder instead of stopping the program, which is a considerate failure mode for experimentation.
The risk is social rather than abstract. An automatic overlay appears to everyone once the virtual camera is selected, and the author explicitly recommends testing with someone forgiving before using it around colleagues. Calibration reduces differences between neutral faces, but it does not establish that 14 gestures are reliably distinct. For a work call, one accidental disgust or crashing-out graphic can matter more than ten correct heart-hand detections.
Five launch-day commits are the whole default-branch history
The repository was created and last pushed on September 8, 2026, with 5 commits on that day and no published releases. GitHub showed 1,017 stars, 3 open issues, and 5 open pull requests on October 1. Pull request 3 proposes turning the scripts into an installable package, while issue 8 asks for a Windows tutorial. Several other pull requests add effects or assets, but none had reached the default branch.
It's Giving is good weekend hack-night material because its personality lives in ordinary image files and a readable threshold block. The documentation teaches more than the packaging does. Use the preview first, recalibrate, and force each of the 14 reactions with its test key before exposing a virtual camera. For regular calls or managed machines, the 978 MB environment, 2 audit findings, absent tests, and one-day code history are enough reason to wait.

