Hi, Thanks for the reporting. The behaviors you saw came from how USD variants, payloads, and the physics scene were cached and evaluated in Isaac Sim; you need to force both the USD composition and the PhysX scene to update when you switch variants.
Variant changes often only take effect in the composed stage when the payload is reloaded or the layer is dirtied; otherwise, the stage continues to show the previously composed prims.
The PhysX scene is built from the USD stage at specific points (e.g., when starting simulation), so collision shapes and rigid bodies are not always rebuilt immediately when you change variants during an active session.
This forces the stage to reevaluate the variant composition immediately.
Reapply or modify collision/rigidbody schemas to match the new variant geometry:
When using Isaac Lab, call the collision schema helpers after the variant switch:
from isaaclab.sim import schemas as sim_schemas
collider_cfg = sim_schemas.CollisionCfg() # configure as needed
sim_schemas.define_collision_properties("/World/MyRobot", collider_cfg, stage=stage)
These helpers explicitly re-author and update collision APIs on the current prims, ensuring the new mesh gets the right colliders.
Trigger a physics scene rebuild step:
Stop simulation, then start again (this is the most reliable way to ensure the PhysX scene re-reads the stage).