Replicator Domain Randomization Extension#

Isaac Sim 6.0 deprecates the isaacsim.replicator.domain_randomization extension. Use isaacsim.replicator.experimental.domain_randomization for new domain-randomization workflows.

Concept Mapping#

Deprecated extension

Replacement

isaacsim.replicator.domain_randomization

isaacsim.replicator.experimental.domain_randomization

Migration Approach#

Follow these steps to migrate:

  1. Enable isaacsim.replicator.experimental.domain_randomization instead of isaacsim.replicator.domain_randomization.

  2. Update extension dependencies to the experimental package and update Python imports to the new namespace. The experimental package re-exports most top-level modules (context, gate, physics_view, trigger, utils) and attribute constants, but this is not a pure namespace rename. In particular, physics_view.register_rigid_prim_view now takes a RigidPrim view plus an explicit registration name:

    Isaac Sim 5.x:

    import isaacsim.replicator.domain_randomization as dr
    from isaacsim.core.prims import RigidPrim
    
    object_view = RigidPrim(prim_paths_expr="/World/Objects/*", name="objects")
    dr.physics_view.register_rigid_prim_view(object_view)
    

    Isaac Sim 6.0:

    import isaacsim.replicator.experimental.domain_randomization as dr
    from isaacsim.core.experimental.prims import RigidPrim
    
    object_view = RigidPrim("/World/Objects/.*")
    dr.physics_view.register_rigid_prim_view(object_view, name="objects")
    

    Calls such as dr.trigger.on_rl_frame(...) and dr.gate.on_interval(...) keep the same general usage pattern. Physics view registration changed: create the experimental RigidPrim view first, then call dr.physics_view.register_rigid_prim_view(object_view, name="..."). See standalone_examples/api/isaacsim.replicator.experimental.domain_randomization/randomization_demo.py for a complete working example.

  3. Run the scenario once with a small frame count and verify that randomization triggers, writer output, and physics stepping still occur in the expected order.

Dependency Changes#

Update extension dependencies from:

"isaacsim.replicator.domain_randomization" = {}

to:

"isaacsim.replicator.experimental.domain_randomization" = {}

If your 5.x app still depends on the historical omni.replicator.isaac umbrella compatibility extension, remove that dependency and enable the current packages you actually use, such as isaacsim.replicator.experimental.domain_randomization, isaacsim.replicator.examples, and isaacsim.replicator.writers.

Removed APIs and APIs Without a Direct Replacement#

Removed or non-drop-in API

Migration guidance

Direct impl / private-submodule imports

Import through the package namespace (isaacsim.replicator.experimental.domain_randomization) and its documented top-level modules (context, gate, physics_view, trigger, utils) rather than reaching into impl or other private submodules, whose internal layout may change between releases.

omni.replicator.isaac umbrella dependency

Isaac Sim 6.0 removes this umbrella dependency. Enable the focused Replicator extensions directly.

PytorchWriter and PytorchListener (isaacsim.replicator.writers)

Isaac Sim 6.0 deprecates these classes with no direct replacement. Retrieve tensor data through the standard Replicator writer and annotator APIs in omni.replicator.core (for example, attach annotators to render products and read device-resident data with get_data(device="cuda")).

Validation Checklist#

Verify the following after migration:

  • Action Graphs load without missing-node errors.

  • Randomization triggers still fire on the intended frame, interval, or reset.

  • For physics randomization, articulation and rigid-prim targets are registered through the experimental core prim APIs.