Brenpoly masterfully bridges the gap between pop-culture nostalgia and sophisticated embodied AI through seamless hardware-software integration. This project serves as a compelling proof of concept for the practical application of low-latency edge computing in consumer-grade robotics.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
Upgrading BMO + Building the Odradek from Death Stranding | AI Agent Robotic ArmsAdded:
Hey Beimo, let's play a game.
>> On it.
>> Steam. Have fun.
>> For the last few months, I've been building my own thinking and speaking embodied local AI agent based on Beimo from Adventure Time. It's truly been amazing to see how many of you have followed along. The words of support and suggestions for improvements have really pushed this project further than I ever planned. Thank you for visiting the king of oo. Goodbye.
>> And it's especially awesome to see so many of you building your own beimos and contributing back to the project. I'm not super active on social media, but please feel free to share your builds with me in the community tab. I recently came across this project by Momento Fido from Japan.
>> They turned Beimo into a voice controlled photo booth and arcade with a built-in printer.
I love everything about this. Today, I'm going to do things a little differently.
>> Did you ruin it?
>> I'm going to build a couple of your most requested features, but I want to focus more on how you can make changes to the AI agent code yourself. I'm going to move on to a new project in the second half of this video, but this definitely won't be the last you see of Beimo. In the meantime, I'm really looking forward to seeing what you all will make. Again, all the source code is available on GitHub along with the STL and PCB files.
I've also added the custom voice model I trained in my last video to the repo, the script for the microcontroller connected to the buttons, and by popular demand, I've also uploaded all of my 3D models in editable OBJ format.
One of the most frequent asks I've been getting is to make Beimo move, but nothing but the way Beimo moves is really grounded in reality. Adventure Time's character design intentionally breaks the rules of physics while keeping them a model to create a playful and magical tone. There are lots of stretchy, wiggly tubes and not so many hard body mechanics. And even if I wanted to make Beimo's existing arms and legs move, there's really not much room left inside their enclosure. I mean, the only empty space I have left is the spot behind the infinity box.
Okay, so here I have a really simple mechanism made up of a ball bearing wedged into this 3D printed bracket that I can attach to a small hobby servo.
With this setup, I can basically rotate Beimo's arm about 180° and not much else. I could probably power this one servo directly off of the Raspberry I5, but because I'm already using this UPS hat, I'm going to connect the ground and power cables directly to the 5V power source. and only had the data cable connected to the Pi. Like I mentioned before, the Pi 5 is really finicky when it comes to power management. So, I'm not going to take any chances here. Now, another reason I've been avoiding this feature is because I honestly couldn't think of a good reason for Beimo to move their arms. Maybe I could make another tool triggered by the agent or do a little dance if they hear music. But then I remembered one gap in the user flow that I've been meaning to improve.
Right now, Beimo gives verbal feedback for each state transition. But there was a problem when I applied this to the listening state. Beimo would just end up talking over my own voice. So, I ended up removing it. But this made it difficult to know when Beimo was actually listening. The only feedback is a subtle change in the face animation.
So, this might actually be a great place to use the arm movement for feedback instead. And if you want to make your own simple updates to Beimo based on these state changes, you just have to look for these blocks of codes with each state name. Here I'm going to add a small function that moves the servo back and forth. Okay, let's give it a try.
>> Beimo is online.
>> Hey Beimo, tell me a funny story.
>> I know this isn't exactly the fanciest AI agent feature, but I'll always take usefulness over showcasing complexity any day.
>> Let me tell you about this. It involves a very confused squirrel and a giant blueberry. It happened during a meteor shower. The sky was all sparkly purple and orange like a giant candy floss cloud. And of course, there were squirrels everywhere.
>> Remember, use a combo move.
>> Okay, here goes.
>> Another highly requested upgrade has been to find a way to get Beimo to play more games. But since we're running a full Linux-based operating system on the Raspberry Pi 5, there's nothing stopping us from playing browser or desktop based games or even running emulators like you would on any personal computer. But this all feels very disconnected from the Beimo agent itself. So instead, we're going to build a new tool that lets our agent launch games all on its own. And not just some games, but my entire Steam library. I didn't go into details of how these tools work in my last video, but the simplest kind of tool is just a function included right in the agent code. We already have some for searching the web, retrieving the system time, and capturing photos. The only thing that makes these functions special is that they can be called using the output of a language model. And that's what makes it feel like these agents can almost anticipate your needs. The models can understand enough context to map what you're saying to one or more of these functions. To do this, we need to teach the LLM how to use the tool by providing some examples in the system prompt of what output to generate. This is called oneshot prompting. If you've had the chance to poke around in the source code, you'll see the prompts for the existing tools here. Here, I define a new tool for launching games and a JSON schema for the model to use in its own response. Remember, there's nothing magical about LLMs. They're just text guessing machines. The information we provide in the system prompt just helps it narrow down the guesses. In the case of tools, we want the model to guess the text expected by a function rather than just plain English. These small models are kind of bad at guessing. So, I'm also going to include some aliases for function names that these models tend to hallucinate. Identifying these just comes with a lot of trial and error.
Now, for this game launching tool, the function is actually going to launch an entirely separate application while keeping the agent running in the background. If this sounds a little sketchy, you're not wrong, and I really recommend thinking through what you're giving your agent access to before doing anything like this. For my agent, I'll be launching a third party application called Moonlight. It's used to stream Steam games from your PC over your local home network. To get this to work, I'm also going to have to run another application called Sunshine directly on my PC. Okay, let's give it a try. Hey, Beimo, let's play a game.
>> On it.
>> Booting up Steam. Have fun.
>> For this demo, I'm going to have my tool launch Steam in big picture mode, but you can also set this up to launch specific games by name. It's just a little more work.
And there we have it. My local embodied AI agent is finally the video game playing companion we all know and love from Adventure Time.
I feel like I've pushed this project to its limits, but again, I can't wait to see where you all take it next. I'll admit, I wish I could have done more to make the agent feel more embodied. And I really wish I could have found a better use for the AI accelerators I bought. If only there was another friendly post-apocalyptic robot companion with more complex movements that needs to run local computer vision AI models in near real time. Now, Adventure Time is one of my favorite shows.
And Death Stranding is one of my favorite games.
On its surface, Death Stranding is a package delivery simulator. Equipped with a chestmounted psychic fetus and friendly robot arm, your goal is to avoid spooky tarcovered ghosts while rebooting America's internet. But it's also about the weight and consequences of death, the value of life, the overwhelming amount of space taken up by the absence of the people we've lost, and the lengths we have to go to to rebuild bonds in the face of grief. In other words, it's a Hideokima game.
>> Another curious vision. There is so much to love about the art direction and aesthetics of this game, but I've always been fascinated by the shoulder-mounted scanner known as the Audra deck. A fantastic example of diagetic UI. It can be deployed at any point to assess your surrounding terrain, and it's key to avoiding mission mending missteps, but it's also always watching your back, literally springing into action when invisible threat of beach things or BTS are near. At its heart, it's a robotic arm with sensors on its end that can track and respond to human figures. Of course, it's a work of science fiction, but I think we can build out a lot of its functionality using the same core framework as Beimo. We've already got a Raspberry Pi and AI Hat Plus 2 powered by the Halo 10H accelerator. In my last video, I found that these accelerators were especially good at vision related tasks. So, we're going to use a camera and the models that come preloaded with the accelerator for object detection.
And just like in the game, we'll have the Audrec detect and track humanoid figures.
But first, we'll need to build a pretty complex robotic arm assembly. Rather than modeling and building one from scratch, I'm going to modify an existing kit that I know works with the Raspberry Pi. This is the High Wonder XARM. It uses daisy chain serial bus servos and its own control board to power a six off mechanical arm. I'll be honest, this thing was not fun to assemble. It came with a whole bunch of extra parts. The instructions were off. I had to manually reset and recalibrate all the servos using some pretty unintuitive software.
But for what it comes with, it got the job done.
Now, to turn this into the Audra deck, I'm going to need to make some major modifications with custom 3D printed parts. So, I decided to purchase an existing 3D model from Dark Matter Props as a starting point. I was really impressed with the quality of their models, and they were gracious enough to let me use them for this video. But, this was obviously just a starting point for my build. The models gave me a great sense of proportion and helped me figure out what to do with my robotic arm to get its profile closer to the real thing. I started by modifying these little plastic columns that connected the two servo brackets to each other.
The model provided great landmarks to get the length correct and I reverse engineered the columns from scratch in Frecad. I try to support open source software as much as I can. But coming from a background in Blender, I could just not wrap my head around parametric modeling in Frecad, but I eventually figured it out and I made the columns.
Could I do it again if you asked me to?
Probably not. Did I go right back into Blender for the remainder of this project? Absolutely. Extending the length of these columns is going to add more torque than intended on these servos. So, when it came to 3D printing them, I needed a way to maximize strength and minimize weight.
Thankfully, Bamboo Lab helped upgrade my printing setup with their H2C printer.
This is not only going to give me the much bigger build plate that I need for this project, but this also means I can print these columns using different materials like carbon fiber. This was my first time printing in carbon fiber, and I've heard it can be really difficult to work with, but these came out perfect on the first try on the H2C. These carbon fiber columns and brackets will provide the mechanical support for the arm, but obviously it won't look like the Audra deck and Death Stranding. So, I go back into Blender and make some modifications to the 3D models from Dark Matter Props.
I'll split them in half and add some mounting holes so I can attach each of them to the outside of the servo brackets. It means my ADAC arm is going to look a little beefier than the one from the game, but it's a trade-off that's well worth it. These pieces are quite large, but easily fit on the H2C build plate. So, everything came out as complete single pieces. I used a matte black PLA filament from Bamboo Lab that I think matches the futuristic fabrication aesthetic from the game.
The servo brackets are made from aluminum. So, after sanding and cleaning their surfaces, I applied a coat of etching primer. This kind of primer eats into the metal and helps prevent peeling. Then I used a glossy orange spray paint to give the brackets that industrial look.
Now it's time to assemble everything. I didn't make any changes to the base just yet. So, I put that together just like I did before.
To attach the servo brackets to my carbon fiber columns, I first melt in 2.5 mm heat insets. If you plan on trying this yourself, make sure you're in a space with proper ventilation.
Now, as I insert the servos into each bracket, I'm going to use the same screw holes to mount my 3D printed panels onto the side of the arm. I have to be careful that the servo gears are positioned correctly as I do this. I would hate to have to disassemble this all later.
What the heck?
For the camera, I have a couple of options. I could keep it attached directly to the Pi using the standard ribbon cable it comes with, but these can only stretch so far, which means I would need to find a way to mount the Pi with the camera to the end of the arm. I haven't quite settled on how I'm going to approach building the complex head of the Audra deck, but I know I won't have a ton of space to work with, and I know it needs to be as light as possible. So, instead, I'm going to keep the Pi at the base of the Audrect with the XARM control board and use these Ardu Cam HDMI adapters.
This will let me run a single HDMI cable up the arm to the camera, which I can mount at the top. I found a great enclosure for the Pi camera and modified it so I can connect it to my servo with a bracket. This is obviously temporary, but it'll let me test out my setup.
And I think this is a good place to pause and wrap up the video. Next time, I'll build the head of the Audra Deck with its complex array of flapping pedals that light up, and we'll do a bit of a deep dive into the models we're using for object detection and talk about how they compare with the LLM we used for Beimo. Again, thank you so much for the support you've shown me and my very new channel. I can't wait to see what you build next.
>> Well, it's a beautiful picture.
The end.
Related Videos
Beyond Robotics | European Rover Challenge 2026
beyondrobotics
189 views•2026-06-01
Beatbot Sora70: JetPulse Technology and AI obstacle avoidance and navigation!
DroidModderX
26K views•2026-06-02
Tesla FSD 14.3.3 Hits Phoenix Streets - FIRST LOOK
anthonystesla
114 views•2026-05-29
Elon Musk Just Revealed Fremont Line for Optimus Gen 3 Mass Production
TheAINexusOfficial
180 views•2026-05-30
人機一体「零式人機 ver.2」 子ども企画【おもしろ発見!モビリティー】 #乗り物 #automobile #robot #shorts
KyodoNews
1K views•2026-05-28
Reachy Mini: the $300 open source robot you can actually hack — Andres Marafioti, Hugging Face
aiDotEngineer
662 views•2026-05-29
China’s New Luna AI Robot Looks Shockingly Human...
NextGenHumanoids
850 views•2026-05-28
柔軟指×AI画像処理食品の仕分け作業システム!#柔軟指 #ロボット #自動化 #製造業をもっと盛り上げたい
KiQ_Robotics_Corp.
113 views•2026-05-28











