Potential conflict between Isaac Gym and Modulus (SimNet)

Hi Nvidia developers,

I’d like to point out a potential conflict between isaac gym and simnet.

When installing SimNet, we need to add SimNet/external/pysdf/build/ to LD_LIBRARY_PATH. However, this will cause Issac Gym to report the following error when running python joint_monkey.py.

Importing module 'gym_37' (/home/u/isaacgym/python/isaacgym/_bindings/linux-x86_64/gym_37.so)
[Error] [carb] [Plugin: libcarb.gym.plugin.so] Could not load the dynamic library from /home/u/isaacgym/python/isaacgym/_bindings/linux-x86_64/libcarb.gym.plugin.so. Error: /home/u/isaacgym/python/isaacgym/_bindings/linux-x86_64/./libndr.so: undefined symbol: _ZN32pxrInternal_v0_19__pxrReserved__17SdfValueTypeNamesE
[Warning] [carb] Potential plugin preload failed: /home/u/isaacgym/python/isaacgym/_bindings/linux-x86_64/libcarb.gym.plugin.so
Setting GYM_USD_PLUG_INFO_PATH to /home/u/isaacgym/python/isaacgym/_bindings/linux-x86_64/usd/plugInfo.json
[Error] [carb] Failed to acquire interface: [carb::gym::Gym v0.1], by client: carb.gym.python.gym_37 (plugin name: (null))
Traceback (most recent call last):
  File "joint_monkey.py", line 59, in <module>
    gym = gymapi.acquire_gym()
RuntimeError: Failed to acquire interface: carb::gym::Gym (pluginName: nullptr)

When I remove the SimNet SDF library from LD_LIBRARY_PATH, this error is gone and Isaac Gym can run without problems.

I’m using isaacgym v1.0rc3 and simnet v21.6.

It took me a long time to find the cause. Hopefully this post will save others some time.