SOFA v23.12


What’s new in SOFA v23.12

Improvement on linear solvers

In the context of the “Matrix assembly API in SOFA” roadmap topic (see Roadmap page), many improvements on linear solvers are now available. These changes bring more parallelism in the solver codes as well as new optimizations. Here are the main related pull-requests:

  • [LinearSolver] Implement parallel inverse product for all linear solvers #4255
  • [LinearSystem] Introduce constant sparsity matrix assembly #4158
  • [MultiThreading] Introduce parallel CG #4138
  • [LinearSystem] Optim: Only account for affected DoFs #4001
  • [LinearSolver.Direct] Parallelization of H A^-1 H^T in SparseLDLSolver #3986
  • [LinearAlgebra] Speedup accumulation on BTDMatrix #4248

Integration of Tracy profiler

In #4182, the SOFA profiler is updated with features from the Tracy profiler. Among the coolest features, Tracy brings a Multithreaded timeline, statistics, see context switching and more which are to be tested!

New plugins to fetch

In order to bring more features with SOFA, to increase and ease the use of major plugins, two plugins have been added as fetchable plugins:

  • Collision Algorithm plugin in #3890
  • SoftRobots in #3882

Use of GitHub actions

Automate, customize, and execute your software development workflows right in your repository with GitHub Actions. You can discover, create, and share …
Since #4079, the developer team started to use GitHub actions. These actions aim at automating tasks and executing workflow, thus empowering the team.
See all GH actions online.

Plugin: Visco-Elasticity

Implemented by the BruRobotics team at VUB, this plugin implements the fundamental linear viscoelastic constitutive laws applied to tetrahedral meshes. Viscous materials were missing so far in SOFA to model materials sensitive to dynamic conditions.
Read more about the plugin.

Plugin: Design Optimization

A framework for design optimization with emphasis on soft-robotics has recently been developed by the Defrost Inria team. Although the initial focus was on optimizing a robot design, the toolbox can be used widely to calibrate the parameters of hyperelastic models.
Read more about the plugin.

Breaking changes

Main breaking changes are:

  • [Simulation.Core] Refactor DefaultAnimationLoop + multithreading #3959
  • [Sofa.Simulation] First steps to remove the singleton Simulation #3889
  • [MechanicalLoad] Remove the data force in ConstantFF and solves circular dependency #4019
  • [LinearAlgebra] Implement CompressedRowSparseMatrixConstraint #3894
  • [LinearAlgebra] Pull Insimo’s CompressedRowSparseMatrix into the main branch #3515
  • Implementation of new API since refactoring of matrix assembly #3967
  • [all] Lifecycle v23.12 1/n #4034
  • , #4040, #4056, #4058

  • [AnimationLoop] Change the default constraint solver in FreeMotionAnimationLoop #3994

Find all the breaking pull-requests introduced in this release.

SOFA v23.12 contributors

946 posts on GitHub Discussions
227 merged pull-requests
1635 clones of the repository
11 contributors on GitHub


Back to Top