Skip to content

Report of "SOFA dev meetings"

Hugo edited this page Jun 4, 2025 · 186 revisions

Join us every Wednesday 9 am CET online: www.sofa-framework.org/sofa-dev-meeting

SOFA DEV - Notes


04/06/2025

News

Technical discussions

  • Discussion about the Assimp plugin
    • Outsource the code
    • Deactivate on the CI
  • Addressed topics at "Réseaux Thématiques Inria"
    • Scientific computing : date being defined
    • Robotics : differentiable simulation
    • LLM : Lyon in October
  • Plugin dashboard : make sure to get the triggered Actions updating the dashboard
  • SOFA dashboard is currently having one scene time-outing : SlidingLagrangianConstraint.scn. Alex will investigate it

PR review

SOFA PR review

BEAMADAPTER PR review

DOC PR review

SOFAGLFW PR review

CSPARSESOLVERS PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

DOC PR merged

CI PR merged

CGALPLUGIN PR merged

SOFASPHFLUID PR merged


28/05/2025

News

Technical discussions

PR review

SOFA PR review

SOFAPYTHON3 PR review

DOC PR review

CI PR review

CGALPLUGIN PR review

SOFASPHFLUID PR review

PR merged within the week

SOFA PR merged

SOFAGLFW PR merged

SOFA.QT PR merged


21/05/2025

News

  • 📢 Last minute registration for STC#19:exclamation:
  • Vote for the STC discussion topics will take place at the SOFA dev meeting

Technical discussions

  • Feedback from the SED Sprint on the application of the template method pattern
    • Successful experience, 34 PR opened (set to WIP) will be post-processed by Paul and Hugo
    • Application on all Base classes (inheriting from BaseObject)
    • One PR remains to be completed (hugtalbot)
    • One other PR remains focused on BaseObject itself
    • Deprecation purpose : base function is made final to trigger an error message on overriding function (see online code snippet). Later, base functions could be made non-virtual.
  • Presentation of the dashboard for plugins made by Paul for the supported plugins
    • Soon a dedicated static webpage will be created
    • PR are currently open in various plugin repos
    • Remaining TODO : fix failing plugins
  • #5500 [Core,Lagrangian] Add some useful comments
    • Constraint code is hard to catch. Need a review
    • Suggestion not to wait for the PR to be complete
  • Alex wrote a XML-scheme script which can be used in IDE to make code autocompletion. Feel free to check the SOFA.xsd
  • Alex also created a plugin "maker", see GitHub Discussion #5486

PR review

SOFA PR review

BEAMADAPTER PR review

SOFA.QT PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

BEAMADAPTER PR merged

DOC PR merged

SOFAGLFW PR merged

REGRESSION PR merged

SOFA.QT PR merged

CGALPLUGIN PR merged

REGISTRATION PR merged

PLUGINEXAMPLE PR merged

SOFASPHFLUID PR merged

SOFA.METIS PR merged


14/05/2025

News

Technical discussions

  • ODESolver::solve(params,dt) used in AnimateVisitor and MechanicalIntegrationVisitor (only used in CollisionAnimationLoop and its MT version)
    • keep only one makes sense (full signature with VecIds)
    • issue created about this #5467
  • #5466 [Framework] Apply template method design pattern to BaseMapping
    • each function should have a dedicated / different name
    • alternative: focus on the level 2 (Mapping, ForceField, Mass classes). Not preferred regarding the consistency
    • does not prevent/block this PR (and similar ones) anyone
  • Resurrection of SOFA dev repository: TriangleSubdivisionTopologicalMapping. Could be brought back to SOFA or Shell plugin
    • This code can be brought in SOFA since it has interest beyond the Shell plugin
  • SOFA GL is not checked using GLFW GUI: error at first configuration
    • should remove GLFW active by default
    • set a log that says that SOFA_OPENGL is needed

DOC PR review

SOFAGLFW PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

BEAMADAPTER PR merged

SOFAGLFW PR merged


07/05/2025

News

Technical discussions

  • SOFA GFLW - new GUI : missing features & bugs to solve, development effort
    • Depending on the advancement on fixing these bugs, we might have to distribute Qt GUI and set by default in the v25.06 release
    • Consortium staff focuses on GitHub Actions until mid-June
  • Migration Jenkins to GitHub Actions : Linux and MacOS is done, only Windows remains. One compilation issue with Cuda + one alst unknown remains: the tests, there might be issues with the paths (length).
  • Template method pattern : why not only check the component state in visitors ?
    • Do not target the componentState process in the sprint
    • #3317, #3904, #4943 already started this work
    • Discussion on naming
    • Issue describing a recipe to apply such changes
    • Performance is a real concern with this mechanism: e.g.addDForce for iterative solvers -> We will need 'less lazy' update mechanism of the component state to avoid checking the graph each call of those simple methods.
      • A good thing is that now we have the performance regression scripts : we will need to test the PR with this before merging them

PR review

SOFA PR review

BEAMADAPTER PR review

PR merged within the week

BEAMADAPTER PR merged

DOC PR merged

CI PR merged

SOFAGLFW PR merged

REGRESSION PR merged


30/04/2025

News

