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#10) took place on the 26-28th November 2020 online, due to the Covid-19 situation.
During this meeting, the committee voted the following roadmap:

SofaPython3

  • Each module of SOFA is a SofaPython3 module
  • Remove the dependency on the Plugin from the bindings
  • Refactoring Data bindings following NG1
  • Clean the tests
  • Propose a setup.py to install the bindings basing on any system-wide Python version
  • Add examples
  • Work on the documentation

SOFA NG: a modular SOFA

  • Simplify headers dependency graph by removing un-needed includes
    • SofaCore
    • SofaDefaultType
    • SofaHelper
    • SofaSimulationCore
  • Pluginize all SOFA modules
    • SofaBase
    • SofaCommon
    • SofaGeneral
    • SofaMisc
    • SofaAdvanced etc.
  • Iterate to design the future SOFA architecture

Packaging & CI/CD

  • Setup a Benchmarking CI
  • Documentation about Github Actions + use Github Actions for supported plugins
  • Run tests on the install instead of on the build
  • Generate binaries v2: use SOFA binaries to build plugins
  • Dependency management (more and more critical with modularization): SPM, Snap, Flatpack, …
  • Find a standard solution to RELOCATABLE hack
  • (one day) a SOFA PPA with nice Linux packages
  • (one day) create repos with SOFA as a submodule to experiment different package mgmt systems

Topology

  • Redesign a more centralised API of topological changes
  • Propagate this design in SOFA
  • Add tests for topology components and API
  • Converging towards a dedicated static geometry module (Caribou-like, maybe converge here as well)
  • In this work, clean/fix of the SofaCUDA plugin would also be considered

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!

Find below the list of additional topics (out-of-roadmap) which should be addressed during the next six months:

“AI platform for SOFA” workpackage

  • Assemble all existing projects (Scikit-learn, OpenAI Gym, UNet, PyTorch)
  • Design a first skeleton of a python interface coupling SOFA and such machine
    learning algorithms
  • Present the proof of concept at the next STC

“Cosserat” workpackage

  • implement Featherstone-like method
  • implement the mass component

“InSimo open-source contribution” workpackage

  • Compare performances and identity differences
  • Study the proposed multithreading approach

“SPH model for living tissue simulation” workpackage

  • Make this plugin compatible with SOFA latest release in 6 months: might require more than 6 months and therefore not operational for v21.06
    • complete standalone Alpha (Nov-Dec)
    • develop genome code to build models (Dec-Jan)
    • wrap as Sofa Plugin (Probably July-August)
    • visualization in Sofa (by 21-12)
    • interaction with other Sofa models & haptics (by 21-12)

“Materials” workpackage

  • Add new tutorial materials (video)
  • Improve the documentation

“Reworking matrices – System resolution” workpackage

  • Matrices format : e.g. linear solver proposed in the LGPL InSimo repository
  • Write the proposal of suggested / targeted architecture
Back to Top