Paint a watercolour and move chess pieces with an LLM-driven robot arm

Gharsallah Abderrahmen hooked Claude Opus 5 to a LeRobot SO-101 arm with no training data; it painted a watercolour in 84 strokes over about 31 minutes and has made some camera-verified chess moves.

Done withClaude· Oct 16, 2026

What they did

Gharsallah Abderrahmen connected Claude Opus 5 straight to a six-servo LeRobot SO-101 arm instead of recording demonstrations and training a policy. A Python bridge owns the motors and runs a 30 Hz loop; the model sends goals such as joint targets, paths or actions like paint and chess_move, and reads back joint angles, motor load, tool-tip height and guard events. An overhead camera and a wrist camera feed OpenCV, which turns frames into facts like board position and square occupancy. The bridge enforces joint limits, a 12 degree per-command cap, a floor guard fitted to the table, stall detection, a half-strength gripper and a STOP button. For painting, the author taught it the paper corners, each paint pan and the water cup. For chess, Stockfish picks the moves and python-chess checks them, and the model only does the physical pick and place.

How it went

The arm painted a landscape in 84 strokes with 4 colour changes in about 31 minutes and signed it Claude. Early runs muddied colours and pressed the brush into the table because the arm sags 1.5 to 2 cm under load, which was fixed with a height map, more water dips and rules about spacing. Chess is not finished: it has made real moves including a camera-verified 2.Nc3, reaches all 64 squares but can grasp on only 60, and has 1 to 2 cm of error. A step mode with a check after each sub-move works but takes several minutes per move.

Worth knowing

The author says most of the work went into guardrails and calibration rather than prompts, and the safety layer was built before the model moved anything. Plastic jaws could not hold pieces until rubber finger cots went over them. Only Opus 5 was tried, and the harness used to connect it is not named beyond the author's own bridge.

Try it

With Claude· 4 parts to fill in

You control a robot arm through [my bridge's API or command format], which enforces joint limits and will refuse unsafe moves. I want you to [task, for example paint the attached picture on the paper]. Use only the named positions I have calibrated: [list of named poses]. Plan the whole job first and show me the plan. Then work in small steps: move above the target, take pictures from [the cameras], and ask me to confirm the position before you lower, grip or touch anything. Stop and wait for me if any guard event fires, a grasp fails twice, or I say stop.

Square brackets are the parts to fill in. The prompt is ours; the story is theirs.

Where they said it

Related