# Holosoma Holosoma (Greek: "whole-body") is a comprehensive humanoid robotics framework for training and deploying reinforcement learning policies on humanoid robots, as well as motion retargeting. Supports locomotion (velocity tracking) and whole-body tracking tasks across multiple simulators (IsaacSim, MJWarp, MuJoCo) with algorithms like PPO and FastSAC. ## Features - **Multi-simulator support**: IsaacGym (no longer supported), IsaacSim, MuJoCo Warp (MJWarp), and MuJoCo (inference only) - **Multiple RL algorithms**: PPO and FastSAC - **Robot support**: Unitree G1 and Booster T1 humanoids - **Task types**: Locomotion (velocity tracking) and whole-body tracking - **Sim-to-sim and sim-to-real deployment**: Shared inference pipeline across simulation and real robot control - **Motion retargeting**: Convert human motion capture data to robot motions while preserving interactions with objects and terrain - **Wandb integration**: Video logging, automatic ONNX checkpoint uploads, and direct checkpoint loading from Wandb ## Repository Structure ``` src/ ├── holosoma/ # Core training framework (locomotion & whole-body tracking) ├── holosoma_inference/ # Inference and deployment pipeline └── holosoma_retargeting/ # Motion retargeting from human motion data to robots ``` ## Documentation - **[Training Guide](src/holosoma/README.md)** - Train locomotion and whole-body tracking policies in IsaacSim/MJWarp - **[Inference & Deployment Guide](src/holosoma_inference/README.md)** - Deploy policies to real robots or evaluate in MuJoCo simulation - **[Retargeting Guide](src/holosoma_retargeting/holosoma_retargeting/README.md)** - Convert human motion capture data to robot motions - **[Robot SDK Bridges](src/holosoma/holosoma/bridge/README.md)** - Choose a bridge and tune sim-to-sim transport performance ## Quick Start ### Setup Choose the appropriate setup script based on your use case: ```bash # For IsaacSim training # Requires Ubuntu 22.04 or later due to IsaacSim dependencies bash scripts/setup_isaacsim.sh # For MJWarp training and MuJoCo simulation (inference) — conda bash scripts/setup_mujoco.sh # For MJWarp training and MuJoCo simulation (inference) — uv (alternative) bash scripts/setup_mujoco_via_uv.sh # For inference/deployment bash scripts/setup_inference.sh # For motion retargeting bash scripts/setup_retargeting.sh ``` ### Training Train a G1 robot with FastSAC on IsaacSim: ```bash source scripts/source_isaacsim_setup.sh python src/holosoma/holosoma/train_agent.py \ exp:g1-29dof-fast-sac \ simulator:isaacsim \ logger:wandb \ --training.seed 1 ``` > **Note:** For headless servers, see the [training guide](src/holosoma/README.md#video-recording) for video recording configuration. See the [Training Guide](src/holosoma/README.md) for more examples and configuration options. ### Quick Demo We provide scripts to run the complete pipeline: (data downloading and processing for LAFAN), retargeting, data conversion, and whole-body tracking policy training. ```bash # Run retargeting and whole-body tracking policy training using OMOMO data bash demo_scripts/demo_omomo_wb_tracking.sh # Run retargeting and whole-body tracking policy training using LAFAN data bash demo_scripts/demo_lafan_wb_tracking.sh ``` ### Deployment & Evaluation After training, deploy your policies: - **Real Robot**: See [Real Robot Locomotion](src/holosoma_inference/docs/workflows/real-robot-locomotion.md) or [Real Robot WBT](src/holosoma_inference/docs/workflows/real-robot-wbt.md) - **MuJoCo Simulation**: See [Sim-to-Sim Locomotion](src/holosoma_inference/docs/workflows/sim-to-sim-locomotion.md) or [Sim-to-Sim WBT](src/holosoma_inference/docs/workflows/sim-to-sim-wbt.md) Or browse all deployment options in the [Inference & Deployment Guide](src/holosoma_inference/README.md). ### Demo Videos Watch real-world deployments of Holosoma policies *(click thumbnails to play)*
G1 Locomotion T1 Locomotion G1 Dancing
▶ G1 Locomotion ▶ T1 Locomotion ▶ G1 Dancing
## Legacy Isaac Gym > **NVIDIA Isaac Gym is no longer supported in this version.** > > For existing Isaac Gym workflows, use the final compatible release, [`holosoma-v0.0.3`][isaacgym-release], and its [original README][isaacgym-readme]. > > **Supported simulators:** NVIDIA Isaac Sim, MuJoCo Warp, and MuJoCo. Use a separate checkout of that release so the backend, setup scripts, dependency constraints, and documentation stay together: ```bash git clone --branch holosoma-v0.0.3 https://github.com/amazon-far/holosoma.git holosoma-isaacgym cd holosoma-isaacgym bash scripts/setup_isaacgym.sh source scripts/source_isaacgym_setup.sh ``` Follow that version's [original README][isaacgym-readme] and [training guide][isaacgym-training] for Isaac Gym training and evaluation. The PyPI releases cut from that commit: | Package | Version | Tag | |---|---|---| | `holosoma` | `0.0.3` (final Isaac Gym-compatible release) | `holosoma-v0.0.3` | | `holosoma-inference` | `0.1.3` (last release for Python 3.8 and 3.9) | `holosoma-inference-v0.1.3` | [isaacgym-release]: https://github.com/amazon-far/holosoma/releases/tag/holosoma-v0.0.3 [isaacgym-readme]: https://github.com/amazon-far/holosoma/blob/holosoma-v0.0.3/README.md [isaacgym-training]: https://github.com/amazon-far/holosoma/blob/holosoma-v0.0.3/src/holosoma/README.md ## Issue Reporting We welcome feedback and issue reports to help improve holosoma. Please use issues to: - Report bugs and technical issues - Request new features ## Support If you need help with anything aside from issues feel free to join our [discord server](https://discord.gg/TPupMvpqHc). Use the discord to discuss larger plans and other more involved problems. ## Security See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information. ## Citation If you use Holosoma in your research, please cite it according to the "Cite this repository" panel on the right sidebar of the Github repo. ## License This project is licensed under the Apache-2.0 License.