Inspiration
Our inspiration came from blending expressive character design with accessible robotics and conversational AI. We’ve always been fascinated by how animated characters feel alive despite existing on flat screens, so we asked: what happens when that personality gains physical presence?
We set out to build more than a chatbot in a box. We wanted a desktop companion that could turn toward you, respond in real time, and carry a distinctive voice. It's playful, witty, and just a little sharp around the edges, without overwhelming the user experience.
At its core, the project explores how embodiment changes the way we relate to AI.
What it does
“This Is My Portable Girlfriend” is a compact robotic companion featuring:
- OLED anime-style avatar display with animated expressions
- Motorized base that rotates to face the user
- Real-time AI-powered dialogue system
- Witty personality layer
It can:
- Engage in contextual banter
- Turn toward whoever is speaking
- Deliver reminders and commentary
- React with facial expressions that match tone
- Maintain a consistent character voice
How we built it
We structured the system in layered components:
- Hardware
Microcontroller as the sensor controller + Computer as the information processor Servo-based rotation system OLED display for avatar rendering Microphone for speech to text + Speaker for text to speech Camera module for facial recognition
The tracking system continuously estimates user position and rotates the device to maintain engagement, increasing the sense of attentiveness.
- Software/Datapath Sensor input → tracking logic AI interfacer → conversational generation OpenCV Facial detection + Software-based servo position tracking → Head turns to face user
Challenges we ran into
Sending image data through the serial protocol Unless you get it right the first time, bugs caused by errors in the serial data transfer can manifest in seemingly unrelated and random ways. In our case, we were seeing artifacts that were caused by errors like frame buffer overflows, baud rates that were too low, baud rates that were too high and bad header/footer designations.
Fitting all the sensors on to one microcontroller Some of sensors are already demanding on their own when it comes to data collection, so implementing multiple on one microcontroller resulted in massive slowdowns. Dealing with this issue involved coming up with more efficient ways to process and send the data, reducing the overhead of each individual sensor.
Accomplishments that we're proud of
- Indirect I/O interfacing between online LLMs and hardware using text-to-speech and speech-to-text.
- Custom data transfer methods that were efficient for our use cases.
- 2-axis face tracking system that made the project feel much more immersive.
What we learned
Choose your baud rate wisely When dealing with multiple devices that are all using the serial port to transfer information, a balance must be struck between speed and instability which limits how high the baud rate can actually be. This project forced us to undertake risk management by weighing the pros and cons of increase or decreasing the baud rate.
Integration complexity is the product of sub-component complexity While getting all the individual sensors to work came with some minor problems, integrating them together took much longer than expected. When integration bugs arose, the amount of possible was much higher than with individual sections, which made debugging difficult.
What's next for This Is My Portable Girlfriend
Replace the computer with more microcontrollers By moving the OpenCV and LLM processes to dedicated microcontrollers, the full logic would be able to exist inside the robot, helping us reach our goal of an immersive product.
Companion app + more settings Since This Is My Portable Girlfriend currently has limited customization, a companion app would easily allow the user to have fun messing with the robot's personality. A customized robot aligns much more with our central goal of immersion.
Log in or sign up for Devpost to join the conversation.