Open Source RoboticsRobots, software & learning

TWIST

Software

Unitree G1 whole-body imitation system with teacher/student training, a supplied tracking checkpoint and separate motion-sender and controller processes. [1]

Installation & first result →Official websiteGetting started

For
Humanoid policy researchers evaluating G1 motion tracking [1]
Source rights
Some licenses are unresolved. Review licenses
Unknowns
operating system, compute requirements not fully established. Review gaps

Source researched · Not tested by us
Sources checked · Research details

Licenses & related hardware
License
MIT · license not fully assessed for model weights, datasets · Details by part

Requirements · Research details and dates

On this page

Overview

TWIST is a whole-body imitation system for Unitree G1. Its repository combines teacher and student policy training with a general motion-tracking checkpoint and separate simulation and physical deployment scripts. It is relevant when you want to study how a high-level reference motion drives a low-level learned controller. [1]

Is this for you?

Known limitations
  • The provided live teleoperation script is described as legacy.
  • The README flags a GMR/TWIST NumPy-version compatibility question.
  • Training, simulation and physical deployment are separate configurations.

[1]

What you need

Languages / runtimes
  • Python

[2]

Dependencies
  • Python 3.8 and NumPy 1.23.0 in the documented setup
  • Isaac Gym for training; bundled rsl_rl, legged_gym and pose packages
  • MuJoCo, CUDA PyTorch and a running Redis server for the supplied simulation route
  • Unitree SDK2 Python for physical deployment

[1] [2]

Host computer

Upstream reports training on one RTX 4090 with 24 GB in 1–2 days; this is not a verified minimum or measured result here. Simulation controller defaults to CUDA.

[1] [2]

Installation & first result

Open the upstream getting-started guide [1]

  • Obtain a compatible permitted motion file.
  • Start deploy_real/server_high_level_motion_lib.py to initialize Redis motion state.
  • Run server_low_level_g1_sim.py with the supplied checkpoint; use the high-level sender to drive it.

Editorial assessment from cited documentation; no runtime testing.

[1] [2] [3] · Editorial assessment

Installation

Follow the pinned Python/Isaac Gym setup and install the bundled packages; start Redis before the controller.

[1]

Hardware, models & data

Inputs and outputs

A high-level motion sender writes reference motion through Redis; a low-level policy produces G1 joint targets in MuJoCo or a separate hardware route.

[1] [2] [3]

Project notes

Start with the supplied policy in simulation

The README provides a route that avoids retraining: use the supplied assets/twist_general_motion_tracker.pt with the MuJoCo controller. You still need a compatible MotionLib .pkl file and the documented environment. The supplied motion sender imports Isaac Gym, uses CUDA and forces a MuJoCo viewer on even without --vis, so this route also needs a working graphical environment. Minimum GPU sizing is unverified. [3] The controller loads a TorchScript policy, defaults to CUDA, and talks to Redis on the same machine at port 6379. A Python Redis package alone does not supply the running server. [1] [2]

From deploy_real, first run server_high_level_motion_lib.py --motion_file <file> to initialize the motion state and let that run finish. Then start server_low_level_g1_sim.py --policy_path <checkpoint-path>. The README describes an initially standing robot. Run the high-level sender again in another terminal to stream reference motion; the initialization run does not resume by itself. Inspect this simulation path before considering the separate physical-control script. These are source-derived instructions, not a tested installation. [1] [2] [3]

Training has a different cost and dependency set

The documented setup uses Python 3.8, NumPy 1.23.0, Isaac Gym and the bundled training packages. Upstream reports teacher/student training on one 24 GB RTX 4090 in one to two days. That is a reported configuration, not our measurement or a minimum hardware guarantee. The training sequence requires a teacher run, a student run using that teacher, and export to a JIT model. [1]

Motion input deserves its own compatibility check. The README explicitly raises the mismatch between TWIST's NumPy 1.23.0 and newer GMR-produced pickle files. Its real-time teleoperation example is labeled a legacy version, with adaptation to GMR left to the user. Do not treat the GMR relationship as a tested drop-in connection between arbitrary revisions. [1]

What is available at this revision

The reviewed commit is 42d8c134739eee51f28d7cc0ff72a86728afb8dc, with no GitHub release listed. The source archive contains the supplied checkpoint as a 4,431,430-byte file, not an LFS pointer; we did not load it. The separate dataset endpoint reached a Google Drive confirmation page, without a complete dataset download. [6] [8]

Repository software and documentation carry MIT terms. The bundled checkpoint is available, but we have not established an artifact-specific license for it; the external dataset and robot assets also require separate rights checks. Citation requests are not a substitute for dataset permission. No policy training, simulation run or physical robot test was performed. [7] [1]

What we checked

Source researched only; no installation, training, benchmark or physical hardware test performed. No affiliate links or reused media.

Not yet established

  • Requirements: operating system
  • Version-specific hardware compatibility (ecosystem tags alone do not establish it)

Updates

Upstream last updated
Nov 1, 2025 [6]
Latest release
Not established
Profile updated
Oct 17, 2026
Sources last checked
Oct 17, 2026
Next review
Nov 17, 2026
Reviewed revision
commit snapshot; no GitHub releases listed / 42d8c134739eee51f28d7cc0ff72a86728afb8dc · software repository

Source files and licenses

MIT code with a supplied checkpoint; model-specific and external dataset rights remain unresolved.

LayerAvailability / license
softwareavailable · MIT
Repository materials only; external components retain their own terms. [7]
model weightsavailable · License not fully assessed
Bundled bytes preserved; no deserialization or artifact-specific permission verification. [1] [8]
datasetsavailable · License not fully assessed
Documented external dataset; endpoint reached confirmation page. Full payload and reuse terms unverified. [1] [8]
documentationavailable · MIT
Repository materials only; external components retain their own terms. [7]

References

Each source links to the exact revision we read. “Used for” shows where this page relies on it.

Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5

Change history