Cyclo Lab
Cyclo Lab is the Isaac Lab-based environment for training AI Sapiens K1 policies in simulation. It provides the training and export workflow needed before deploying a policy with Sim2Real.
For robot-side deployment after training, use the Sim2Real guide.
Choose a Physics Backend
Cyclo Lab provides two physics backends through separate Git branches. Choose the backend before building the Docker image because each branch uses a different Isaac Sim and Isaac Lab version.
| Backend | Git branch | Runtime | Scope |
|---|---|---|---|
| PhysX | main | Isaac Sim 5.1.0, Isaac Lab 2.3.0 | Default and recommended for general use. |
| Newton | k1/isaacsim-6-newton | Isaac Sim 6.0.1, Isaac Lab 3.0.0-beta2, Newton 1.2.1 with MuJoCo-Warp | Experimental; validated only for K1 velocity and mimic tasks. |
Newton support is experimental. AI Worker, OMY, and FFW tasks are not registered or validated on the Newton branch.
Use the main branch unless you specifically need to test K1 with Newton.
Set Up the Docker Container
Run Cyclo Lab inside the provided Docker container. The container includes Isaac Sim, Isaac Lab, Cyclo Lab, and the Python dependencies used by the training scripts.
Install these on the host PC first:
- Docker and Docker Compose.
- NVIDIA Container Toolkit.
- NVIDIA GPU driver compatible with the Isaac Sim container image.
Select a backend and clone Cyclo Lab with its submodules:
- PhysX (Default)
- Newton (Experimental)
git clone --branch main --recurse-submodules \
https://github.com/ROBOTIS-GIT/cyclo_lab.git
cd cyclo_lab
git clone --branch k1/isaacsim-6-newton --recurse-submodules \
https://github.com/ROBOTIS-GIT/cyclo_lab.git
cd cyclo_lab
The Newton branch uses the separate If you already have a PhysX checkout and want to keep both backends available, clone Newton into a separate directory instead:cyclo_lab-newton container and robotis/cyclo-lab-newton image names, so it does not replace the default PhysX container or image.Keep PhysX and Newton checkouts separately
Already cloned Cyclo Lab?
If the repository was cloned without --recurse-submodules, initialize its submodules before starting the container.
If you want to use Newton but cloned the repository without selecting k1/isaacsim-6-newton, switch to the Newton branch first.
Run the commands for the backend you want from the repository root:
- PhysX (Default)
- Newton (Experimental)
git switch main
git submodule update --init --recursive
git switch k1/isaacsim-6-newton
git submodule update --init --recursive
Start and enter the container:
./docker/container.sh start
./docker/container.sh enter
Inside the container, the repository is mounted at:
/workspace/cyclo_lab
Useful host-side commands:
| Command | Use |
|---|---|
./docker/container.sh start | Build if needed, initialize submodules, and start the container. |
./docker/container.sh enter | Open a shell inside the running container. |
./docker/container.sh stop | Stop the container. |
./docker/container.sh logs | Follow container logs. |
./docker/container.sh clean | Remove the container and image. |
The start script enables X11 forwarding when DISPLAY and xauth are available on the host.
Use the no-window option shown for your backend in the training guides when visualization is not required.
Next Steps
- Train and export a velocity policy with the Locomotion guide.
- Train and export a motion-imitation policy with the Mimic guide.
- Deploy the exported asset with How to Deploy Your Own Cyclo Lab-Trained Policy.