Hello, I am using Omniverse to scatter some objects and generate synthetic data. The scattering of the objects makes omniverse really slow. if I scatter 10 + objects, a step would be like 5 seconds. so I’ll get to the write() function once every ~5 seconds. This is supper slow. I was recently at an omniverse bootstrap at the Nvida offices. I understand that this is partially because the simulation is actually modifying the USD file and that there is a way (using Fabric) to make the simulation not write to the USD file.
is there a way to not modify a USD if in play mode? for example, say i have a usd with a plane and an extention that on play scatters a prim on the plane. Is there a way to run this simulation without modifying the USD file with the plane?
But it seems that this only applies to physics components in the scene? Meaning that, rigidbodies and joints modifications wont be written to the USD data.
But is there a way to not write back to the USD any data? I dont have any physics in my stage, just
thousands of scattered meshes. I believe i’ll be able to speed up my simulation if i dont write back to the usd file every step.
Hi,
yes you can disable write back to USD from physics.
You should enable omni.physx.fabric extension or click on the “eye” icon → show by type → physics → simulation settings:
Yes, that is possible, you can use USDRT from python or Fabric directly from C++ and write to Fabric, our runtime data representation.
Note that if you need the data rendered you will need FSD (Fabric Scene Delegate) to be enabled (enable in settings → rendering).