SOFA v17.12

What’s new in SOFA v17.12

New (experimental): write dynamic scenes with PSL

The Python Scene Language (PSL) project is an attempt to mix the advantages of scn and pyscn in an unified framework. PSL provides an abstract language that has been specifically designed to make SOFA scenes in an elegant and powerful way. Compared to classical .scn, PSL offer scene dynamicity. Compared to .pyscn, PSL offer savability, templates and a more compact declarative syntax.
More info in PSL plugin home page.

Project: SOFA-NG

The past 6 months have been the start of a new project: SOFA-NG.
The final objective of SOFA-NG is to refactorize the current (non-core) modules and components by moving them into plugins. It will permit to:

  • compile and load only the necessary modules
  • clean all dependencies in SOFA
  • help focusing the work of validation/doc/tests on specific codes
  • improve the packaging of codes
  • ease understanding the API of SOFA for new users

A first version has been pushed. More info in SOFA-NG GitHub project.

New: plugin loading

The plugin loading mechanism has been reviewed to permit the auto-load of certain plugins (by default, all compiled plugins are loaded).
Everything is customizable within a simple file.
See #301.

Improved: SofaTest

The SofaTest API has been improved with new features like fine control of msg_* consequences in tests.
A big refactoring has been done to cut dependencies with Sofa_test by replacing them with BaseTest or NumericTest.

Improved: dependencies

  • To unify the image importing process, legacy ImageBMP/ImagePNG and ImageQt have been removed. Image reading is now done by CImgPlugin.
    CImgPlugin default dependencies have been extended with JPEG and TIFF. See #424.
  • JSON for Modern C++ 2.1.1 by nlohmann has been added to SOFA extlibs to massively improve the AdvancedTimer. See #360.
  • To fix a build error with MSVC 2015, libQGLViewer has been updated to 2.7.1. See #545.

Cleaned: deprecation and pluginization

A massive clean work has been started during STC#4 sprint.
It concerns particularly some modules transformed into plugins to clearly move them apart from SOFA core:

  • SofaMiscCollision is now a plugin. See #407.
  • SofaSphFluid is now a plugin. See #407.
  • SofaEulerianFluid is now a plugin. See #396.
  • SofaVolumetricData is now two plugins: SofaDistanceGrid + SofaImplicitField. See #389.

This is a work in progress and represents SOFA-NG first steps towards a cleaner and more modular version of SOFA.

SOFA v17.12 activity

Our beloved contributors

62 new topics on forum
160 merged pull-requests
55 closed issues
6 new contributors

Spotlight on Erik Pernod

Erik Pernod is a software engineer focused on C++ development, biomechanical modelling and medical surgery simulation.

He started his work in simulation with SOFA in 2008 as a research engineer of the Inria research team Asclepios. During two years, he developed algorithms on dynamic topology operations, cardiac electrophysiological models, meshloaders factory and haptic device plugin. An example of these first electrophysiology simulations is available here.

From 2012 to 2016, Erik took the lead of the R&D team at Belcurves Technologies in Nice. He was then in charge of multiple 3D modeling projects involving the creationof 3D Web solutions for a virtual fitting room (WebGL, javascript) and CAD software (C++,Qt, OpenGL, WebGL) to design cloths in 3D.

Erik is now working at a SOFA freelancer ! He is actively developing Application Programming Interfaces for SOFA (C++, Qt, OpenGL). He is targetting at augmented reality applications (Unity3D, OpenCV) and website in 3D (Javascript, Three.js).
To know more about Erik, visit his personal webpage.

Back to Top