lok-i/vibe

Post-training humanoid whole-body trackers for perceptive control tasks

Python

61

6 commits

updated Oct 1, 2026

See the code

README

vibe

arXiv Project Live Demo Hugging Face License

ViBe on a Unitree G1: stepping, dodging, carrying, cube reorientation

implementation accompanying ViBe: Visual Behavior Adaptation for Perceptive Humanoid Whole-Body Control.

install

Requires uv and Git LFS; uv fetches Python itself.

git clone https://github.com/lok-i/vibe && cd vibe
uv venv --prompt vibe
source .venv/bin/activate
bash scripts/setup/sync_deps.sh     # Vibe + pinned deps
bash scripts/setup/sync_data.sh     # all | inhouse | omre | grail

data modes, dependencies, troubleshooting: docs/setup.md.

usage

# train
list-envs                                   # task ids
train Vibe-Repose-BigCubeFloor-ImgFeat-Ext --env.scene.num-envs 4096 \
  --agent.max-iterations 60000 --env.commands.motion.init-phase-anneal-iterations 50000 \
  --agent.wandb-project vibe

# play
play Vibe-Repose-BigCubeFloor-ImgFeat-Ext --agent release --viewer native
play Vibe-Uolm-ImgFeat-Ext --agent initial --viewer native
argoptions
--agentauto · initial · release · trained · zero · random
--checkpoint-file · --wandb-run-pathfor trained
--viewerauto · native · viser (also records clips)
--env.img-encoder (train)backbones; default Theia-tiny
--agent.logger (train)wandb · tensorboard; reading the metrics
  • checkpoints: lkrajan/vibe, one per task
  • --agent release: fetched on first use into ~/.cache/vibe/releases
  • all up front: bash scripts/setup/download_released_models.sh
  • train commands, every task: docs/tasks.md

export ONNX

bash scripts/setup/sync_deps.sh --deploy           # + onnxruntime
export-agent   <task-id> --release                 # policy -> exports/agent/<task-id>/
export-agent   <task-id> --release --viewer native # + watch the two-world check
export-encoder --tag theia-tiny                    # vision backbone -> exports/enc/

for deployment support, see: docs/export.md.

test

ruff check src tests    # lint (also CI)
pytest tests/           # contracts over the synced data; no GPU, ~7 s

tasks

Vibe-Repose-BigCubeFloor-ImgFeat-Ext
Vibe-Repose-BigCubeFloor-ImgFeat-Ext
Vibe-Uolm-ImgFeat-Ext
Vibe-Uolm-ImgFeat-Ext
Vibe-Dodge-ConeFast-ImgFeat-Ext
Vibe-Dodge-ConeFast-ImgFeat-Ext
Vibe-PerLoco-OmRe-ImgFeat-Ext
Vibe-PerLoco-OmRe-ImgFeat-Ext
Vibe-PerLoco-Grail-ImgFeat-Ext
Vibe-PerLoco-Grail-ImgFeat-Ext

contribute

We welcome contributions, be it an item on our roadmap or new features. Feel free to open an issue/PR.

license

Code: BSD-3-Clause. Third-party models, data and the released checkpoints keep their own terms: THIRD_PARTY_NOTICES.md.

humanoid-control
mjlab
perceptive-locomotion
ppo
reinforcement-learning
robot-learning
vibe

lok-i/vibe

Post-training humanoid whole-body trackers for perceptive control tasks

Python

61

6 commits

updated Oct 1, 2026

See the code

README

vibe

arXiv Project Live Demo Hugging Face License

ViBe on a Unitree G1: stepping, dodging, carrying, cube reorientation

implementation accompanying ViBe: Visual Behavior Adaptation for Perceptive Humanoid Whole-Body Control.

install

Requires uv and Git LFS; uv fetches Python itself.

git clone https://github.com/lok-i/vibe && cd vibe
uv venv --prompt vibe
source .venv/bin/activate
bash scripts/setup/sync_deps.sh     # Vibe + pinned deps
bash scripts/setup/sync_data.sh     # all | inhouse | omre | grail

data modes, dependencies, troubleshooting: docs/setup.md.

usage

# train
list-envs                                   # task ids
train Vibe-Repose-BigCubeFloor-ImgFeat-Ext --env.scene.num-envs 4096 \
  --agent.max-iterations 60000 --env.commands.motion.init-phase-anneal-iterations 50000 \
  --agent.wandb-project vibe

# play
play Vibe-Repose-BigCubeFloor-ImgFeat-Ext --agent release --viewer native
play Vibe-Uolm-ImgFeat-Ext --agent initial --viewer native
argoptions
--agentauto · initial · release · trained · zero · random
--checkpoint-file · --wandb-run-pathfor trained
--viewerauto · native · viser (also records clips)
--env.img-encoder (train)backbones; default Theia-tiny
--agent.logger (train)wandb · tensorboard; reading the metrics
  • checkpoints: lkrajan/vibe, one per task
  • --agent release: fetched on first use into ~/.cache/vibe/releases
  • all up front: bash scripts/setup/download_released_models.sh
  • train commands, every task: docs/tasks.md

export ONNX

bash scripts/setup/sync_deps.sh --deploy           # + onnxruntime
export-agent   <task-id> --release                 # policy -> exports/agent/<task-id>/
export-agent   <task-id> --release --viewer native # + watch the two-world check
export-encoder --tag theia-tiny                    # vision backbone -> exports/enc/

for deployment support, see: docs/export.md.

test

ruff check src tests    # lint (also CI)
pytest tests/           # contracts over the synced data; no GPU, ~7 s

tasks

Vibe-Repose-BigCubeFloor-ImgFeat-Ext
Vibe-Repose-BigCubeFloor-ImgFeat-Ext
Vibe-Uolm-ImgFeat-Ext
Vibe-Uolm-ImgFeat-Ext
Vibe-Dodge-ConeFast-ImgFeat-Ext
Vibe-Dodge-ConeFast-ImgFeat-Ext
Vibe-PerLoco-OmRe-ImgFeat-Ext
Vibe-PerLoco-OmRe-ImgFeat-Ext
Vibe-PerLoco-Grail-ImgFeat-Ext
Vibe-PerLoco-Grail-ImgFeat-Ext

contribute

We welcome contributions, be it an item on our roadmap or new features. Feel free to open an issue/PR.

license

Code: BSD-3-Clause. Third-party models, data and the released checkpoints keep their own terms: THIRD_PARTY_NOTICES.md.

humanoid-control
mjlab
perceptive-locomotion
ppo
reinforcement-learning
robot-learning
vibe