When everything is running, this little desktop companion watches the room, turns its neck to follow people, listens to speech and answers out loud. In the demo it handled a spoken question about a schedule and confirmed adding a reminder, tilting upward on its servos when acknowledging and settling back down after replying.
The construction is a clever mix of devices. An Android phone acts as the animated face, mounted on a pan-and-tilt bracket moved by two servos. A Pi Pico W drives those servos, receiving angles over serial and applying EMA smoothing to keep the motion clean. A MacBook runs mediapipe and AprilTags on a webcam feed to work out where people are, converts 2D coordinates into angles with two lines of best fit from a calibration script, and also hosts a conversation server built on Silero VAD, whisper-cpp and llama-cpp running gemma4:12b at Q4.
The details that stand out for me: the on-screen pupils track faces and blink, and switch to an open-book icon during data retrieval. People are identified by AprilTags worn on them, matched to the closest face, and the robot never saves or remembers faces, which the maker admits felt kinda creepy. The project is also modular, so the face and eye tracking, the conversation server, or the tracking control program can each run on their own.
As for what is still open, the maker wonders whether 2 degrees of freedom is enough for anthropomorphising or whether a third servo would help, and the wiring is admittedly a mess pending an enclosure. Voice detection also does not yet interrupt the TTS playback.