SpatialCasa-GR1 checkpoints (paper Table "main results, GR1")

Fine-tuned policy weights behind the GR1 rows of the SpatialCasa results table. Every checkpoint here was trained on twanghcmut/SpatialCasa-GR1 (12 LeRobot v2.0 datasets gr1_spatial.<Task>, 1,000 demos each; the 4 episodes with undecodable mp4s are dropped -> 11,996 episodes / 3,177,178 frames at 20 Hz; one 256x256 ego_view camera, 29-d joint state/action) and evaluated closed-loop on the 5,700-episode SpatialCasa-GR1 eval set (eval/episodes.jsonl, eval_seen + eval_novel, 720-step horizon, one start state per item).

Code: GitHub Eric-nguyen1402/SpatialLIBERO, branch robocasa-spatial-vla (project doc: docs/SPATIALCASA_GR1.md).

folder model base init what it is
pi05_gr1/ck29999/ Ο€0.5 (openpi JAX, PaliGemma 2B + 300M action expert) RoboCasa365 Ο€0.5 VLM + pi05_base action expert run rc365vlm_b256_4g, step 29,999, EMA weights (bf16)
groot_n17_gr1/ck190000/ GR00T N1.7 3B (Isaac-GR00T) nvidia/GR00T-N1.7-3B run chain n17_all12_bs64_v2 -> n17_rel_long -> long2 -> long3, n17_rel_long3_b192/checkpoint-30000 (= cumulative ck190000)
eval/ - - full 5,700-episode eval summaries (summary.md) of both checkpoints
gam_gr1/, lawam_gr1/ (reserved) - GAM and LaWAM GR1 runs are still training; they will be added here when they enter the table

Results (closed-loop SR %, 5,700 episodes, pooled over eval_seen + eval_novel)

policy seen L1 (easy) L2 (medium single) L3 (hard single) medium (composed) hard (composed) 6-level avg all
Ο€0.5 ck29999 39.6 37.2 29.5 29.8 27.2 12.1 29.2 28.2
GR00T N1.7 ck190000 25.0 16.7 15.9 13.3 13.8 5.2 15.0 14.1
GR00T N1.7 base (0-shot, not uploaded) 0.2 0.0 0.0 0.1 0.2 0.0 0.1 0.1

SR = success (target can on the goal relation, tilt < 15 deg, other objects moved < 2 cm, released, target at rest). Paired on the same 5,700 episodes: Ο€0.5 solves 1,224 episodes GR00T does not, GR00T 415 that Ο€0.5 does not (exact McNemar p = 1.6e-92). Paper split layout (train cells = eval_seen, novel = eval_novel; medium/hard = composed):

policy train seen train easy train medium train hard novel easy novel medium novel hard all
Ο€0.5 ck29999 39.6 37.8 30.2 14.6 36.7 24.3 9.6 28.2
GR00T N1.7 ck190000 25.0 18.0 13.7 4.1 15.4 13.9 6.3 14.1

Full tables (Wilson CIs, SR with lift, failure breakdown, McNemar tests): eval/pi05_ck29999_full_summary.md, eval/groot_n17_ck190000_full_summary.md.

pi05_gr1/ck29999/ β€” Ο€0.5 full fine-tune

  • Format: openpi checkpoint, params/ = orbax OCDBT with all 51 arrays (3.353 B params, EMA 0.999, bf16), no optimizer state; assets/spatialcasa_gr1_all12/norm_stats.json (quantile norm stats of state and delta actions); assets/overlay.json (our loader metadata); _CHECKPOINT_METADATA; rc365vlm_b256_4g_ck29999.md5 (md5 per file).
  • Recipe: config pi05_spatialcasa_gr1_full (robocasa/train/pi05/spatialcasa_pi05.py), full fine-tune, FSDP 4 on 4x A100 80GB, global batch 256, 30,000 steps = 7.68 M samples = 2.42 epochs, AdamW (b1 0.9, b2 0.95), peak LR 5e-5, linear warmup 1k then constant, grad clip 1.0, EMA 0.999, seed 42, 22.6 h.
  • Init: SigLIP + Gemma-2B VLM from RoboCasa365 pi05_pretrain_human300/multitask_learning/75000 (robocasa/robocasa365_checkpoints); action expert / action projections / time MLP from openpi pi05_base (REINIT_REGEX='(^PaliGemma/llm/.*_1/|^action_|^time_mlp)').
  • I/O: one image (ego_view -> base_0_rgb, 224 resize-with-pad), 29-d state discretised into the prompt, prompt = plain task instruction; action chunk 16 x 29: arms + waist (dims 0:17) delta to the current state, 12 hand dims absolute 0/1 grip. The server returns absolute joint targets; the eval plays all 16 before the next query.
  • Load / serve (openpi checkout at 215abfb, unmodified; our config registers at import):
