Skip to content

Activable plugins for in-tree compilation

Multiple extensions can be activated when building the project. They fall into three categories:

  1. Applications: extensions that offer SOFA-based executable applications (e.g. a main for launching SOFA)
  2. Plugins: extensions that enriche the SOFA API by adding new components or providing more support for external libraries (e.g. new constitutive laws, alternative GUIs)
  3. Directories: extensions that contain multiple CMake projects that cannot be described by only one of the above type Moreover, these projects are either present in the SOFA sources or they need to be fetched (meaning that they have their own external repository).

This page aims at summarizing those extensions in tables containing:

  • the name + hyperlink to the extension sources either in the SOFA repository or in its own repository
  • a short description
  • activation directives

The activation directives propose two ways of activating those plugins in the build tree:

  1. Through custom CMake flags that can be added during the CMake call. All of those plugins can be activated with one or two CMake flags named using their type and name. For example, the plugin SofaPython3 can be activated by activating both flags SOFA_FETCH_SOFAPYTHON3=ON and PLUGIN_SOFAPYTHON3=ON (because its sources are in a separate repository).
  2. Through preset that can be specified during the CMake call

Applications

Name Description How to activate
Modeler Application named Modeler. CMake flag APPLICATION_MODELER=ON.
SceneChecking Plugin developed to provide insights to user when a scene launched with runSofa uses deprecated components/datas. CMake flag APPLICATION_SCENECHECKING=ON. Activated in presets ['full', 'minimal', 'standard', 'supported-plugins'].
SofaPhysicsAPI Application named SofaPhysicsAPI. CMake flag APPLICATION_SOFAPHYSICSAPI=ON. Activated in presets ['full', 'standard', 'supported-plugins'].
runSofa Project containing the main runSofa, used to launch the scene files. CMake flag APPLICATION_RUNSOFA=ON. Activated in presets ['full', 'minimal', 'standard', 'supported-plugins'].
sofaProjectExample Application named sofaProjectExample. CMake flag APPLICATION_SOFAPROJECTEXAMPLE=ON.

Plugins

