CALVIN Evaluation#
CALVIN is a long-horizon Franka language-conditioned manipulation benchmark: each sequence chains five subtasks. The LoongForge eval module uses the original-format CALVIN validation dataset for official online long-horizon rollout.
Current status: connectivity checks only. The main blocker is the benchmark dataset — the official online rollout needs the original-format CALVIN validation assets (validation/ tree, see Step 1). On top of that, no CALVIN-domain weights are released for pi05 (xvla’s CALVIN weights are public: 2toINF/X-VLA-Calvin-ABC_D). Shipped configs run with server.random_init: true, not scores.
Step 0: Download weights#
Model |
Weights |
|---|---|
pi05 |
none released (connectivity only) |
xvla |
2toINF/X-VLA-Calvin-ABC_D (open-source, connectivity only) |
Step 1: Environment setup#
Standard environment#
Install CALVIN following the official CALVIN repository instructions, then install the additional dependencies:
pip install websockets msgpack pyyaml
The evaluation needs the original-format CALVIN validation assets, not just a LeRobot-format dataset:
validation/tree containingvalidation/.hydra/merged_config.yaml,calvin_models/conf, andeval_sequences.jsonLeRobot-format CALVIN datasets are useful for training/statistics but are not sufficient by themselves for the official online rollout
⚠️ Common issue: CALVIN uses MuJoCo; keep MUJOCO_GL / PYOPENGL_PLATFORM settings from the shipped configs.
Step 2: Run evaluation#
Run from inside the benchmark environment. The run scripts and eval YAMLs ship with /path/to/... placeholders — fill them in before running:
cd /path/to/LoongForge-VLA
examples/embodied/pi05/eval/run_calvin_eval.sh # pi05 (connectivity only)
examples/embodied/xvla/eval/run_calvin_eval.sh # xvla (connectivity only)
Environment variables: CONFIG, BENCHMARK_PYTHON (CALVIN env interpreter), CUDA_VISIBLE_DEVICES.
Key config fields (see examples/embodied/<model>/eval/configs/calvin/smoke.yaml):
benchmark.dataset_path— path to a tree containingvalidation/server.random_init—truein shipped configs (connectivity check). With CALVIN-domain weights setfalse, fillckpt_path/dataset_statistics_path; for xvla setmodel.domain_id: 2
Verification#
Model |
Status |
Notes |
|---|---|---|
pi05 |
connectivity only |
needs CALVIN-domain weights + |
xvla |
connectivity only |
needs X-VLA CALVIN (ABC_D) weights (2toINF/X-VLA-Calvin-ABC_D) |
Connectivity run: 1 sequence, first subtask capped at 30 steps.