What are the low hanging and not so low hanging fruits to improve simulation FPS performance?

Hi Forum,

A similar question was asked back in 2021, but I believe it is fitting to ask this to all of you again as its been a while and a lot has happened since!

Here are some of the things we have done to increase FPS from ~15 to 25 FPS. We would love to hear some of your techniques and methods!

  • cut collisions for sub-bodies and removal of sub-bodies that only collide with other model meshes, i.e., collisions are unnecessary for these.
  • Simplify scene object collision types such as convex decomposition.
  • Solver type: TGS.
  • Enable GPU Dynamics.
  • Viewport resolution 1920 x 1080 to 1280 x 1024.
  • Disable ECC for the GPU.

Added by @parmeggiani.alessio1

  • Using a model for the collision of a component and a different one for the visual part.
  • Disabling post processing options.
  • DLSS to performance mode.

I hope these can help some of you and look forward to hearing your ideas. Feel free to inquire about the bullets above if you need further information.

1 Like

I noticed that performances can be greatly increased by using a model for the collision of a component and a different one for the visual part.
Also tuning the rendering settings can help in increasing performances, for example disabling post processing options and setting DLSS to performance mode.

Can you tell me where to find these settings?

  • Solver type: TGS
  • Enable GPU Dynamics
  • Disable ECC for the GPU
1 Like

Hi @parmeggiani.alessio1 thanks for contributing to the thread!

Can you tell me a bit more about how you create a separate model for the collision? Currently all our models and collision are part of one mesh, if there are performance gains to be made here it might be a good idea for us to try it out.

The solver type and GPU Dynamics you are asking about can be found under the physicsScene component

The ECC settings for the GPU can be found in the NVIDIA X Server Settings on Linux

If you are working on a cloud hosted VM you might need to run this command (only works if you have sudo privileges) to disable ECC which will take effect after a reboot.

sudo nvidia-smi -e 0

I am adding your suggestions to the original post, maybe we can have a good table of suggestions in the end :)

1 Like

Hi @parmeggiani.alessio1 can you describe how to create collisions as separate meshes?

Hi, in my case I imported my robot as URDF so I defined from the URDF file this behavior . In any case I think it can be easily set up by importing two meshes, one has the physic component but is not visible, the other is visible but doesn’t have any physic component.

visual_collision_example

is there any clue is it possible or how to do this with the onshape importer?