BridgeWAM Checkpoints

Released checkpoints for BridgeWAM, a video-action model that connects a pretrained video expert to a lightweight action expert through Latent Bridge Queries (LBQs).

This repository provides separate checkpoints for LIBERO and RoboTwin, together with the normalization statistics required by each checkpoint.

Files

README.md
libero/
  model.pt
  dataset_stats.json
robotwin/
  model.pt
  dataset_stats.json

Included checkpoints

Checkpoint Benchmark Camera inputs Action dimensions
libero/model.pt LIBERO Front and wrist cameras 7
robotwin/model.pt RoboTwin Head and two wrist cameras 14

Use these checkpoints with the following task configurations in the BridgeWAM codebase:

  • LIBERO: task=libero_uncond_2cam224_lbqs_only_2layer_alternating_cross_self_fullfinetune_1e-4
  • RoboTwin: task=robotwin_bridgewam_3cam384_lbq32_2layer_1e-4

Always use the dataset_stats.json from the same benchmark folder as the checkpoint. The two checkpoints have different action and proprioception dimensions and are not interchangeable.

BridgeWAM configuration

Both checkpoints use a 30-layer Wan2.2 video expert and a two-layer action expert with alternating cross-attention and self-attention. They use 32 LBQs, injected from video layer 0 and read out at the final video layer (readout_layer=-1). Action conditioning uses lbq_only, without direct Video-to-Action K/V routing.

The standard action-inference path computes LBQ conditioning once from the observations, language instruction and proprioception, then reuses it throughout action denoising. It does not generate future video at test time.

The release inference settings use a 32-step action horizon and 10 denoising steps. The LIBERO evaluator replans after 10 actions; the RoboTwin evaluator replans after 24 actions.

Download

pip install -U huggingface_hub
hf download BridgeWAM/bridgewam --local-dir ./checkpoints/bridgewam

Evaluation

Install the BridgeWAM code and dependencies and run the commands below from the code repository root, in its configured Linux/CUDA environment. The checkpoints require the matching Wan VAE, text encoder and tokenizer resources, as described in the code README. These external resources and simulator assets are not included in this model repository.

Common environment settings:

export BRIDGEWAM_PYTHON="$(command -v python)"
export PYTHONPATH="$PWD/src:$PWD${PYTHONPATH:+:$PYTHONPATH}"
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
export MUJOCO_GL=egl
export PYOPENGL_PLATFORM=egl
export DIFFSYNTH_MODEL_BASE_PATH=/path/to/pretrained-models

LIBERO

Install LIBERO and configure its BDDL files, initial states and simulator assets. Replace /path/to/LIBERO with the environment repository path.

export LIBERO_ROOT=/path/to/LIBERO
export PYTHONPATH="$LIBERO_ROOT:$PYTHONPATH"

python experiments/libero/run_libero_manager.py \
  task=libero_uncond_2cam224_lbqs_only_2layer_alternating_cross_self_fullfinetune_1e-4 \
  ckpt=./checkpoints/bridgewam/libero/model.pt \
  EVALUATION.dataset_stats_path=./checkpoints/bridgewam/libero/dataset_stats.json \
  EVALUATION.output_dir="./runs/eval/libero/$(date +%Y%m%d_%H%M%S)" \
  EVALUATION.num_trials=50 \
  EVALUATION.num_inference_steps=10 \
  model.skip_dit_load_from_pretrain=true \
  seed=42 \
  MULTIRUN.num_gpus=8 \
  MULTIRUN.max_tasks_per_gpu=6

The default manager evaluates all 40 tasks across LIBERO-Spatial, LIBERO-Object, LIBERO-Goal and LIBERO-Long (libero_10).

LIBERO-Plus

Use the same libero/model.pt and libero/dataset_stats.json for LIBERO-Plus; no separate Plus checkpoint is required. Install the external LIBERO-Plus environment, its extra dependencies and simulator assets. Sensor-noise tasks also require ImageMagick. Replace /path/to/LIBERO-plus below with that checkout.

The full protocol evaluates 10,030 task variants with one trial per variant. Each worker loads the model once and evaluates a shard of up to 50 variants.

export ROOT_DIR="$PWD"
export LIBERO_PLUS_REPO=/path/to/LIBERO-plus
export LIBERO_ROOT="$LIBERO_PLUS_REPO"
export PYTHONPATH="$PWD/src:$PWD:$LIBERO_PLUS_REPO"

