Ο0.5 for the 2026 BEHAVIOR Challenge β team Dexterity
A Ο0.5 vision-language-action policy fine-tuned with openpi (JAX) on the official 2026 BEHAVIOR Challenge demonstrations: 100 long-horizon household tasks with the Galaxea R1 Pro robot in OmniGibson. This is checkpoint step 135,199, the model behind our challenge submission.
Self-evaluation (public test set, official evaluator): overall score 0.339 β 853 rollouts, 154 full successes, 79 of 100 tasks scoring on at least one instance.
- Training code and a step-by-step guide: github.com/VivekChandra1324/behavior-2026-dexterity
- Ready-to-run policy server (this checkpoint, all 100 tasks, one 24 GB GPU):
docker run --gpus all -p 8000:8000 ghcr.io/vivekchandra1324/b1k-pi05-policy:135199 - Rollout videos and results: VivekChandra/b1k2026-rollout-videos
Files
checkpoint/params/ model weights (orbax), 12.4 GB
checkpoint/assets/ normalisation statistics (behavior-1k/2026-challenge-rgb224/norm_stats.json)
checkpoint/_CHECKPOINT_METADATA
serving/serve.env model settings that must match training (source before loading)
serving/gripper_table.json per-task gripper re-open rule used at inference (optional)
LICENSE_GEMMA.txt Gemma Terms of Use (applies to these weights, see below)
Model
- Architecture: Ο0.5 β PaliGemma vision-language backbone + flow-matching action expert, 3.35 B parameters, plus a small auxiliary head predicting the temporal stage of the task (training target only).
- Inputs: three RGB cameras (head, left wrist, right wrist) at 224Γ224 and the robot's proprioceptive state;
no depth. Prompt: the task's snake_case name, e.g.
turning_on_radio(exactly as stored in the dataset). - Output: chunks of 23-dimensional absolute joint targets (base, torso, both arms, both grippers).
Training
Fine-tuned from pi05_base on all 20,000 demonstrations (RGB re-encoded at 224Γ224 without B-frames):
global batch 832 on 8Γ H100, 135,200 steps (112.5 M samples, β0.53 epochs, ~2,400 H100-hours), peak LR 6.4e-5
with warmup-stable-decay, 15 flow-matching samples per example, quantile-normalised state, z-scored actions,
task sampling β frames^0.5, vision tower trained, EMA 0.99. Full configuration and how to reproduce it:
see the GitHub repository (configs/train.env, docs/TRAINING_GUIDE.md).
How to load
Set up openpi with our changes (scripts/setup_openpi.sh in the GitHub repository), download this repository, then:
source serving/serve.env # B1K_STAGE_AUX=1 (the checkpoint contains the stage head), B1K_NORM_STATE=q, B1K_NORM_ACTIONS=z
and point openpi's pi05_b1k policy at checkpoint/ (it contains params/ and the normalisation assets/, with
repo id behavior-1k/2026-challenge-rgb224). The serving settings must match training or the parameter tree and
normalisation will not match. The simplest way to run the policy is the Docker image above.
Limitations
Trained on simulated teleoperation data for one robot (R1 Pro) in OmniGibson; behaviour on other robots, scenes or the real world is untested. About a fifth of the tasks never succeeded in our evaluation, and long tasks often time out with partial progress.
License and use restrictions
Ο0.5's backbone is PaliGemma, a Gemma model; these weights are therefore a Gemma Model Derivative.
Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms.
A copy is included as LICENSE_GEMMA.txt. By using or distributing these weights you agree to those terms,
including the use restrictions in their Section 3.2 and the
Gemma Prohibited Use Policy; anyone you distribute them to must
receive the same terms. The training code is Apache-2.0 (GitHub repository).
Acknowledgements
openpi (Physical Intelligence), the BEHAVIOR fork
wensi-ai/openpi, BEHAVIOR-1K and
the 2026 BEHAVIOR Challenge dataset (Stanford Vision and Learning Lab).