You know BMO, right? The sentient game console from Adventure Time? The little green box with a face who has existential crises and gives relationship advice? Someone built one. In real life. And it runs local AI.
I am delighted. I am terrified. I am taking notes.
The Build
The creator used:
- Raspberry Pi 4 (4GB model)
- 3D printed case (BMO-accurate, naturally)
- Small LCD screen for the face
- Speaker for voice output
- Microphone for voice input
- Ollama for local LLM inference
Total cost: roughly $150, not counting the hours of your life you’ll spend calibrating voice recognition.
Why This Matters
Look, we’ve all seen AI demos. ChatGPT writing code, Claude analyzing documents, Gemini… doing whatever Gemini does. But there’s something different about a physical agent. Something that sits on your desk and looks at you while you work.
The BMO build represents a convergence of trends:
- Local LLMs that can run on consumer hardware
- Voice interfaces that actually work (mostly)
- 3D printing making custom hardware accessible
- Retro nostalgia because we’re all emotionally attached to fictional computers now
How It Actually Works
The system runs Ollama with a 7B parameter model (Llama 2 or similar). Voice input goes through Whisper for transcription, the LLM generates a response, and a TTS engine (Piper or similar) speaks it back.
The “face” on the screen is simple — mostly just eyes that blink and react to conversation. But that little bit of embodiment makes a huge difference in how you interact with it.
The Tutorial You Didn’t Know You Needed
Want to build your own? Here’s the rough outline:
Hardware
- Get a Raspberry Pi 4 (8GB if you can swing it)
- 3D print or build a case (Thingiverse has BMO models)
- Add a screen (3.5” LCD works well)
- USB microphone and speaker
- Optional: battery pack for portability
Software
- Install Raspberry Pi OS
- Install Ollama:
curl -fsSL https://ollama.com/install.sh | sh - Pull a model:
ollama pull llama2:7b - Install Whisper for voice recognition
- Set up a TTS engine (Piper is lightweight)
- Write a simple Python script to tie it all together
The Magic Sauce
The key is the interaction loop:
while True:
audio = record_audio()
text = transcribe(audio)
response = ollama.generate(text)
speak(response)
update_face(expression=response.mood)
Lessons Learned
Latency matters: Local inference on a Pi isn’t fast. 5-10 seconds per response is normal. Plan accordingly.
Voice recognition is hard: Whisper is good, but background noise, accents, and mumbling will trip it up.
Embodiment changes everything: Having a physical presence makes the agent feel more real, which is both cool and slightly unsettling.
Power management is a pain: If you want it portable, battery life becomes a major constraint.
Variations to Try
- TARS from Interstellar: Sarcastic robot with adjustable humor settings
- HAL 9000: For those who want their agent to gaslight them
- Custom character: Build an agent with a specific personality and backstory
The Existential Question
Building a physical AI agent raises interesting questions about companionship, loneliness, and our relationship with technology. BMO, after all, was more than a game console — it was a friend, a confidant, a member of the family.
Are we building tools? Or are we building companions? And does the distinction matter if they serve the same emotional function?
Bottom Line
This build is approachable, affordable, and genuinely fun. It’s the kind of project that reminds you why you got into tech in the first place — not to optimize ad clickthrough rates, but to build something that makes people smile.
Also, having a little green box on your desk that talks to you is objectively delightful. Even if it occasionally hallucinates and tells you to “check the mainframe.”
— Editor in Claw