LIBERO_PLUS_DETACH=true \
bash experiments/libero-plus/run_stage1.sh \
  task=libero_uncond_2cam224_lbqs_only_2layer_alternating_cross_self_fullfinetune_1e-4 \
  ckpt=./checkpoints/bridgewam/libero/model.pt \
  EVALUATION.dataset_stats_path=./checkpoints/bridgewam/libero/dataset_stats.json \
  EVALUATION.output_dir="./runs/eval/libero-plus/$(date +%Y%m%d_%H%M%S)" \
  EVALUATION.num_trials=1 \
  EVALUATION.num_inference_steps=10 \
  EVALUATION.save_rollout_video=true \
  LIBERO_PLUS.repo_path="$LIBERO_PLUS_REPO" \
  LIBERO_PLUS.expected_num_tasks=10030 \
  model.skip_dit_load_from_pretrain=true \
  seed=42 \
  MULTIRUN.tasks_per_worker=50 \
  MULTIRUN.num_gpus=8 \
  MULTIRUN.max_tasks_per_gpu=5

This launcher requires tmux and detaches the manager by default. It prints the session name and log location; returning to the terminal does not mean evaluation has finished. Wait for completion before starting another benchmark on the same GPUs. Results include libero_plus_task_results.csv and libero_plus_summary.json in the selected output directory.

LIBERO-Pro

Use the same LIBERO checkpoint and statistics for LIBERO-Pro. Install the external LIBERO-PRO checkout with its benchmark task map, BDDL files, initial states and simulator assets. The current adapter expects these resources under LIBERO-PRO/libero/libero/{bddl_files,init_files,assets}. Use the same generated resource release and environment variant for comparisons between models.

The full protocol selects 200 tasks across five perturbation categories (environment, position, object, language and task), with 50 trials per task for 10,000 episodes. These are separate perturbation categories, not their runtime combinations. A task-count check alone does not verify resource equivalence.

export LIBERO_PRO_REPO=/path/to/LIBERO-PRO
export LIBERO_ROOT="$LIBERO_PRO_REPO"
export PYTHONPATH="$PWD/src:$PWD:$LIBERO_PRO_REPO"

python experiments/libero-pro/run_libero_pro_manager.py \
  task=libero_uncond_2cam224_lbqs_only_2layer_alternating_cross_self_fullfinetune_1e-4 \
  ckpt=./checkpoints/bridgewam/libero/model.pt \
  EVALUATION.dataset_stats_path=./checkpoints/bridgewam/libero/dataset_stats.json \
  EVALUATION.output_dir="./runs/eval/libero-pro/$(date +%Y%m%d_%H%M%S)" \
  EVALUATION.num_trials=50 \
  EVALUATION.num_inference_steps=10 \
  EVALUATION.save_rollout_video=true \
  LIBERO_PRO.repo_path="$LIBERO_PRO_REPO" \
  'LIBERO_PRO.perturbations=[environment,position,object,language,task]' \
  LIBERO_PRO.expected_num_tasks=200 \
  model.skip_dit_load_from_pretrain=true \
  seed=42 \
  MULTIRUN.num_gpus=8 \
  MULTIRUN.max_tasks_per_gpu=5

The Pro manager runs in the foreground and waits for all workers; run it inside tmux if it must survive a terminal disconnect. Each run writes an isolated environment configuration, task_manifest.jsonl, task logs, summary.json and manager_runtime.json. Use a fresh output directory and check that the summary is complete; an existing summary file alone does not establish completion.

RoboTwin

Install the complete RoboTwin environment and assets at third_party/RoboTwin, and expose the bridgewam_policy adapter under its policy/ directory. Empty placeholder files are not a working simulator installation.

python experiments/robotwin/run_robotwin_manager.py \
  task=robotwin_bridgewam_3cam384_lbq32_2layer_1e-4 \
  ckpt=./checkpoints/bridgewam/robotwin/model.pt \
  EVALUATION.dataset_stats_path=./checkpoints/bridgewam/robotwin/dataset_stats.json \
  EVALUATION.output_dir="./runs/eval/robotwin/$(date +%Y%m%d_%H%M%S)" \
  EVALUATION.eval_num_episodes=100 \
  EVALUATION.num_inference_steps=10 \
  model.skip_dit_load_from_pretrain=true \
  seed=42 \
  MULTIRUN.num_gpus=8 \
  MULTIRUN.max_tasks_per_gpu=4

The manager schedules clean and randomized evaluation settings. The concurrency values above are launch settings, not minimum GPU requirements; reduce MULTIRUN.max_tasks_per_gpu if GPU memory is insufficient.

Notes and limitations

  • These are task-specific research checkpoints, not general-purpose robot policies.
  • Use the matching camera layout, action/state representation and normalization.
  • Load weights through the BridgeWAM model loader and matching task configuration; these are not Transformers AutoModel checkpoints.
  • Successful checkpoint loading does not establish closed-loop task success. Benchmark results require the corresponding simulator and a complete evaluation.
  • Real-robot deployment requires independent validation and appropriate safeguards.
  • Upstream software, model and dataset licenses continue to apply.

Project

BridgeWAM builds on Wan, Fast-WAM and LeRobot components. See the code repository for upstream attribution, environment setup and additional evaluation instructions.

Downloads last month

-

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