Activable plugins for in-tree compilation
Multiple extensions can be activated when building the project. They fall into three categories:
- Applications: extensions that offer SOFA-based executable applications (e.g. a main for launching SOFA)
- 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)
- 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:
- 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
andPLUGIN_SOFAPYTHON3=ON
(because its sources are in a separate repository). - 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']. |