Technical discussions

  • Scene errors: [ERROR] [FileSystem::createdirectory()] /home/runner/.config/SOFA: File exists further to #5096
    • Linux error only since when the folder is existing, an error is thrown. We should either use std::filesystem instead of sofa::helper::system::FileSystem (see Fred's comment)
    • Decision : use std::filesystem directly in the SOFA FileSystem
  • #5411 [SofaDistanceGrid] New scenes and regression tests for the plugin
    • Problem with Regression tests: not the same tests are failing on all OS because of numerical precision discrepencies. Investigation should be performed in VM + on ubuntu use gcc and clang to see compiler differencies.

PR review####

SOFA PR review

SOFAPYTHON3 PR review

  • #494 [doc] Fix examples given in the First Steps It has been fixed and tested. But they will be outdated for next release (Use of QGL instead of IMGUI) --> need to update it. Tests should be added in SofaPython3 to test scenes ran within a Python environment. → ready

BEAMADAPTER PR review

DOC PR review

REGRESSION PR review

PR merged within the week

SOFA PR merged

BEAMADAPTER PR merged

REGRESSION PR merged


23/04/2025

News

  • 1️⃣ 0️⃣ 0️⃣ 0️⃣ 🌟 on the SOFA GitHub repository!
  • 📢 STC#19 registration is open: register online now
  • SOFA release branch v25.06 will be created early May
  • Autogeneration of activable and supported plugins has been added to the doc.

Technical discussions

  • #5411 About the SofaDistanceGrid plugin
    • The collision model is shifted with respect to the object. Confusion comes from the fact that the collision is not mapped and acts directly on the mstate of the object. To remove the shift, only one point should be placed in the mstate and it should be at the origin.
      • It might be great to fix that and enable a mechanism of localToGlobalCoord as in the rigid mapping. To allow any relative position at the begining of the simulation between the dof and the mesh.
    • It need to be refactored:
      • warn user when object is wrongly used
      • explodes files to have one file per object
      • use links instead of pointers for mstate or inherits from SingleStateAccessor
      • rely on a loader instead of loading the file internaly. This will enable the mechanisms availables into loaders.
    • There is a current dependency MiniFlowVR that is quite old and we would like to remove it. But right now it seems to be required. We need to investigate to see if the plugin can use more common filename to know if we can get rid of it.

PR review

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

REGRESSION PR review

PR merged within the week

SOFA PR merged

DOC PR merged

PLUGINEXAMPLE PR merged

SOFASPHFLUID PR merged


16/04/2025

News

  • 1️⃣ 0️⃣ 0️⃣ 0️⃣ 🌟 on the SOFA GitHub repository!!!!!
  • 📢 STC#19 registration is open: register online now
  • SOFA release branch v25.06 will be created early May
  • Nice InfinyTech3D booth at Laval Virtual: see the LinkedIn post here
  • InfinyTech3D will take part in the SOFA-Slicer workshop organized at Universidad Carlos III de Madrid in Spain

Technical discussions

  • Continuous integration was down for two days due to an "update" on Inria servers. Now back up and running!
  • Prefabs project still ongoing, we might be discussing about it at the STC#19!

PR review

SOFA PR review

DOC PR review

PLUGINEXAMPLE PR review

SOFASPHFLUID PR review

PR merged within the week

SOFA PR merged

PLUGINEXAMPLE PR merged


09/04/2025

News

  • 📢 STC#19 registration is open: register online now
  • Welcome to Lucas Burel ! He is a new intern at the DEFROST team who will work on the shell models.

Technical discussions

  • Interest in simple models for wave propagation in a volume
    • Discussion to have again with InfinyTech3D
    • Demo could be done by Fred later
  • Integration of COAL (HPP-FCL)
    • Problem was documentation and access on response data
    • Get in touch with Louis Manteau directly would ease the integration
  • Project candlewick: a cross-platform real-time 3D renderer for robotics powered by SDL3-gpu
    • This is really a choice for technology but a lot of other technical solutions exist, let's wait and see. Not yet mature

PR review

SOFA PR review

DOC PR review

PLUGINEXAMPLE PR review

SOFASPHFLUID PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

DOC PR merged

CI PR merged

REGRESSION PR merged

SOFA.QT PR merged


02/04/2025

News

  • 📢 STC#19 registration is open: register online now
  • Welcome to Lucas Burel ! He is a new intern at the DEFROST team who will xork on the shel models.

Technical discussions

  • Presentation the new visitors by Alex (3rd edition)
    • Current visitors are based on the scene graph, it therefore depends on how it has been built by the user (e.g. ordering influences the execution order)
    • Working on visitors based on the mapping graph : would guarantee a desired execution order
    • Mapping graph does not exist yet
    • The header-only TaskFlow library is used to define and order the tasks
    • Questions arise:
      • how/when to do conversion from the scene graph to mapping graph (convert/recompute it or cache it)
      • how to make sure to detect all changes affecting the mapping : cache invalidation is the complex part
      • would it be possible to handle that by introducing callbacks on mappings links to invalidate the cache whe a change modifies the graph?
      • we should work on a scene stress-case (rigidification, topological change, node removal/addition, dynamic contacts)
      • might be possible to have an intermediate version where we could activate the recomputation of the graph
  • Status of the BeamPlastic plugin (#1618)
    • The plugin will be open-sourcely released with a LGPL license
    • We should think merging the various beam models though
  • Add a documentation page about SOFA environment variables that are used explicitly or as fallback (e.g. SOFA_ROOT, SOFA_PLUGIN_PATH, and more !)
    • Make a troubleshooting page whith all the env variables and other stuff pointing as much as possible to already existing doc pages.
  • Possible participation of InfinyTech3D at the SOFA-Slicer workshop
  • Interesting PR to keep in mind using precompiled headers on GitHub Actions: #2627 Fix PCH and ccache build

PR review

SOFA PR review

SOFAPYTHON3 PR review

DOC PR review

SOFA.QT PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

BEAMADAPTER PR merged

CI PR merged

SOFAGLFW PR merged

REGRESSION PR merged


26/03/2025

News

Technical discussions

  • Binary signature process: shall we start the discussion ? :arrow_right: Info here
    • that might be good, but maybe not the higher priority. We need to prioritize. Jenkins 2 Github migration has higher priority : start after this.
  • CMake : generate dependency graph and edit it to make it simpler
    • Currently the tree is generated using CMake : but a svg is directly produced
    • Alex has an option it its IDE (jetbrain) to generate such graph using yFiles for visualization. --> Very difficult to read
  • Node editor librairies for SofaGLFW (ImGui) to draw simulation/mapping/data tree
    • Tried 'imgui-node-editor' from themd and ImNodeFlow. --> Problem: imgui-node-editor is the best but is not developped anymore (them main branch is not even building with ImGui master)
    • We need to decide wether visualization is a priority -> need to be discussed at next STC. If it is, we need to either decide if maintaining imgui-node-editor is worth the time, find an active fork or find another library upon which we can rely.
  • #5356 [All] Move fetched guis folders into dedicated folder
    • Problem: Python bindings in GUI will never be compiled.
    • Quick and dirty solution : add SofaPython3 before anything else. (transfer adding of application subfolders in a CMakeLists.txt)
    • Better solution: add all plugins directly in a main CMakeLists file in application (directly adding plugin/SofaPython3 for instance). Could be simplified byt segmenting inclus with subfiled (e.g. plugins.cmake)

PR review

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

DOC PR review

CI PR review

SOFA.QT PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

BEAMADAPTER PR merged

SOFAGLFW PR merged

SOFA.QT PR merged

SOFA.METIS PR merged


19/03/2025

News

Technical discussions

  • Short presentation about ImGui
    • Update the list of desired features and noticed bugs (see Issues)
  • Compilation of SoftRobots.Inverse, Cosserat (#5113) on the CI
    • Make a PR with SoftRobots.Inverse
  • #5332 [CMake] Fetch in build dir instead of source to avoid lots of cmake errors
    • we should avoid fetching sources into the SOFA sources
    • this PR suggest to include external plugins in the build dir
    • in plugins, only one file (GitConfig.cmake) remains containing name of the repository and the tag
    • issue with SofaPython3 which does not behave properly (all internal folders/targets are copied in the build), it should therefore be refactored
  • #5324 [examples] Propose a new default scene
    • Everyone agrees with the new scene
    • Problem of center of view noticed
    • Comments could be added in the scene

PR review

SOFA PR review

BEAMADAPTER PR review

DOC PR review

SOFAGLFW PR review

SOFA.QT PR review

SOFA.METIS PR review

PR merged within the week

SOFA PR merged

DOC PR merged

SOFAGLFW PR merged

REGRESSION PR merged


12/03/2025

News

  • New engineering forces coming in!
  • Check out the 2025 SOFA events
  • Dedicated session on matrix assembly will take place around the STC#19 in June in Strasbourg, along with paper presentations
  • Sprint SED: joint effort with SED engineers to work on how to proprerly apply the delegate pattern in SOFA
    • Simple topic with large impact on SOFA
    • Any other suggestions is welcome

Technical discussions

  • Presentation of the Performance Regression dashboard
    • performance tests are now running at each merge in master
    • not run within a PR
    • Results are also in the same repo to be self-contained
    • We need to remember that changing the timers should trigger a change in the script (patch)
    • TODOs:
      • Notify when performances worsen
      • Document how to update the repository when a timer is modified/added
      • Include this check recursively at STC
      • Windows builder could be trickier (LTOptim)
      • Add syntax to add optionnal timers in timer files
  • Plastic beam: Fred did some update to make it compile. Let's see if the full CI is OK by activating it by default in the PR.
  • List of errors on CI
    • LCPForceFeedback_test should just be more gentle on the frequency (500Hz)
  • Discussion about remaining ImGUI issues
    • Add data modification widgets
    • Fix last problem regarding contact mapper and random names making ImGUI crash
    • Mouse interactions
  • Collision models with Capsule

PR review

SOFA PR review

PR merged within the week

SOFA PR merged

BEAMADAPTER PR merged

DOC PR merged

CI PR merged

SOFAGLFW PR merged

REGISTRATION PR merged


05/03/2025

News

  • New engineering forces coming in!
  • Check out the 2025 SOFA events
  • Additional training courses will take place around the STC#19 in June in Strasbourg

Technical discussions

  • Having several ODE solvers in a single node: Alex has a use case where one could use the other. But today all solvers are visited independently
    • SolveVisitor triggers a solve on all ODE solvers in each node
    • Discussion about BDF schemes (order 1-6)
    • Any use case to have several ODE solvers per node ?
    • Pointer towards the first ODE found + warning at scene creation when several ODE solver founds
    • Possibly refactor the NodeSingle
  • Status of Shell plugin
    • Different versions at Mimesis (gitlab) and Defrost (github)
    • The open-source version is not functional (not stable) with a bug (rest position)
    • The private older version contains a lot of things (Bezier interpolation, engines, bending plates)
    • Solutions: restart from scratch or revive codes
  • #1618 [plugins] Beam plastic
    • Answer from Camille: agrees to include changes and possibly pluginize it
    • Contact UCA for license definition

PR review

SOFA PR review

BEAMADAPTER PR review

SOFA.QT PR review

REGISTRATION PR review

PR merged within the week

SOFA PR merged

SOFAGLFW PR merged

26/02/2025

News

  • New engineering forces coming in!
  • PerformanceRegression plugin is out and running! A dedicated presentation will be done later this week and at the STC#19
    • Each new commit in master branch of SOFA now triggers performance testing
    • It does not trigger an error on GitHub CI if performances decrease
    • Can be run locally

Technical discussions

PR review

SOFA PR review

BEAMADAPTER PR review

SOFAGLFW PR review

SOFA.QT PR review

REGISTRATION PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

BEAMADAPTER PR merged

SOFAGLFW PR merged

SOFA.QT PR merged

SOFAMJEDFEM PR merged

CGALPLUGIN PR merged

REGISTRATION PR merged

PLUGINEXAMPLE PR merged


19/02/2025

News

  • Recruitment Gaetan Desrue (Epione) to work on electrophysiology simulations for 6 months
  • Themis just arrived at InfinyTech3D as software engineer on SOFA

Technical discussions

  • #5272 [CMake] Modify presets to generalize its use
    • Explicit and centralize the various SOFA configuration used for the CI, the release generation etc. This PR should help significantly in the lifecycle on plugins and the technical steering of plugins by SOFA consortium members
    • Fine by Olivier (for pixi) might be changed slightly in the future
    • Add hidden configuration named 'core' that would not integrate the applications
  • Dump a newer version of ImGUI
    • Related to the issue #152
    • The plugin uses some ImGUI options : ImGUI has no packaging, two branches in parallel (docking-branch & master). We rely on docking-branch but no Conda packaging exists about it. Discussions ongoing with the ImGUI devs
    • We'll continue to fetch the docking-branch, deliver the binary version, link statically and not shipping symbols to avoid inconsistency with users ImGUI versions
  • All SOFA repository officially supported now have the proper PR-related flags. Note that flags on Defrost plugins: SoftRobots, SoftRobots.Inverse and ModelOrderReduction do not have PR-related flags
  • Plugins
  • #5245 [all] Lifecycle in preparation of v25.06 release
  • Update on SofaPython3 documentation incoming (see #481, #482 and #483)

PR review

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

SOFAGLFW PR review

SOFA.QT PR review

REGISTRATION PR review

PR merged within the week

SOFA PR merged

BEAMADAPTER PR merged

SOFAGLFW PR merged


12/02/2025

News

  • We did move from Twitter to Reddit, discover our new Reddit account!
  • 2025 Executive Committee of SOFA took place on January 28th with Strategic Partners

Technical discussion

  • ⚠️ #5176 has been merged to remove Qt and make SofaImGUI as default viewer ⚠️
  • Various flags / SOFA configurations
    • too many different definitions
      • CMakePresets.json
      • sofa-framework/ci
      • CMakeLists.txt
      • Document "CI Scope
    • this could be simplified using only the Presets (generating a document on the wiki)

PR review

SOFA PR review

BEAMADAPTER PR review

DOC PR review

SOFAGLFW PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

DOC PR merged

SOFAGLFW PR merged


05/02/2025

News

  • We did move from Twitter to Reddit, discover our new Reddit account!
  • 2025 Executive Committee of SOFA took place on January 28th with Strategic Partners

Technical discussion

  • Scene explosion: how to detect/avoid this by pausing SOFA.
    • The Animation loop could inspect the mstates :
      • Might be good to try to detect when a NaN appears.
      • Energy based detection ?
    • Or the ODE
      • Newton Raphson has a residue that might also be good to tak einto account
    • Look at Bordas's work on how to detect when the FEM model is not precise enough

PR review

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

DOC PR review

  • #168 Update 45_Lifecycle_mechanisms.md Discussion on whether it might be better to guide the compilation error instead of removing the symbol directly. Normally we should use DeprecatedAndRemoved. It is necessary to unify the lifecycle API -> make a clear difference between C++ symbol and factory datas. → keep to review

SOFAGLFW PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

BEAMADAPTER PR merged

DOC PR merged


29/01/2025

News

  • We did move from Twitter to Reddit, discover our new Reddit account!
  • 2025 Executive Committee of SOFA took place on January 28th with Strategic Partners

Technical discussions

  • Tour of the dashboard: persistent or flashing errors/warnings/crashes
  • Windows VM are extremely slow: It is urgent now to move from Jenkins to GitHub Actions, with GitHub VM and possible hybrid setup with self-hosted machines (CUDA)
  • Re-discuss the compliance with C++20
    • Proxsuite has fixed its issue
    • Support clang-cl on windows VM builders (half of the builder could use clang-cl)
    • Start with a CI with Pixi on GitHub
  • Binary signature: service is open and in production but some bugs remain
  • Conda: saturation of memory with the ModelOrderReduction plugin
    • Sort the examples to keep (only finger)
    • Make sure to use the flag introduced by Paul to filter the resources at installation
  • Make warning for the double loading of plugin as a developer warning

PR review

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

DOC PR review

SOFAGLFW PR review

PR merged within the week

SOFA PR merged

BEAMADAPTER PR merged

DOC PR merged

SOFAGLFW PR merged

REGRESSION PR merged


22/01/2025

News

Technical discussions

  • New regression architecture proposed
    • Less environment variables
    • Simplified through only Python
    • Applied in BeamAdapter as in #164
    • TODO (see #69)
      • use .csv extension for regression files instead of .json
      • regenerate all dependencies
      • test with a SOFA PR and a sofa-depends-on
      • check new references files with old ones
  • Complexity in handling the lifecycle of renamed data
    • Once the date of disabling is reached the c++ symbol could simply be deleted
    • The compiler (clang at least) would probably suggest since the name difference is only d_

PR review

SOFA PR review

BEAMADAPTER PR review

  • #164 [WIP/POC] Use new regression As mentioned in the technical discussions, the new regression process should be tested against SOFA then officially supported → keep to review

SOFAGLFW PR review

PR merged within the week

SOFA PR merged

DOC PR merged


15/01/2025

News

  • Release v24.12 is now out (both source and binary versions)
  • Agenda 2025 is available!

Technical discussions

  • Release
    • New script using CPack at the end of the install
    • Working for all, just failing with the ZIP on Windows
  • Clean of SOFA and SofaPython3 repository branches
  • CI Conda
    • Release done with v24.12
    • Now work on plugins
    • Nightly packages being generated (integrate GLFW) for a new CI fully based on Conda. This was required due to the coupling between SOFA and Pinocchio (plugin Sofa.RigidBodyDynamics)
    • Test of the Conda release is welcome
    • Remove support to 3.8 and 3.9 to fit what SOFA supports
  • Overview of the introduced C++20 concepts (#5196, #5199, #5200, #5201, #5205 and more recent ones), SOFA is leveling 🆙
  • #5212 [Simulation] Trigger error when Node already contains component
    • Generate many errors in the scene which are not following the Node rules
    • Might be good to first merge this PR only with warnings
    • Then open a PR with an ERROR throw and make it pass (mainly ogl + mechanicalObject OR two topology)
    • Why not removing the rule of having only one instance of a certain type of component ? If we base mechanics on mapping graph that should be explicited with link then nodes have no more utility except sorting components.

PR review

SOFA PR review

DOC PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

BEAMADAPTER PR merged

DOC PR merged


08/01/2025

News

  • Happy New Year 2025 to you all!!
  • Read our article about the SOFA Week 2024 experience!
  • v24.12 branch is created and the release is almost ready. Stay tuned for the official binary release!
    • version for x86-64 should be ready by Friday (v24.12.00)
    • version for arm architecture will be targeted but could come in a second minor release (v24.12.01)

Technical discussions

  • Signature of binary release should be done through a Inria-GitLab pipeline (picking up the SOFA binaries). A dedicated runner is available on the Inria infrastructure. We will contact the first developers / admin using it. Possibly to integrate within the new GitHub CI (action-driven)
  • Plugin namespace organization
    • all namepsaces should be prefixed with the plugin name (e.g. cosserat::...{})
    • all register methods should be done within the namespace with the plugin name, e.g. namepace cosserat{}
  • New GUI using GLFW (roadmap topic)
    • #5177 [runSofa] Change default scene --> modify this PR to remove the set to default and include the scene in the Demo folder.
      • the rendering of SOFA should be improved
      • should the default scene be that complex?
      • use the config to define whether or nor to use a default scene
      • Problem: BeamAdapter being fetched and activated by default
        • Not a real problem because it can be deactivated with CMake (-DPLUGIN_BEAMADAPTER=OFF)
    • #5176 [GUI] Remove Qt and make SofaImGUI as default viewer
      • Merge first to see how dev goes with an auto-fetched
      • Agreement has been met to get SofaImGUI as default so that we can improve/clean it for the next release v25.06

PR review

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

DOC PR review

SOFAGLFW PR review

  • #141 Set compilation of plugins by default This might have an impact on the GitHub Actions (compilation SofaGLFW alone and compilation with ImGui). Actions should be updated to hard-impose the SofaImGui OFF. Do we want to have separate repositories? → wait for #5176

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

BEAMADAPTER PR merged

SOFAGLFW PR merged


18/12/2024

News

Technical discussions

  • SOFA scene Python
    • Without controllers: runSofa and Python are the same with all OS
    • Linux and windows : no difference performance between runSofa and python3
    • On MacOS : controller induces a signficant lag when using runSofa instead of Python3 directly. Having a controller with an handleEvent in python kills the perf: this might be linked to the Trampoline bindings
    • Loading of libraries in MacOS might also slow down the process
  • Remove CGAL from Ubuntu CI?
    • PR on the CGALPlugin enforcing the job pull equals to one (JOB_POOL_COMPILE)
    • Injecting this CMake property only for the CI would be cleaner, using CMAKE_PROJECT_PROJECT-NAME_INCLUDE (later PR)

PR review

SOFA PR review

SOFAPYTHON3 PR review

SOFAGLFW PR review

  • #137 Selectableitem Actions restarted now that the SOFA PR has been merged → keep to review

PR merged within the week

SOFA PR merged

REGRESSION PR merged


11/12/2024

News

  • The open source SOFA project has been awarded by the Jury's Prize of the French OpenSource Software Committee (COSO): https://www.sofa-framework.org/about/news/coso-award-2024/
  • As 2024 is coming to its end, christmas bells are ringing to remind us that it is the moment to publish the second minor release of the year: the v24.12. In this process the branch v24.12 will soon be created. → If you've got some changes you need in this release it is now time to make a PR and milestone it for v24.12
    • Dec 11th: next dev meeting, all PR are milestoned and only v24.12 PR will be reviews and merged (by 13th)
    • Dec 20th: release objective date

Technical discussions

  • SOFA-dev mailing list: create a short survey to evaluate its interest
  • #5155 [Core, Simulation.Core] Registration: (re)enable deprecation warnings
    • Messages could be addressed to developer only (using dmsg based on the CMake flag SOFA_WITH_DEVTOOLS)
  • #5152 [All] Fix visualisation
    • Test to remove the inheritance of VisualStyle from VisualModel
    • VisualParams are a kind of singleton
    • This topic is very similar to the gravity
    • Need to create an issue detailing the steps for a future refactoring project
  • We should make sure that the CMake flag SOFA_WITH_DEVTOOLS should be set to FALSE in the Release

PR review

SOFA PR review

SOFAPYTHON3 PR review

PR merged within the week

SOFA PR merged

SOFAGLFW PR merged


04/12/2024

News

  • Last week our annual event, the SOFA Week 2024, gathered more than 70 participants on site in Lille! It was a pleasure to meet the community, listen to the high quality presentations and test the demos during the symposium day. → The quality of this event is down to you, your involvement in the project makes it possible. A big thank you to you all!
  • The 18th SOFA Technical Committee took place during the three last days of the week. Stay tuned for the roadmap to the v25.06 release!
  • As 2024 is coming to its end, christmas bells are ringing to remind us that it is the moment to publish the second minor release of the year: the v24.12. In this process the branch v24.12 will soon be created. → If you've got some changes you need in this release it is now time to make a PR and milestone it for v24.12
    • Dec 11th: next dev meeting, all PR are milestoned and only v24.12 PR will be reviews and merged (by 13th)
    • Dec 20th: release objective date

Technical discussions

  • Slicer-SOFA: Boost seems to be an issue. boost is header only in SOFA. It is still used in:
    • Topology : dependency to boot for graph structure
    • Shared pointers: intrusive_ptr some programming work to be done to replace it
    • Maybe put boost as a find_or_fetch
  • #5148 [Config] Introduce SOFA modules data structure
    • Interesting feature to bring autocompletion and explicit dependency
    • Autocompletion for SofaPython3 is similar
    • CMake could automatically generate this Modules.h (used both for the SOFA and SofaPython3 uses)
    • A test could be added from CMake checking all Sofa.Component.* modules and comparing with the Modules.h
  • #5133 [Helper] PluginManager: support loading from Non-MSVC Multi-Configuration Build
    • XCode does like MSVC and create folders in multi-configuration build
    • When loading libraries at compilation time, we need to know whether we are in debug or release
    • PluginManager encapsulate the knowledge of the config
    • Milestoned v25.06 and then could be merged as is
    • For later, symbols could even be made PUBLIC, we would just need to check other plugins (SofaCUDA, SofaPython3)
  • Reactivate warnings for deprecated registration mechanism
  • Further to the v24.12 release, SofaGLFW will be made the default GUI
    • Activate and auto-fetch it by default
    • Remove the Qt dependency and make the old GUI as a plugin
    • Merge the SofaGLFW plugin in the SOFA source code

PR review

SOFA PR review

SOFAGLFW PR review

REGRESSION PR review

PR merged within the week

SOFA PR merged


20/11/2024

News

Technical discussions

  • #5126 [Core] Modern visitor creation While working on the visitor definition, Alex proposes two alternative methods: the creation of classical SOFA visitors or a new implementation of the original visitor design pattern. It is a known pattern, slightly more verbous but the implementation follows modern C++ format (accept combined with lambda). A second version of these modern visitors is presented (see MechanicalOperations.cpp) with a function e.g. makeMechanicalVisitor. This might lead to code duplication. Objective is to improve the visitor readability at first sight. This work is done with the objective to apply visitors on a "mapping-based graph". → draft

PR review

SOFA PR review

SOFAPYTHON3 PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

DOC PR merged


13/11/2024

News

Technical discussions

  • #5081 [Core] Fix isSet flag when setting a link to a not-yet created data Suggestion to add a test with a wrong link. Creation of the object with a wrong link does not send an error/warning. Link can therefore be set bu invalid if the parent is invalid. Ideas:
    • add an additional checker when data isLinked and getParent is null
    • Remove lazy link (might be braking for XML) and use strong link
  • New PR #57 including the Cosserat plugin in the CI. Let's make a PR including it in SOFA, thus allowing to fix errors and problems in the PR before updating the CI config.
  • Find solution for RAM shortage on Ubuntu compilation (due to CGAL plugin compilation)
    • Use more swap
    • Use zram
    • Skip the file
    • Use more efficient linker

PR review

SOFA PR review

SOFAPYTHON3 PR review

PR merged within the week

SOFA PR merged


06/11/2024

News

Technical discussions

  • Update from STC with consortium members
    • Cosserat plugin will be added in the CI
    • InvertibleFVM, SensableEmulation, SofaSimpleGui plugins will be archived
  • Information further to the development of the RigidBodyDynamics plugin
    • URDF models can be loaded in SOFA
    • Built-in Pinocchio feature: geometry, Jacobian (and transpose)
    • Example being developed with an haptic hand grasping a sponge
    • To be done: autocollision, parse SRDF format, CI integration
  • Nix integration #5059
  • Migration of the Conda recipe using rattler-build
    • Tool to generate conda packages from conda recipe
    • Faster to generate, less verbosity (avoid overlinking/overdepending)
    • Improved feature (experimental): multi-output. Looking forward to it!
  • #5087 [LinearAlgebra] CompressedRowSparseMatrixConstraint: make consistent the serialization/deserialization process
    • Infinite loop due to inconsistent format
    • Serialization can be used to save and to visualize in GUI
    • We could implement a new "pretty" print function, used in Widget or in Python

PR review

SOFAPYTHON3 PR review

PR merged within the week


02/10/2024

News

Technical discussions

  • Review of the progress regarding each roadmap topic
  • Review of the maintained plugins (e.g. DiffusionSolver)

PR review

SOFA PR review

SOFAGLFW PR review

SOFAPYTHON3 PR review

DOC PR review

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

SOFAGLFW PR merged

DOC PR merged

REGRESSION PR merged


25/09/2024

News

Technical discussions

PR review

SOFA PR review

SOFAPYTHON3 PR review

SOFAGLFW PR review

REGRESSION PR review

  • #69 New regression in python Export done in json which is not that satisfactory for Erik, why not using csv. Change format, regenerate all references and test the CI with these new references. Hopefully before STC#18 → wip

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged


18/09/2024

News

  • Registrations for the SOFA Week 2024 are open: make sure to save the date and join us next November in Lille!

Technical discussions

PR review

SOFA PR review

No PR review has been done due to external presentation.

PR merged within the week

SOFA PR merged

SOFAPYTHON3 PR merged

BEAMADAPTER PR merged

REGRESSION PR merged


11/09/2024

News

  • The IRE project will save 36 months of engineering dedicated on SOFA: differentiability of SOFA will be investigated (collision)
  • Jury for the SOFA Awards 2024 is being defined!
  • Registrations for the SOFA Week 2024 are open: make sure to save the date and join us next November in Lille!

Technical discussions

  • Implementation of A Surface-to-Surface Finite Element Algorithm for Large Deformation Frictional Contact --> interesting results but might be more useful in a Newton Raphson algorithm. Interesting to integrate it to SOFA : Open a PR to include this and try to implement the variable epsilon per element.
  • Reimplementation of regression tests in python in PR #69 : need feedback and ideas on metrics
    • comparison of each dofs at the specified end time
      • infinity norm
      • mean value
    • over several time steps
      • compute the 75% of the infinity norm to allow some tolerance
  • Deprecation of HexahedralFEMForceFieldAndMass

SOFA PR review

SOFAPYTHON3 PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

SOFAGLFW PR merged within the week

DOC PR merged within the week

REGRESSION PR merged within the week


04/09/2024

News

Technical discussions

  • Merge the GitHub security advisory PR on all repositories: "Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows dependencies"
  • #4943 [Core] Clean public API of components: proposal to define base class functions as final and override these functions, templated in child classes, as a protected function -> this is breaking. Tests compilation would fail because of change of accessor. We should then change the tests to use the public virtual class (access protected functions). What does this PR is:
    1. set the function of the abstract class to final
    2. fix the components which were overriding this function
    3. set the functions overriding the templated one as protected
    4. TODO: fix/update the associated tests
    5. add the check on the component state:
      • first check non-invalidity
      • then, check the validity

Conclusion : keep two first points on the PR then open new PR to test the point 5. Open draft PR with points 3&4 to get feedback from @sofa-reviewers

  • #4939 [Mass] Fix rigid uniform mass: issue with rigid mass matrices when the inertia matrix is not an homothety. This PR fixes this with tests but it seems that centrifugal forces are not properly computed.
  • Issue 4954 : Mass for hexahedra and quads is wrong. Distribution of the mass is wrongly computed on the element. Take a look at Caribou and what other soft does and try to compute mass matrix chape regarding the hexa shape funciton.
  • Make sure that each PR belongs to a roadmap objective (Project)

SOFA PR review

SOFAPYTHON3 PR review

DOC PR review

Regression PR review

SphFluid PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week


28/08/2024

News

Technical discussions

  • Issue with rigids dynamic : PR #4935 and Issue 4936. A try into fixing it --> PR #4939 → Unit test not testing centrifugal forces that are still wrongly computed. Need to add this unit test and make it pass. Take a look at other rigid simulation framework for meaningfull unit tests.
  • PR #4878, moves cuda implementation of SofaDistanceGrid inside the SofaDistanceGrid plugin. → Two problem arised : a cmake configuration on the CI and NVCC compilation error locally. Alex will fix the cmake error and we will need to investigate the compilaiton error.

SOFA PR review

SOFAPYTHON3 PR review

REGRESSION PR review

SOFA PR merged within the week

BEAMADAPTER PR merged within the week

REGRESSION PR merged within the week


21/08/2024

News

Technical discussions

  • SofaPython3 cleanup (#4828, #432, #425), what are the next steps ? No better solution arised for RAII mechanism. So the one proposed will be the one merged. Fuse the two SofaPython3's PRs, merge SOFA's PR then merge SofaPython ones.
  • A refactoring of the Regression plugin passing everything in python scripts was proposed in PR #69. Feedbacks are needed !
  • Status to review might have two meanings : 1) we want a point of view but we don't think it is ready and 2) we think it is ready and we want to merge it. Might be useful to add a status : merge candidate that is the only one that can be transformed to ready. So for a PR to be merged it will need to first have to review and merge candidate in the same time and to then be accepted and transformed to ready.

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

REGRESSION PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

DOC PR merged within the week


14/08/2024

News

Technical discussions

  • Test failing in #4901 before merge: we often have doubts on the reports from the CI. The migration from Jenkins to GitHub Actions will be very beneficial on this aspect.
  • Qt Wayland on the doc, Aimen's PR should provide information in Linux cases: X11 being the old display protocol, it happens that recent Linux distributions rely on a new protocol/server named Wayland.
    • Share the command to check which protocol is used on your distribution echo $XDG_SESSION_TYPE
    • Share the command to install it if Wayland is used
  • An issue has been created about the SimpleAPI which does not define data isSet. This may affect also SofaPython3. This isSet feature is important and the issue should therefore be fixed soon

SOFA PR review

SOFAPYTHON3 PR review

REGRESSION PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

BEAMADAPTER PR merged within the week

DOC PR merged within the week

SOFAGLFW PR merged within the week


07/08/2024

News

  • Registrations for the SOFA Week 2024 are open: make sure to save the date and join us next November in Lille!
  • 🆕 SOFA Unity asset has been published on the Unity Asset store ! This amazing work has been released by InfinyTech3D, go [check it out here
  • ℹ️ email redirection @sofa-framework.org are broken due to Inria's subcontractor. Our apologies

Technical discussions

  • V&V40 for SOFA
  • Shell plugin should be
    • Fetchable by default
    • Activate by default
    • Tested on CI
    • Build-in in the release

SOFA PR review

SOFAPYTHON3 PR review

DOC PR review

SOFAGLFW PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

DOC PR merged within the week

SOFAGLFW PR merged within the week


31/07/2024

News

  • The SOFA Physics engine for Unity asset has been published on the Unity Asset store ! Congrat to InfinyTech3D for this amaysing work ! Go check it out here 🎉
  • Registrations for the SOFA Week 2024 in Lille next November are OPEN!

Technical discussions

  • Live demo from Aimen: work on mouse interactions within the GLFW-ImGUI plugin
    • Mouse interaction is available with SofaGLFW GUI 👏
    • Bugs moving viewport are fixed
    • Remaining TODOs
      • Data should become editable
      • Settings should allow for changing interactions (constraint-based)
      • OGLSceneFrame to be corrected
      • Scaling window should not change the scale of the scene view
      • Responsive font
  • Discussion with partners like Anatoscope
    • Their technical feedback is always interesting to hear
    • Bringing our technical topics in order to benefit from their experience would be great: created dedicated flag "expert discussion required" to identify topics
  • Incompatibility of the MeshVTKLoader with the VTK5+ file format
    • Find a way to benefit from an easy-to-use library making the coupling with VTK (including the VTK binary format)
  • [Core,Helper] Prevent to create objects from unloaded plugins
    • Explicit registering might solve this issue in a better way
    • PR can be merged but it adds complexity on the PluginManager
    • Fix failing tests due to the factorization
  • [ODESOlver] Fix RHS computation of the backward Euler implicit solver
    • This new computation formula should be expanded on visco-elastic cases to asses the proper assembly
    • Investigate further Rayleigh damping
    • Fix regression DistanceMultiMapping scene: examples/Component/Mapping/NonLinear/DistanceMultiMapping.scn

SOFA PR review

SOFAPYTHON3 PR review

SOFAGLFW PR review

  • #118 Implement centerWindow() This function of BaseGUI is now available in SofaGLFW. Binding for SofaPython3 has been added. → keep to review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

BEAMADAPTER PR merged within the week

DOC PR merged within the week


24/07/2024

News

  • Registrations for the SOFA Week 2024 in Lille next November are OPEN!
  • The SOFA Physics engine for Unity asset has been published on the Unity Asset store ! Congrat to InfinyTech3D for this amaysing work ! Go check it out here !!

Technical discussions

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

DOC PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

DOC PR merged within the week


17/07/2024

News

  • The Soft Robotic Summer School took place in Lille, it was a real success, congratulations to the Defrost Team and every one who helped making this possible!
  • Registrations for the SOFA Week 2024 in Lille next November are OPEN!

Technical discussions

  • SofaGym : RL with BeamAdapter (warm restart)
    • member variables moved as Data
    • instead of exposing all variables as Data, a cleaner approach would be to make components serializable
    • test/regression should be done to confirm the warm restart state
  • #4813 [All] Remove SOFA_ENABLE_LEGACY_HEADERS usage
    • Karscher cleaning
    • Still some component to state on :
      • Gravity : required if we want an API that separate the gravity and the root node, to move in MechanicalLoad
      • SleepControler : to check, might be interesting to bring it back
      • SofaValidation : to archive in external plugins
      • SofaExporter : to import components which have examples
      • SofaMiscCollision : should be fully removed
    • Check for SimpleAPI compatibility layer
  • #4801 [GUI.Component] ConstraintAttachBodyPerformer: Add RigidType support
    • Many unused parameters in the method addContact(), the API should be updated (simplified) accordingly
    • Create an issue to rethink the API

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

SOFA PR merged within the week

BEAMADAPTER PR merged within the week


10/07/2024

❌ No meeting due to the Soft Robotic Summer School in Lille!


03/07/2024

News

Technical discussions

  • Caribou plugin status
    • updates from JNB to fix the compilation with the more recent versions of SOFA
    • several branches on Fenics (Ask Sidaty)
    • updating the plugin and possible merges with SOFA need to be rediscussed

SOFA PR review

SOFA PR merged within the week

DOC PR merged within the week


26/06/2024

News

Technical discussions

SOFA PR review

SOFAPYTHON3 PR review

BEAMADAPTER PR review

SOFAGLFW PR review

SOFA PR merged within the week

DOC PR merged within the week

SOFAGLFW PR merged within the week


19/06/2024

News

Technical discussions

  • #4766 [All] Intoduce cmake unified configurations
    • Make converge all plugin configurations (build, release, conda, website)
    • Presets would be preferred
    • Name of configurations could be made more clear: e.g. does FULL include all possible plugins or only the consortium-supported ones?
    • Plan various levels of plugins: tested, supported, maintained

SOFA PR review

BEAMADAPTER PR review

SOFAPYTHON3 PR merged within the week


12/06/2024

❌ No meeting due to the SOFA Technical Committee #17!


05/06/2024

News

  • Check out and register to our upcoming events!
  • The SOFA America Workshop (SAW) was a success !! Thank you to all the presenters for their amazing work, and all the attendees for their presence !

Technical discussions

  • Don't forget to freeze a v24.06 branch on your plugin as the next release is on its way.
  • Discussion on the new SOFA Doc
    • Existing doc is merged with generated one : might need to clean the existing one by removing info that are generated
    • xml/python example are displayed when they exist. The python translation might need some improvement
    • The merged doc is pushed on a branch and can directly be used on the website
    • Need to correct example names for some components that have been renamed (constraints)
  • SofaPython3 auto completion
    • Also need introspection in factory to generate documentation. Those needs are the same as the one of the doc generator: common ground required to export those data from the factory (into json ?)
    • Difference in type of completion : static (without execution) and dynamic (with the component existing).
    • Need .pyi file describing the methods and signature of each binfdings : generated automatically using python tools.
    • Problem with SOFA bindings: to simplify sometimes we state that the returning type is object but this gives no real informaiton. Might need to review cpp binding signaturee to be more specific.
    • Last part would be to be able to find all the attribute of the object by changing the addObject signature and passing the type instead of the string. But this requires the automatic generation of the description.
    • Following STC dicsussion on what features we want.

SOFA PR review

SOFAPYTHON3 PR review

DOC PR review

SOFAGLFW PR review

SOFA PR merged within the week

SOFAGLFW PR merged within the week

BEAMADAPTER PR merged within the week


22/05/2024

News

Technical discussions

SOFA PR review

DOC PR review

BEAMADAPTER PR review

SOFA PR merged within the week

SOFAGLFW PR merged within the week


14/05/2024

News

Technical discussions

  • Freeze of v24.06 branch next week
    • Finish refactoring on modules (related to the doc generation)
    • Use milestone
  • Share your interest among the discussion topics
    • Maybe not all subject need to be assessed during the STC (e.g. Newton Raphson)
    • Scene header : global solvers might need some rethinking to ease the integration of a NewtonRaphson

SOFA PR review

BEAMADAPTER PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week

BEAMADAPTER PR merged within the week

DOC PR merged within the week


07/05/2024

News

Technical discussions

  • Post-install scripts : why modifying the plugin_list.conf? Paul will refactor this removed plugin list and think of removing it completely.
  • Python bindings : Slicer community identified problems of IDE/interpreter auto-completion. The Slicer team proposed to show their fox for this same problem on their bindings. Before organizing a meeting, ask Damien about current auto-completion ability of vanilla interpreter on the current python3 bindings.
  • Add Qt Wayland plugin installation instructions #109 Proposes new instruction for qt installation when using wayland. Instead of adding a troubleshoot section, add an item in the installation doc with "if using wayland, then..."
  • [Sofa.Http] Introduction of a latest release checker #4702 OpenSSL is too much of a dependency for such not important. It might be better to make a request on a http adress instead to avoid this dependency. Talk with Fred.
  • Small discussion on paper Chen, Anka He, et al. Vertex Block Descent. ACM Transactions on Graphics (2024) Results are interesting on either performance or stability. Use an energy formulation with an Euler integration scheme at the dof level which increases parallelism and stability. It would be worth at looking more in details. Lib used for collision detection : Embree which could also be interesting to dig in. Based on SYCL to have a cross-platform
  • Using the WriterSide tool, Alex presented a way to generate markdown pages for all SOFA components (see https://alxbilger.github.io/SofaDocGenerator). This could be used in the SOFA GUI to guide users regarding Data etc. We could also envisage to merge such a code-based doc with the user documentation.

SOFA PR review

SOFA PR merged within the week


30/04/2024

News

  • Check out and register to our upcoming events!
  • Pre-STC#17 discussions took place with roadmap leaders and consortium members
  • Next SOFA-Dev meeting on next Tuesday the 7th of may at 10 a.m. !

Technical discussions

SOFA PR review

PR merged within the week


17/04/2024

News

Technical discussions

  • What to do with SofaOpenCL ? → Externalize and make it an achive
  • #4648 [Gui.Qt] Notice user a new version is available → Use external lib instead of QT to do the http request. To be commonly defined.
  • SOFA release as conda packages: https://github.com/sofa-framework/conda-ci → Try it out to provide feedback. Conda PR is pushed again with help of core-dev of Conda (through TIRREX)
  • Problem with QWebEngineView pointed in #4656 → Again, might be great not to use a Qt based library for the DocBrowser and instead use the web browser -> will require to have a server on SOFA's side. And maybe think about UX (where and when to put it)

SOFA PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week


10/04/2024

News

Technical discussions

SOFA PR review

  • #4625 [LinearSystem] Cache mapped mass matrix The feature caching a mapped mass matrix is interesting and it can be added directly in SOFA. Adding a similar mechanism for the stiffness matrix could be implemented (not yet in the PR). Use of DDG to update the data value when input data is modified (dt, and mstate.size). However, we do not detect changes in mapping for now (update), tracking the componentState of mapping could be a solution (if callbacks are well implemented in mappings). About the stiffness, it usually depends on the current dofs. Therefore, it is often non-constant (apart from stiff springs, constantFF, small deformation elasticity). Question on dynamic changes in the DDG : what append when the object owning a data in the graph is deleted ? Investigate a new solution for cache invalidation that would work with the Stiffness. → wip
  • #4603 [HyperElastic] Introduce stable Neo Hookean hyperelastic material → ready
  • #4194 [Geometry] Update method intersectionWithEdge signature and redirect all methods to it in EdgeSetGeometryAlgorithms Add issue on LCPForceFeedback test because it result is random. Update the depreciation versions. → update then ready
  • #3927 [Mass] Replace doUpdateInternal by callback: UniformMass Question on the usage of 'default value' if some are meant to be set (required). Here the component is invalid if none of the data (total mass or vertexMass) is set although a default value exists. This mechanism is not great but it is the best we can get with the current API. It would require to modify the global initialization mechanism and data framework (input, output, inout, required...) to have something better. Create issue to discuss this API update at the STC. Replace componentState.getValue() with isComponentStateValid() in the init() function → update then ready
  • #3368 [Topology] Add function in BaseMeshTopology to compute all topology containers Test failing → wip

SOFAPYTHON3 PR review

SOFA PR merged within the week


03/04/2024

News

Technical discussions

  • #4625 [LinearSystem] Cache mapped mass matrix Discussion on J^T M J pre-computation: with a mapped node, we build a node-local matrix which is then projected in the global system. ForceFields and Masses can be concerned. It requires changes in Sofa/Core and in MatrixLinearSystem involving the Observer design pattern. This could be extended to stiffness as well but we lack of application cases. A data could also be added to activate or de-activate this feature. → ask other dev teams
  • SOFA release versions
    • v23.12 for Ubuntu 20.04 → generate unsupported binaries on forum
    • Soon MacOS release

SOFA PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week


27/03/2024

News

Technical discussions

  • Release 23.12 remaining tasks: last issues are fixed, one remaining in SoftRobots.Inverse. We're on it!
  • Technical skills in CI/CMake: share the associated knowledge among the core-devs

SOFA PR review

SOFAPYTHON3 PR review

SOFA PR merged within the week

SOFAPYTHON3 PR merged within the week


20/03/2024

News

Technical discussions

  • #4583 [Collision.Detection] Give current intersection methods as parameter to intersection functions This PR is part of a bigger task which aims at enabling multithreaded simulations (launching multiple simulations in parallel). The intersection mechanism allows to add methods for intersection through a factory. At runtime, an intersection object is created for the proximity in use in the simulation. The problem is that this pointer is created at runtime, is global and saved as pointer, creating race conditions. Here instead of refering to this singleton, it is passed through parameter to make it thread safe. Question is raised about shall we keep the compatibility layer or not regarding the method lacking the output parameter.

SOFA PR review

SOFA PR merged within the week


13/03/2024

News

Technical discussions

  • cmake_minimum_required should be updated regarding CMake FetchContent (find or fetch mechanism → skip, see #4586
  • Question on the fusion of SoftRobot and SoftRobot.Inverse and of SofaPython and STLIB plugins
    • SoftRobot and SoftRobot.Inverse: complex for license reasons (two distinct repositories and conda packages)
    • SofaPython3 and STLIB for now stay separated for Conda.
  • Discuss supported plugins → https://github.com/sofa-framework/sofa/wiki/Supported-SOFA-plugins
  • Update in ci.yml to be done in order to publish GitHub releases for plugins
  • Plugin naming : our policy should now be: adding Sofa. prefix to all plugins and the suffix should be light e.g. Sofa.Metis, Sofa.CGAL, Sofa.image. This allows for extern users to understand that it is a SOFA-related code, which follows the SOFA NG format (no need to keep the Plugin keyword). Will require to also update c++ namespace.

SOFA PR review

SofaPython3 PR review

SOFA PR merged within the week

SofaPython3 PR merged within the week


06/03/2024

News

Technical discussions

SOFA PR review

SOFA Python 3 PR review

PR merged within the week


28/02/2024

News

Technical discussions

  • Temporary workaround for MacOS users to use non-signed binary
  • GUI list through conda: at install of various packages through conda, the gui list file could be edited at each new GUI installed. But it needs to be tested since the path to the plugin_list.conf is edited using CMake variables (CMakeLists of runSofa)
  • If it is using the sofa-setup-actions script, the CI of plugins should be updated using the @v5
  • Invertible FE Model → to archive
  • #4459 [Sofa.Testing] Do not build Sofa.Testing if SOFA_BUILD_TESTS is OFF: Sofa.Testing should externalized in order to bring real modularization → close again

SOFA PR review

PR merged within the week


21/02/2024

News

  • SOFA America Workshop : 30-31 May in Montreal. See all events online! Save the dates, call for presentation is coming soon!
  • Reminder, we migrated our chat to Discord
  • We are thinking about implementing additional mechanical constitutive laws in SOFA :arrow_right: Let us know what you would expect in discussion #4499!

Technical discussions

  • [Prefabs] PoC will be done to better think their design
  • Update about CI builders: seems all fine now (first release binaries being generated). You should update your CI by using ubuntu22.04 and windows-2022 builder and use sofa-setup-action@v5. This is not yet rock solid but will be fixed in the following days. MacOS CI is in a transitive state, will be updated soon.
  • [Plugins] Gather external plugins configs in a same folder (proposal) #4505

SOFA PR review

PR merged within the week


14/02/2024 💕

News

  • We are thinking about implementing additional mechanical constitutive laws in SOFA :arrow_right: Let us know what you would expect in discussion #4499!
  • SOFA America Workshop : 30-31 May in Montreal. Save the dates, call for presentation is coming soon!
  • Reminder, we migrated our chat to Discord 💌

Technical discussions

  • [SofaGym] Use several SOFA simulations in python: 2 SOFA is parallel can run but not more using os.fork. Alex experienced C++ parallelism but less of python. tools/sofa-launcher could be useful to launch several well-separated SOFA. A meeting with Samuel will be schedueled.
  • [Prefabs] Discussion incoming this week
  • The process of actually updating the builders started. The new builders should be up and running by the end of the week.
  • The PR#4496 [Config] POC: enable assertions even in release mode shows errors in scene tests coming from asserts that are not usually tested in release mode. Those error should be fixed in the following weeks.

SOFA PR review

PR merged within the week


07/02/2024

News

Technical discussions

  • New plugin tree instanciations, pr to review : BeamAdapter and SoftRobots → Need to add these requirements to the doc itself to officialize this.
  • Regression tests not working on Windows because the exe cannot open libPython38.dll although the test scenes work → Investigate the path at the execution of Regression_test.exe and runSofa.exe to see if there are any differences.
  • Issue #393 on SofaPython3 linking on libPython → Try to use an intermediate lib that link to SofaPython3 and libPython that load libPython first bootstraping the loading. This is heavy and should be transparent for users and may affecty every distribution.

SOFA PR review

PR merged within the week


31/01/2024

News

  • Project on integrating SOFA into Slicer has been accepted at the Slicer Project Week. SOFA will be represented there!
  • Migration from Gitter to Discord : share your feedback
  • New paper comparing SOFA for sim-2-real gap in robotics: https://arxiv.org/abs/2310.09543

Technical discussions

  • Prefab discussion ongoing
  • Issue #393 on SofaPython3 linking on libpython
    • #394 proposes:
    • however, the change could be applied at plugin initialization, to early manage the libpython loading

SOFA PR review

PR merged within the week


24/01/2024

News

  • Project on integrating SOFA into Slicer has been accepted at the Slicer Project Week. SOFA will be represented there !
  • Ubuntu builder are finished. Windows still pending
  • SOFA America Workshop may occur early June: what about STC#17 dates?

Technical discussions

  • Migration from Gitter to Discord
  • Issue #393 on SofaPython3 : Conda binaries are linked statically with libpython, which causes segfault on MacOS when loading another lib that is dynamivally linked to libpython. This is the case of libSofaPython3 linking with pybind11::embed (the python interpreter) which it self links to libpython.
    • Good first idea seems to be decouple the library and extract the 'interpreter' part in order to remove the dynamic link
    • A quick fix would be to compile on mac with the option -undefined dynamic_linking and force the libpython loading with DYLD_INSERT_LIBRARIES=$CONDA_PREFIX/lib/libpython3.10.dylib ./runSofa libpython with runSofa. The PR #394 can be a temporary fix/hack using pybind
    • Too many RPath defined in Bindings, this should be fixed in a later PR
  • METIS version distributed by conda and the reason it is not fit for our package (GKRand, segfault): more recent versions of 5.1.0 have been tested to be compatible with conda but not GKRand and 5.1.1 fails. More recent versions are not available on conda-forge :arrow_right: we use a find_package and remove the embeded METIS version and rely on the 5.1.0 without GKRand and wait for the 24.06 to pluginize METIS-based code

SOFA PR review

PR merged within the week


17/01/2024

News

Technical discussions

  • [All] POC: ObjectFactory: Explicit components registration #4429
    • In an effort to include SOFA into a browser, a compilation of SOFA as a static library was needed. Several issues were faced : one of them being the RegisterObject functions (ObjectFactory). There was therefore the need to remove singleton like ObjectFactory and to explicit component registration
    • Static compilation would be good anyway
    • Choice is made to go further with Alex's first suggestion and refactoring of registerObject could be done later: factory triggers the commit → another pass will be done by Fred
  • [plugins] Update license to LGPL of remaining files #4425

SOFA PR review

PR merged within the week


10/01/2024

News

  • Agenda 2024 is released! Save the dates!!
    • Next STC#17 will be held in Strasbourg on June 10-12
    • SOFA Week 2024 will be held in Lille on Nov 25-29
  • Preparation of the upcoming release v23.12 started
    • Builder Windows: template being set up

Technical discussions

  • Questions on the python find_package in SofaPython3
    • CMakeLists.txt : the variable PYBIND11_PYTHON_VERSION is declared and only used here in place of the Python version --> why not use PYTHON_VERSION.
    • It might also be usefull to add the parameter EXACT that'll help force the python version to one (this is cumbersome on MAC OS where it is current to have multiple python version installed)
  • Licenses: some remaining GPL codes remain mostly SceneCreator and in SofaTest. What should we do? Pass it to LGPL or externalize (see #4416)
  • NanoBind an interesting alternative to pybind
  • When using constant parsity pattern, a check can be added when inserting to make sure that the pattern is respected. This test has a cost
    • It could be conditioned though a data (checkIndices already existing)
    • Ideas on the use of flags set by downstream components if their pattern has changed can be more efficient
    • Doubt about the interest of the block3x3 optimization case

SOFA PR review

PR merged within the week


03/01/2024

News

  • Agenda 2024 is released! Save the dates!!
    • Next STC#17 will be held in Strasbourg on June 10-12
    • SOFA Week 2024 will be held in Lille on Nov 25-29
  • Preparation of the upcoming release v23.12 started

Technical discussions

  • Issue raised in discussions #4281 about update of anisotropic inertia matrix for rigids

SOFA PR review

PR merged within the week


20/12/2023

News

  • Agenda 2024 is released!
    • Next STC#17 will be held in Strasbourg on June 10-12
    • SOFA Week 2024 will be held in Lille on Nov 25-29 Save the dates!!
  • Preparation of the upcoming release v23.12 started

Technical discussions

  • GitHub Discussions
    • Stale action running
    • Centralized for all plugins (except SoftRobot for now)
    • Add links to the proper discussion category in each plugin README
  • Metis upgrade to 5.2.1

SOFA PR review

PR merged within the week


13/12/2023

News

  • Preparation of the upcoming release v23.12 started
  • Welcome to new InfinyTech3D member : Ronak Molazem. She also joined the SOFA dev team !

Technical discussions

  • GitHub Discussions
    • Reordering upcoming to welcome dedicated area for Community Help on Plugins
      • Question on the case of SoftRobot
      • Question on regrouping InfinyTech3D plugins (Unity ?)
    • #4348 [github] fix stale action --> ready to update all discussions
  • Test SoftRobots on CI with scene examples/tutorials/Tripod/myproject/step7.py and it will be fixed by adding the serial python package on the new builders
  • Auto differentiation of simulation in SOFA: roadmap defined at the DEFROST team

SOFA PR review

PR merged within the week


06/12/2023

News

  • SOFA consortium will be at Inria’s Programme santé numérique doing a demo during the SOFA-dev meeting, Alex will be your host
  • New hire at InfinyTech3D

Technical discussions

  • Haption plugin: no longer maintained. Could be externalized. In the meantime, we could make some changes so it can be compiled on the CI (to maintain compatibility with SOFA) using a fake virtuoseAPI header. Probably same conclusion with Xitact.

SofaPython3 PR review

SOFA PR review

PR merged within the week


29/11/2023

News

  • SOFA consortium will make a demo at Inria's Programme santé numérique on Dec 6th (Paris Santé Campus)
  • Preparation of the agenda 2024

Technical discussions

  • SOFA integration into 3D Slicer: ongoing discussion with core developer team. Better define what is targeted as an integration. → We must be careful of the boundaries of such integration to insure that it stays stable (only projective, only volumetric mesh etc...). Mays also be used for visualization or registration.
  • Question on Jenkins maintenance on Inria's side. They question the use of it given their gitlab solution, but it is not a solution for us because we need to stay on github. May require at some point to only rely on github actions.
  • Metis compilation for windows : maybe compile/use both version 64/32 regarding the SReal type
  • SolidTypes : includes several pieces of codes like Frame, Transform

SOFA PR review

PR merged within the week


22/11/2023

News

  • Feedback from SOFA Week 2023 & STC #16
    • Awards:
      • Ask for last release compatibility or a demo video
      • Ask for some slide upon inscription to have some insights on what it does
      • Add a "level of expertise" rating for the jury, for each contribution, to ponderate the grade.
    • Symposium:
      • Be more strict on registration timeline and abstract review to guaranty quality
      • Last minute registration for presentation will not be allowed anymore (add dead line for pres inscription)
      • Have more break time to talk and see the booths
      • Add timer to keep a hand on the clock
      • Have a last organized drink on site after the conference to debrief and cool down a bit (instead of more break time)
    • STC:
      • No question when presenting to keep the clock
      • For last six month maybe keep the presentation for the consortium --> only presentation of the next six months
      • Prepare and identify a bit more the roadmap subject to clearly define the person in charge of the roadmap
      • The sprint time is maybe not sound because of the lack of good dev tool (laptop), we cannot really make ground changing PRs. May be good to define more doable issue beforehand. It should maybe stay a place for discussion of technical subject, to be well defined (e.g. conda package)
  • Late June 2024: Deformation in Robotics Summer School

Technical discussions

  • Finalize discussion on SOFA Conda packages
    • The following division has been agreed upon:
      • sofa-core (including the core that we said + the batch runSofa)
      • sofa-python3 (+ stlib)
      • sofa-beamadapter
      • sofa-modelorderreduction
      • sofa-softrobots (direct and inverse robotics)
      • sofa-cosserat
      • sofa-gl
      • sofa-gui-qt
      • sofa-gui-glfw (glfw + imgui) --> not prioritary
      • sofa-advanced (with all the rest) --> not prioritary
    • In SOFA.Gui a part of the code includes component/common which could be part of sofa-core
  • Regression tests should be fixed
    • BeamAdapter:
    • SPHFluid: references should be updated

SOFA PR review

PR merged within the week

None (too busy discussing at the Technical Committee)


15/11/2023

❌ No meeting due to the SOFA Week 2023!


08/11/2023

News

  • 🚨🚨🚨 Last week before the SOFA Week 2023🚨🚨🚨
  • Agenda of the SOFA Technical Committee #16 will be presented
  • Next July 2024: Deformation in Robotics Summer School

Technical discussion

  • Use of vcpkg or conan for external libraries (or simple compilation for the CI)
    • one or the other is more of a guess
    • common work (between olivier and the consortium) will append after the sofa week to speed up the release of the ne ci environement and the binaries

SOFA PR review

PR merged within the week


01/11/2023

❌ No meeting due to the feast of All Saints (French day off). See you next week for the last SOFA dev meeting before the SOFA Week 2023!


25/10/2023

News

Technical discussions

  • Some installation isssues
    • SOFA on MacOS due to Apple certificate
    • Caribou: Paul will propose an install script
  • Roadmap of the conda package
    • new versions of libraries are needed (e.g. tinyxml)
    • this needs the find_or_fetch feature, therefore an upgrade CMake >= 3.24 -> wait for the 23.12 release, which should be performed as soon as possible early December
    • csparse: we said il last meeting that it could be totally take out of the core. Alexandre will deal with it.
    • Json dependency on AdvancedTimer (header only): make it find_or_fetch or remove it? Olivier already made a PR implementing this mechanism but we could remove it totally for the next release
    • add a mechanism making this find_or_fetch mechanism optional
  • Sort issues in preparation of STC#16
  • On the timers we want to add CMake option to have the choice between:
    • No time
    • Tracy
    • Advanced timer
    • Tracy + advanced

SOFA PR review

PR merged within the week


18/10/2023

News

Technical discussions

  • The configuration/version of the OS and associated librairies should be updated on the CI : the default rule is use the current ubuntu ditribution version (the one shipped with apt). But the version can be upgraded locally when required and not breaking
    • Future requiremnt will be CMake >= 3.24
    • Update to a new version of MSVC 2022
    • This will be widely discussed at the STC#16
  • Regression plugin failed running scene from external plugins due to path issues (e.g. BeamAdapter will failed as long as this is not fixed)
  • CI minimal configuration should now include the Multithreading plugin
  • New SOFA main scene has been presented by Paul: now optimizing it
    • A bit disapointing in term of perf regarding the number of object. May be good to show the number of constraints in real time and/or show mor objects (little logos)
    • May require to ship BeamAdapter with SOFA
    • Paul will release his plugin contining the scene
  • Alexandre attempted to assemble matrices faster and shared his feedback
    • Mechanical contribution to a matrix a done in two steps : computation then assembling (insertion in non-neglectible in term of computation time)
    • The idea was to do the insertion in a dedicated asynchronous thread → forced to add an intermediate queue to store local contribution and insert in a lock-free way
    • Contribution computation is sped up with this but the queue reading (depilation) takes a lot of time leading to no speed up at all

SOFA PR review

PR merged within the week


11/10/2023

News

Technical discussions

  • Now a merge option in PR on GitHub More rigorous and avoids problems with master. We need to do it in order to not do it multiple times. Always merge master on the branch and not rebase: don't lose the history. If this system becomes too blocking in terme of testing, consider modifying the CI (remove master compilation and only relly on the nightly build because each commit on the master branch will be tested before the merge) ?
  • #4221 Use of embedded external dependencies Conda integration : Request to clean up external SOFA dependencies linked statically. For header only libraries -> find or fetch mechanism (if not present in the environmenet, its sources are fetched and compiled by us) For static libraries -> make them shared Cas particuliers:
    • New mat : take out the plugin to make it stand-alone, so as not to lose the work but no longer include it.
    • miniFlowVR : also to take out
    • json nlohmann : in the long term remove this dependency
    • Tiny xml : find or fetch (in the long term isolate the feature and 'find or deactivates')
    • cspare : sparseLDL implements nearly everything it uses -> no real dependency on cspare. But other lesser-used objects depend on it, and we could take them out.
    • Metis : no need to worry about 'finding or fetching' as the embedded version is up to date.
  • Regression tests on windows are not launching but it will be fixed quickly.

SOFA PR review

PR merged within the week


04/10/2023

News

Technical discussions

  • Topological changes: current implementation by InfinyTech3D (higher level like: split a triangle in 2, split a triangle in 3)
    • **SetGeometryAlgorithms: are the only components accessing both the topology and the dofs. It already implements several topological methods
    • an additional folder will be added in Sofa.Component.Topology.Container.Dynamic including all these files/header
  • Conda package update:
    • Full review received on the PR on conda-forge: management of linking with static libraries, all external projects not header-only should be used through associated conda packages
    • restore the linux support: solved!
    • MacOS failure: Fatal Python error: PyMUTEX_LOCK(gil->mutex) failed
  • Sort STC#16 labels
  • CI: set up a new Ubuntu v22.04 LTS builder. Question came about the library versions: homogeneize all versions Linux/Mac/Windows

SOFA PR review

PR merged within the week


27/09/2023

News

Technical discussions

  • Update regarding SofaCUDA plugins: GPU thesis plugins are now open. Would be interesting to compare it to the Defrost SofaCUDALinearSolver
  • HPC seminar at Inria (CR available here)
    • Scotch: package for graph and mesh/hypergraph partitioning, graph clustering, and sparse matrix ordering
    • SolverStack: HPC linear algebra solver stack
    • MoReFem: high-performance scientific computing library for numerical simulation of multi-physical phenomena, based on the PETSc linear algebra library
  • Revive the Pardiso plugin. Problem : it is not portable and the license is not open. It has been integrated to Intel MKL library, maybe create a plugin on this library for SOFA?

SOFA PR review

PR merged within the week


27/09/2023

News

Technical discussions

  • Update regarding SofaCUDA plugins: GPU thesis plugins are now open. Would be interesting to compare it to the Defrost SofaCUDALinearSolver
  • HPC seminar at Inria (CR available here)
    • Scotch: package for graph and mesh/hypergraph partitioning, graph clustering, and sparse matrix ordering
    • SolverStack: HPC linear algebra solver stack
    • MoReFem: high-performance scientific computing library for numerical simulation of multi-physical phenomena, based on the PETSc linear algebra library
  • Revive the Pardiso plugin. Problem : it is not portable and the license is not open. It has been integrated to Intel MKL library, maybe create a plugin on this library for SOFA?

SOFA PR review

PR merged within the week


20/09/2023

News

Technical discussions

  • Vladimir Poliakov working on a training simulator for hysteroscopy. He implemented an asynchronous GUI with adaptive time step (with a maximum garanteeing the simulation stability). Vladimir will soon be leaving back in KU Leuven, feel free to take a look at filosofia and the coupling with filament. Parallel of simulation and rendering logically shows better performances than runSofa, this is something we could get inspired from. Vladimir will soon make his pending changes in SOFA as PRs.
  • Rising interest in SOFAGLFW+ImGui which could/should replace runSofa. Modularization of ImGui would be a plus
  • Scene tests run all examples even in plugins and when multithreading is involved, many timeouts occur
  • Prefabs should be deeply rediscussed
  • SOFA Vedo : have a visualization tool for python. Robin should discuss with Samuel to evaluate the need of this feature.
  • Profiler Tracy #4182 -> nice tool for profiling execution with good insights. (see pr review)

SOFA PR review

PR merged within the week


13/09/2023

News

Technical discussions

  • CI MacOS still down
  • New Ubuntu CI : 22.04
  • Release of GPU codes: discussion incoming to sort codes
  • Investigate Jenkins configuration options (minimal/standard/full): CMakePreset.json could be used

SOFA PR review

PR merged within the week


06/09/2023

News

Technical discussions

  • Update about the SOFA conda package by Olivier
    • PR #23085 opened on conda forge
    • Should be available at the beginning of October
    • A tutorial may be provided during the SOFA Week!
  • Continuous integration:
    • very long nightly builds due to pending macos blocking CI
    • this Thursday new infra updates incoming
  • Sort out old SOFA GitHub PR
  • PRs pending on BeamAdapter

SOFA PR review

PR merged within the week


30/08/2023

News

Technical discussions

  • access SOFA master nightly build: a change on the CI infrastructure at Inria blocked access to the nightly builds. This is solved, thus restoring the CI for the master branch of external plugins
  • SOFA has CMake/plugins multiple configurations: minimal, standard, full (Jenkins). We should work on homogeneizing these configuration for:
    • the release (full + plugins)
    • the conda package
    • and the Plugins page
  • Repository site-package python3 for SOFA plugins see MOR #72: can be configured in SofaPython3 plugins but other plugins having bindings do not inherit of this configuration. Using the major.minor version format is fine and this property should be propagated. However, the python path could be added when SOFA binaries get installed (this would be for later)

SOFA PR review

PR merged within the week


23/08/2023

News

Technical discussions

  • Folder for python site-packages is python3/ but it does not help differentiating the versions, best would be e.g. python3.8.10/site-packages/. A variable allows this in the plugin SofaPython3 but not in plugins. Discussion with Damien for possible explanation, else 👍
  • Nightly build of SOFA are working again (branch v23.06 on sofa/ci)
  • Close old opened PR on the fly during the week
  • SofaPython3 2 PR pending review to be done on the fly during the week
  • Issue on SofaGLFW: GitHub action nightly generating releases for master and v23.06. But each nightly add a new set of release. Comparison with Regression to be done and the action in SofaPython3 should be updated to be really nightly.

SOFA PR review

SofaPython3 PR review

PR merged within the week


16/08/2023

News

SOFA PR review

PR merged within the summer break


26/07/2023

News

  • SOFA Week 2023 : registrations are now open!!
  • Training sessions are open for august and september, register now !
  • It's summer times, the SOFA community will slow down the two first weeks of August. Enjoy your summer and see you in the second half of August!

Technical discussions

  • [Core] Unification of addDForce and buildStiffnessMatrix (#4010) This is resulting from the matrix refactoring (#2777). The idea was to unify the two metyhod by always using the build matrix method instead of addDforce. This makes the unbuilt version slower (especially for corotationnal). → The idea is to use this unification to make the addDForce override optional but warn the user that the unbuilt version will be slower and that they should override it if they want the real mechanism.

  • [LinearSystem] Optim: Only account for affected DoFs (#4001) The question was why this PR is accelerating the Caduceus given the fact that it isn't using any penality. → This maybe due to the fact that the matrix building baypass the mechanical flag of the mappings. Filtering the affected dof has thus the side effect to take the flag into account implicitly. It would be better to take the mapping flags into account explicitly.

  • [Lifecycle] On the use of union for data name depreciation (#4046) The use of union to enable the use of old data name could become a norm → Raises a problem with the destructor. It forces the destructor of the class to be defined. Inside of it we need to explicitly tell which data of the union is destroyed (memory leak if not done but is it really an issue ?). This would also imply to remove the destructor at the end of the lifecycle (this could be eased by destructing the deprecated data instead of the new one as a convention to raise ocmpilation errors). The use of this would require to update the doc and be very explicit on what to do regarding the destructor.

SOFA PR review

SOFAPYTHON3 PR review

PR merged within the week


19/07/2023

News

  • The two first weeks of August will be down for most of the SOFA community! Put the sunglasses on 😎 but do not forget to book the SOFA Week 2023!
  • Vladimir PhD student at KU Leuven is visiting: cutting simulation (Harders hybrid cutting approach) and remeshing further to cutting using MMG

Technical discussions

SOFA PR review

PR merged within the week


12/07/2023

News

Technical discussions

SOFA PR review

PR merged within the week


05/07/2023

News

Technical discussions

SOFA PR review

PR merged within the week


28/06/2023

News

  • Release upcoming this week
  • MacOS down for 10 days more: a test will be done tomorrow, let's merge PR starting from Thursday evening

Technical discussions

  • Update about data/component update: discussions took place and a report will soon be presented
  • #3968 [FEM.Elastic] Test HexahedralFEMForceField: shows that HexahedralFEMForceField and HexahedronFEMForceField do not behave the same way! This should be investigated and fixed in another PR

SOFA PR review

PR merged within the week


21/06/2023

News

Technical discussions

  • Careful: MacOS CI is not yet online ⚠️ wait before massive merge!
  • Preparation of the v23.06 release
    • Linux and Windows are successfully generated, and tested
    • Waiting for MacOS CI to generate them
    • Issues on Caribou:
      • change repo name
      • change project name
      • clean scenes
      • ship scenes within install
      • check the use of the Cosserat bindings
      • add it to the fetchable plugins
  • Go further with #354 Support copy of some binary files
    • when preparing the python packages at install, the configure_file() is corrupting some files
    • investigate what does the macro and the configure_file() file (probably not only a simple copy)
    • Alex will give a try and could be a good first complicated topic for Paul

SOFA PR review

PR merged within the week


14/06/2023

News

  • VivaTech 2023 is coming, join us in Paris on Friday 16th of June!
  • CI MacOS is down due to moving of the SOFA consortium staff and infrastructure
  • Still a very nice dev activity (but therefore a lot of review effort)!

Technical discussions

  • #3930 [Sofa.Type] Reformat code Such a formatting tool has a great interest for SOFA, but for now not to apply on the whole codebase. With 25+ open PR, applying it to all SOFA would generate conflicts as well as make the comparison with older codes complicated. Moreover, only one rule (e.g. only the code tabulation) can not be applied. Howevever, the script can be applied on separated modules. Alex will test clang-format in command line and a review of the format is needed.
    • Remark: OK to apply it on Sofa.Type. Exntending it to SOFA is not a priority, minimum effort for PR author and for the core-dev
    • it would be simpler to apply it once on the whole code base (easy to do in the Sofa.Core)
    • must be done in a synchronized way (for developer with multiple branches)
    • then suggest/automatize/enforce format in PR (through CI, or GitHub actions) → Paul
  • #3924 [MechanicalLoad] Replace doUpdateInternal by callback: ConstantFF
    • doUpdateInternal API was a DataEngine mechanism in all BaseObject to allow for a triggered update of components through the doUpdateInternal function. It was allowing for having input and output data but it is not spread and could be replaced by data
    • #3636 is pursueing the work by separating the callback to have one per data, and it adds new data as input while having read-only data which are coherent
      • have the read-only constraint (more than only GUI) and how to implement it (check in beginEdit(), BaseData, Data)
      • break circular dependencies seems a good property, but we could keep only one input with an engine allowing to have other input
      • a dedicated discussion will take place next week!

SOFA PR review

PR merged within the week


07/06/2023

News

Technical discussions

SOFA PR review

PR merged within the week


31/05/2023

News

  • Feedback from SOFA Technical Committee #15. A new format could be suggested: separate STC roadmap discussions from the coding sprint, this would have the advantage of taking the time to converge on the roadmap.
  • Next event: SOFA at VivaTech 2023 on Friday 16th of June!

Technical discussions

  • #3903 [Spring] Rename RestShapeSpringsForceField to a more user-oriented name A common use of RestShapeSpringsForceField is to fix some points using forces and sometimes fixing points to another object. In general this raises the question of: defining a naming convention on such components to distinguish:
    • projective constraints (physicless, forceless)
    • weak force constraints (physicless with forces)
    • Lagrange-based constraints (taking into account the physics and applying forces)
  • Process for the v23.06 release will start soon

SOFA PR review

PR merged within the last 2 weeks


24/05/2023

❌ No meeting due to the SOFA Technical Committee #15 taking place in Paris!


17/05/2023

News

Technical discussions

  • Page on how to release on the wiki
  • Issue when changing the group data dynamically in CollisionModel #346
    • Quick dirty fix suggested
    • AbstractTypeInfo could be updated to offer a consistent API, see comment
  • Creation and freeze of the v23.06 release branch
    • Share process to release
    • Extend it to plugins : will be done while doing the release
  • SOFA in conda by Olivier: packages will be done for each plugin + SOFA → first PR on conda forge will soon take place

SOFA PR review

BeamAdapter PR review

PR merged within the week


10/05/2023

News

  • SOFA Technical Committee #15 in Paris from May 23th to 26th - Organization
  • For next STCs, Lille as a location might be preferred regarding the hotel / facilities availability

Technical discussions

  • Merge of the Matrix Assembly update #2777 feedback: not much feedback in general, the SoftRobots plugin has been successfully updated in #213
  • Cosserat plugin:
    • some GitHub CI issue, related to pybind version (forcing to use C++14), used for Cosserat bindings
    • State of code: clean of examples is required → a tool is required to test python scenes in plugins
  • Issue when changing the group data dynamically in CollisionModel, the change is not taken into account: it seems that setting a value in a set insert the new value, but does not remove the old one → feedback from Damien is expected
  • Creation of the v23.06 release branch: done today. Remaining todo:
    • All PR must now have a milestone specified
    • Share process to release
    • Extend it to plugins
  • Reviews on BeamAdapter PR are needed as well!

SOFA PR review

Registration PR review

PR merged within the week


03/05/2023

News

Technical discussions

  • Freeze the release branch v23.06 imminent
  • Issue in the RegularGrid of SOFA with Hexahedra: a workaround has been found, and an issue will be created to track the problem
  • Need to integrate PRs from BeamAdapter

SOFA PR review

PR merged within the week


26/04/2023

News

  • SOFA Technical Committee in Paris from May 23th to 26th - Organization
  • Reminder: new plugin for elasticity on shells using FEM
  • Several training sessions taking place and new dates are available

Technical discussions

  • Freeze the release branch v23.06 at the beginning of May
  • Issue in the RegularGrid of SOFA with Hexahedra where the first hexahedron is ordering the edges in a different order then the next hexahedra (next hexas are using udpateQuads())
  • Need to another GUI for SOFA : ImGui is not very professional/user-friendly. The project SofaQtQuick was an idea but the project is over. To be further discussed at STC!

SOFA PR review

PR merged within the week


19/04/2023

News

Technical discussions

  • Freeze the release branch v23.06 at the beginning of May
  • Documentation for SofaCUDA : installation of the drivers should be tested on both Linux and Win. PR is opened but needs to be updated #87

SOFA PR review

PR merged within the week


12/04/2023

News

Technical discussions

  • Freeze the release branch v23.06 at the beginning of May
  • Documentation for SofaCUDA should be updated : at least mentioning that CUDA12 is not supported so far (could be updated for the v23.06)

SOFA PR review

PR merged within the week


05/04/2023

News

Technical discussions

  • Freeze the release branch v23.06 at the beginning of May

SOFA PR review

PR merged within the week


29/03/2023

News

  • New developers incoming in the community
  • Organization of the STC : topics of the coding sprint will be discussed next week
  • Next events:
    • CMBBE SOFA workshop in Paris
    • STC#15 in Paris
    • SoFraSimS in Nice
    • VivaTech in Paris

Technical discussions

  • Merge #2777 is imminent: test next week

SOFA PR review

SofaPython3 PR review

PR merged within the week


22/03/2023

SOFA PR review

PR merged within the week


15/03/2023

SOFA PR review

PR merged within the week


08/03/2023

Technical discussions

SOFA PR review

SofaPython3 PR review

PR merged within the week


01/03/2023

News

Technical discussions

  • Work on CMake in Caribou plugin and associated SofaPython3 plugin by Rémi
  • Discussion about FEM for continuum mechanics: TetahedronFEMForceField vs TetrahedralCorotational no more differences
    • TetrahedronFEMForceField p
Clone this wiki locally