This Multithreading plugin has been developed to improve the performance of the simulation in SOFA exploiting parallelism and improving the framework performance for commercial products at the animation loop level.
All most computationally-intensive parts of a simulation step are efficiently scaled down to all available CPU cores on a machine. The CPU use can increase up to 95%.
Regarding performances, an example simulation running on 6 cores machine shows a performance increase higher than x2.
Any deformable object solver in the scene (e.g. CGLinearSolver, SparseLDLSolver) is executed concurrently.
All the primitive collision tests are executed concurrently
The AABB bounding tree update is executed concurrently for each deformable object.
Each row of the of constraint solver matrix is computed and set up in parallel.
Some topology changes are performed asynchronous with the physics simulation and as soon as these changes are available they are applied to the next simulation step.
This plugin therefore contains a collection of components, working together and accelerating each simulation step.
SOFA Multithreaded Simulation in Unity3D
The SOFA multithreaded plugin can be used in Unity3D not only to speed up the simulation but also to decouple the physics simulation loop from the graphics loop. In the picture the Unity3D graphics is running at 87 FPS and the physics simulation at 60 FPS.
- License: Private
- Status: Ongoing
- Progress: 80%
- TRL: 5