Skip to content

[mujoco] Add native MyoSuite env families and validation#398

Open
Trinkle23897 wants to merge 26 commits intomainfrom
jiayi/myosuite-intake-foundation
Open

[mujoco] Add native MyoSuite env families and validation#398
Trinkle23897 wants to merge 26 commits intomainfrom
jiayi/myosuite-intake-foundation

Conversation

@Trinkle23897
Copy link
Copy Markdown
Collaborator

@Trinkle23897 Trinkle23897 commented Apr 15, 2026

Description

This PR finishes the native EnvPool MyoSuite integration on top of the earlier intake work.

Implemented surface:

  • MyoBase native families, including the full Reorient / Walk / Terrain task sets
  • MyoChallenge native families, including Reorient, Relocate, Baoding, Bimanual, RunTrack, Soccer, ChaseTag, and TableTennis
  • MyoDM native TrackEnv, covering the full generated TrackEnv surface

What landed:

  • native C++ runtime implementations for the remaining MyoSuite families under envpool/mujoco/myosuite/
  • pybind and Python wrapper wiring for all new native specs / pools
  • metadata-driven coverage for the full upstream MyoSuite surface we stage locally
  • deterministic tests, representative oracle alignment tests, and pixel smoke coverage for the new MyoSuite families
  • Windows GLFW preload for MyoSuite pixel tests so the Mujoco renderer comes up consistently in CI

Motivation and Context

The initial intake PR only pinned upstream assets and generated metadata. This follow-up closes the loop by registering and validating the actual native EnvPool runtime for the staged MyoSuite families.

The main implementation goal here is not a representative subset but the intended upstream task surfaces for:

  • myobase
  • myochallenge
  • myodm

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds core functionality)
  • New environment (non-breaking change which adds 3rd-party environment)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation (update in the documentation)
  • Example (update in the folder of example)

Implemented Tasks

  • Register the native MyoBase families and cover the full Reorient / Walk / Terrain surfaces
  • Register the native MyoChallenge families and cover the full intended challenge surface
  • Register the native MyoDM TrackEnv surface from generated metadata
  • Add deterministic / alignment / pixel smoke coverage for the new MyoSuite families
  • Fix CI-specific MyoSuite renderer setup on Windows tests

Validation

Run locally:

  • git diff --check
  • ruff check envpool/mujoco/myosuite/native.py envpool/mujoco/myosuite/myobase_test.py envpool/mujoco/myosuite/myochallenge_test.py envpool/mujoco/myosuite/myodm_test.py
  • bazel test --test_output=errors //envpool/mujoco:myosuite_myobase_test //envpool/mujoco:myosuite_myochallenge_test //envpool/mujoco:myosuite_myodm_test

Checklist

  • I have read the CONTRIBUTION guide (required)
  • My change requires a change to the documentation.
  • I have updated the tests accordingly (required for a bug fix or a new feature).
  • I have updated the documentation accordingly.
  • I have reformatted the code using make format (required)
  • I have checked the code using make lint (required)
  • I have ensured make bazel-test pass. (required)

Comment thread envpool/mujoco/myosuite/metadata.py Fixed
Comment thread envpool/mujoco/myosuite/metadata.py Fixed
Comment thread envpool/mujoco/myosuite/metadata.py Outdated
Comment thread envpool/mujoco/myosuite/metadata.py Fixed
@Trinkle23897 Trinkle23897 changed the title [mujoco] Add MyoSuite intake and validation scaffolding [mujoco] Add native MyoSuite env families and validation Apr 15, 2026
Comment thread envpool/mujoco/myosuite/myodm_test.py Fixed
Comment thread envpool/mujoco/myosuite/myodm_test.py Fixed
Comment thread envpool/mujoco/myosuite/config.py Fixed
Comment thread envpool/mujoco/myosuite/config.py Fixed
Comment thread envpool/mujoco/myosuite/myodm_test.py Fixed
Comment thread envpool/mujoco/myosuite/myodm_test.py Fixed
Comment thread envpool/entry.py Fixed
Comment thread envpool/mujoco/myosuite/config.py Fixed
Comment thread envpool/mujoco/myosuite/config.py Fixed
Comment thread envpool/mujoco/myosuite/render_utils.py Fixed
Comment thread envpool/mujoco/myosuite/config.py Outdated
MYOSUITE_DIRECT_IDS: tuple[str, ...] = tuple(
_METADATA["direct_ids"]
) # Re-exported for tests and public registration helpers.
MYOSUITE_EXPANDED_IDS: tuple[str, ...] = tuple(
Comment thread envpool/entry.py
import envpool.mujoco.dmc.registration # noqa: F401
import envpool.mujoco.gym.registration # noqa: F401
import envpool.mujoco.metaworld.registration # noqa: F401
import envpool.mujoco.myosuite.registration # noqa: F401
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant