RSSAmplifier

Blog

Beam Bots

Resilient Robotics with Elixir - a framework for building fault-tolerant robots with a declarative DSL, OTP supervision, and real-time control

beambots.devRSS feed ↗19 posts

Latest posts

August 2026: One Way In

Last month the robot learned to show its working. This month it learned to take instructions only through the front door. July's big theme is less glamorous than June's and considerably more important: there is now exactly one way for a command to reach an actuator, and there's a guard on it. Three releases of bb , a migration for every servo driver, and a couple of genuine bugs…

July 2026: Show Your Working

Last month the robot learned which way is up. This month it learned to show its working. The thread running through June is the maths . bb 's entire transform and kinematics core moved to Nx defn , which means analytical Jacobians instead of finite-difference guesswork — and both inverse-kinematics solvers immediately cashed in. Meanwhile the balance bot stopped being a stack of parts and…

June 2026: Getting Our Bearings

Last month I called it the calm before the goat. The core had gone quiet, the bots were bumping dependencies, and I was quietly panicking about Sweden. Well, the calm is over. This month the framework learned something genuinely new: it figured out which way is up. bb went from 0.15 to 0.20 — eleven releases — and the thread running through almost all of it is sensing and self-awareness . The…

May 2026: The Calm Before the Goat

It's been a quiet month for the core repos and a loud month for everything around them. Two Goatmire sessions got the green light, the first Nerves Starter Kit boards landed on Gus's desk, and Mauricio kept his foot on the accelerator with bb_tui . I, meanwhile, have been quietly panicking about how much there is to get done before Sweden. Calm before the goat, indeed. Goatmire 2026…

April 2026: Chocolate Eggs and Terminal UIs

New month, new format. Progress updates are moving to a monthly cadence — fortnightly posts were either light or padded, and I'd rather spend the time writing code. Weekly updates served their purpose when everything was new and changing fast. Monthly gives things room to cook. Also I took Easter off, ate my bodyweight in hot cross buns and chocolate, and have very little personal progress to…

Week Fifteen: Ticks and Talks

A fortnight of shipping things that tick and saying things out loud. Code Camp Wellington I spoke at Code Camp Wellington on Saturday, presenting my take on Zach Daniel's Building on Bedrock: Elixir's Fundamental Design Advantage talk (with his blessing), with a brief aside about Beam Bots. If you're in the Wellington area and missed it — sorry, you'll have to wait for next…

Week Thirteen: Other People's Robots

Two quiet weeks from me. Two very not-quiet weeks from other people. This is the best kind of progress update. First Community Driver: bb_ufactory Holden Oullette has built bb_ufactory — a full Beam Bots integration for uFactory xArm cobot arms. This is the first driver built entirely by someone outside the project, and it's not a toy. What's in the box: Joint and Cartesian motion —…

Week Eleven: The Quiet Fortnight

No progress post last week — sometimes the interesting work is the kind that doesn't ship yet. Here's what's been happening across the last fortnight. Beam Bots at Nerves Meetup EU The highlight of the fortnight came from someone else entirely. Gus Workman presented "An early peek at the official Nerves hardware starter kit" at the Nerves Meetup EU on February 11th. The talk…

Week Nine: No Hardware Required

This one's a day late. I'd hoped to ship an exciting SO-101 demo video yesterday, but the universe had other plans. Still, the code is out there and that's what matters. The SO-101 Example Is Live The big news this week: bb_example_so101 is now on GitHub. It's a complete Phoenix application demonstrating the Beam Bots framework with a SO-101 robot arm - the open-source 6-DOF…

Week Eight: New Digs

A quieter week on the code front, but we have news. We've Moved The Nerves community has launched their own Discord server, separate from the Elixir Discord. It's a good move - the embedded Elixir world has grown enough to warrant its own space, and the Nerves folks have always been wonderfully welcoming. Beam Bots is moving with them. If you've been following along on the Elixir…

Week Seven: Jido Enter Stage Left

Some weeks you ship two feature releases and reorganise all the documentation. Other weeks you... don't. This is one of those weeks. But "no releases" doesn't mean "nothing happening." Proposal: bb_jido The most interesting development this week is Proposal 0009: bb_jido - integrating the Jido autonomous agent framework with Beam Bots. If you read the Beyond Behaviour Trees post, you…

Week Six: Balance Bots and Better State Machines

Holiday's over. Back to the day job. But somehow I still managed to ship two feature releases, a bug fix, and sort out the documentation. Not bad for a short week. Also, happy Wellington Anniversary Day to me. Nothing says "public holiday" like writing release notes. Nerves Starter Kit Balance Bot The most exciting news this week isn't a package release - it's a collaboration.…

Week Five: Tasks Get Orchestrated, Roadmaps Get Transparent

Four new repositories in one week. One of them warranted its own blog post. Not bad for the first full work week of the year. Turns out the secret to productivity is being on holiday with nothing to do but tinker with robots. Amazing what happens when nobody expects you to be anywhere. BB Reactor: Task Orchestration Done Properly The headline release this week is bb_reactor , which brings Reactor…

Beyond Behaviour Trees: Task Orchestration the Elixir Way

Robot arms don't just move to positions. They pick things up, put them down, respond to sensor feedback, and recover when something goes wrong. Orchestrating these multi-step sequences is one of the harder problems in robotics software. The standard answer in ROS land is behaviour trees. We went a different direction. What's a Behaviour Tree? If you're already familiar with…

Week Four: Robots Learn to Not Hit Themselves

The headline this week: your robot can now check whether it's about to punch itself in the face. Progress! Development has been slower than I'd hoped - turns out New Year's celebrations and summer holidays here in New Zealand aren't particularly conducive to writing code. Who knew? Still, we've got some solid updates. Real Hardware, Real Motion The WidowX 200 is alive and…

Week Three: No Hardware? No Problem

What do you do when your robot parts are still in transit from China? You build a simulation mode, obviously. Simulation Mode The headline feature this week: robots can now run entirely in software. Pass simulation: :kinematic when starting your robot and the framework swaps in simulated actuators that honour joint velocity limits and publish motion events - but don't require any actual…

Week Two: Tell It Where, Not How

The WidowX-200 that Frank donated? It moves now. Under Elixir control. This is not a drill. The Arm Lives After a week of hacking on Dynamixel protocol support, I can now command the WidowX-200's servos directly from Beam Bots. The bb_servo_robotis package handles the full integration: Actuator control - set joint positions and the arm actually goes there Sensor telemetry - real-time…

Week One: Discord, Robot Arms, and Livebook Widgets

It's been six days since I announced Beam Bots, and things have moved faster than expected. Here's what happened. We Have a Discord Channel The Elixir Discord community has given Beam Bots its own #beam-bots channel. If you want to chat about resilient robotics on the BEAM, ask questions, or just lurk, come say hello . Frank Hunleth Donated a Robot Arm Frank Hunleth , co-creator of…

Announcing Beam Bots: Resilient Robotics on the BEAM

I've been working on something I'm excited to share: Beam Bots , a framework for building resilient robotics applications in Elixir. It's early days - the code hasn't controlled any physical robots yet - but the core is there and I'm looking for feedback and contributors. If you're an Elixir developer who's ever been curious about robotics, read on. Why Not Just…