WetRobo: A Reproducible Robot Kit for Coding Agents in Biological Laboratories
Yuna Oikawa, Kei Endo, Takanori Uzawa, Yunzhe Zhang, Manan Anjaria, Lerrel Pinto, Sherry Yang, Koji Tsuda
cs.AI, cs.RO
2026-09-16
WetRobo ships a Piper arm, lab gear, and AGENTS.md. Codex writes on-site code for lid, cap, and door. Cap lifting is 10/10 in two labs; Lab-X-tuned π0.5 scores 0/10 in Lab Y.
Individual wet labs still feed cells, change media, and open incubators by hand. Factory-scale screening and cloud labs can automate this, but they are expensive, closed, and a poor fit for equipment already on the bench. Two families of "general" robots have shown up instead: dedicated liquid handlers, and vision-language-action (VLA) models that map camera frames and a language command straight into joint motion. VLAs are brittle. Change the camera viewpoint, the object, or the start pose, and a frozen policy can collapse. Real Franka-arm studies already report failures under appearance, position, and object swaps.
WetRobo takes a different bet. Do not retrain a policy for every room. Ship a kit (arm, specified gear, demonstrations, an AGENTS.md skill file) and let a coding agent write programs against the local scene. The experimentalist types a natural-language task. No local teleoperation data collection. No neural-network training on site.
The kit is a joint effort from the University of Tokyo, RIKEN, NYU, and Google DeepMind. Hardware: two 6-DoF AgileX Piper arms (only the right arm is used in the reported runs), head and wrist cameras (iPhones stream RGB-D through Record3D), an EYELA LTI-300 incubator, a 500 mL reagent bottle, and a Petri dish. The git repo ships AGENTS.md plus a "base stack": an arm RPC server, demonstration replay with a Cartesian bias, keep-out zones, and a per-step motion cap. Each task comes with 15 Meta Quest teleop demos. The agent may inspect or replay them; they are not a required training set. For the cap task, the agent never consulted those demos.
The agent is OpenAI Codex CLI on gpt-5.6-sol, reasoning effort medium, approval policy never. It reads images, joint angles, and gripper opening, then writes analysis and execution programs, pulling in external tools as needed. Petri-lid lifting went through four phases: biased demo replay (the bias was hard to estimate), SAM 3 segmentation servo, multi-view RGB-D plus a MuJoCo contact check, and gripper-aperture verification to tell an empty close from a real grasp. The cap task forked by lab. Lab Y used a color threshold on magenta liquid and a white cap, solved a local image Jacobian from Lucas-Kanade optical flow (millimetres of arm motion to pixels of image motion), and judged the grasp from gripper effort. Lab X's NYU gripper has no effort signal, so the agent used a pre-placed AprilTag to refresh a planning scene, MuJoCo collision checks before motion, and opening plus vision to confirm the grasp. For the incubator door in Lab X, a ridge regression on the manufacturer's red label first aligned the jaws; shadows later proved a bad cue for door angle, so the agent switched to OpenCV pose estimation and a RANSAC plane fit.
AGENTS.md requires level jaws around open containers, a pause for image confirmation before contact, locally measured home poses, and no lighting assumptions copied from another lab. Task programs and success checks are left to on-site adaptation, unlike harnesses such as ENPIRE that ask a human to wire reset and verification first.
Three tasks: lift a Petri lid, remove a bottle cap, open an incubator door.
The cap comparison is the headline. π0.5, fine-tuned for 100k steps on 25 Lab X demonstration videos, scored 10/10 in Lab X and 0/10 after transfer to Lab Y. The coding agent completed the task in both rooms; after adaptation, repeated execution was 10/10 in each. Gripper, camera count, bench color, and lighting all differed.
| Method | Lab X | Lab Y |
| π0.5 (fine-tuned in Lab X) | 10/10 | 0/10 |
| WetRobo + Codex | 10/10 | 10/10 |
Read the caption. VLA rates are post-finetune evaluation. Coding-agent rates are repeated runs in the same setting after adaptation already succeeded. Time to the first grasp: 48 min 43 s and 23.0 M tokens in Lab Y; 1 h 02 min and 41.4 M tokens in Lab X. On the successful Lab Y grasp, opening stopped at 0.68 against a command of 0.50, and effort read -1.05 N·m versus -0.1 to -0.2 N·m for an empty close. Three earlier closures missed, jaws above or beside the cap.
The Petri lid succeeded in one reported trial. The incubator door succeeded only in Lab X: 2 h 40 min on the first opening, 3 min 27 s on a repeat in the same setting, with relative depth error against the open reference falling from 1.417 to 0.179. Lab Y aborted before contact because head-camera alignment was unreliable; the door stayed closed.
This is a deployment recipe that skips per-lab VLA finetuning. Ship a kit and a skill file. Let a coding agent write inspectable Python on site. Programs can be read, edited, and reused across tasks. Differences in gripper, cameras, and available force feedback become different code, not weights overfit to one room.
The bill is not free. A single cap trial burns tens of millions of tokens and close to an hour. That saves the experimentalist from collecting demos and training a network, and moves the cost onto the LLM. The paper notes that a fair resource comparison should also count VLA finetuning compute.
The setting that matches this work is short-horizon wet-lab motion in rooms that will not stay identical. Full-length cell-culture workflows are untested.
The authors are blunt. One coding agent, one model. Outcomes come from a single adaptation trial with successive attempts, not from independent repeated adaptations. The coding-agent 10/10 in Fig. 5 is post-adaptation repeatability. Lined up against a frozen VLA transfer, that comparison is two deployment philosophies, not one protocol.
The door failed in Lab Y. The Petri result is lid lifting only; carrying the dish was not tested, and slip was observed after a verified lift. Camera placement and a pre-positioned AprilTag also helped the agent. Token counts cover the agent side only; GPU hours for π0.5 finetuning are not reported.