BiMESA π0
π0 (flow-matching action expert on a PaliGemma-3B backbone, pretrained by Physical Intelligence) finetuned on BiMESA-57 (57 tasks, 6,833 demonstrations; LeRobot v2.1) for the bimanual (two ReverseMountedYam arms) setting of MESA. This is the checkpoint behind the π0 BiMESA results in the MESA paper.
This is an openpi (JAX/orbax) checkpoint; use it with our fork,
pairlab/openpi-mesa, config pi0_bimesa.
Model details
| Base model | π0 (gs://openpi-assets/checkpoints/pi0_base) |
| openpi-mesa config | pi0_bimesa |
| Training data | albertwilcox/bimesa-57-lerobot |
| Training | 50k steps, batch size 128, default openpi optimizer; final checkpoint (step 49999) |
| Cameras | egocentric camera (egocentric) and both wrist cameras (robot0_eye_in_hand, robot1_eye_in_hand), 224x224 RGB |
| Proprioception | 14-D: per arm, 6 joint positions + gripper width, robot0 then robot1 |
| Actions | 14-D absolute joint-position targets (per arm: 6 joints + gripper, robot0 then robot1). The model predicts joint positions relative to the current state (grippers absolute); the policy's output transforms convert them back to absolute targets. |
| Action chunk | 20 steps at 20 Hz; the MESA evaluation server executes the first 5 actions before replanning |
| Language | task instruction |
| Normalization stats | assets/bimesa/norm_stats.json |
Usage
Install openpi-mesa following its README, then download and serve the checkpoint:
uv run huggingface-cli download albertwilcox/bimesa-pi0 --local-dir checkpoints/bimesa-pi0
uv run scripts/serve_policy.py --port 8001 policy:checkpoint \
--policy.config=pi0_bimesa \
--policy.dir=checkpoints/bimesa-pi0
From the MESA repository, run the evaluation server against the same port:
uv run scripts/eval_server_parallel.py \
--port 8001 \
--eval-set-name bimesa-id \
--num-rollouts-per-task 50 \
--controller-type joint_pos \
--robots ReverseMountedYam ReverseMountedYam \
--camera-names egocentric robot0_eye_in_hand robot1_eye_in_hand \
--state-keys robot0_joint_pos robot0_gripper_jaw_width robot1_joint_pos robot1_gripper_jaw_width
Evaluation suites: bimesa-id, bimesa-spatial, bimesa-instance, bimesa-composite, bimesa-object. See the
MESA documentation for details.
Results
Success rates (%) from the MESA paper (Table 2), 50 rollouts per task:
| Suite | Success rate |
|---|---|
| BiMESA-ID | 45.9 |
| BiMESA-Spatial | 49.2 |
| BiMESA-Instance | 23.9 |
| BiMESA-Composite | 18.4 |
| BiMESA-Category | 10.6 |
| Average | 29.6 |
Notes
- The checkpoint contains the model parameters (
params/), the model config (config/), and normalization stats (assets/); optimizer state is not included.
License
Released under the Apache 2.0 license. The model is finetuned from openpi weights that build on PaliGemma; use of the weights may also be subject to the Gemma Terms of Use.
Citation
@inproceedings{
wilcox2026mesa,
title={{MESA}: An Evaluation Framework for Compositional, Semantic, and Spatial Generalization in Robotics},
author={Wilcox, Albert and Chang, Frank and Nguyen, Nhi and Chakraborty, Aishani and Collins, Jeremy A. and Saxena, Vaibhav and Joffe, Benjamin and Karamcheti, Siddharth and Garg, Animesh},
booktitle={10th Annual Conference on Robot Learning},
year={2026},
url={https://openreview.net/forum?id=Br2rXixvyN}
}