SO101-Nexus
API Reference

Environment Registry

How environment registration and discovery works.

Environment Registry

SO101-Nexus environments are registered with Gymnasium at import time. Each backend package registers its own set of environment IDs when you import it.

How Registration Works

Importing a backend package triggers registration:

import so101_nexus_mujoco      # registers MuJoCo environments
import so101_nexus_maniskill   # registers ManiSkill environments

ManiSkill environments are also registered via the @register_env decorator for use with ManiSkill's own vectorized API.

After importing, create environments with gym.make():

import gymnasium as gym
import so101_nexus_mujoco

env = gym.make("MuJoCoPickLift-v1", render_mode="human")

You must import the backend package before calling gym.make(). Without the import, Gymnasium will not find the environment ID.

Discovering Registered Environments

all_registered_env_ids()

from so101_nexus_core.env_ids import all_registered_env_ids

ids = all_registered_env_ids()
def all_registered_env_ids() -> list[str]

Returns a list of all SO101-Nexus environment IDs. The function returns 13 environment IDs (5 MuJoCo + 8 ManiSkill).

Required Imports

Each backend must be imported before its environments can be used. The core package alone does not register any environments.

Backend PackageImport StatementRegisters
so101-nexus-mujocoimport so101_nexus_mujocoMuJoCo environments
so101-nexus-maniskillimport so101_nexus_maniskillManiSkill environments

Passing Configuration

All environments accept a config keyword argument through gym.make():

import gymnasium as gym
import so101_nexus_mujoco
from so101_nexus_core import PickConfig, CubeObject

config = PickConfig(
    objects=[CubeObject(color="blue")],
    max_episode_steps=512,
)

env = gym.make("MuJoCoPickLift-v1", config=config)

See Configuration Classes for all available options.

On this page