huggingface-cli download doanh25032004/SpatialCasa-GR1-checkpoints --include "pi05_gr1/ck29999/*" --local-dir ./ckpts
cd SpatialLIBERO   # branch robocasa-spatial-vla
MODEL=pi05 VARIANT=full CKPT=$PWD/../ckpts/pi05_gr1/ck29999 PORT=5602 GPU=0 bash robocasa/tools/serve_vla_gr1.sh
# client: robocasa/tools/pi05_gr1_policy.py (Pi05Gr1Policy), wire = robocasa/tools/vla_wire.py (zmq + msgpack)

The loader starts from pi05_base (tree structure only) and overlays all 51 arrays from params/, so you get exactly the fine-tuned model. Programmatic use: robocasa/tools/serve_pi05_gr1.py shows how to build the model + transforms.

groot_n17_gr1/ck190000/ β€” GR00T N1.7 fine-tune

  • Format: Isaac-GR00T N1.7 checkpoint (HF save_pretrained): model-0000{1,2}-of-00002.safetensors (bf16 weights), config.json, embodiment_id.json, processor_config.json, statistics.json (normalisation stats; the fine-tuned tag is robocasa_gr1_tabletop), experiment_cfg/ (training + modality config), trainer_state.json, wandb_config.json. No optimizer state. training_args.bin (pickle) is not uploaded.
  • Embodiment: ROBOCASA_GR1_TABLETOP (slot 10), upstream RoboCasa-GR1 modality config: arms + hands RELATIVE, waist absolute, 8-step action chunk at 20 Hz (model action horizon 40, padded; the eval plays the whole chunk), one ego_view frame (224x224), 29-d state; LLM and vision tower frozen, projector + DiT + VL-LN tuned.
  • Recipe (all 3x A100 DDP except stage 1; batch = global; samples cumulative):
stage run from steps batch LR (schedule) samples
1 n17_all12_bs64_v2 nvidia/GR00T-N1.7-3B 25k 64 1e-4 cosine, warmup 5 % 1.6 M
2 n17_rel_long_b192 stage 1 ck25000 100k 192 1e-4 cosine, warmup 2 % 20.8 M
3 n17_rel_long2_b192 stage 2 ck100000 60k 192 5e-5 cosine, warmup 1k 32.3 M
4 n17_rel_long3_b192 stage 3 ck60000 (= ck160000) 30k 192 1e-5 cosine to 0, warmup 500 38.1 M = 12.0 epochs

Each continuation starts a fresh AdamW (wd 1e-5, grad clip 1.0), bf16, tf32. Cumulative name ck190000 = 100k + 60k + 30k steps of the batch-192 chain (after the 25k batch-64 warm start).

  • Load / serve (Isaac-GR00T N1.7 checkout with its uv .venv):
huggingface-cli download doanh25032004/SpatialCasa-GR1-checkpoints --include "groot_n17_gr1/ck190000/*" --local-dir ./ckpts
MODEL=$PWD/ckpts/groot_n17_gr1/ck190000 PORT=5555 GPU=0 bash robocasa/tools/serve_groot_n17.sh   # BATCHED=1 for many clients
# or directly: python gr00t/eval/run_gr00t_server.py --model-path <dir> --embodiment-tag ROBOCASA_GR1_TABLETOP --use-sim-policy-wrapper
# client: robocasa/tools/gr00t_n17_policy.py

Eval protocol

robocasa/tools/eval_bench.py (harness), eval_worker.sh (one worker per shard), --max-worlds 2, 720 steps at 20 Hz, one start state per item, ids = all 5,700 of eval/episodes.jsonl. Learning-curve checkpoints were selected on CL40 (40 fixed eval episodes) + 47 replayed train scenes; the full 5,700 was run only for the reported checkpoints.

Licenses

These are derivative weights; each folder inherits the license of its base model, plus the dataset terms:

  • groot_n17_gr1/: fine-tuned from nvidia/GR00T-N1.7-3B (which embeds nvidia/Cosmos-Reason2-2B): NVIDIA Open Model License. Isaac-GR00T code: Apache-2.0.
  • pi05_gr1/: fine-tuned from openpi pi05_base (Physical Intelligence, openpi weights terms; Apache-2.0 code) and the RoboCasa365 Ο€0.5 checkpoint; the VLM is PaliGemma / Gemma, so the Gemma Terms of Use apply.
  • Dataset: see twanghcmut/SpatialCasa-GR1.

Research use. No warranty. See LICENSE_NOTICE.md.

Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading

Model tree for doanh25032004/SpatialCasa-GR1-checkpoints

Finetuned
(327)
this model

Dataset used to train doanh25032004/SpatialCasa-GR1-checkpoints