The robot face is the visual personality layer for Elzi — a Jarvis-inspired AI companion.
It’s an animated face built in Python with pygame that reacts to mic input, keyboard toggles, and interactions in real-time.

- Talking Mouth — Semi-circle mouth movement synced with microphone input.
- Live Mic Mode — Toggle mic input on/off.
- Expressions — Switch between emotions like happy, sad, surprised, neutral.
- Eye Tracking — Eyes follow your mouse (toggleable).
- Blinking & Random Gaze for realism.
- Keyboard Shortcuts for easy control.
| Key | Action |
|---|---|
SPACE |
Toggle talking mode |
M |
Toggle mic input on/off |
F |
Toggle mouse follow on/off |
B |
Blink |
H |
Set Happy expression |
S |
Set Sad expression |
N |
Set Neutral expression |
1..7 |
Quick expressions (neutral, happy, sad, angry, surprised, sassy, sleepy) |
ESC / Q |
Quit program |
- Clone this repo (or download the script):
git clone https://github.com/your-username/elzi-face.git cd elzi-face - Create a virtual environment (optinal but recommended)
python -m venv venv source venv/bin/activate # On Mac/Linux venv\Scripts\activate # On Windows
- Install dependencies
pip install pygame sounddevice numpy
- RUN
python elzi_face.py