Migration Guide (Isaac Sim)#

Moving from Isaac Sim 2022.2.1 to 2023.1.0 and later brings in a number of changes to the APIs and the way the application is built. This document outlines the changes and how to migrate your code to the new APIs. Many of these changes attribute to the underlying Omniverse Kit upgrade from 104.2 to 105.1. The new upgrade brings the following notable changes:

  • Update to USD 22.11

  • Upgrading the Python from 3.7 to 3.10

Renaming of PhysX Flatcache to PhysX Fabric#

The PhysX Flatcache has been renamed to PhysX Fabric. The new name is more descriptive of the functionality and is consistent with the naming convention used by Omniverse called Fabric. Consequently, the Python module name has also been changed from omni.physxflatcache to omni.physxfabric.

Following this, on the Isaac Sim side, various renaming have occurred:

  • The parameter passed to SimulationContext constructor via the keyword sim_params now expects the key use_fabric instead of use_flatcache.

  • The Python attribute SimulationContext.get_physics_context().use_flatcache is now SimulationContext.get_physics_context().use_fabric.

  • The Python function SimulationContext.get_physics_context().enable_flatcache() is now SimulationContext.get_physics_context().enable_fabric().

Renaming of the URDF and MJCF Importers#

Starting from Isaac Sim 2023.1, the URDF and MJCF importers have been renamed to be more consistent with the other asset importers in Omniverse. The importers are now available on NVIDIA-Omniverse GitHub as open source projects.

Due to the extension name change, the Python module names have also been changed:

  • URDF Importer: omni.importer.urdf (previously omni.isaac.urdf)

  • MJCF Importer: omni.importer.mjcf (previously omni.isaac.mjcf)

Deprecation of UsdLux.Light API#

As highlighted in the release notes of USD 22.11, the UsdLux.Light API has been deprecated in favor of the new UsdLuxLightAPI API. In the new API the attributes are prefixed with inputs:. For example, the intensity attribute is now available as inputs:intensity.

The following example shows how to create a sphere light using the old API and the new API.

Code for Isaac Sim 2022.2.1 and below
import omni.isaac.core.utils.prims as prim_utils

prim_utils.create_prim(
  "/World/Light/GreySphere",
  "SphereLight",
  translation=(4.5, 3.5, 10.0),
  attributes={"radius": 2.5, "intensity": 600.0, "color": (0.75, 0.75, 0.75)},
)
Code for Isaac Sim 2023.1.0 and above
import omni.isaac.core.utils.prims as prim_utils

prim_utils.create_prim(
    "/World/Light/WhiteSphere",
    "SphereLight",
    translation=(-4.5, 3.5, 10.0),
    attributes={
      "inputs:radius": 2.5,
      "inputs:intensity": 600.0,
      "inputs:color": (1.0, 1.0, 1.0)
    },
)