Cornucopia Bio ships lab automation policies in hours, not weeks
A joint case study from Cornucopia Bio and Kite: automating lab tray pick-and-place with an open-source robot arm.
Mickey Makhija
Founder, Cornucopia Bio
Raul Romero
Co-founder, Kite ML
Aug 10, 2026 · 4 min read
Cornucopia is building infrastructure for self-driving labs, making it possible to run experiments remotely and autonomously. This is the story of how our two teams, Cornucopia and Kite, worked together to close one piece of that: the physical handling of plates and labware.
Cornucopia was founded in 2025. The team is small and the surface area is large: orchestrating workflows, integrating instruments, and getting experiments to run without a person in the loop. Every hour spent building robotics plumbing is an hour not spent on the science. So rather than build the manipulation stack from scratch, the two teams built it together, open source.
The last mile of lab work is still human hands
The software side of the lab has been automated for years. The physical side has not, and the usual answer does not fit.
Traditional automation works well when workflows are standardized, throughput is high, and a dedicated automation cell can be justified. Many everyday handling tasks do not meet those conditions. Small changes in labware geometry, pose, workspace layout, lighting, camera calibration, or grasp tolerances can quietly break a brittle scripted solution.
Learning-based manipulation moves that burden somewhere more tractable: data collection, model selection, evaluation, and deployment. So the problem was never just picking a robot arm. It was building a repeatable system that links task definition, multimodal demonstrations, policy training, and hardware validation, and that makes failure modes observable rather than hidden. That system is what the two teams set out to build.
What we built together
A single SO-101 follower arm with a custom parallel-jaw gripper performs a tray pick-and-place: it grasps an object from the workspace and sets it into a slot in a tray. Two cameras give the policy the visual context it needs, a top-down view of the whole workspace and a gripper-mounted view for fine alignment.
The full pipeline is capture, train, deploy, test, and all of it ran through Kite. Demonstrations were collected by teleoperating the arm: an operator moves a leader arm, the follower mirrors it, and both camera streams plus the joint states are recorded in sync.
Four things that got faster
The gripper went from failing on plates to picking them reliably. Off-the-shelf jaws would not hold a liquid-handling plate. The rim is thin, the mass is off-center, and a bad grasp is a spilled experiment. Cornucopia iterated on a custom parallel-jaw design against real grasp data instead of guessing at dimensions. The printable design lives in the repo as 3MF and STL files.
Lighting robustness came from augmentation, not reshoots. Lab lighting is never consistent. Benches have overhead fluorescents, task lamps, and window light that shifts across the day. The naive fix is to recollect demonstrations under every condition. Cornucopia used Kite's data augmentation to synthesize lighting variation across the dataset they already had, which saved at least a week of collection and labeling.
Training dropped from weeks to hours. Kite handles dataset import, training across policy architectures, and deployment back to the physical robot. Cornucopia went from a captured dataset to a policy running on hardware in hours. The old version of this was a multi-week loop of environment setup, dependency wrangling, and manual checkpoint management.
Training six policies beat betting on one. We trained six imitation-learning policies on the same dataset: ACT, Diffusion Policy, SmolVLA, π0, π0-FAST, and π0.5. Same data, same task, same hardware, an honest side-by-side. A team that commits to a single architecture up front, which is the normal constraint when each run costs a week, has a coin flip's chance of picking the one that works. For deployment we shipped ACT: it was the most compute-efficient of the six, with the fastest inference on the arm's modest onboard hardware, and it ran the task reliably while several of the heavier policies struggled. The deployed checkpoint is open on Hugging Face for anyone to run.
Everything is open
All hardware, data, and models are released under Apache 2.0, built on SO-ARM100 / SO-101, LeRobot, and norma-core.
- Dataset: kiteml/so101-v3-tray-pick-place
- Policies: ACT · Diffusion Policy · SmolVLA · π0 · π0-FAST · π0.5
- Gripper design: hardware/gripper/
Why this matters
Cost. Automation shifts from a $200k capital decision to an iterative experiment. Scientists can teach a robot by demonstration instead of contracting a fixed cell and waiting months for it.
Throughput. Removing the human-hands constraint opens the door to round-the-clock operation, more replicates, and runs that reproduce the same way in any lab.
Accessibility. Because the design and the models are open, lab automation stops being a budget question. Any lab can reproduce this setup and build on it.
Wet labs are held back by manual labor, not by science. Automating the repetitive handling makes high-volume replicates affordable and keeps results consistent across runs and across labs. We are removing the integration cost that has quietly been the real bottleneck to scientific progress.
Next up: training policies on industrial metal arms, and widening the range of objects the arm can handle.