Skip to content

[Proposal] Support Mixed Spawns with Newton-MJWarp #6162

@YizeWang

Description

@YizeWang

Proposal

Add Newton-MJWarp support for heterogeneous spawns in cloned scenes. A scene should be able to use MultiAssetSpawnerCfg and MultiUsdFileCfg with several asset choices across environments without forcing all envs to use the same asset.

This should let demos and tasks keep their mixed object and mixed robot setup when --physics newton_mjwarp is selected.

Motivation

scripts/demos/multi_asset.py currently disables heterogeneous spawns for Newton-MJWarp:

if args_cli.physics == "newton_mjwarp":
    # Newton-MJWarp requires a uniform layout, not supporting different setups across environments.
    scene_cfg.object.spawn.assets_cfg = scene_cfg.object.spawn.assets_cfg[1:2]
    scene_cfg.robot.spawn.usd_path = scene_cfg.robot.spawn.usd_path[0]

This removes the main point of the demo for Newton-MJWarp:

  • object is reduced from cylinder/cube/sphere choices to one object type.
  • robot is reduced from ANYmal-C/ANYmal-D choices to one USD.

Users should be able to run the same high-level scene with Newton-MJWarp that they can run with other backends, including mixed object and robot variants.

Reproduction:

./isaaclab.sh -p scripts/demos/multi_asset.py --visualizer newton --physics newton_mjwarp --num_envs 1024

Expected behavior after support is added:

  • The demo does not need to force one object asset.
  • The demo does not need to force one robot USD.
  • Newton-MJWarp builds the right per-env physics model for each chosen variant.

Build Info

Checklist

  • I have checked that there is no similar issue in the repo (required)

Acceptance Criteria

  • Newton-MJWarp supports heterogeneous MultiAssetSpawnerCfg choices across envs.
  • Newton-MJWarp supports heterogeneous MultiUsdFileCfg choices across envs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions