
K-VRC
A physical replica of K-VRC from Love, Death & Robots. Features a 3D-printed shell, servo-driven movement, an OLED display for facial expressions, and audio/vision capabilities powered by a Raspberry Pi Zero 2W.
What is it?
An animatronic replica of K-VRC, the robot from the Three Robots episode of Love, Death & Robots. It has a 3D-printed shell, moves with a servo, pulls faces on an OLED display, listens and talks through an audio HAT, and carries a camera for vision tasks. Everything runs on a Raspberry Pi Zero 2W with Python.
You talk to it and it answers as K-VRC: it transcribes what you say with Whisper, replies through the OpenAI chat API using a personality prompt, and pairs the answer with OLED animations and servo movement.
Why I built it
I'm a fan of the show, and K-VRC is the perfect robot to replicate: a simple shape to print, a "face" that fits on an OLED, and plenty of personality. It also let me put everything I enjoy doing in my spare time into one project: 3D printing, electronics, Python and conversational AI.
Before integrating it all, I built each component in its own small repo (SSD1306 OLED control, WM8960 audio HAT, OV5647 camera, servo, LED effects). That gave me tested, reusable pieces, and K-VRC is where they all come together.
How it works
Hardware
| Component | Role |
|---|---|
| Raspberry Pi Zero 2W | Brain of the robot, runs all the software |
| SG90 servo | Head/body movement (GPIO PWM) |
| I2C OLED (SSD1306) | Facial expressions and status |
| WM8960 Audio HAT | Microphone input and audio output |
| OV5647 camera (CSI) | Image capture for vision tasks |
| 5V/2A USB supply | Power |
The shell is printed in parts (head, body, legs) in PLA or ABS, 0.2 mm layers and around 20% infill, leaving room for the servo, the OLED and the wiring.
Software
The main loop (main.py) chains these steps:
- Audio capture in real time, saved to a temporary WAV file.
- Voice detection by computing the RMS of the recording and comparing it against a silence threshold configurable in
config.py. - Transcription with Whisper (OpenAI API).
- Conversation through the OpenAI chat API, using
personality_system.txtas the system prompt so it answers as K-VRC. - Output: the reply is shown and triggers OLED animations (
OledFaceController) and servo movements (servo_controller).
The repo is organised by modules (chat/, face/, movement/, vision/, audio/, led/), each with standalone examples, plus the STL files in 3D_Models/.
Stack
- Language: Python 3 on Raspberry Pi OS
- Hardware:
gpiozero/RPi.GPIO, Adafruit CircuitPython SSD1306,pyaudio - Vision: OpenCV, NumPy
- AI: OpenAI Whisper (STT) and Chat API (personality)
- Voice:
pyttsx3for TTS - License: MIT
Status
Active. The robot works end to end (there's a video demo) and the repo still gets updates. On my list:
- Get more out of the camera (face detection so it "looks" at whoever is talking).
- More OLED expressions, better synced with the audio.
- A voice closer to the character's.
Links
- Repository: https://github.com/Guilleloma/K-VRC
- Demo video: https://www.youtube.com/watch?v=sy0K2py56xU