SO101-Nexus
Getting Started

Overview

The SO101-Nexus library and how it fits together.

SO101-Nexus is a single installable library, so101-nexus, for the SO-101 robot learning workflow: record demonstrations, save LeRobot-compatible datasets, run Gymnasium environments, and train or evaluate policies.

Install it with:

pip install so101-nexus

How it fits together

  1. Teleoperate. Drive a simulated follower with a physical SO-100 or SO-101 leader arm.
  2. Record. Save demonstrations as LeRobot datasets with SO follower state/action units and camera fields.
  3. Evaluate and train. Use Gymnasium-compatible SO-101 tasks for policy evaluation, PPO baselines, and RL fine-tuning.
  4. Customize. Adjust objects, distractors, cameras, rewards, observations, and task descriptions as the curriculum grows.

Package layout

The shared API for configuration, rewards, observations, scene objects, teleop, processors, policy adapters, and the LeRobot adapter lives at the top level under so101_nexus. The MuJoCo backend lives at so101_nexus.mujoco.

Importing the MuJoCo backend registers its environments with Gymnasium:

import so101_nexus.mujoco  # registers MuJoCo envs

After importing, create environments with gymnasium.make().

Backend

MuJoCo is the default simulation backend. It provides all five tasks (PickLift, PickAndPlace, Touch, LookAt, Move) on the SO-101 arm, fast single-environment simulation with a live viewer, and custom mesh objects (MeshObject). An optional MuJoCo Warp backend (so101-nexus[warp]) provides the same five tasks as GPU-parallel batched vector environments for large-scale RL.

Next Steps

On this page