[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83250":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":36,"lastSyncTime":37,"discoverSource":38},83250,"UniLab","unilabsim\u002FUniLab","unilabsim","UniLab: A Heterogeneous Architecture for Robot RL Beyond GPU-Dominant Paradigms",null,"https:\u002F\u002Fgithub.com\u002Funilabsim\u002FUniLab","Python",701,63,3,12,0,94,120,282,9.42,false,"main",[24,25,26,27,28,29,30,31,32],"macos","mujoco","reinforcement-learning","rl-infra","robotics-simulation","motrixsim","cross-platform","cuda","rocm","2026-06-12 02:04:32","\u003Ch1 align=\"center\"> UniLab \u003C\u002Fh1>\n\n\u003Ch3 align=\"center\">\nA Heterogeneous Architecture for Robot RL Beyond GPU-Dominant Paradigms\n\u003C\u002Fh3>\n\n\u003Cp align=\"center\">Languages: English | \u003Ca href=\"README_zh.md\">简体中文\u003C\u002Fa>\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Funilabsim.github.io\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fproject-page-brightgreen\" alt=\"Project Page\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.30313\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Farxiv-2605.30313-red\" alt=\"arXiv\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Funilabsim.github.io\u002Fpaper\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpaper-UniLab-orange\" alt=\"Paper\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-UniLab--doc-blue\" alt=\"Documentation\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Funilabsim.github.io\u002Fpaper\u002Fpaper2gal.html\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGalgame-play-ff69b4\" alt=\"Galgame\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FEPCuguRmGX\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-join-5865F2?logo=discord&logoColor=white\" alt=\"Discord\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-blue\" alt=\"Apache-2.0 License\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fsphinx\u002Fsource\u002F_static\u002Fassets\u002Fteaser.jpg\" alt=\"UniLab Teaser\" width=\"95%\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\u003Cem>Train robot RL without a GPU simulation backend. Teaser rendered with MotrixSim.\u003C\u002Fem>\u003C\u002Fp>\n\nStart with the `Quick Demo` below to run the primary training command. The recommended setup uses `uv`; Conda and pip users should still follow the `uv` workflow for now. Platform-specific notes and current boundaries are in the [installation guide](https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002Fen\u002F1-getting_started\u002F2-installation.html).\n\n## ✨ Highlights\n\n```\n┌───────────────────┐                            ┌─────────────────────────┐\n│  CPU Physics Sim  │   Unified Shared Memory    │   GPU Policy Training   │\n│   MuJoCo\u002FMotrix   │ ─────────────────────────▶ │     PPO \u002F SAC \u002F TD3     │\n│ Multithread Step  │    SharedReplayBuffer      │ CUDA \u002F MPS \u002F ROCm \u002F XPU │\n└───────────────────┘                            └─────────────────────────┘\n```\n\n- **Heterogeneous RL runtime:** CPU-parallel simulation streams transitions through shared memory while policy learning runs on GPU accelerators.\n- **Two physics backends:** MuJoCoUni and MotrixSim are integrated through backend-specific adapters and task owner configs.\n- **Unified training CLI:** `uv run train` and `uv run eval` cover PPO, MLX PPO, APPO, SAC, TD3, and FlashSAC; additional HORA and HIM-PPO paths are documented as script-level workflows.\n- **Config-owned tasks:** Hydra owner YAML files select task, reward, backend, and algorithm settings together; backend switching is expressed as `task=\u003Ctask>\u002F\u003Cbackend>`.\n- **Cross-platform setup paths:** The repository tracks Linux CUDA, Linux ROCm, Linux XPU, and Apple Silicon \u002F macOS setup flows.\n\n## 🚀 Quick Demo\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"33%\">\n      \u003Cimg src=\"docs\u002Fsphinx\u002Fsource\u002F_static\u002Fdemos\u002Fdance.jpg\" alt=\"dance demo\" width=\"100%\">\n      \u003Cbr>\n      \u003Csub>\u003Cb>dance\u003C\u002Fb>\u003Cbr>G1 motion tracking\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"33%\">\n      \u003Cimg src=\"docs\u002Fsphinx\u002Fsource\u002F_static\u002Fdemos\u002Fwallflip.jpg\" alt=\"wallflip demo\" width=\"100%\">\n      \u003Cbr>\n      \u003Csub>\u003Cb>wallflip\u003C\u002Fb>\u003Cbr>G1 wall flip\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"33%\">\n      \u003Cimg src=\"docs\u002Fsphinx\u002Fsource\u002F_static\u002Fdemos\u002Fteaser.jpg\" alt=\"teaser demo\" width=\"100%\">\n      \u003Cbr>\n      \u003Csub>\u003Cb>teaser\u003C\u002Fb>\u003Cbr>MotrixSim teaser\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"33%\">\n      \u003Cimg src=\"docs\u002Fsphinx\u002Fsource\u002F_static\u002Fdemos\u002Fboxtracking.jpg\" alt=\"boxtracking demo\" width=\"100%\">\n      \u003Cbr>\n      \u003Csub>\u003Cb>boxtracking\u003C\u002Fb>\u003Cbr>G1 box tracking\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"33%\">\n      \u003Cimg src=\"docs\u002Fsphinx\u002Fsource\u002F_static\u002Fdemos\u002Finhandgrasp.jpg\" alt=\"inhandgrasp demo\" width=\"100%\">\n      \u003Cbr>\n      \u003Csub>\u003Cb>inhandgrasp\u003C\u002Fb>\u003Cbr>Sharpa in-hand\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"33%\">\n      \u003Cimg src=\"docs\u002Fsphinx\u002Fsource\u002F_static\u002Fdemos\u002Flocomani.jpg\" alt=\"locomani demo\" width=\"100%\">\n      \u003Cbr>\n      \u003Csub>\u003Cb>locomani\u003C\u002Fb>\u003Cbr>Go2 loco-manipulation\u003C\u002Fsub>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n```bash\n# 0. If uv is not installed\ncurl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n\n# 1. Clone the repository\ngit clone https:\u002F\u002Fgithub.com\u002Funilabsim\u002FUniLab.git\ncd UniLab\n\n# 2. Install dependencies\n# Pick the setup command for your platform.\n\n# Linux CUDA or macOS\nmake setup-motrix\n# Without shell completion setup: uv sync --extra motrix\n# If `make` is not installed: uv sync --extra motrix && uv run --no-sync unilab-complete install\n\n# Linux AMD \u002F ROCm\n# make sync-rocm\n\n# Linux Intel Arc \u002F iGPU\n# make sync-xpu\n\n# 3. Pre-trained checkpoint playback (downloads from Hugging Face on first run)\nuv run demo dance\n```\n\nAvailable demo names: `teaser`, `dance`, `wallflip`, `boxtracking`, `locomani`, `inhandgrasp`. See the [Unified CLI](https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002Fen\u002F2-user_guide\u002F1-training\u002F1-cli_reference.html) page for the full list and flags.\n\n> Mainland China users: motions, scenes, and demo checkpoints are pulled from Hugging Face on first run. If `huggingface.co` is unreachable, point the client at the community mirror before running demo commands:\n>\n> ```bash\n> export HF_ENDPOINT=https:\u002F\u002Fhf-mirror.com\n> ```\n\nFor training and evaluation:\n\n```bash\nuv run train --algo appo --task go2_joystick_flat --sim motrix\n\nuv run eval --algo appo --task go2_joystick_flat --sim motrix --load-run -1\n\n# Headless Motrix video export for Linux\u002Fserver runs\nuv run eval --algo appo --task go2_joystick_flat --sim motrix --load-run -1 --render-mode record\n```\n\nThis routes through the `go2_joystick_flat\u002Fmotrix` task owner config and keeps backend selection explicit.\n\nOn macOS \u002F MacBook, the UniLab CLI routes Motrix interactive playback through `mxpython` when needed. Motrix defaults to interactive playback; use `--render-mode record` for headless video export or `--render-mode none` to skip playback. Detailed script-level commands are in the [Training Guide](https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002Fen\u002F2-user_guide\u002F1-training\u002F0-index.html).\n\n## 🏃 Example Runs\n\n```bash\nuv run train --algo sac --task g1_walk_flat --sim mujoco\n```\n\n```bash\nuv run train --algo sac --task g1_motion_tracking --sim motrix\n```\n\n```bash\nuv run train --algo appo --task sharpa_inhand --sim mujoco --profile hora\n```\n\n> Grasp caches auto-download from Hugging Face (`unilabsim\u002Funilab-caches`) on first run into `src\u002Funilab\u002Fassets\u002Fcaches\u002F`; no manual step is needed. To regenerate locally for custom scales (slow):\n>\n> ```bash\n> bash scripts\u002Fsharpa_collect_grasps.sh 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5\n> ```\n\n```bash\nuv run train --algo ppo --task go2_arm_manip_loco --sim motrix\nuv run eval --algo ppo --task go2_arm_manip_loco --sim motrix --load-run -1\n```\n\nUse `uv run train` for training, `uv run eval` for checkpoint playback, and `uv run demo` for the local demo preset. These commands keep algorithm, task, and backend selection explicit.\n\nMore training commands, script-level entrypoints, algorithm matrix, resume flow, and W&B details are in the [Training Guide](https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002Fen\u002F2-user_guide\u002F1-training\u002F0-index.html).\n\n## 📚 Documentation\n\nUse the published [UniLab documentation](https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002F); start at the [English documentation index](https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002Fen\u002F0-index.html). High-signal entrypoints:\n\n- [Getting Started](https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002Fen\u002F1-getting_started\u002F0-index.html): installation, Docker runtime, dependency setup, and first-run commands\n- [Training Guide](https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002Fen\u002F2-user_guide\u002F1-training\u002F0-index.html): training, playback, resume flow, Hydra overrides, and W&B\n- [Simulation Backends](https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002Fen\u002F2-user_guide\u002F3-backends\u002F0-index.html): generated MuJoCo \u002F Motrix support matrix\n- [Development Standard](https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002Fen\u002F4-developer_guide\u002F0-index.html): contracts, layering, and validation boundaries\n- [ADR Index](https:\u002F\u002Funilabsim.github.io\u002FUniLab-doc\u002Fadr\u002FADR-0000-index.html): accepted architecture decisions\n\n## 💬 Community\n\nJoin our [Discord server](https:\u002F\u002Fdiscord.gg\u002FEPCuguRmGX) to chat with the community and get help.\n\n| WeChat Group | Author WeChat |\n| :---: | :---: |\n| \u003Cimg src=\"docs\u002Fsphinx\u002Fsource\u002F_static\u002Fassets\u002Funilab-wechat-group.jpg\" alt=\"UniLab WeChat group QR code\" width=\"220\"> | \u003Cimg src=\"docs\u002Fsphinx\u002Fsource\u002F_static\u002Fassets\u002Funilab-wechat-assistant.jpg\" alt=\"UniLab author WeChat QR code\" width=\"150\"> |\n| Scan to join the UniLab WeChat group. | If the group is full, add the author and include `unilab交流` in your message. |\n\n## ⭐ Star History\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002Funilabsim\u002FUniLab\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=unilabsim\u002FUniLab&type=date&theme=dark&legend=top-left\" \u002F>\n      \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=unilabsim\u002FUniLab&type=date&legend=top-left\" \u002F>\n      \u003Cimg src=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=unilabsim\u002FUniLab&type=date&legend=top-left\" alt=\"UniLab Star History Chart\" width=\"70%\">\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n## 🧾 Citation\n\n### UniLab\n\n```bibtex\n@article{jia2026unilab,\n  title         = {UniLab: A Heterogeneous Architecture for Robot RL Beyond GPU-Dominant Paradigms},\n  author        = {Yufei Jia and Zhanxiang Cao and Mingrui Yu and Heng Zhang and Shenyu Chen and Dixuan Jiang and Meng Li and Xiaofan Li and Yiyang Liu and Junzhe Wu and Zheng Li and XiLin Fang and Tingyu Cui and Shengcheng Fu and Haoyang Li and Anqi Wang and Zifan Wang and Dongjie Zhu and Chenyu Cao and Zhenbiao Huang and Ziang Zheng and Jie Lu and Xin Ma and Zhengyang Wei and Xiang Zhao and Tianyue Zhan and Ye He and Yuxiang Chen and Yizhou Jiang and Yue Li and Haizhou Ge and Yuhang Dong and Fan Jia and Ziheng Zhang and Meng Zhang and Xiwa Deng and Zhixing Chen and Hanyang Shao and Chenxin Dong and Yixuan Li and Yizhi Chen and Bokui Chen and Kaifeng Zhang and Hanqing Cui and Yusen Qin and Ruqi Huang and Lei Han and Tiancai Wang and Xiang Li and Yue Gao and Guyue Zhou},\n  journal       = {arXiv preprint arXiv:2605.30313},\n  year          = {2026},\n  url           = {https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.30313}\n}\n```\n\n### Physics Backends\n\n```bibtex\n@article{jia2026mujocouni,\n  title  = {MuJoCoUni: Persistent Batched Runtime Primitives for MuJoCo},\n  author = {Jia, Yufei and Wu, Junzhe},\n  journal = {arXiv preprint arXiv:2605.24922},\n  year   = {2026}\n}\n\n@software{motrixsim2026,\n  title  = {MotrixSim: A Physics Simulation Engine for Robotics and Embodied AI},\n  author = {{Motphys Team}},\n  year   = {2026},\n  url    = {https:\u002F\u002Fmotrixsim.readthedocs.io\u002F},\n  note   = {Python binary package}\n}\n```\n","UniLab 是一个异构架构，用于机器人强化学习，超越了以GPU为主导的范式。该项目通过在CPU上并行运行物理模拟（如MuJoCo或MotrixSim），并通过统一共享内存将转换数据流传输到GPU加速器上进行策略训练，支持PPO、SAC、TD3等多种算法。其核心特色在于提供了一个统一的训练命令行接口以及跨平台的支持，包括Linux下的CUDA、ROCm、XPU和macOS\u002FApple Silicon等环境。UniLab特别适用于需要高效利用不同硬件资源来加速机器人仿真与学习的研究或开发场景。",2,"2026-06-11 04:10:41","trending"]