Last time I wrote, my two-foot robot had just thrown a purple ball across my office entirely on his own, and I called it the milestone. I was right, but I had no idea what the sequel would cost. This is the story of the twenty-four hours that followed: the worst night of his life, the smartest day of his life, and two more autonomous throws.
The Night Everything Broke
Success made us greedy. We rebuilt his walk around continuous motion, steering mid-stride like the factory demos, and everything collapsed. He spun in circles chasing phantom locks. He froze in infinite balance loops. He marched at hallucinations with total confidence. One night of failures taught us more than the wins ever did, and the forensics turned up something genuinely unsettling: he had poisoned his own memory. His always-learning visual memory had been studying during the failures, memorizing carpet, chair legs, and his own feet as “purple ball.” Every bad run taught bad memories that caused worse runs. We had built a robot capable of learning himself stupid.
The fix was surgery: prune every memory learned after the last verified success, freeze the clean set of 84 examples, and put a bouncer on the classroom door, only near-perfect, mid-frame, properly-tracked sightings get memorized now. His knowledge base is auditable to the second, and when I asked “how many bad memories got in today?” the database answered exactly: six. Deleted.
The Day He Got Smart
Then we rebuilt him properly, and every piece came from a lesson the logs taught us:
- Laser focus: the moment of finding the ball used to be the moment of losing it, his snap-to-center head move orphaned his own tracker. Now his gaze rides the motion. Find means keep.
- A strategist in his head: he grades his own lock quality in real time and chooses, solid lock cruises fluidly, shaky lock drops to careful verified steps. His call, every segment, journaled.
- Proprioception: every correction is checked against his own gyro. If vision claims something his body disagrees with, he says “that did not look right” and re-verifies instead of marching on a lie.
- A rocking detector: he feels his sway peaks growing, the exact precursor to every backward fall he has ever had, and stops the stride before gravity wins.
- Personal space management: “Too close to grab. Stepping back.” A robot that corrects his own distance instead of shuffling forever at a ball his arms can’t reach.
- The never-quit doctrine: a refused grab no longer ends the mission. He squares up, steps back, and runs the entire finish again. Up to three rounds.
Episode II: The Comeback Throw
Mid-mission, walking in on the ball, he went down, flat on his back. And then the part that still gets me: he got up on his own, re-found the ball, walked back in, corrected his own distance, passed every check with the strongest identity reading he’d ever produced, and threw it. Nobody touched him. Gravity played the villain and lost.
Episode II, the fall, the unassisted recovery, and the throw.
He Found His Voice
Somewhere in all this, his personality hardened from a gimmick into an identity, so we leaned into it and made it official. He introduces every attempt with “I am your AiNex robot”, keeps his own running tally of successful throws, and his post-throw tributes rotate through victory lines he improvises on the spot.
His voice changed too. The robotic play-by-play, “Forward. Stepping left. Forward.”, retired to the log files where it belongs. His mouth now belongs to his local LLM, which improvises fresh material mid-mission about being a tiny robot enslaved to one man’s ambitions. An actual line, generated live, unscripted: “Because ‘science’ is just a fancy word for ‘my patience being tested with a rolling marble.'”
Episode III: Never Quit
The doctrine’s first test came immediately. Round one at the grab gate: declined, he’d docked in too deep and his standards held. The old version would have walked away. The new one announced “Not done. The ball and I have unfinished business,” stepped back, re-ran the whole finish, and passed the gate centered to two ticks. Zero falls, one throw, and the whole lesson of this project in one run: refused once, threw anyway.
Episode III, refusal stops meaning surrender.
Meanwhile, His New Eyes Finished School
Running quietly through all of this: his first custom-trained vision model. We auto-labeled a dataset from his own recordings, his pgvector memory verifying every training example, the student teaching the next student, and trained a YOLO detector overnight on my CPU. Final report card: 93% precision. When the new eyes say “purple ball,” they are almost never wrong, which, after a night spent chasing phantoms, is the difference between resemblance and recognition. Next session they get converted for his Raspberry Pi and swapped in as his primary sight, at ten times his current frame rate.
The Scoreboard
Four fully autonomous throws. One unassisted comeback. One refusal converted into a win. Eighty-four verified memories, zero contaminated. A comedy catalog and a running career ledger. The robot who learns is learning faster than the human who builds him can break him, which, I’m told, is exactly how it’s supposed to go.
All of it still runs entirely in the house: his Raspberry Pi, my Linux box, a local LLM. No cloud, no APIs, no excuses.