Building General-Purpose Robots Based on Embodied Foundation Model
See the codeWe are building embodied foundation models to capture and compress the world's most valuable data: continuous, high-fidelity physical interaction.
By creating a direct feedback loop between model decisions and the body's lived experience, we enable generalizable intelligence that understands not just how the world works, but how to act effectively within it.
This repository provides the training and inference code for the WALL series open-source embodied foundation models. It includes LeRobot data preparation, model configuration, flow-matching and FAST action branches, public serving and evaluation utilities, and exported CUDA operator sources that compile during package installation.
Create and activate a conda environment:
conda create --name wallx python=3.10
conda activate wallx
Install requirements:
pip install -r requirements.txt
export FLASH_ATTN_CUDA_ARCHS=$(python -c 'import torch; print(f"{torch.cuda.get_device_capability()[0]}{torch.cuda.get_device_capability()[1]}")')
MAX_JOBS=4 pip install flash-attn==2.8.3 --no-build-isolation
Install DMuon, which is used by the default training configs:
pip install "dmuon @ git+https://github.com/X-Square-Robot/dmuon.git"
Install LeRobot:
git clone https://github.com/huggingface/lerobot.git
cd lerobot
pip install --no-deps -e .
Use --no-deps for LeRobot so it does not override the Wall-X dependency
versions installed from requirements.txt.
Install Wall-X:
MAX_JOBS=8 pip install --no-build-isolation -e .
Public helper scripts live under scripts/; the examples below use the
repository-root form, such as python scripts/fake_inference.py.
The exported CUDA operator sources are included in
wall_x/model/core/ops/csrc/. setup.py builds them with PyTorch
CUDAExtension when Wall-X is installed. ninja is included in
requirements.txt for parallel builds, and MAX_JOBS controls compile
parallelism. --no-build-isolation is required so the build can use the torch
package already installed in the active environment.
Before training, see workspace/README.md for configuration details,
including:
Download the pretrained checkpoint, copy
workspace/example/lerobot/qwen2_5_lerobot_template.yml, replace the
placeholder paths, and launch training with:
python -m wall_x.trainer.fsdp_trainer.train_fsdp --config <path/to/config.yml>
For Wall-OSS-0.5 fine-tuning, normalization, LIBERO evaluation, and open-loop
WebSocket evaluation instructions, see workspace/README.md.
For a minimal end-to-end example, run:
python scripts/fake_inference.py --checkpoint-path <path/to/checkpoint>
This script demonstrates how to:
Qwen2_5_VLMoEForAction.from_pretrained()validate mode at bfloat16Convenience launchers for closed-loop simulator evaluation live under
scripts/. LIBERO simulator setup is optional and documented with the helper
scripts; see scripts/README.md.
bash scripts/run_libero.sh <path/to/checkpoint>
Start a Wall-X WebSocket server with:
bash scripts/run_serving.sh \
--checkpoint-path <path/to/checkpoint> \
--train-config-path <path/to/config.yml> \
--port 32195
The wrapper has no built-in checkpoint path. It returns raw model action chunks
by default, which is suitable for open-loop evaluation. Pass
--serialize-actions for clients that expect robot-serialized actions.
To compare predictions from a running Wall-X WebSocket server against LeRobot ground truth, run:
python scripts/draw_openloop_plot.py \
--uri ws://127.0.0.1:32195 \
--dataset-root <path/to/lerobot_dataset> \
--train-config <path/to/config.yml> \
--episode-indices 0,1,2
Scan the QR code on WeChat to join the discussion group.
If you find WALL-OSS models useful, please cite:
@article{zhai2025igniting,
title = {Igniting VLMs Toward the Embodied Space},
author = {Zhai, Andy and Liu, Brae and Fang, Bruno and Cai, Chalse and Ma, Ellie and Yin, Ethan and Wang, Hao and Zhou, Hugo and Wang, James and Shi, Lights and Liang, Lucy and Wang, Make and Wang, Qian and Gan, Roy and Yu, Ryan and Li, Shalfun and Liu, Starrick and Chen, Sylas and Chen, Vincent and Xu, Zach},
journal = {arXiv preprint arXiv:2509.11766},
year = {2025}
}
171 followers · starred Jun 2026
1,754 followers · starred Oct 2025
37 followers · starred Jan 2026
44 followers · starred Sep 2025
Building General-Purpose Robots Based on Embodied Foundation Model
See the codeWe are building embodied foundation models to capture and compress the world's most valuable data: continuous, high-fidelity physical interaction.
By creating a direct feedback loop between model decisions and the body's lived experience, we enable generalizable intelligence that understands not just how the world works, but how to act effectively within it.
This repository provides the training and inference code for the WALL series open-source embodied foundation models. It includes LeRobot data preparation, model configuration, flow-matching and FAST action branches, public serving and evaluation utilities, and exported CUDA operator sources that compile during package installation.
Create and activate a conda environment:
conda create --name wallx python=3.10
conda activate wallx
Install requirements:
pip install -r requirements.txt
export FLASH_ATTN_CUDA_ARCHS=$(python -c 'import torch; print(f"{torch.cuda.get_device_capability()[0]}{torch.cuda.get_device_capability()[1]}")')
MAX_JOBS=4 pip install flash-attn==2.8.3 --no-build-isolation
Install DMuon, which is used by the default training configs:
pip install "dmuon @ git+https://github.com/X-Square-Robot/dmuon.git"
Install LeRobot:
git clone https://github.com/huggingface/lerobot.git
cd lerobot
pip install --no-deps -e .
Use --no-deps for LeRobot so it does not override the Wall-X dependency
versions installed from requirements.txt.
Install Wall-X:
MAX_JOBS=8 pip install --no-build-isolation -e .
Public helper scripts live under scripts/; the examples below use the
repository-root form, such as python scripts/fake_inference.py.
The exported CUDA operator sources are included in
wall_x/model/core/ops/csrc/. setup.py builds them with PyTorch
CUDAExtension when Wall-X is installed. ninja is included in
requirements.txt for parallel builds, and MAX_JOBS controls compile
parallelism. --no-build-isolation is required so the build can use the torch
package already installed in the active environment.
Before training, see workspace/README.md for configuration details,
including:
Download the pretrained checkpoint, copy
workspace/example/lerobot/qwen2_5_lerobot_template.yml, replace the
placeholder paths, and launch training with:
python -m wall_x.trainer.fsdp_trainer.train_fsdp --config <path/to/config.yml>
For Wall-OSS-0.5 fine-tuning, normalization, LIBERO evaluation, and open-loop
WebSocket evaluation instructions, see workspace/README.md.
For a minimal end-to-end example, run:
python scripts/fake_inference.py --checkpoint-path <path/to/checkpoint>
This script demonstrates how to:
Qwen2_5_VLMoEForAction.from_pretrained()validate mode at bfloat16Convenience launchers for closed-loop simulator evaluation live under
scripts/. LIBERO simulator setup is optional and documented with the helper
scripts; see scripts/README.md.
bash scripts/run_libero.sh <path/to/checkpoint>
Start a Wall-X WebSocket server with:
bash scripts/run_serving.sh \
--checkpoint-path <path/to/checkpoint> \
--train-config-path <path/to/config.yml> \
--port 32195
The wrapper has no built-in checkpoint path. It returns raw model action chunks
by default, which is suitable for open-loop evaluation. Pass
--serialize-actions for clients that expect robot-serialized actions.
To compare predictions from a running Wall-X WebSocket server against LeRobot ground truth, run:
python scripts/draw_openloop_plot.py \
--uri ws://127.0.0.1:32195 \
--dataset-root <path/to/lerobot_dataset> \
--train-config <path/to/config.yml> \
--episode-indices 0,1,2
Scan the QR code on WeChat to join the discussion group.
If you find WALL-OSS models useful, please cite:
@article{zhai2025igniting,
title = {Igniting VLMs Toward the Embodied Space},
author = {Zhai, Andy and Liu, Brae and Fang, Bruno and Cai, Chalse and Ma, Ellie and Yin, Ethan and Wang, Hao and Zhou, Hugo and Wang, James and Shi, Lights and Liang, Lucy and Wang, Make and Wang, Qian and Gan, Roy and Yu, Ryan and Li, Shalfun and Liu, Starrick and Chen, Sylas and Chen, Vincent and Xu, Zach},
journal = {arXiv preprint arXiv:2509.11766},
year = {2025}
}
171 followers · starred Jun 2026
1,754 followers · starred Oct 2025
37 followers · starred Jan 2026
44 followers · starred Sep 2025