What’s new in SOFA v21.06
Multithreading for collision detection and constraints
Recent developments led by Alexandre Bilger and Eulalie Coevoet introduced parallel version of several codes. Within SOFA and in its Multithreading plugin, you will now be able to:
- detect collision in parallel during the brute force broad phase (see #2038) and during the BVH narrow phase (see #2053)
- solve multiple objects concurrently (see #2135) and/or compute collision detection and the free motion concurrently (see #2040) in the FreeMotionAnimationLoop
- compute compliances concurrently in the GenericConstraintSolver (see #1862)
See the Multithreading GitHub project and the associated pull-requests for technical details.
Speedup direct SAP
The “Sweep and Prune” algorithm, noted SAP, has been refactored and improved for The SAP method belongs to the topological methods for broad phase, based on the positions of objects in relation to others.
For more, please refer to the pull-request #1917.
Shell mechanical model
An example scene is also available in the examples/Components/forcefield/ folder. Further evolution of this model to come! We would like to thank especially Nhan Nguyen Huu and his team for this nice contribution!
Simple GUI based on GLFW
Annoyed by Qt when needing 3D rendering for your simulation? Interested in a simple GUI?
Additional improvements
- Clean the codes for broad and narrow phases by Alexandre, while distinguishing classes in #2010
- Speedup CMake configure step by Frederick in #1837
- Add Qt6 support by Frederick in #1756
- Add tests on topology and topological changes by Erik in #2136
- Update the static Newton-Raphson ODE solver by Jean-Nicolas in #2050
- Introduce benchmark on matrix assembly by Alexandre, while distinguishing classes in #2208
Renaming four modules
Four modules did not respect the new naming convention (following namespace), they have therefore been updated:
- SofaHelper into Sofa.Helper
- SofaDefaulttype into Sofa.Defaulttype
- SofaCore into Sofa.Core
- SofaSimulationCore into Sofa.SimulationCore
Make sure to update your plugins! More can be read in #2001.
Breaking changes
New features have also some consequences in the SOFA API:
Find all the breaking pull-requests introduced since the last release on GitHub.