Speed difference in dynamical standalone vs. loading model in GUI

Hi! We are loading our robot dynamically in a standalone workflow from a urdf file, along with a stage description in .usd and a few other objects in .usd. When switching the renderer to PathTracing, the performance deteriorates a lot and the app becomes basically unusable.
However, I noticed that when I export the whole stage to a single .usd file and then load this file in a GUI, the performance is much better. Why do you think this could be the case? Is it faster to have a stage from a single .usd file? Or is there perhaps some difference between standalone application vs GUI?

Thank you.

My answer does not exactly match your question, but I think there is a difference between GUI and standalone app in some cases… In my case, standalone example was much faster than GUI based.

[GUI] Isaac Examples / Manipulation / FollowTarget - In my local, it shows 65fps
[StandAlone] standalone_examples/api/omni.isaac.franka/follow_target_with_rmpflow.py - show 160fps

I have no Idea why there are differences, but… I just use the fastest way, simply.

I currently suspect that this is most likely due to some optimizations performed in Isaac under the hood when loading a single .usd file as opposed to loading urdf extra and a few more smaller usd files. It would be nice to have this confirmed from NVIDIA, though.

I executed an experiment and the above does not seem to be the case. I created a standalone example that just imports the .USD file and it is just as slow as when I dynamically load robot through URDF.

I also noticed that the resolution of the renders in GUI is lower than in the standalone case. So my current explanation would be that GUI does not wait for the rendering to finish. When I stop simulation, the path tracing finishes and I see the same results as in the standalone case.