BEHAVIOR-1K 2026 challenge, project recap as of Nov 1 HST
The project started as experiments on Comet's pt50 checkpoint and grew into our part of the team's submission, row T3S2 "Comet pt50 + follower", which scores Q 0.0924 (SR 0.018), rank 36 of 56 against 0.683 for the top verified row. Our main contribution was finding the stale step-0 frame in the v3.9.3 evaluator. Most other ideas came out negative or neutral when measured, and the main track has now moved to world action models.
Every number comes from the handoff (docs/HANDOFF_DISTILL.md on the notes branch), the issues and PRs of KantaS12/Behavior1k-Challenge-Tests, or the world model notes. The full write-up with more tables is docs/PROJECT_RECAP.md on the notes branch. All times are HST.
| dates | what happened |
|---|---|
| Sep 30 to Oct 2 | pt50 experiments on sorting_vegetables, covering the step-count grid, warm start, WarmPrior, stage head, 2x speed, prompt probe, fine-tune regression and RFT pipeline. DAgger probe parked. |
| Oct 3 | Clean restart on the group's openpi-comet-b1k and sim v3.9.3. Earlier work archived (PR 44). Assignment is SnapFlow distillation. |
| Oct 3 to 5 | v3.9.3 eval stack on KOA in the Isaac Sim 5.1.0 container, policy-server Docker image, pt50 trash scores shown to be noise. |
| Oct 5 to 8 | Practice run of pt50 on all 100 tasks. Original 50 at Q 0.151, three easy tasks at exactly 0. |
| Oct 8 to 12 | Stale step-0 frame found (issue 49), warm-up fix, 1,000-rollout warm-up rerun, radio before and after A/B. |
| Oct 13 to 16 | Step planner and follower tests, follower image pushed, 99-task dataset. Team submits on Oct 16. |
| Oct 19 | SnapFlow sim result negative. World model survey. Failure watcher v1 mostly negative. |
| Oct 22 to 30 | Recovery data collection with a scripted recoverer, versions v2 to v5c, then cuRobo rounds v6 to v6n. Frozen held-out set from Oct 25. |
| Oct 28 to Nov 1 | MolmoAct2 setup, WAM comparison, leaderboard scores public, Flex-pi smoke, LoRA pilot and offline check. Main track moves to WAMs on Oct 31. |
| approach | metric | result | baseline | verdict |
|---|---|---|---|---|
| WarmPrior (#4) | q at 2 steps, sorting_vegetables, 10 episodes | 0.215 | cold 0.146, pt50 at 10 steps 0.492 | few-step gain, but every fine-tune lost to pt50 |
| Fine-tunes from pt50 (#32) | q at 10 steps | 0.285 | pt50 0.492 | regression from a 10x learning rate |
| 2x action speed (#25) | q over 10 tasks (group run) | 0.395 | 1x 0.252 | adopted as the default |
| SnapFlow student (#27) | paired Q, 3 tasks, 20 pairs | 2 steps 0.142 | pt50 10 steps 0.292 | negative, no speed gain |
| Warm-up for the stale frame (#53) | original-50 Q, 500 rollouts | 0.1546 | 0.1515 | radio 0 to 3 successes, overall neutral |
| Evaluator fix on radio (#49) | success over 50 pairs | 16 of 50, 0 stale | stock 12 of 50, 28 stale | stale and driving p < 0.001, success p 0.42 |
| Planner plus follower hybrid | total Q on 5 tasks | 1.0 over 44 rollouts | pt50 9.33 over 50 | did not ship |
| Submission T3S2 | challenge Q | 0.0924 | top verified 0.683 | rank 36 of 56 |
| Failure watcher v1 (#72) | AUROC at 25% of the step budget | 0.94 | task plus elapsed time 0.90 | CI includes zero |
| Recoverer, best cuRobo round (#74) | clean recordings on held-out tasks | 4 of 10 | 2 of 10 before cuRobo | cuRobo helped, dev tuning did not transfer |
| Flex-pi pilot5 (#118) | arms MAE on train demos | 0.031 rad | hold still 0.022 rad | worse than holding still, retrain pilot6 queued |
| MolmoAct2 (#111) | none yet | - | - | smoke test pending for an H200 |
Before the group's 2026 stack existed, we ran pt50 on sorting_vegetables to learn what limits it. One flow step collapses (q 0.017 against 0.492 at 10 steps). WarmPrior keeps q at 1 to 2 steps (0.123 against 0.038 at 1 step, p 0.03), but every model we fine-tuned from pt50 scored about half of pt50. The audit traced that to our learning rate, 2.5e-5, ten times Comet's SFT rate, after a zero-step round trip proved the pipeline itself bit-identical. A prompt probe showed pt50 barely uses its prompt (subtask text raises action error by 19%, nonsense by 18%). The stage head, RFT pipeline and 100-task fine-tune were built but never run at scale before the Oct 3 restart.
In the v3.9.3 batched evaluator the first observation is often a stale spawn render, the same in every env. pt50 then closes its left gripper on nothing and never drives, which explained why turning_on_radio scored 0. Replaying the stale request closed the gripper in 32 of 32 chunks and the fresh one in 0 of 32. Stale batches were 0 of 20 with 1 env and 5 of 6 with 4, because each extra env adds 3 cameras and pushes the first fresh frame past the reset's 4 render updates. Details and videos are on the radio stale frame page.
| run | rollouts | mean Q | successes |
|---|---|---|---|
| baseline, original 50 | 500 | 0.1515 | 22 |
| warm-up, original 50 | 500 | 0.1546 | 18 |
| paired difference (CI -0.022 to +0.029) | 500 | +0.003 | - |
| warm-up, new 50 | 500 | 0.0194 | 0 |
| warm-up, all 100 | 1,000 | 0.087 | 18 |
SnapFlow self-distills pt50's flow sampler to one step. The 30k-step student halves pt50's 1-step error offline (0.00144 against 0.00278 MSE to the 10-step teacher), but in sim the 1-step student loses 0.233 Q against pt50 at 10 steps (CI -0.408 to -0.058) and every arm spends about 2.7 s per request, since the VLM prefix dominates. See the SnapFlow sim page.
| part | policy | mean Q | successes |
|---|---|---|---|
| original 50 | pt50 with warm-up | 0.1546 | 18 |
| new 49 | armB follower | 0.0308 | 0 |
| all 99 | pt50 and armB | 0.0934 | 18 |
| challenge score, stacking_wood as 0 | pt50 and armB | 0.0924 | - |
A timer planner with the team's follower scored a total Q of 1.0 on 5 tasks against 9.33 for pt50, and the team's own run with a privileged phase detector got Q 0.017 against pt50's 0.019 on the new 50. Even perfect step switching does not help, so the follower finishing steps is the limit. See planner against pt50 and the 99-task submission.
After the deadline the goal became better training data. A scripted recoverer with privileged sim state restores the state where pt50 stalled, finishes the next phase and records it. A round counts clean recordings, which pass the phase detector and the harm gate, on development cases and on a frozen set of 10 held-out cases from 8 tasks never run or diagnosed. Replays are on the recovery replays page.
| round | main change | dev | held-out |
|---|---|---|---|
| v5 (Oct 26) | v4 plus overfitting audit fixes | 3 of 16 | 1 of 10 |
| v5b (Oct 26) | original grab, tight grasp off | 5 of 22 | 2 of 10 |
| v5c (Oct 26) | replan wall cap | 0 of 4 | 2 of 10 |
| v6 (Oct 28) | cuRobo as base and stance layer | 1 of 5 | 3 of 10 |
| v6b (Oct 28) | search legs on cuRobo | 1 of 5 | 3 of 10 |
| v6c (Oct 29) | torso-up posture retry | 2 of 5 | 4 of 10 |
| v6j (Oct 30) | hands lifted out of baskets | 4 of 5 | 4 of 10 |
| v6n (Oct 30) | push rise, flat picks, wider stances | 1 of 5 | 4 of 10 |
cuRobo was the only change that moved the held-out yield. The dev fixes that lifted dev from 2 to 4 of 5 did not transfer, and the v6n drop came from run-to-run variance in IK stances, not a code bug. The recoverer is now a part-time data source.
Three of the top four verified leaderboard rows use a world action model, which starts from a video model and predicts video and actions together. Flex-pi was picked as the best fit in the WAM comparison. Its LoRA pilot (5 tasks, 8,000 updates, 10.6 L40 GPU-hours) learned the grippers but not the arms.
| action group | Flex-pi step 8000 | hold still | repeat last |
|---|---|---|---|
| arms (rad) | 0.031 | 0.022 | 0.019 |
| torso (rad) | 0.020 | 0.008 | - |
| base (m/s) | 0.035 | 0.046 | 0.027 |
The diagnosis on Nov 1 found no time or delta bug. The predicted arm displacement correlates only 0.04 with the demo, because q01 and q99 action normalization squeezed arm deltas to a std of 0.09 in [-1, 1]. The config now uses z-score actions, and the retrain, pilot6 (job 15295531, about 10.5 L40 GPU-hours), was submitted on Nov 1 with a Slurm start estimate of about 8:30 PM HST Nov 2. MolmoAct2 has its data converted (10,000 episodes, 119 million frames), and its smoke test, job 15293671, waits for an H200 with a Slurm estimate of about 1:25 PM HST Nov 5.
| team | method label | Q | SR | verified |
|---|---|---|---|---|
| The North Star | Hiearchical Physical RSI | 0.683 | 0.482 | yes |
| IF1001 | VLA WAM | 0.615 | 0.412 | yes |
| Cyber | WAM | 0.596 | 0.396 | yes |
| asteroid | Agent WAM | 0.514 | - | self-reported |
| Anyverse | A2MEAS | 0.498 | - | yes |
| Autolab | A2WLA | 0.495 | - | yes |
| T3S2 (ours, rank 36 of 56) | Comet pt50 + follower | 0.0924 | 0.018 | self-reported |