# Download, inference and evaluation ## Download one checkpoint ```bash pip install -U huggingface_hub hf download SeeYooLeo/CIG-RoboCasa-Kitchen \ --revision 4bdc391cb1dd6df8faa978e55aebf31e40c39da4 \ --include "pi05-cig/*" --local-dir weights ``` Replace `pi05-cig` with `pi05-baseline`, `oft-baseline` or `oft-cig` as needed. Keep the bundled normalization statistics. Download complete folders; OFT also requires its action head, proprioceptive projector and tokenizer files. ## Verify downloaded files without the code release Run from the directory containing `weights/`. The following checks all locally present checkpoint folders and rejects incomplete or modified files within those folders: ```bash python - <<'PY' import hashlib import json from pathlib import Path from huggingface_hub import hf_hub_download manifest_path = hf_hub_download( "SeeYooLeo/CIG-RoboCasa-Kitchen", "weights_manifest.json", revision="4bdc391cb1dd6df8faa978e55aebf31e40c39da4", ) manifest = json.loads(Path(manifest_path).read_text()) selected = {name for name in manifest["models"] if (Path("weights") / name).is_dir()} if not selected: raise RuntimeError("Download a checkpoint under weights/ first.") count = 0 for entry in manifest["files"]: path = Path(entry["path"]) if path.parts[1] not in selected: continue digest = hashlib.sha256() with path.open("rb") as stream: for chunk in iter(lambda: stream.read(16 * 1024 * 1024), b""): digest.update(chunk) if path.stat().st_size != entry["size"] or digest.hexdigest() != entry["sha256"]: raise RuntimeError(f"Checksum mismatch: {path}") count += 1 print(f"Verified {count} files across {len(selected)} checkpoints") PY ``` ## Start a policy server These commands require the companion robocasa-kitchen code release, its installed model environments and the downloaded weights. Set `ROOT` to the absolute path of that release: ```bash export ROOT=/absolute/path/to/robocasa-kitchen ``` For π0.5: ```bash source "$ROOT/.venv-pi05/bin/activate" cd "$ROOT/pi05" JAX_PLATFORMS=cpu CUDA_VISIBLE_DEVICES=0 python scripts/serve.py \ --checkpoint ../weights/pi05-cig --port 8000 ``` For OFT: ```bash source "$ROOT/.venv-oft/bin/activate" cd "$ROOT/oft" CUDA_VISIBLE_DEVICES=0 python serve.py \ --checkpoint ../weights/oft-cig --port 8000 ``` Choose one server per port. Substitute the baseline folder to evaluate the corresponding baseline. OFT LoRA updates are already merged; no additional adapter merge is needed. ## Evaluate robocasa-kitchen Install the pinned robocasa-kitchen v0.1 simulator and its assets using the companion release's installation guide. In another terminal, set the same `ROOT`, then run: ```bash source "$ROOT/.venv-sim/bin/activate" cd "$ROOT" MUJOCO_GL=egl python evaluation/evaluate.py \ --host 127.0.0.1 --port 8000 --task all --trials 50 --seed 42 \ --replan-steps 5 --output results/pi05-cig.json ``` Use an output filename matching the selected checkpoint. A full run contains 1,200 episodes. For a quick connection check, use `--task PnPCounterToCab --trials 1`. The code release's evaluation guide specifies task horizons and held-out splits. Newly measured results can differ from the manuscript-reported table.