Asimov is a Python package and interactive real-time vision system that can also be run as a standalone program.
It processes camera input via OpenCV, recognizes hand gestures using cvzone (which wraps MediaPipe), and provides configurable
visual effects and “glitches.” In main_virtualcam.py, cvzone is also used for face detection to implement a
“privacy eyes” overlay. Asimov includes utility functions for distance checks, logging, and safe path computation,
making it suitable for building interactive applications or demos.
Usage modes: Asimov can either be imported as a Python package in your own scripts, or run directly using
python -m asimov, which will execute a pluggable main loop such as main_virtualcam.py.
This allows you to quickly launch demos with gesture recognition, glitch effects, and virtual camera output.
Virtual camera support: Compatible with OBS (tested) and Zoom (tested). meet.jit.si (Jitsi) does not currently work (black preview), and Discord shows the virtual camera in the dropdown but displays a black frame.
Legacy demos: GTK-based demos exist but are no longer actively maintained. OpenGL-based demos exist but are not used in production.
VideoCapturemain_virtualcam.pygestures.py)gestures.py to detect pinch and spread gestures, triggering visual effects or interactive responsesasimov.common:
logentry() – logging events and actionssafe_distance() – distance checks for interactive safetyget_safe_path() – computing paths that avoid collisions or restricted zonesmain_virtualcam.py) for demos and glitch effectspyvirtualcam, compatible with OBS (tested) and Zoom (tested); meet.jit.si (Jitsi) does not work (black preview); Discord shows the virtual camera in the dropdown but displays a black frameAsimov depends on the following Python packages:
And the following system packages should be installed via dnf on Fedora:
ffmpeg — for video encoding and decoding (optional).gstreamer1-plugins-base — base GStreamer plugins (optional).gstreamer1-plugins-good — additional “good” GStreamer plugins (optional).mesa-libGL — OpenGL library for rendering.qt5-qtbase — Qt5 base libraries for GUI support.opencv — OpenCV system libraries.Please make sure all Python and required system dependencies are installed before running Asimov.