Name Description How to activate
ArticulatedSystemPlugin Plugin that allow the simulation of rigid kinematic chains. CMake flag PLUGIN_ARTICULATEDSYSTEMPLUGIN=ON. Activated in presets ['full', 'supported-plugins'].
BeamAdapter Plugin implementing a 1-dimensional Finite Element Method (FEM) based on the Kirchhoff rod theory and allows to simulate any 1D flexible structure. CMake flags SOFA_FETCH_BEAMADAPTER=ON and PLUGIN_BEAMADAPTER=ON. Activated in presets ['full', 'supported-plugins'].
BulletCollisionDetection Plugin named BulletCollisionDetection. CMake flag PLUGIN_BULLETCOLLISIONDETECTION=ON.
CGALPlugin Plugins offering SOFA bindings to the CGAL library for meshing purposes. CMake flags SOFA_FETCH_CGALPLUGIN=ON and PLUGIN_CGALPLUGIN=ON. Activated in presets ['full', 'supported-plugins'].
CImgPlugin Plugin named CImgPlugin. CMake flag PLUGIN_CIMGPLUGIN=ON. Activated in presets ['full'].
CSparseSolvers Plugin containing a collection of linear solver components that are built on top of the CSparse library. CMake flags SOFA_FETCH_CSPARSESOLVERS=ON and PLUGIN_CSPARSESOLVERS=ON. Activated in presets ['full', 'supported-plugins'].
CollisionAlgorithm External Plugin named CollisionAlgorithm that needs to be fetched. CMake flags SOFA_FETCH_COLLISIONALGORITHM=ON and PLUGIN_COLLISIONALGORITHM=ON.
CollisionOBBCapsule Plugin named CollisionOBBCapsule. CMake flag PLUGIN_COLLISIONOBBCAPSULE=ON. Activated in presets ['full'].
ConstraintGeometry External Plugin named ConstraintGeometry that needs to be fetched. CMake flags SOFA_FETCH_CONSTRAINTGEOMETRY=ON and PLUGIN_CONSTRAINTGEOMETRY=ON.
Cosserat External Plugin named Cosserat that needs to be fetched. CMake flags SOFA_FETCH_COSSERAT=ON and PLUGIN_COSSERAT=ON.
DiffusionSolver Plugin named DiffusionSolver. CMake flag PLUGIN_DIFFUSIONSOLVER=ON. Activated in presets ['full'].
Geomagic Plugin enabling the use of the Touch haptic device from 3D Systems. CMake flag PLUGIN_GEOMAGIC=ON. Activated in presets ['full', 'supported-plugins'].
Haption Plugin named Haption. CMake flag PLUGIN_HAPTION=ON.
HeadlessRecorder Plugin named HeadlessRecorder. CMake flag PLUGIN_HEADLESSRECORDER=ON.
LeapMotion Plugin named LeapMotion. CMake flag PLUGIN_LEAPMOTION=ON.
ManifoldTopologies External Plugin named ManifoldTopologies that needs to be fetched. CMake flags SOFA_FETCH_MANIFOLDTOPOLOGIES=ON and PLUGIN_MANIFOLDTOPOLOGIES=ON. Activated in presets ['full'].
MeshSTEPLoader External Plugin named MeshSTEPLoader that needs to be fetched. CMake flags SOFA_FETCH_MESHSTEPLOADER=ON and PLUGIN_MESHSTEPLOADER=ON.
ModelOrderReduction Plugin containing C++ components with python utilities allowing to perform model reduction and use these reduced model easily in a SOFA scene. CMake flags SOFA_FETCH_MODELORDERREDUCTION=ON and PLUGIN_MODELORDERREDUCTION=ON. Activated in presets ['full', 'supported-plugins'].
MultiThreading Plugin implementing CPU-parallelized version of some SOFA components. CMake flag PLUGIN_MULTITHREADING=ON. Activated in presets ['conda-core', 'full', 'minimal', 'standard', 'supported-plugins'].
PSL External Plugin named PSL that needs to be fetched. CMake flags SOFA_FETCH_PSL=ON and PLUGIN_PSL=ON.
PersistentContact Plugin named PersistentContact. CMake flag PLUGIN_PERSISTENTCONTACT=ON.
PluginExample A template and a good starting point to create a new plugin from scratch. CMake flags SOFA_FETCH_PLUGINEXAMPLE=ON and PLUGIN_PLUGINEXAMPLE=ON. Activated in presets ['full', 'supported-plugins'].
Registration Plugin offering registering tools for deformable surfaces. CMake flags SOFA_FETCH_REGISTRATION=ON and PLUGIN_REGISTRATION=ON. Activated in presets ['full', 'supported-plugins'].
STLIB Sofa Template Library: high level reusable python objects used to write complex parts of a simulation. CMake flags SOFA_FETCH_STLIB=ON and PLUGIN_STLIB=ON. Activated in presets ['full', 'supported-plugins'].
Sensable Plugin named Sensable. CMake flag PLUGIN_SENSABLE=ON. Activated in presets ['full'].
ShapeMatchingPlugin External Plugin named ShapeMatchingPlugin that needs to be fetched. CMake flags SOFA_FETCH_SHAPEMATCHINGPLUGIN=ON and PLUGIN_SHAPEMATCHINGPLUGIN=ON.
SixenseHydra Plugin named SixenseHydra. CMake flag PLUGIN_SIXENSEHYDRA=ON.
Sofa.Metis Plugin adding METIS-based ordering method for SOFA's linear solvers. CMake flags SOFA_FETCH_SOFA_METIS=ON and PLUGIN_SOFA_METIS=ON. Activated in presets ['full', 'supported-plugins'].
Sofa.Qt Plugin containing Qt-based GUI for SOFA. CMake flags SOFA_FETCH_SOFA_QT=ON and PLUGIN_SOFA_QT=ON. Activated in presets ['full', 'supported-plugins'].
SofaAssimp Plugin named SofaAssimp. CMake flag PLUGIN_SOFAASSIMP=ON.
SofaCUDA Plugin that provides a number of SOFA components that have been re-implemented using CUDA. CMake flag PLUGIN_SOFACUDA=ON. Activated in presets ['full', 'supported-plugins'].
SofaCarving Plugin named SofaCarving. CMake flag PLUGIN_SOFACARVING=ON. Activated in presets ['full'].
SofaDistanceGrid Plugin named SofaDistanceGrid. CMake flag PLUGIN_SOFADISTANCEGRID=ON. Activated in presets ['full'].
SofaEulerianFluid Plugin named SofaEulerianFluid. CMake flag PLUGIN_SOFAEULERIANFLUID=ON. Activated in presets ['full'].
SofaHAPI Plugin named SofaHAPI. CMake flag PLUGIN_SOFAHAPI=ON.
SofaImplicitField Plugin named SofaImplicitField. CMake flag PLUGIN_SOFAIMPLICITFIELD=ON. Activated in presets ['full'].
SofaMatrix Plugin containing components used to provide insights on linear system matrices by exporting them of drawing them. CMake flag PLUGIN_SOFAMATRIX=ON. Activated in presets ['full', 'supported-plugins'].
SofaNewmat Plugin named SofaNewmat. CMake flag PLUGIN_SOFANEWMAT=ON.
SofaOpenCL Plugin named SofaOpenCL. CMake flag PLUGIN_SOFAOPENCL=ON.
SofaPardisoSolver Plugin named SofaPardisoSolver. CMake flag PLUGIN_SOFAPARDISOSOLVER=ON.
SofaSphFluid External Plugin named SofaSphFluid that needs to be fetched. CMake flags SOFA_FETCH_SOFASPHFLUID=ON and PLUGIN_SOFASPHFLUID=ON. Activated in presets ['full'].
SofaTest Plugin named SofaTest. CMake flag PLUGIN_SOFATEST=ON.
SofaValidation External Plugin named SofaValidation that needs to be fetched. CMake flags SOFA_FETCH_SOFAVALIDATION=ON and PLUGIN_SOFAVALIDATION=ON.
SoftRobots Plugin containing components dedicated to forward simulation of soft robots. CMake flags SOFA_FETCH_SOFTROBOTS=ON and PLUGIN_SOFTROBOTS=ON. Activated in presets ['full', 'supported-plugins'].
VolumetricRendering Plugin named VolumetricRendering. CMake flag PLUGIN_VOLUMETRICRENDERING=ON. Activated in presets ['full', 'supported-plugins'].
Xitact Plugin named Xitact. CMake flag PLUGIN_XITACT=ON.
image Plugin named image. CMake flag PLUGIN_IMAGE=ON. Activated in presets ['full'].

Directories

Name Description How to activate
Regression External Directory named Regression that needs to be fetched. CMake flags SOFA_FETCH_REGRESSION=ON and DIRECTORY_REGRESSION=ON.
SofaGLFW Project containing two plugins: a simple GUI based on GLFW and a user interface based on Dear ImGui. CMake flags SOFA_FETCH_SOFAGLFW=ON and DIRECTORY_SOFAGLFW=ON. Activated in presets ['full', 'standard', 'supported-plugins'].
SofaHighOrder External Directory named SofaHighOrder that needs to be fetched. CMake flags SOFA_FETCH_SOFAHIGHORDER=ON and DIRECTORY_SOFAHIGHORDER=ON.
SofaPython3 Plugin enabling to write SOFA scenes in Python that also introduce several Python modules that exposes different C++ components used in SOFA. CMake flags SOFA_FETCH_SOFAPYTHON3=ON and DIRECTORY_SOFAPYTHON3=ON. Activated in presets ['full', 'standard', 'supported-plugins'].