--- license: mit --- # ManiLadder PI0.5 LoRA models ## single_task One PI0.5 LoRA checkpoint per ManiLadder task (110 tasks), each finetuned on 20 demos. Checkpoints are selected by the highest **50-episode** success rate; ties use the earliest step. - The 60 previously published tasks use fixed evaluation seeds 1000–1049. - The 22 completed retraining runs published through 2026-10-30 use seeds 800000–800049. All reached 40,000 training steps. 15 have all eight 5k–40k evaluations; 7 have seven evaluations because one intermediate checkpoint was not retained. Their selected weights are the best among the available evaluated checkpoints. - The 3 fresh-data runs in `pi05_newdata_3tasks_20261028` use pinned dataset revision `d120457e637b01679fbb40fd4de1d2394f0d55c9`, 20 demos per task, 40,000 training steps, and all eight 5k–40k eval50 checkpoints with seeds 800000–800049. **All three scored 0/50 at every checkpoint**; step 5,000 is the earliest tied checkpoint. See [their manifest](single_task/pi05_newdata_3tasks_20261028_manifest.json). - BagHanging-v1 and BagDropIn-v1 (campaign `pi05_bagtasks_20261106`, added 2026-11-08) were trained on 20 demos regenerated with the updated task code (now in `Linslab/ManiLadder_Dataset` `raw/`), 40,000 training steps, and all eight 5k–40k eval50 checkpoints with seeds 1000–1049. See [their manifest](single_task/pi05_bagtasks_20261106_manifest.json). - The 23 tasks from the HF-data retraining campaign `pi05_hf21_20261025` (added 2026-10-29; raw demos freshly downloaded from Linslab/ManiLadder_Dataset) use seeds 1000–1049. All reached 40,000 training steps and have all eight 5k–40k evaluations. See [its manifest](single_task/pi05_hf21_20261025_manifest.json). See [retraining provenance and missing steps](single_task/pi05_retrain_eval50_20261022_manifest.json). These scores use different seed sets across the two groups and are not a controlled comparison. Each `single_task//` folder contains: - `lora_step_XXXXXXX.npz` — LoRA + trainable weights - `norm_stats.json` — normalization statistics used in training - `eval_result.json` — 50-episode evaluation of this checkpoint `single_task/results.csv` lists the selected checkpoint per task; `single_task/all_checkpoints_eval.csv` has the 50-episode result of every evaluated checkpoint (870 total). Evaluation: `exec_steps=16`, `sample_steps=10`. Tasks whose checkpoints all scored 0/50 are still included; for them the step choice is arbitrary. | task | level | step | success (50 ep) | |---|---|---|---| | DrapeCloth-v1 | 1 | 10000 | 1.00 | | DualArmButtonPress-v1 | 1 | 5000 | 0.98 | | DualArmCoverCloth-v1 | 1 | 15000 | 0.80 | | DualArmDoubleDoorBox-v1 | 1 | 20000 | 0.82 | | DualArmFoldHandKerchief-v1 | 1 | 5000 | 0.74 | | DualArmHammerHandover-v1 | 1 | 25000 | 0.74 | | DualArmLiftSoftDex-v1 | 1 | 25000 | 1.00 | | DualArmOpenPen-v1 | 1 | 35000 | 0.36 | | DualArmOpenScissor-v1 | 1 | 15000 | 0.86 | | DualArmPouringWater-v1 | 1 | 35000 | 0.68 | | DualArmPressButton-v1 | 1 | 15000 | 0.80 | | DualArmPushBox-v1 | 1 | 30000 | 0.78 | | DualArmRopeCylinderWarpping-v1 | 1 | 10000 | 0.62 | | DualArmRopeStretch-v1 | 1 | 10000 | 0.92 | | DualArmSwingCup-v1 | 1 | 20000 | 0.36 | | GraspCylinder-v1 | 1 | 15000 | 0.94 | | LiftBucket-v1 | 1 | 40000 | 0.96 | | OpenDoor-v1 | 1 | 5000 | 0.30 | | PickPlacePen-v1 | 1 | 20000 | 0.36 | | PushSoccer-v1 | 1 | 40000 | 0.80 | | ReorientCube-v1 | 1 | 5000 | 1.00 | | RopePalmCageHoldDex-v1 | 1 | 5000 | 0.94 | | ShapeTToI-v1 | 1 | 40000 | 0.50 | | SqueezeClay-v1 | 1 | 15000 | 0.84 | | StackBlock-v1 | 1 | 15000 | 0.46 | | StraightenRope-v1 | 1 | 35000 | 0.84 | | TurnOnFaucet-v1 | 1 | 10000 | 0.92 | | UnfoldShirt-v1 | 1 | 5000 | 0.78 | | ClothWipe-v1 | 2 | 25000 | 0.52 | | DexOpenDoor-v1 | 2 | 5000 | 0.56 | | DualArmBookPickPlace-v1 | 2 | 15000 | 0.56 | | DualArmCleanupPotEnv-v1 | 2 | 35000 | 0.38 | | DualArmClothAlign-v1 | 2 | 40000 | 0.38 | | DualArmJugglingBall-v1 | 2 | 40000 | 0.06 | | DualArmLiftBall-v1 | 2 | 35000 | 0.54 | | DualArmOpenBottle-v1 | 2 | 30000 | 0.06 | | DualArmOpenLaptop-v1 | 2 | 25000 | 0.42 | | DualArmPegInHole-v1 | 2 | 5000 | 0.18 | | DualArmPlaceRopeOverRod-v1 | 2 | 40000 | 0.46 | | DualArmPouringTwoCups-v1 | 2 | 5000 | 0.00 | | DualArmPushObject-v1 | 2 | 25000 | 0.06 | | DualArmStraightenRope-v1 | 2 | 35000 | 0.48 | | DualArmStuffCloth-v1 | 2 | 15000 | 0.40 | | DualArmThrowBlock-v1 | 2 | 5000 | 0.00 | | FoldShirt-v1 | 2 | 40000 | 0.72 | | GraspTwoBlocks-v1 | 2 | 5000 | 0.72 | | HammerNailOut-v1 | 2 | 40000 | 0.44 | | HangMug-v1 | 2 | 10000 | 0.70 | | KitAssembly-v1 | 2 | 15000 | 0.06 | | OpenBoxRetrieval-v1 | 2 | 25000 | 0.38 | | PivotBook-v1 | 2 | 15000 | 0.38 | | ReorientPen-v1 | 2 | 25000 | 0.38 | | RollingPin-v1 | 2 | 25000 | 0.96 | | RopeBridgeDex-v1 | 2 | 30000 | 0.78 | | ScoopWater-v1 | 2 | 15000 | 0.44 | | StraightenTwoRopesSequential-v1 | 2 | 15000 | 0.36 | | ClutterGrasp-v1 | 3 | 15000 | 0.16 | | DualArmAssembleBracket-v1 | 3 | 5000 | 0.00 | | DualArmFoldCarton-v1 | 3 | 25000 | 0.14 | | DualArmLayerClayInDish-v1 | 3 | 5000 | 0.00 | | DualArmMakeLine-v1 | 3 | 5000 | 0.00 | | DualArmOpenFridge-v1 | 3 | 5000 | 0.00 | | DualArmOrganizeCabinet-v1 | 3 | 5000 | 0.00 | | DualArmPingpongBalance-v1 | 3 | 15000 | 0.20 | | DualArmPlugCharger-v1 | 3 | 5000 | 0.00 | | DualArmSetupTable-v1 | 3 | 25000 | 0.04 | | DualArmShapeDoll-v1 | 3 | 30000 | 0.04 | | DualArmThreadCloth-v1 | 3 | 5000 | 0.12 | | DualArmThreadRopeThroughTube-v1 | 3 | 35000 | 0.16 | | DualArmThreading-v1 | 3 | 20000 | 0.26 | | DualArmWeaveCloth-v1 | 3 | 20000 | 0.32 | | GroceryPrepare-v1 | 3 | 5000 | 0.00 | | HammerNail-v1 | 3 | 35000 | 0.12 | | HitBox-v1 | 3 | 25000 | 0.06 | | LiquidMeasuring-v1 | 3 | 35000 | 0.32 | | MobilePickPlace-v1 | 3 | 15000 | 0.08 | | PressFitSoftPeg-v1 | 3 | 20000 | 0.08 | | PushTargetPose-v1 | 3 | 30000 | 0.02 | | SeparateTwoRopesEnv-v1 | 3 | 35000 | 0.26 | | Stack6Blocks-v1 | 3 | 5000 | 0.00 | | TweezersPickPlace-v1 | 3 | 5000 | 0.00 | | BagDropIn-v1 | 3 | 15000 | 0.70 | | BagHanging-v1 | 3 | 10000 | 0.88 | | BuildTent-v1 | 4 | 10000 | 0.06 | | ClaySealStamp-v1 | 4 | 5000 | 0.00 | | CoverPattern-v1 | 4 | 30000 | 0.02 | | DualArmBallClassify-v1 | 4 | 10000 | 0.00 | | DualArmBilliardBridge-v1 | 4 | 5000 | 0.00 | | DualArmClothCylinderWipe-v1 | 4 | 5000 | 0.02 | | DualArmClothHanger-v1 | 4 | 5000 | 0.00 | | DualArmFlipTable-v1 | 4 | 5000 | 0.00 | | DualArmJumpRope-v1 | 4 | 20000 | 0.02 | | DualArmKeyboardType-v1 | 4 | 5000 | 0.00 | | DualArmLiquidMixing-v1 | 4 | 5000 | 0.00 | | DualArmMahjongSetup-v1 | 4 | 5000 | 0.02 | | DualArmSandShovel-v1 | 4 | 15000 | 0.02 | | DualArmSendPingpong-v1 | 4 | 40000 | 0.08 | | DualArmShootBasketball-v1 | 4 | 5000 | 0.00 | | DualArmWallRings-v1 | 4 | 5000 | 0.00 | | FitnessBall-v1 | 4 | 5000 | 0.00 | | FlipPan-v1 | 4 | 40000 | 0.04 | | HitBilliard-v1 | 4 | 5000 | 0.00 | | PingPongBallTransport-v1 | 4 | 40000 | 0.16 | | RingTossing-v1 | 4 | 5000 | 0.00 | | RodThroughHoles-v1 | 4 | 5000 | 0.02 | | SpinPenHora-v1 | 4 | 5000 | 0.00 | | StampRoll-v1 | 4 | 5000 | 0.00 | | SwingRing-v1 | 4 | 15000 | 0.04 | | TennisRally-v1 | 4 | 15000 | 0.06 | | WrapRope-v1 | 4 | 5000 | 0.02 | ## multi_task (level-wise) One PI0.5 LoRA policy per ManiLadder level, finetuned jointly on **every task of that level** (20 demos per task, 109 tasks in total) and evaluated on each of its tasks for **50 episodes** (seeds 1000–1049). Only the final checkpoint (step 80,000) was evaluated; no checkpoint selection. Recipe: batch 64, lr 5e-5 with 1k warmup and cosine decay over 80k steps, 8×A100-80GB data parallel, no online eval. `action_dim` follows the widest embodiment in the level; narrower embodiments are zero-padded and the normalization statistics ignore padded dimensions (see `metadata.json`). Evaluation: `exec_steps=16`, `sample_steps=10`. Not included: BagHanging-v1 and BagDropIn-v1 (level 3) and SwingRing-v1 (level 4) on request; OpenCoffer-v1, ClayMolding-v1, PickSoft-v1, DualArmBuildCanel-v1, DualArmRopeScissorCut-v1 and DualArmSqueezeClayDex-v1 have no demos. MazeBlockPush-v1 and DualArmOpenScissor-v1 were trained on local demos newer than the HF copies (details in `metadata.json`). Each `multi_task/level_/` folder contains `lora_step_0080000.npz`, `norm_stats.json`, `metadata.json`, `eval_result.json` (per-task 50-episode results) and `eval_reports/.json` (per-episode rows). `multi_task/results.csv` lists every (level, task) row. | level | tasks | evaluated | action_dim | mean success (50 ep/task) | |---|---|---|---|---| | level_1 | 28 | 28 | 44 | 0.579 | | level_2 | 28 | 28 | 44 | 0.241 | | level_3 | 26 | 26 | 50 | 0.005 | | level_4 | 27 | 27 | 50 | 0.001 | | task | level | embodiment | success (50 ep) | |---|---|---|---| | DualArmLiftSoftDex-v1 | 1 | deformable/dual_arm_dex | 1.00 | | DualArmOpenScissor-v1 | 1 | rigid_body/dual_arm_dex | 0.98 | | DrapeCloth-v1 | 1 | deformable/single_arm_dex | 0.96 | | RopePalmCageHoldDex-v1 | 1 | deformable/single_arm_dex | 0.92 | | DualArmButtonPress-v1 | 1 | rigid_body/dual_arm_gripper | 0.90 | | GraspCylinder-v1 | 1 | rigid_body/single_arm_dex | 0.86 | | ReorientCube-v1 | 1 | rigid_body/single_arm_dex | 0.84 | | TurnOnFaucet-v1 | 1 | rigid_body/single_arm_dex | 0.84 | | DualArmPouringWater-v1 | 1 | deformable/dual_arm_gripper | 0.72 | | DualArmDoubleDoorBox-v1 | 1 | rigid_body/dual_arm_gripper | 0.70 | | DualArmRopeCylinderWarpping-v1 | 1 | deformable/dual_arm_gripper | 0.66 | | StraightenRope-v1 | 1 | deformable/single_arm_gripper | 0.66 | | DualArmFoldHandKerchief-v1 | 1 | deformable/dual_arm_gripper | 0.60 | | DualArmPushBox-v1 | 1 | rigid_body/dual_arm_gripper | 0.60 | | PushSoccer-v1 | 1 | rigid_body/single_arm_gripper | 0.60 | | LiftBucket-v1 | 1 | rigid_body/single_arm_dex | 0.54 | | StackBlock-v1 | 1 | rigid_body/single_arm_gripper | 0.54 | | DualArmRopeStretch-v1 | 1 | deformable/dual_arm_dex | 0.48 | | DualArmSwingCup-v1 | 1 | rigid_body/dual_arm_dex | 0.42 | | SqueezeClay-v1 | 1 | deformable/single_arm_dex | 0.40 | | DualArmPressButton-v1 | 1 | rigid_body/dual_arm_dex | 0.38 | | PickPlacePen-v1 | 1 | rigid_body/single_arm_gripper | 0.34 | | DualArmOpenPen-v1 | 1 | rigid_body/dual_arm_dex | 0.30 | | UnfoldShirt-v1 | 1 | deformable/single_arm_gripper | 0.28 | | DualArmCoverCloth-v1 | 1 | deformable/dual_arm_dex | 0.24 | | DualArmHammerHandover-v1 | 1 | rigid_body/dual_arm_gripper | 0.24 | | OpenDoor-v1 | 1 | rigid_body/single_arm_gripper | 0.12 | | ShapeTToI-v1 | 1 | deformable/single_arm_gripper | 0.10 | | FoldShirt-v1 | 2 | deformable/single_arm_gripper | 0.62 | | GraspTwoBlocks-v1 | 2 | rigid_body/single_arm_dex | 0.56 | | DualArmClothAlign-v1 | 2 | deformable/dual_arm_gripper | 0.50 | | DualArmPlaceRopeOverRod-v1 | 2 | deformable/dual_arm_dex | 0.48 | | DualArmStuffCloth-v1 | 2 | deformable/dual_arm_dex | 0.44 | | HangMug-v1 | 2 | rigid_body/single_arm_gripper | 0.42 | | RollingPin-v1 | 2 | deformable/single_arm_dex | 0.38 | | DualArmLiftBall-v1 | 2 | rigid_body/dual_arm_gripper | 0.36 | | DualArmOpenLaptop-v1 | 2 | rigid_body/dual_arm_dex | 0.34 | | HammerNailOut-v1 | 2 | rigid_body/single_arm_dex | 0.32 | | RopeBridgeDex-v1 | 2 | deformable/single_arm_dex | 0.32 | | ReorientPen-v1 | 2 | rigid_body/single_arm_dex | 0.30 | | DexOpenDoor-v1 | 2 | rigid_body/single_arm_dex | 0.28 | | ScoopWater-v1 | 2 | deformable/single_arm_gripper | 0.26 | | ClothWipe-v1 | 2 | deformable/single_arm_dex | 0.24 | | DualArmStraightenRope-v1 | 2 | deformable/dual_arm_gripper | 0.24 | | DualArmThrowBlock-v1 | 2 | rigid_body/dual_arm_dex | 0.20 | | DualArmPegInHole-v1 | 2 | rigid_body/dual_arm_gripper | 0.18 | | PivotBook-v1 | 2 | rigid_body/single_arm_gripper | 0.16 | | StraightenTwoRopesSequential-v1 | 2 | deformable/single_arm_gripper | 0.12 | | OpenBoxRetrieval-v1 | 2 | rigid_body/single_arm_gripper | 0.04 | | DualArmBookPickPlace-v1 | 2 | rigid_body/dual_arm_gripper | 0.00 | | DualArmCleanupPotEnv-v1 | 2 | rigid_body/dual_arm_gripper | 0.00 | | DualArmJugglingBall-v1 | 2 | rigid_body/dual_arm_dex | 0.00 | | DualArmOpenBottle-v1 | 2 | rigid_body/dual_arm_dex | 0.00 | | DualArmPouringTwoCups-v1 | 2 | deformable/dual_arm_dex | 0.00 | | DualArmPushObject-v1 | 2 | deformable/dual_arm_gripper | 0.00 | | KitAssembly-v1 | 2 | rigid_body/single_arm_gripper | 0.00 | | SeparateTwoRopesEnv-v1 | 3 | deformable/single_arm_gripper | 0.06 | | ClutterGrasp-v1 | 3 | rigid_body/single_arm_dex | 0.04 | | DualArmThreadCloth-v1 | 3 | deformable/dual_arm_dex | 0.04 | | DualArmAssembleBracket-v1 | 3 | rigid_body/dual_arm_gripper | 0.00 | | DualArmFoldCarton-v1 | 3 | rigid_body/dual_arm_gripper | 0.00 | | DualArmLayerClayInDish-v1 | 3 | deformable/dual_arm_dex | 0.00 | | DualArmMakeLine-v1 | 3 | rigid_body/dual_arm_dex | 0.00 | | DualArmOpenFridge-v1 | 3 | rigid_body/dual_arm_gripper | 0.00 | | DualArmOrganizeCabinet-v1 | 3 | rigid_body/dual_arm_gripper | 0.00 | | DualArmPingpongBalance-v1 | 3 | rigid_body/dual_arm_dex | 0.00 | | DualArmPlugCharger-v1 | 3 | rigid_body/dual_arm_dex | 0.00 | | DualArmSetupTable-v1 | 3 | rigid_body/dual_arm_dex | 0.00 | | DualArmShapeDoll-v1 | 3 | deformable/dual_arm_gripper | 0.00 | | DualArmThreadRopeThroughTube-v1 | 3 | deformable/dual_arm_gripper | 0.00 | | DualArmThreading-v1 | 3 | deformable/dual_arm_dex | 0.00 | | DualArmWeaveCloth-v1 | 3 | deformable/dual_arm_gripper | 0.00 | | GroceryPrepare-v1 | 3 | rigid_body/single_arm_gripper | 0.00 | | HammerNail-v1 | 3 | rigid_body/single_arm_dex | 0.00 | | HitBox-v1 | 3 | deformable/single_arm_dex | 0.00 | | LiquidMeasuring-v1 | 3 | deformable/single_arm_gripper | 0.00 | | MazeBlockPush-v1 | 3 | rigid_body/single_arm_gripper | 0.00 | | MobilePickPlace-v1 | 3 | rigid_body/single_arm_dex | 0.00 | | PressFitSoftPeg-v1 | 3 | deformable/single_arm_dex | 0.00 | | PushTargetPose-v1 | 3 | rigid_body/single_arm_gripper | 0.00 | | Stack6Blocks-v1 | 3 | rigid_body/single_arm_gripper | 0.00 | | TweezersPickPlace-v1 | 3 | rigid_body/single_arm_dex | 0.00 | | DualArmClothCylinderWipe-v1 | 4 | deformable/dual_arm_dex | 0.02 | | BuildTent-v1 | 4 | deformable/single_arm_gripper | 0.00 | | ClaySealStamp-v1 | 4 | deformable/single_arm_dex | 0.00 | | CoverPattern-v1 | 4 | deformable/single_arm_dex | 0.00 | | DualArmBallClassify-v1 | 4 | rigid_body/dual_arm_gripper | 0.00 | | DualArmBilliardBridge-v1 | 4 | rigid_body/dual_arm_gripper | 0.00 | | DualArmClothHanger-v1 | 4 | deformable/dual_arm_gripper | 0.00 | | DualArmFlipTable-v1 | 4 | rigid_body/dual_arm_dex | 0.00 | | DualArmJumpRope-v1 | 4 | deformable/dual_arm_dex | 0.00 | | DualArmKeyboardType-v1 | 4 | rigid_body/dual_arm_dex | 0.00 | | DualArmLiquidMixing-v1 | 4 | deformable/dual_arm_dex | 0.00 | | DualArmMahjongSetup-v1 | 4 | rigid_body/dual_arm_gripper | 0.00 | | DualArmRubikCube-v1 | 4 | rigid_body/dual_arm_gripper | 0.00 | | DualArmSandShovel-v1 | 4 | deformable/dual_arm_gripper | 0.00 | | DualArmSendPingpong-v1 | 4 | rigid_body/dual_arm_dex | 0.00 | | DualArmShootBasketball-v1 | 4 | rigid_body/dual_arm_dex | 0.00 | | DualArmWallRings-v1 | 4 | deformable/dual_arm_gripper | 0.00 | | FitnessBall-v1 | 4 | rigid_body/single_arm_dex | 0.00 | | FlipPan-v1 | 4 | rigid_body/single_arm_gripper | 0.00 | | HitBilliard-v1 | 4 | rigid_body/single_arm_gripper | 0.00 | | PingPongBallTransport-v1 | 4 | rigid_body/single_arm_gripper | 0.00 | | RingTossing-v1 | 4 | rigid_body/single_arm_gripper | 0.00 | | RodThroughHoles-v1 | 4 | rigid_body/single_arm_dex | 0.00 | | SpinPenHora-v1 | 4 | rigid_body/single_arm_dex | 0.00 | | StampRoll-v1 | 4 | deformable/single_arm_gripper | 0.00 | | TennisRally-v1 | 4 | rigid_body/single_arm_dex | 0.00 | | WrapRope-v1 | 4 | deformable/single_arm_gripper | 0.00 | ## Previous single-task checkpoints classified as reusable The [`previous_single_task/`](previous_single_task) collection preserves one best checkpoint from each of the 62 earlier single-task runs classified as reusable in the 2026-10-22 audit. It is separate from newer retraining runs in `single_task/`. See the [CSV](previous_single_task/manifest.csv) or [JSON manifest](previous_single_task/manifest.json), sorted by level, suite, and task. For 60 tasks, selection uses the available 50-episode reevaluations (seeds 1000–1049). The original **DualArmPouringWater-v1** peak is **19/20 (95%) at 30k**; the original **MazeBlockPush-v1** peak is **13/20 (65%) at 30k**. These two are selected from historical 20-episode online evaluations and must not be presented as eval50 scores. Each folder contains the selected weights, normalization statistics, evaluation summary/history, and audit provenance. Non-finite reward means in the historical reports are represented as null/blank and marked `return_mean_finite=false`; checkpoint selection uses the reported success counts. The reusable classification was based on timestamp and source-change review; the original training runs did not save complete source snapshots. ## multi_task (level-2 subsets) Six multi-task PI0.5 LoRA policies, each finetuned for 50,000 steps (batch 64, lr 5e-5, cosine decay) on a subset of the 28 level-2 tasks (20 demos per task); every level-2 task belongs to exactly three subsets. Only the final checkpoint was evaluated (50 episodes per task, seeds 1000–1049); the 10k/20k/30k/40k snapshots are included unevaluated. Campaign `pi05_lv2sub_20261029` (2026-10-29/30). See [the manifest](multi_task/pi05_lv2sub_20261029_manifest.json) and `multi_task/results.csv`. Each `multi_task//` folder contains: - `lora_step_0010000.npz` … `lora_step_0050000.npz` — LoRA + trainable weights every 10k steps (`0050000` is the evaluated one) - `norm_stats.json` — normalization statistics used in training (action/state dim 44, zero-padded for narrower embodiments) - `metadata.json` — task list, training config, checkpoint hashes, env source hashes - `eval_result.json` — per-task 50-episode success of the final checkpoint; `eval_reports/.json` has per-episode results | suite | tasks | mean success (50 ep/task) | |---|---|---| | level2_rigid | 16 | 0.173 | | level2_deformable | 12 | 0.167 | | level2_single_arm | 14 | 0.241 | | level2_dual_arm | 14 | 0.120 | | level2_gripper | 14 | 0.166 | | level2_dexterous | 14 | 0.210 | | task | level2_rigid | level2_deformable | level2_single_arm | level2_dual_arm | level2_gripper | level2_dexterous | |---|---|---|---|---|---|---| | ClothWipe-v1 | | 0.24 | 0.18 | | | 0.10 | | DexOpenDoor-v1 | 0.38 | | 0.18 | | | 0.26 | | DualArmBookPickPlace-v1 | 0.00 | | | 0.00 | 0.16 | | | DualArmCleanupPotEnv-v1 | 0.00 | | | 0.00 | 0.00 | | | DualArmClothAlign-v1 | | 0.30 | | 0.26 | 0.34 | | | DualArmJugglingBall-v1 | 0.04 | | | 0.12 | | 0.00 | | DualArmLiftBall-v1 | 0.20 | | | 0.28 | 0.16 | | | DualArmOpenBottle-v1 | 0.00 | | | 0.00 | | 0.00 | | DualArmOpenLaptop-v1 | 0.04 | | | 0.14 | | 0.08 | | DualArmPegInHole-v1 | 0.10 | | | 0.08 | 0.16 | | | DualArmPlaceRopeOverRod-v1 | | 0.12 | | 0.16 | | 0.58 | | DualArmPouringTwoCups-v1 | | 0.00 | | 0.00 | | 0.00 | | DualArmPushObject-v1 | | 0.00 | | 0.00 | 0.04 | | | DualArmStraightenRope-v1 | | 0.10 | | 0.20 | 0.10 | | | DualArmStuffCloth-v1 | | 0.28 | | 0.12 | | 0.24 | | DualArmThrowBlock-v1 | 0.22 | | | 0.32 | | 0.20 | | FoldShirt-v1 | | 0.22 | 0.50 | | 0.62 | | | GraspTwoBlocks-v1 | 0.56 | | 0.70 | | | 0.64 | | HammerNailOut-v1 | 0.08 | | 0.34 | | | 0.22 | | HangMug-v1 | 0.62 | | 0.46 | | 0.50 | | | KitAssembly-v1 | 0.06 | | 0.06 | | 0.00 | | | OpenBoxRetrieval-v1 | 0.02 | | 0.04 | | 0.04 | | | PivotBook-v1 | 0.04 | | 0.18 | | 0.16 | | | ReorientPen-v1 | 0.40 | | 0.16 | | | 0.26 | | RollingPin-v1 | | 0.18 | 0.10 | | | 0.20 | | RopeBridgeDex-v1 | | 0.22 | 0.40 | | | 0.16 | | ScoopWater-v1 | | 0.26 | 0.00 | | 0.00 | | | StraightenTwoRopesSequential-v1 | | 0.08 | 0.08 | | 0.04 | | ## multi_task (level-2 suite transfer) Six suite-transfer runs: each starts from **all parameters of the final checkpoint** of one level-2 subset policy above (`pi05_lv2sub_20261029`) and is finetuned for another 50,000 steps (fresh schedule: batch 64, lr 5e-5, 1k warmup, cosine decay) on the tasks of a *different* grouping of the same 28 level-2 tasks, then evaluated on those tasks (final checkpoint only, 50 episodes per task, seeds 1000–1049). The baseline is the from-scratch policy of the target grouping from the section above (same tasks, same seeds). Campaign `pi05_lv2xfer_20261101` (2026-11-01). See [the manifest](multi_task/pi05_lv2xfer_20261101_manifest.json) and `multi_task/results.csv` (column `campaign`). Each `multi_task/_from_/` folder has the same files as the subset suites (`lora_step_0010000.npz` … `lora_step_0050000.npz`, `norm_stats.json`, `metadata.json` with `init_from`, `eval_result.json`, `eval_reports/.json`). | suite | source policy | target tasks | transfer mean (50 ep/task) | from-scratch baseline | |---|---|---|---|---| | level2_rigid_from_deformable | level2_deformable | 16 | 0.199 | 0.173 | | level2_deformable_from_rigid | level2_rigid | 12 | 0.258 | 0.167 | | level2_dual_arm_from_single_arm | level2_single_arm | 14 | 0.139 | 0.120 | | level2_single_arm_from_dual_arm | level2_dual_arm | 14 | 0.240 | 0.241 | | level2_dexterous_from_gripper | level2_gripper | 14 | 0.280 | 0.210 | | level2_gripper_from_dexterous | level2_dexterous | 14 | 0.227 | 0.166 | Per task: transfer success rate (from-scratch baseline in parentheses). | task | level2_rigid_from_deformable | level2_deformable_from_rigid | level2_dual_arm_from_single_arm | level2_single_arm_from_dual_arm | level2_dexterous_from_gripper | level2_gripper_from_dexterous | |---|---|---|---|---|---|---| | ClothWipe-v1 | | 0.12 (0.24) | | 0.34 (0.18) | 0.10 (0.10) | | | DexOpenDoor-v1 | 0.18 (0.38) | | | 0.10 (0.18) | 0.20 (0.26) | | | DualArmBookPickPlace-v1 | 0.26 (0.00) | | 0.00 (0.00) | | | 0.42 (0.16) | | DualArmCleanupPotEnv-v1 | 0.00 (0.00) | | 0.00 (0.00) | | | 0.02 (0.00) | | DualArmClothAlign-v1 | | 0.42 (0.30) | 0.20 (0.26) | | | 0.34 (0.34) | | DualArmJugglingBall-v1 | 0.04 (0.04) | | 0.14 (0.12) | | 0.12 (0.00) | | | DualArmLiftBall-v1 | 0.24 (0.20) | | 0.40 (0.28) | | | 0.22 (0.16) | | DualArmOpenBottle-v1 | 0.00 (0.00) | | 0.00 (0.00) | | 0.00 (0.00) | | | DualArmOpenLaptop-v1 | 0.18 (0.04) | | 0.40 (0.14) | | 0.30 (0.08) | | | DualArmPegInHole-v1 | 0.20 (0.10) | | 0.14 (0.08) | | | 0.22 (0.16) | | DualArmPlaceRopeOverRod-v1 | | 0.44 (0.12) | 0.16 (0.16) | | 0.54 (0.58) | | | DualArmPouringTwoCups-v1 | | 0.00 (0.00) | 0.00 (0.00) | | 0.00 (0.00) | | | DualArmPushObject-v1 | | 0.00 (0.00) | 0.00 (0.00) | | | 0.04 (0.04) | | DualArmStraightenRope-v1 | | 0.22 (0.10) | 0.08 (0.20) | | | 0.04 (0.10) | | DualArmStuffCloth-v1 | | 0.10 (0.28) | 0.38 (0.12) | | 0.48 (0.24) | | | DualArmThrowBlock-v1 | 0.16 (0.22) | | 0.04 (0.32) | | 0.26 (0.20) | | | FoldShirt-v1 | | 0.38 (0.22) | | 0.38 (0.50) | | 0.48 (0.62) | | GraspTwoBlocks-v1 | 0.54 (0.56) | | | 0.46 (0.70) | 0.52 (0.64) | | | HammerNailOut-v1 | 0.32 (0.08) | | | 0.30 (0.34) | 0.42 (0.22) | | | HangMug-v1 | 0.52 (0.62) | | | 0.36 (0.46) | | 0.40 (0.50) | | KitAssembly-v1 | 0.00 (0.06) | | | 0.10 (0.06) | | 0.00 (0.00) | | OpenBoxRetrieval-v1 | 0.04 (0.02) | | | 0.04 (0.04) | | 0.28 (0.04) | | PivotBook-v1 | 0.12 (0.04) | | | 0.12 (0.18) | | 0.22 (0.16) | | ReorientPen-v1 | 0.38 (0.40) | | | 0.26 (0.16) | 0.20 (0.26) | | | RollingPin-v1 | | 0.62 (0.18) | | 0.06 (0.10) | 0.28 (0.20) | | | RopeBridgeDex-v1 | | 0.34 (0.22) | | 0.48 (0.40) | 0.50 (0.16) | | | ScoopWater-v1 | | 0.24 (0.26) | | 0.18 (0.00) | | 0.30 (0.00) | | StraightenTwoRopesSequential-v1 | | 0.22 (0.08) | | 0.18 (0.08) | | 0.20 (0.04) | ## multi_task (level-to-level transfer) Transfer experiments between the level-wise multi-task policies above: each policy in `multi_task/level_/` (trained 80k steps from pi05_base) was used as the **initialisation** for a further **50,000 LoRA steps on every task of another level** (campaign `pi05_transfer_20261101`), then evaluated on the target level's tasks for **50 episodes** each (seeds 1000–1049, final checkpoint only). The baseline column is the target level's own policy from `multi_task/level_/` on the same tasks. Recipe: identical to the level-wise runs except for the initialisation and length: batch 64, lr 5e-5 with 1k warmup and cosine decay to 5e-6 over 50k steps, fresh AdamW, 8×A100-80GB data parallel, target-level dataset and normalization statistics. Where source and target `action_dim` differ (44 ↔ 50) only the three action projection tensors are partially copied (overlapping slice kept, new slots freshly initialised); see `metadata.json`. Each `multi_task/level_from_level/` folder contains `lora_step_0050000.npz`, `norm_stats.json`, `metadata.json`, `eval_result.json` (per-task results with baselines) and `eval_reports/.json` (per-episode rows). Rows are also in `multi_task/results.csv` (campaign `pi05_transfer_20261101`). | folder | init from | trained + evaluated on | tasks | action_dim | mean success (50 ep/task) | baseline (level_ from pi05_base) | |---|---|---|---|---|---|---| | level2_from_level1 | level_1 @80k | level_2 (28 tasks) | 28/28 | 44 | 0.218 | 0.241 | | level1_from_level2 | level_2 @80k | level_1 (28 tasks) | 28/28 | 44 | 0.620 | 0.579 | | level3_from_level2 | level_2 @80k | level_3 (26 tasks) | 26/26 | 50 | 0.002 | 0.005 | | level2_from_level3 | level_3 @80k | level_2 (28 tasks) | 28/28 | 44 | 0.197 | 0.241 | | task | folder | embodiment | transfer success (50 ep) | baseline success (50 ep) | |---|---|---|---|---| | DualArmPlaceRopeOverRod-v1 | level2_from_level1 | deformable/dual_arm_dex | 0.74 | 0.48 | | GraspTwoBlocks-v1 | level2_from_level1 | rigid_body/single_arm_dex | 0.64 | 0.56 | | FoldShirt-v1 | level2_from_level1 | deformable/single_arm_gripper | 0.50 | 0.62 | | HangMug-v1 | level2_from_level1 | rigid_body/single_arm_gripper | 0.42 | 0.42 | | RollingPin-v1 | level2_from_level1 | deformable/single_arm_dex | 0.38 | 0.38 | | HammerNailOut-v1 | level2_from_level1 | rigid_body/single_arm_dex | 0.32 | 0.32 | | RopeBridgeDex-v1 | level2_from_level1 | deformable/single_arm_dex | 0.32 | 0.32 | | DualArmOpenLaptop-v1 | level2_from_level1 | rigid_body/dual_arm_dex | 0.30 | 0.34 | | ReorientPen-v1 | level2_from_level1 | rigid_body/single_arm_dex | 0.30 | 0.30 | | DualArmPegInHole-v1 | level2_from_level1 | rigid_body/dual_arm_gripper | 0.28 | 0.18 | | ClothWipe-v1 | level2_from_level1 | deformable/single_arm_dex | 0.24 | 0.24 | | DualArmThrowBlock-v1 | level2_from_level1 | rigid_body/dual_arm_dex | 0.24 | 0.20 | | DualArmClothAlign-v1 | level2_from_level1 | deformable/dual_arm_gripper | 0.22 | 0.50 | | DualArmJugglingBall-v1 | level2_from_level1 | rigid_body/dual_arm_dex | 0.20 | 0.00 | | DexOpenDoor-v1 | level2_from_level1 | rigid_body/single_arm_dex | 0.18 | 0.28 | | DualArmLiftBall-v1 | level2_from_level1 | rigid_body/dual_arm_gripper | 0.18 | 0.36 | | DualArmStraightenRope-v1 | level2_from_level1 | deformable/dual_arm_gripper | 0.14 | 0.24 | | PivotBook-v1 | level2_from_level1 | rigid_body/single_arm_gripper | 0.14 | 0.16 | | ScoopWater-v1 | level2_from_level1 | deformable/single_arm_gripper | 0.14 | 0.26 | | DualArmStuffCloth-v1 | level2_from_level1 | deformable/dual_arm_dex | 0.10 | 0.44 | | OpenBoxRetrieval-v1 | level2_from_level1 | rigid_body/single_arm_gripper | 0.06 | 0.04 | | StraightenTwoRopesSequential-v1 | level2_from_level1 | deformable/single_arm_gripper | 0.06 | 0.12 | | DualArmBookPickPlace-v1 | level2_from_level1 | rigid_body/dual_arm_gripper | 0.00 | 0.00 | | DualArmCleanupPotEnv-v1 | level2_from_level1 | rigid_body/dual_arm_gripper | 0.00 | 0.00 | | DualArmOpenBottle-v1 | level2_from_level1 | rigid_body/dual_arm_dex | 0.00 | 0.00 | | DualArmPouringTwoCups-v1 | level2_from_level1 | deformable/dual_arm_dex | 0.00 | 0.00 | | DualArmPushObject-v1 | level2_from_level1 | deformable/dual_arm_gripper | 0.00 | 0.00 | | KitAssembly-v1 | level2_from_level1 | rigid_body/single_arm_gripper | 0.00 | 0.00 | | ReorientCube-v1 | level1_from_level2 | rigid_body/single_arm_dex | 1.00 | 0.84 | | DrapeCloth-v1 | level1_from_level2 | deformable/single_arm_dex | 0.98 | 0.96 | | DualArmLiftSoftDex-v1 | level1_from_level2 | deformable/dual_arm_dex | 0.98 | 1.00 | | TurnOnFaucet-v1 | level1_from_level2 | rigid_body/single_arm_dex | 0.98 | 0.84 | | DualArmButtonPress-v1 | level1_from_level2 | rigid_body/dual_arm_gripper | 0.94 | 0.90 | | GraspCylinder-v1 | level1_from_level2 | rigid_body/single_arm_dex | 0.94 | 0.86 | | RopePalmCageHoldDex-v1 | level1_from_level2 | deformable/single_arm_dex | 0.94 | 0.92 | | DualArmOpenScissor-v1 | level1_from_level2 | rigid_body/dual_arm_dex | 0.86 | 0.98 | | DualArmRopeStretch-v1 | level1_from_level2 | deformable/dual_arm_dex | 0.82 | 0.48 | | LiftBucket-v1 | level1_from_level2 | rigid_body/single_arm_dex | 0.82 | 0.54 | | DualArmRopeCylinderWarpping-v1 | level1_from_level2 | deformable/dual_arm_gripper | 0.70 | 0.66 | | PushSoccer-v1 | level1_from_level2 | rigid_body/single_arm_gripper | 0.70 | 0.60 | | DualArmFoldHandKerchief-v1 | level1_from_level2 | deformable/dual_arm_gripper | 0.66 | 0.60 | | StackBlock-v1 | level1_from_level2 | rigid_body/single_arm_gripper | 0.66 | 0.54 | | DualArmPouringWater-v1 | level1_from_level2 | deformable/dual_arm_gripper | 0.64 | 0.72 | | StraightenRope-v1 | level1_from_level2 | deformable/single_arm_gripper | 0.62 | 0.66 | | SqueezeClay-v1 | level1_from_level2 | deformable/single_arm_dex | 0.60 | 0.40 | | DualArmDoubleDoorBox-v1 | level1_from_level2 | rigid_body/dual_arm_gripper | 0.56 | 0.70 | | PickPlacePen-v1 | level1_from_level2 | rigid_body/single_arm_gripper | 0.50 | 0.34 | | DualArmPushBox-v1 | level1_from_level2 | rigid_body/dual_arm_gripper | 0.42 | 0.60 | | DualArmSwingCup-v1 | level1_from_level2 | rigid_body/dual_arm_dex | 0.42 | 0.42 | | DualArmCoverCloth-v1 | level1_from_level2 | deformable/dual_arm_dex | 0.36 | 0.24 | | ShapeTToI-v1 | level1_from_level2 | deformable/single_arm_gripper | 0.32 | 0.10 | | DualArmOpenPen-v1 | level1_from_level2 | rigid_body/dual_arm_dex | 0.28 | 0.30 | | UnfoldShirt-v1 | level1_from_level2 | deformable/single_arm_gripper | 0.26 | 0.28 | | DualArmPressButton-v1 | level1_from_level2 | rigid_body/dual_arm_dex | 0.18 | 0.38 | | DualArmHammerHandover-v1 | level1_from_level2 | rigid_body/dual_arm_gripper | 0.12 | 0.24 | | OpenDoor-v1 | level1_from_level2 | rigid_body/single_arm_gripper | 0.10 | 0.12 | | DualArmThreading-v1 | level3_from_level2 | deformable/dual_arm_dex | 0.04 | 0.00 | | DualArmThreadCloth-v1 | level3_from_level2 | deformable/dual_arm_dex | 0.02 | 0.04 | | ClutterGrasp-v1 | level3_from_level2 | rigid_body/single_arm_dex | 0.00 | 0.04 | | DualArmAssembleBracket-v1 | level3_from_level2 | rigid_body/dual_arm_gripper | 0.00 | 0.00 | | DualArmFoldCarton-v1 | level3_from_level2 | rigid_body/dual_arm_gripper | 0.00 | 0.00 | | DualArmLayerClayInDish-v1 | level3_from_level2 | deformable/dual_arm_dex | 0.00 | 0.00 | | DualArmMakeLine-v1 | level3_from_level2 | rigid_body/dual_arm_dex | 0.00 | 0.00 | | DualArmOpenFridge-v1 | level3_from_level2 | rigid_body/dual_arm_gripper | 0.00 | 0.00 | | DualArmOrganizeCabinet-v1 | level3_from_level2 | rigid_body/dual_arm_gripper | 0.00 | 0.00 | | DualArmPingpongBalance-v1 | level3_from_level2 | rigid_body/dual_arm_dex | 0.00 | 0.00 | | DualArmPlugCharger-v1 | level3_from_level2 | rigid_body/dual_arm_dex | 0.00 | 0.00 | | DualArmSetupTable-v1 | level3_from_level2 | rigid_body/dual_arm_dex | 0.00 | 0.00 | | DualArmShapeDoll-v1 | level3_from_level2 | deformable/dual_arm_gripper | 0.00 | 0.00 | | DualArmThreadRopeThroughTube-v1 | level3_from_level2 | deformable/dual_arm_gripper | 0.00 | 0.00 | | DualArmWeaveCloth-v1 | level3_from_level2 | deformable/dual_arm_gripper | 0.00 | 0.00 | | GroceryPrepare-v1 | level3_from_level2 | rigid_body/single_arm_gripper | 0.00 | 0.00 | | HammerNail-v1 | level3_from_level2 | rigid_body/single_arm_dex | 0.00 | 0.00 | | HitBox-v1 | level3_from_level2 | deformable/single_arm_dex | 0.00 | 0.00 | | LiquidMeasuring-v1 | level3_from_level2 | deformable/single_arm_gripper | 0.00 | 0.00 | | MazeBlockPush-v1 | level3_from_level2 | rigid_body/single_arm_gripper | 0.00 | 0.00 | | MobilePickPlace-v1 | level3_from_level2 | rigid_body/single_arm_dex | 0.00 | 0.00 | | PressFitSoftPeg-v1 | level3_from_level2 | deformable/single_arm_dex | 0.00 | 0.00 | | PushTargetPose-v1 | level3_from_level2 | rigid_body/single_arm_gripper | 0.00 | 0.00 | | SeparateTwoRopesEnv-v1 | level3_from_level2 | deformable/single_arm_gripper | 0.00 | 0.06 | | Stack6Blocks-v1 | level3_from_level2 | rigid_body/single_arm_gripper | 0.00 | 0.00 | | TweezersPickPlace-v1 | level3_from_level2 | rigid_body/single_arm_dex | 0.00 | 0.00 | | RopeBridgeDex-v1 | level2_from_level3 | deformable/single_arm_dex | 0.62 | 0.32 | | HangMug-v1 | level2_from_level3 | rigid_body/single_arm_gripper | 0.60 | 0.42 | | ClothWipe-v1 | level2_from_level3 | deformable/single_arm_dex | 0.58 | 0.24 | | FoldShirt-v1 | level2_from_level3 | deformable/single_arm_gripper | 0.46 | 0.62 | | DexOpenDoor-v1 | level2_from_level3 | rigid_body/single_arm_dex | 0.40 | 0.28 | | GraspTwoBlocks-v1 | level2_from_level3 | rigid_body/single_arm_dex | 0.38 | 0.56 | | ReorientPen-v1 | level2_from_level3 | rigid_body/single_arm_dex | 0.36 | 0.30 | | HammerNailOut-v1 | level2_from_level3 | rigid_body/single_arm_dex | 0.30 | 0.32 | | DualArmOpenLaptop-v1 | level2_from_level3 | rigid_body/dual_arm_dex | 0.26 | 0.34 | | DualArmPlaceRopeOverRod-v1 | level2_from_level3 | deformable/dual_arm_dex | 0.24 | 0.48 | | PivotBook-v1 | level2_from_level3 | rigid_body/single_arm_gripper | 0.18 | 0.16 | | DualArmJugglingBall-v1 | level2_from_level3 | rigid_body/dual_arm_dex | 0.14 | 0.00 | | DualArmLiftBall-v1 | level2_from_level3 | rigid_body/dual_arm_gripper | 0.14 | 0.36 | | DualArmStraightenRope-v1 | level2_from_level3 | deformable/dual_arm_gripper | 0.14 | 0.24 | | DualArmThrowBlock-v1 | level2_from_level3 | rigid_body/dual_arm_dex | 0.14 | 0.20 | | DualArmClothAlign-v1 | level2_from_level3 | deformable/dual_arm_gripper | 0.12 | 0.50 | | DualArmStuffCloth-v1 | level2_from_level3 | deformable/dual_arm_dex | 0.12 | 0.44 | | DualArmPegInHole-v1 | level2_from_level3 | rigid_body/dual_arm_gripper | 0.10 | 0.18 | | StraightenTwoRopesSequential-v1 | level2_from_level3 | deformable/single_arm_gripper | 0.08 | 0.12 | | RollingPin-v1 | level2_from_level3 | deformable/single_arm_dex | 0.06 | 0.38 | | ScoopWater-v1 | level2_from_level3 | deformable/single_arm_gripper | 0.06 | 0.26 | | OpenBoxRetrieval-v1 | level2_from_level3 | rigid_body/single_arm_gripper | 0.04 | 0.04 | | DualArmBookPickPlace-v1 | level2_from_level3 | rigid_body/dual_arm_gripper | 0.00 | 0.00 | | DualArmCleanupPotEnv-v1 | level2_from_level3 | rigid_body/dual_arm_gripper | 0.00 | 0.00 | | DualArmOpenBottle-v1 | level2_from_level3 | rigid_body/dual_arm_dex | 0.00 | 0.00 | | DualArmPouringTwoCups-v1 | level2_from_level3 | deformable/dual_arm_dex | 0.00 | 0.00 | | DualArmPushObject-v1 | level2_from_level3 | deformable/dual_arm_gripper | 0.00 | 0.00 | | KitAssembly-v1 | level2_from_level3 | rigid_body/single_arm_gripper | 0.00 | 0.00 |