SOFA v19.12

What’s new in SOFA v19.12

New: runSofa GUI widgets

SofaWindowProfiler

SofaWindowProfiler is a new widget in SofaGuiQt (with a dependency on QtCharts) that brings visualization on AdvancedTimer features. It permits to see the animation step duration (ms) in a graphView, then to navigate on the graph or on the sliders and see the different substeps exectuted during this animation step.
See #1028 for details.

SofaWindowDataGraph

SofaWindowDataGraph is also a new widget in SofaGuiQt (with a dependency on NodeEditor) that permits to see graphically the links between all Components of a scene.
See #1187 for details.

Breaking: Data update API

Reworking the Data update API was an out-of-roadmap task of v19.12 and has been added to v20.06 roadmap.

A new update mechanism has been added for components which need to update or recompute internal variables when one or several data are modified.

This work has been decomposed in 2 steps:
1. Create a new update internal mechanism
2. Propagate this new update internal mechanism in UniformMass, DiagonalMass and MeshMatrixMass.

Join Data update chat room to stay up-to-date.

Improved: Architecture

As always, architecture has been improved towards modularity and easier deployment.
For this release, emphasis has been put on external libraries management, SofaFramework architecture consistency and SofaComponent* cleaning.

  • External libraries are now fetched only when needed, at the module level.
    See #1137 and #1177.
  • SofaComponent* “meta” packages have been moved out of modules directories.
    See #1155.
  • SofaFramework modules have been moved to SofaKernel/modules.
    See #1200.

Finalized: SofaPython3

Following v19.06, a lot of effort has been put into SofaPython3 developpement. Thanks to its contributors, the plugin is now ready to be used and tested on a larger scale.
The next objective is to embed it directly in SOFA v20.06.

See SofaPython3 repository.

Improved: Topology links

In order to make sure that only one topology per node is allowed, GetMeshTopology() calls must be replaced by explicit links in a lot of Components.
This work has been done in a non-breaking way (as much as possible) by keeping backward compatibility. The objective is to completely remove GetMeshTopology() calls by v20.06.

See issue #744 and pull-requests #1183, #1199, #1223.

More changes

SofaQtQuick project (runSofa2) is still being improved and should go beta for v20.06.
See SofaQtQuick dev branch.

After years of innactivity, the SofaSphFluid plugin has been updated, fixed and cleaned.
See SofaSphFluid pull-requests.

Complementary to the “SOFA + Unity” plugin that has already be done, developpers are now looking at “SOFA + UnrealEngine” possibilities.
See their presentation at SOFA Symposium 2019.

SOFA v19.12 contributors

442 posts on forum
117 merged pull-requests
461 clones of the repository
14 contributors on GitHub

Back to Top