Roadmap

Technical roadmap

The roadmap is jointly defined by the Consortium Members with the developer community at the SOFA Technical Committee (STC). This committee is open and free for all, however votes for the roadmap are restricted to Consortium Members.
Read more on the governance.

Previous edition (STC#9) took place on the 28-30th April 2020 online, due to the Covid-19 situation.
During this meeting, the committee voted the following roadmap:

Packaging

  • Continuous integration / development
    • Be able to generate custom binaries on demand (use SPM if possible)
    • Make every plugin buildable out-of-SOFA
    • Decide first which plugins to keep in SOFA sources (officially supported)
    • Make sure no more GPL plugins
    • Don’t forget plugins from teams
    • Define a clear way to list all plugins (SPM?)
  • Modularization
    • non breaking modularization: SofaAdvanced (PR #1344)
    • non breaking modularization: SofaMisc (WIP PR #1307)
    • non breaking modularization: SofaGeneral
    • non breaking modularization: SofaCommon
    • non breaking modularization: SofaBase
  • Python modules (SofaPython3)
    • Write detailed specs: buildtime part / runtime part
    • Improve resource/dependency management for Python modules
    • Define good practices for writing Python modules

SofaPython3

  • Clean CMakeLists
  • Definition of the plugin (made up of several subdirectories) using SofaMacros.cmake
  • Install rules using SofaMacros.cmake
  • Add as an external plugin in SOFA using sofa_add_subdirectory_external()
  • Extract SofaPython(2.7) as an external repository in the same way
  • Update example scenes and adapt CMake in SOFA
  • Write the migration documentation (on a scene point of view)
  • Test coverage
  • Doc on in which case / how to create your own bindings in a plugin
  • Fix and cleaning

SofaQtQuick

  • Gather people: compile and install it, use it
  • Getting SOFA consortium testing and providing feedback
  • Figuring out the stability issues
  • Simplify install requirements
  • Writing documentation
  • Adding a meshing feature (GMesh / CGAL)
  • Go from alpha state to beta state: something stable and usable

More projects

Besides the main roadmap tasks, a lot of projects are going to evolve in the next 6 months. Never hesitate to join the force or propose your own contribution project!

Please find the details of their objectives in the STC#9 Report below.

  • System resolution: towards full build system
    Several topics have been discussed during this STC like:

    • a simulation pipeline without visitor
    • a simulation based on Data
    • a generic matrix format, benefitting from efficient solver libraries (eigen, petc)
    • an API allowing for easy access to matrices (stiffness, mass), i.e. a fully built approach (addKToMatrix) can now be as fast as the unbuild one.

    The idea would be to provide a proof of concept with a new design. This design would provide:

    • a set of scenarii illustrating most of the possible simulation configuration
    • from these scenarii extracting the optimal API
    • a performance comparison: built vs unbuilt system

     

  • Modularization of SOFA core
  • Modular implementation of mechanical models
  • Replace the aging OpenGL layer in SOFA, using solutions like Vulkan or Qt3D

Back to Top