Roadmap

download

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#11) took place on the 1st June 2021 online.
During this meeting, the committee voted the following roadmap:

SOFA NG: a modular SOFA

  • Finalization of the proposed component dispatching
    • continue to clean SofaFramework
    • components are dispatched according to their natures (collision, visual, etc)
    • move deprecated or not useful components out of code base (mostly into plugins)
  • Finalization of the Proof-Of-Concept
    • still able to test the proposal without touching anything in the current code base
    • all important/supported plugins (e.g SofaPython3) should be usable
  • Move plugins out of the main SOFA repository
    • SofaPython2 (and non maintained plugins) will still be available
      but non compiled/supported anymore by the Consortium staff

Topology

  • List the features needed from a “High level Topology API“
  • Finalize architecture of core::Topology / Geometry
  • Finalize Topological Changes API
  • Define a subset of components that should handle topological changes (~ 20)
  • Add tests on those components related to topological changes
  • Propagate new design to those new components
  • Add doc on how to create component handling topological changes
  • Populate Geometry/topolgy collections
  • “SofaCaribou like” Topology integration (templated on element)
  • Remove/depreciate old topological changes API

Matrix assembly

  • Comparison with side project from Hadrien
  • Prototyping following the discussed to be presented before next STC
  • Work on a minimal subset of SOFA, to show new API / function signatures
  • Work on merging the addDForce and addKToMatrix (taking into account the matrices in Mapping : to unify applyJ, applyJt and applyJt()
  • Component “assembly” handling the matrix formats and offset when needed
  • Compatibility with Python3 usage must be ensured

SOFA & AI

  • Common objectives
    • Thrive to integrate SofaGym in the DeepPhysX projects:
    • Make DeepPhysX Core compatible to include SofaGym as a submodule
    • The SOFA submodules of DeepPhysX should share the same API and toolbox
    • The actual SOFA submodule dedicated to supervised learning will allow deployment on grids to launch several instances of SOFA
  • SofaGym
    • Official release
    • Generalize the hack to restart the simulation
  • DeepPhysX
    • Converge to a stable version of actually developed module (Core, SOFA, PyTorch: todo list of small steps)
    • Add a third pipeline to retrain networks on unseen inputs during training or with real data
    • Work on tools to go with the user while defining the training generated data
    • Writing unit tests, writing documentation, additional exemples

User/Dev experience

  • Documentation
    • fix the lines bug in user doc
    • make documentation easier to reach from website
    • make it clear that the doc is EASY to edit (video tuto?)
    • add some Simulation use-cases
  • Support
    • migrate Forum to GitHub Discussions
  • External plugin workflow next step: GitHub Actions
    • use GA in main plugins (SP3, Caribou, …)
    • write doc on how to setup GA in a plugin repository
    • write doc on how to generate binaries with GA
  • How to create a plugin based on SofaPython3?
    • write documentation
    • create an example plugin
    • better referencing readthedocs in SP3
    • add timecodes to tutorial “Creating bindings with pybind11 and SofaPython3”
  • SOFA binaries
    • make Caribou integrable
    • propose a solution (POC?) for modular binaries

Cosserat plugin

  • Add plasticity to the model: mechanical linear model to non linear model
  • Cleaning (unit, tests, …)
  • Add new example scenes
  • Get inspired from Caribou for packaging
  • Remove python2-related codes for the next release

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:

“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
    • wrap as SOFA Plugin (Probably August)
    • visualization in SOFA (by v21.12)
    • interaction with other SOFA models & haptics (by v21.12)
Back to Top