-
Notifications
You must be signed in to change notification settings - Fork 350
SOFA dev reports (2025)
Hugo edited this page Dec 18, 2025
·
17 revisions
Join us every Thursday 9:30 am CET online: www.sofa-framework.org/sofa-dev-meeting
No SOFA dev meeting 🎄 Let's meet next year!
For 2️⃣0️⃣2️⃣6️⃣, next meeting will be on January 8th ➡️ 2026 SOFA dev reports
🎁 💝 🎁
- Awards 2026 competition will be open thorough the year!
- Possible dates for the STC#21 : June 24-26 in Strasbourg
- Release branch creation: TODAY
- Binary release will be done early January
- Remaining unit tests failing, that will be tackled
- spdlog could be generalized for message in SOFA, possibly header-only
- #5823 [Node] A node name can now be surrounded by quotation marks Need to change '/' character into another not breaking one like '|' → wip
- #5822 [Spring] SpringForceField now handles configuration singularity Review comments pending. → keep to review
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes Review comments pending. Let's see if tests scene passes and take comment into account → keep to review
- #5817 [CI] Deactivate timeouting scene Removing the slash "/Component" might help → keep to review
- #5663 [ODESolver] Lifecycle v25.12 : disable deprecated data Required in v25.12, wait for CI then ready (and merge #562 too) → keep to review
- #562 Update advanced_timer.py with comments and fix deprecated data → ready
- #561 Clean getRecords in Timer module Review needed here → keep to review
- #557 Example of a ForceField implemented with JAX Still not tested → keep to review
- #253 [Record] Use rotating PBO to accelerate recording Hugo will test the PR (merge after release branch is created) → keep to review
- #5835 [Helper] Replace weird implicit cast with an explicit cast
- #5834 [BuiltConstraintSolver] Fix for regularization call with empty W and SVD
- #5792 [Collision] Add ccd collision detection based on TightInclusion method
- #5801 [CMake] Define generator in cmake-gui
- #5811 [all] Deprecate contaminating using declarations of BaseObject
- #5826 [GUI.Common] Fix OperationFactory::getInstance() on macOS + pixi / conda
- #5833 [image] Try fix linking issue
- #5830 [image] Remove dependency to Multitreading by modularizing part of the code
- #5829 [All] Fix small typos
- #5819 [all] Virtual inheritance of SingleStateAccessor
- #5804 [Constraints] Rename PGS into BlockGaussSeidel
- #5816 [CI] Fix bad syntax in trigger build script
- #5813 [DrawToolGL] Frame: fix crash on macOS
- #5805 [gui] Cleaning BaseViewer selection
- #5818 [Helper] Add test with SelectableItem as Data
- #5810 [CI] Update actions: check label and PR age
- #5809 [Type] Mimic traits from Mat in MatSym
- #251 Update README with video recording dependencies and shortcuts
- #249 Alternative: Allow shortcut CTRL+O to open file
- #248 Add button to take screenshot
- #243 Create a shortcut for scene axis
- #252 Add display flags menu to the display port parameters
- #246 [Record] Add a VideoRecorder using libav (ffmpeg)
- #250 Fix warnings
- #242 Use CTRL for keyboard events
- Release is coming, the v25.12 branch will be frozen
- backport flag is available for PR to be merged for v25.12
- breaking PR will be possible to merge starting from Tomorrow
- Several test failures are now detected by the GitHub-based CI, a sprint could be organized to fix them
- METIS compilation fail when building package, warning appeared out of nowhere on CI without any code change with flag -Wall + -Werror. Dirty solution: removed -Wxx flags from compilation.
- #5819 [all] Virtual inheritance of SingleStateAccessor Needed when a component inherits from two components, themselves inheriting from SingleStateAccessor. Compilation fails on CUDA → keep to review
- #5818 [Helper] Add test with SelectableItem as Data → ready
- #5817 [CI] Add timeout option for timeouting scene → wip
- #5816 [CI] Fix bad syntax in trigger build script → ready
- #5813 [DrawToolGL] Frame: fix crash on macOS → ready
- #5811 [all] Deprecate contaminating using declarations of BaseObject Would be great to → ready
- #5810 [GitHub] Update actions: check label and PR age → ready
- #5809 [Type] Mimic traits from Mat in MatSym → ready
- #5805 [gui] Cleaning BaseViewer selection Next step : GLFW should now allow to change the selectionColor → ready
- #5804 [Constraints] Rename PGS into BlockGaussSeidel → ready
- #5801 [CMake] Define generator in cmake-gui To test using a custom generator. If working then ready. → keep to review
- #5792 [Collision] Add ccd collision detection based on TightInclusion method Wait for the CI, then ready → keep to review
- #5782 [Visual] Introduce generic visualization of mesh Ongoing resolution by Alex → keep to review
- #5663 [ODESolver] Lifecycle v25.12 : disable deprecated data → wip
- #557 Example of a ForceField implemented with JAX Scene is failing, more testers should assess the PR → keep to review
- #250 Fix warnings Take review into account → wip /s
- #249 Alternative: Allow shortcut CTRL+O to open file To be tested → keep to review
- #248 Add button to take screenshot To be tested → keep to review
- #243 Create a shortcut for scene axis To be tested (through the test on 249) → keep to review
- #242 Use CTRL for keyboard events To be tested (through the test on 249) → keep to review
- #5815 [CI] Fix reboot action
- #5812 [CI] Fix default preset to launch unit and regression tests
- #5762 [CI] Add new GitHub-based continuous integration
- #5795 [DrawToolGL] FIX crash related to Frame drawing
- #5791 [PersistentContact] Update the plugin according to SOFA changes
- #5789 [Collision.Geometry] Rename *Model header files to *CollisionModel
- #5757 [Sofa.GUI.Common] Fix the setting of viewer's camera as it is not working properly currently
- #5748 [HyperElastic] Add a working version of Ogden's material law
-
SOFA Week 2025 Took place last week
- Discover the 150+ participants
- STC#20 led to the definition of a technical roadmap, it will be presented at the next SOFA dev meeting
- Still technical issues for online participation: our apologies, new technical infrastructure has been prepared for 2026!
- All feedback are most welcome
- Release is coming, the release branch will be frozen by middle of next week. Make sure to milestone all your ongoing PR
- Interest PR on check dynamic allocation : Add Realtime Sanitizer (RTsan) support
-
#5794 [Core] Start renaming BaseObject to BaseComponent
- This renaming comes from the fact that Object is an old nomenclature which is not anymore used in the SOFA lexicography. This corresponds today to a Component
- Base inherits from IntrusiveObject, this part should also be considered (Base to rename?). This will be done later
- #5807 [Type] Extern template specialization of MatSym Here it is important toadd the explicit instantiation to make sure all symbols are compiled. But adding the external symbol will force the compiler to use the binary version of the code and we will loose potential, so we need to benchmark it. → wip
- #5806 [Type] Extern template specialization of Vec Adding the external symbol will force the compiler to use the binary version of the code and we will loose potential, so we need to benchmark it. → wip
- #5805 [gui] Cleaning BaseViewer selection Since orange is the color of CollisionModel, we should use another color. Suggested color : purple to avoid the current yellow (too hard to see) → keep to review
- #5804 [Constraints] Rename PGS into BlockGaussSeidel Need to fix the CI, integrate changes and try as many plugins as possible → wip
- #5801 [CMake] Define generator in cmake-gui Give a try specifying another specific generator (ex MakeFile) → keep to review
-
#5798 [FileSystem] Add openFileWithDefaultApplication method
Unsafe call to
std::systemmight come from this PR. We would need to add a lot of sinitarizing or reduced right to tthe execution. → wip - #5795 [DrawToolGL] FIX crash related to Frame drawing → ready
- #5794 [Core] Start renaming BaseObject to BaseComponent PoC, see the above "Technical discussion" comment → keep to review
- #5792 [Collision] Add ccd collision detection based on TightInclusion method CI fails, need to be fixed. Later optimization will come in future PR. → keep to review
- #5791 [PersistentContact] Update the plugin according to SOFA changes Merge it then pluginize → ready
- #5789 [Collision.Geometry] Rename Model header files to CollisionModel Test CPack regarding the Compat folder, moving files → keep to review
- #5782 [Visual] Introduce generic visualization of mesh CI is failing on CUDA and this PR is milestoned v26.06 → wip
- #5762 [CI] Add new GitHub-based continuous integration 🚨 ready to be merged 🚨 → ready
- #5757 [Sofa.GUI.Common] Fix the setting of viewer's camera as it is not working properly currently → ready
- #5748 [HyperElastic] Add a working version of Ogden's material law Unit tests were fixed in the process of factorizing the code. But the factorization is still not perfect. This factorization will be added in another PR. → ready
- #5610 [Sofa.Simulation.Graph] Remove DAGSimulation and DAGNode CI is failing. The comment "[ci-build]" shoudl be used to test the PR on the CI → wip
- #557 Example of a ForceField implemented with JAX Let's make sure to try the scene, if it works, PR is ready → keep to review
-
#40 Fix compilation when not using
imageplugin This type of issue should be managed with a dedicated subfolderimage/.target_compile_definitionscould be removed since the symbol is already created atsofa_find_package(). → keep to review
- #5800 [Type] getsub for MatSym
- #5777 [Simulation] Move all files related to tasks into a dedicated folder
- #5802 [MultiThreading] Missing namespace in extern template instantiation
- #5797 [Type] Add determinant for 1x1 matrices
- #5796 [Type] Add determinant tests for 2x2 and 3x3 matrices
- 🔥 Next week is the SOFA Week 2025 🔥
- Read the conference program
- Discover the 150+ participants
- Read the STC#20 program
- Due to SOFA Week, no SOFA dev next week ⛔ See you at the STC!
- CMake presets, need to specify generator for them to show on CMake-GUI
- Tests all use cases (basic user, advanced that want another generator on Cmake-GUI, command line user)
- #5789 [Collision.Geometry] Rename *Model header files to *CollisionModel Compatibility layer, saving the history. Check the install CPack then ready → keep to review
- #5788 [Topology.Mapping] Secure pointers access, remove macro and cache Data Suggestion done to reserve, merge and ready → ready
- #5784 [Topology] Container for prisms and pyramids → ready
- #5782 [Visual] Introduce generic visualization of mesh Very nice PR. GUI now proposes visualization option (e.g. adding LineAxis) and also while selecting an object. So a factorization of the drawing code could be done. Enabling the GUI to also draw the FEM but the components are also needed. Deprecation if the ForceField doDraw could be done by using this component. → wip
- #5777 [Simulation] Move all files related to tasks into a dedicated folder To avoid loosing history of files, a "Compat" directory is added for the compatibility layer while saving the history. Rework the PR → wip
- #5775 [CMake] Use find or fetch mechanism for nlohmann json Same as for cxxopts. Might be breaking. Possibly update the expected version → ready
- #5773 [image] Apply new factory registration mechanism Registration of the test should be done within the test itself. Thanks Fred for the push. CGAL seems to be still struggling → wip
- #5770 [Visual] Changes trackball to remove precession → ready
- #5753 [Core] Search parent in whole map, not only first element Comments were added. Linking error on CUDA and one scene test is failing and new review incoming → wip
- #5748 [HyperElastic] Add a working version of Ogden's material law CUDA and Regression compilation failing → keep to review
- #557 Example of a ForceField implemented with JAX Scene wasn't working but changes has been made so we need to re test it. → to review
- #556 Remove the implementation of getPathName as it is now in Sofa.Core.BaseData → ready
- #548 [Prefab] Modify generic add to support object creation passing parameter for prefab Need to be discussed among the Prefab workgroup → remove to-review
- #5766 [Collision.Geometry] Rename TriangleOctreeModel to TriangleOctreeCollisionModel
- #5722 [BuiltConstraintSolver] Add SVD based regularization strategy
- #5783 [MeshTopology] Remove unused accessors for edges, faces, and elements
- #5781 [Core] Remove spamming warning
- #5779 [Type] Full support of Mat1x1
- #5769 [All] Eigen: fix cmake to find Eigen 5 and fix compilation
- #5776 [Type] Add symmetric matrix access test
- #5755 [SofaCUDA] Link CUDA::cublas to SofaCUDA target
- #5752 [FileSystem] Avoid race condition when two scenes try to create config dir in same time
- #5749 [Sofa.Simulation] Change event propagation pruning
- #5565 [SofaImplicitField] Add FieldToSurfaceMesh component
- #555 Add Quaternion to python factory
- #554 Improve error message when the SetDataFromArray does not match
- #545 Add context manager behavior to Node()
- #542 Support more types of linear systems
- #558 add missing required plugin in test
- ⏲️ Less than 2 weeks left ⏲️ Register now for the SOFA Week 2025
- Read the pre-program SOFA Week 2025 (final program incoming)
- Discover the participants
- Prepare your slides for the STC#20
- A new Inria team is recruiting on SOFA ÉPIMETHÉE
- CMake 4 : see the work done on Nix
- SOFA Technical Committee : program
- See issues for the STC#20 sprint
- Long discussion about new profiles to recruit :briefcase: Looking for a job? Get in touch with the devs :email: consortium@sofa-framework.org
- #5770 [Visual] Changes trackball to remove precession Changes not taken into account → wip
- #5769 [All] Eigen: fix cmake to find Eigen 5 and fix compilation → ready
- #5766 [Collision.Geometry] Rename TriangleOctreeModel to TriangleOctreeCollisionModel Changes not taken into account → wip
- #5760 [Sofa.Core] Add a castTo in fwd.h to support "const" conversion Rebased, wait for CI → keep to review
- #5757 [Sofa.GUI.Common] Fix the setting of viewer's camera as it is not working properly currently. → wip
- #5755 [SofaCUDA] Link CUDA::cublas to SofaCUDA target → ready
- #5753 [Core] Search parent in whole map, not only first element Wait for the CI then ready, short rewriting/expliciting variable names incoming → keep to review
- #5752 [FileSystem] Avoid race condition when two scenes try to create config dir in same time → ready
- #5749 [Sofa.Simulation] Change event propagation pruning → ready
- #5748 [HyperElastic] Add a working version of Ogden's material law PR would requires Eigen 5 to use one specific SVD solver, but another one is currently being used that does thet work. Do not wait for the Eigen PR. Changes to be taken into account → wip
- #5722 [BuiltConstraintSolver] Add SVD based regularization strategy Requested changes, small fix on unused variable. Rebase SOFA, wait for the CI → keep to review
- #5610 [Sofa.Simulation.Graph] Remove DAGSimulation and DAGNode Tests are failing → wip
- #558 add missing required plugin in test → ready
- #557 Example of a ForceField implemented with JAX Add the scene to the ignored scenes and test it locally → keep to review
- #556 Remove the implementation of getPathName as it is now in Sofa.Core.BaseData Wait for checks, else ready → keep to review
- #243 Create a shortcut for scene axis → keep to review
- #242 Use CTRL for keyboard events → wip
- #226 Allow the control+O to shortcut → wip
- #87 [Regression] Add reference for scene testing Ogden's model See SOFA PR → keep to review
- #39 Apply new factory registration mechanism Check all tests with PR #5773 → keep to review
- #29 Apply new factory registration mechanism Check all tests with PR #5773 → keep to review
- #6 Apply new factory registration mechanism Check all tests with PR #5773 → keep to review
- #5774 [LinearSolver] Fix applyConstraintForce broken in #5648
- #5759 [Sofa.Core] Add getPathName in BaseData
- #5680 [Lagrangian] Add corrected Jacobi constraint solving method
- #5648 [LinearSolver] Untangle linear solver and linear system
- #528 Fix binding after #5648
- #541 Add validation for numpy array as return type in AddKToMatrix bindings
- ⏲️ Less than 3 weeks left ⏲️ Register now for the SOFA Week 2025
- Read the pre-program SOFA Week 2025 (final program incoming)
- Discover the participants
- Last moment to take part in the training
- Vote for the next STC topics : spreadsheet
- Save the date of the SOFA Week 2026 : November 23-27
- Themis is working on V&V on continuum mechanics
- Comparing SOFA and FEniCS
- Linear small strain
- under constant force, gravity
- with tetrahedral and hexahedral mesh
- define the metrics of evaluation : deformed state,
- One big difference between FEniCS and SOFA is that the constant forcefield is per node in SOFA and is per element in FEniCS
- The differences between the tetra under gravity are surprising
-
#5762 [CI] Add new GitHub-based continuous integration
- Waiting from feedback from devs on the features detailed in the description.
- v25.12 will soon be frozen ❄️
-
#5726 [Config] Prevent recursive calls to the same directory Restart the PR
- This PR has been reverted
- When moving to std::format : this depends on the CI compiler version. Possibly use the fmt beforehand
- Want a check on the CI for code formatting. It would be nice to have a bot that check PR once they have been accepted and make a PR on the PR suggesting formatting changes to be easily merged before.
- #5759 [Sofa.Core] Add getPathName in BaseData → ready
- #5757 [Sofa.GUI.Common] Fix the setting of viewer's camera as it is not working properly currently. Take comment into account then ready → keep to review
- #5756 [Sofa.GL] Remove the use of optimization for Frame drawing to avoid random crash The PR #5718 intended to fix the segfault. Nothing indicates that it doesn't solve it. Fred will make a last change to it then it'll be merged to see if that solves the issue. → postponed
- #5755 [SofaCUDA] Link CUDA::cublas to SofaCUDA target Cublas is not activated on the CI. Paul will check on his computer before merging. → keep to review
- #5754 [Visual] VisualGrid: do not update bbox This doesn't comply with how the API is meant to be used. If we break this for this object then the API will not make sense. So adding a boolean is preferred on our side. → wip
- #5753 [Core] Search parent in whole map, not only first element Let's trigger all tests → keep to review
- #5752 [FileSystem] Avoid race condition when two scenes try to create config dir in same time Three unit tests are failing → wip
- #5749 [Sofa.Simulation] Change event propagation pruning Restart CI → keep to review
-
#5748 [HyperElastic] Add a working version of Ogden's material law
Error
error: cannot convert MatrixSymto be investigated. Alex and Fred will have a look. Avoid usingSReal→ keep to review -
#5742 [Core][Topology] Replace
PointIDand others withsofa::Index→ closed - #5680 [Lagrangian] Add corrected Jacobi constraint solving method → ready
- #5648 [LinearSolver] Untangle linear solver and linear system → ready
- #5610 [Sofa.Simulation.Graph] Remove DAGSimulation and DAGNode Error might come from my wrong-merge, so restart the CI and see what happens → keep to review
- #5591 [StateContainer] Deprecated visualization Data → wip
- #5565 [SofaImplicitField] Add FieldToSurfaceMesh component Error might come from my wrong-merge, so restart the CI and see what happens → keep to review
- #5557 [Simulation] Introduce function to visit mappings according to the mapping graph → wip
- #5513 [CMake] Add SofaMatrix.Qt to the presets Since Qt will not be released anymore further to v25.12, this PR can be closed → close
- #556 Remove the implementation of getPathName as it is now in Sofa.Core.BaseData Seems fair, just wait for the #5759 → keep to review
- #555 Add Quaternion to python factory so we can create data field with thi… → ready
- #554 Improve error message when the SetDataFromArray does not match See the discussion above about libfmt → ready
- #545 Add context manager behavior to Node() → ready
- #541 Add validation for numpy array as return type in AddKToMatrix bindings → ready
- #66 Jenkins gha migration Linked with #5762 → keep to review
- #243 Create a short for scene axis Check CTRL is press in a global if statement → keep to review
- #242 Use CTRL for keyboard events Keep in mind that CTRL is used to send Events into SOFA. A solution could be to change the modifier in SOFA (possibly using SHIFT or ALT or CTRL+SHIFT). Propose to Damien → keep to review
- #226 Allow the control+O to shortcut Issue on Windows. Remove nfd or the sofa_install_libraries from ImGui module. → keep to review
- #5765 [Type] MatSym: Generalize matrix multiplication functions for non-square matrices
- #5761 [Config] Revert #5726
- #5746 [CMake] Add SofaViscoElastic as a supported plugin
- #5745 [CMake] Add SoftRobots.Inverse as supported plugin
- #5743 [HyperElastic] Enable unit tests for off-diagonal elements of the elasticity tensor
- #5736 [all] Rename pentahedron to prism
- #5729 [Sofa.Common] Fix SceneLoaderXML invalid root filename & lineno
- #5726 [Config] Prevent recursive calls to the same directory
- #544 Add Rigid3::Coord in the PythonFactory
- #543 Add support for event pruning for the events overriden in python controllers
- #241 Factorize component inspection code
- #240 Display path to parent data + allow to close pop up
- #244 Restore timer begin/end
- 🚨 🚨 ONE month left 🚨 🚨 Register now for the SOFA Week 2025
- ⏲️ Last moment to apply for the SOFA Awards 2025
- Next year major dates, you can already save them 💾
- STC#21 mid-2026 : June 2-4
- SOFA Week 2026 : November 23-27
- Data getValue is maked as const, but uses const cast to update if dirty ! → Let's try to remove the constness of the method and see if it changes anything in term of compilation , user experience and performance. And if we still think that we need a const version of it, we could add a getDirtyValue that would be const and wouldn't update the value.
- #5751 Drift in beam deformation example with tetrahedral mesh and SurfacePressureForceField → The drift that you notice for your tetrahedral mesh comes from the fact that you mesh is "oriented". All tetrahedra have an edge in the following direction: ↘ diffusing errors/forces in an anisotropic way. To solve this one can use in the Hexa2TetraTopologicalMapping, the data swapping=True.
- #5718 [GL] fix segfault when drawing Rigid3d frame The changes in this drawing introduced a crash in SOFA. This crash is really difficult to track and randomly appears event when a fix is found. Damien will open a PR to revert those changes to rediscuss them with the core dev and then sate on wether we fix it or just revert it.
- #5749 [Sofa.Simulation] Change event propagation pruning Treats object and node at the same level and will prune directly if a controller prune it without continuing. Launching scene-tests to check if it breaks anything → keep to review
- #5745 [CMake] Add SoftRobots.Inverse as supported plugin Increase value to prevent time out → keep to review
-
#5742 [Core][Topology] Replace
PointIDand others withsofa::IndexWait for Erik's check → keep to review - #5726 [Config] Prevent recursive calls to the same directory Restart CI → keep to review
- #5722 [BuiltConstraintSolver] Add SVD based regularization strategy Need to be cleaned + add parameters to select kernel singular values → wip
- #5720 [Helper] Add Taskflow dependency to CMake build system → postponed
- #5680 [Lagrangian] Add corrected Jacobi constraint solving method → keep to review
- #5648 [LinearSolver] Untangle linear solver and linear system The asked unit tests hasn't been added. Let's wait for the author to come back to discuss it and wait for the unit test. → wip
- #5610 [Sofa.Simulation.Graph] Remove DAGSimulation and DAGNode → wip
- #5565 [SofaImplicitField] Add FieldToSurfaceMesh component Scene test should be fixed, but CI currently running → keep to review
- #546 Add basic support for Data<Eigen::MatrixXF> in data Compilation to fix on Windows. This might not the best way. HEre we need to hardcode it because no typeinfo is implemented for EigenMatrices. A 'Better' way to do it would be to enrich the typeinfo of SOFA by adding all meigen matrices needed tehn the binding would work without changes. → wip
-
#545 Add context manager behavior to Node()
Detail the PR description. The use of
within Python is now possible and can even be overriden to enrich it → ready - #544 Add Rigid3::Coord in the PythonFactory → ready
- #543 Add support for event pruning for the events overriden in python controllers Title is self explaining → ready
- #206 [MultiAdaptiveBeamMapping] use Link instead of a string to set the controller Wait for review → keep to review
- #550 Fix usage of MeshMatrixMass
- #549 [Prefabs] cleaning to fix deformable example
- #547 [Prefabs] Reorder files to match concepts
- Register for the SOFA Week 2025. It's free and open: SW 2025 registration
- Get your open-source contributions awarded at the SOFA Week: apply for the SOFA Awards 2025
- #5736 [all] Rename pentahedron to prism This discussion is on which word we should use, prism or wedge. Let's use prism because is the word used by the simulation community. Same for pyramid.
- #5724 CMake fails with Eigen 5.0 Let's create a FindEigen5 module then wait for CMake to distribute it. Alex will try to find it using 'NO_MODULE' option
- V&V : Quentin's work has reach a satisfactory point for research, Alex will work with him to release it properly as a static webpage. A goal will be to integrate this in the CI pipline as for the performances tests.
- Hyperelasticity material: what about anisotropy ? SOFA currently has some pipeline for anisotropy, but is never used. Alex is in the process of implementing hyperelasticity in his plugin (ElasticityPlugin), and will implement anisotropy there. He doesn't plan to make any changes on the current SOFA code. Themis will take a look at it, so they'll work together and have a dedicated call.
- #5743 [HyperElastic] Enable unit tests for off-diagonal elements of the elasticity tensor Adds unit tests on off diagonal element of elasticity tensor. Those tests where missing and are important. But a strange thing is done, those elements are actually multiplied by two. But some components are using it as is so we don't know is this is intentionnal or not. To be investigated. → ready
-
#5742 [Core][Topology] Replace
PointIDand others withsofa::IndexAll special ids (triangleID, edgeID and so on) are deprecated. In fact all of those IDs are sofa::Index. It was there to enable one day to specialize those types for elements. This was also usefull to make the dignature explicit on what input where expected. The use of strong type might be a good solution to even see those errors at the level of compilation code. Or a templated solution to avoid having to implement a lot of newx methods each time a new element type. Remove the deprecation layer and pospone the changes. → wip -
#5737 [Solver] Remove
computeResidualmethod as it is unused It has never been properly implemented and never used. → ready - #5736 [all] Rename pentahedron to prism see technical dicussions → ready
- #5729 [Sofa.Common] Fix SceneLoaderXML invalid root filename & lineno Discussion on the need of a contextual menu in GLFW. It might be usefull to get linkpath of an object, expand and focus. This might be done in the future. → ready
- #5726 [Config] Prevent recursive calls to the same directory This fix a recurcive call of the macro when using the legacy windeppack. Now the legacy one should be avoided. → ready
- #5722 [BuiltConstraintSolver] Add SVD based regularization strategy There was a suggestion to add a parameter for the filtering of the singular values. → wip
- #5720 [Helper] Add Taskflow dependency to CMake build system Let's wait for a PR using TaskFlow ot merge it and keep it open. → postponed
- #5680 [Lagrangian] Add corrected Jacobi constraint solving method Wait for the CI. And wait for more reviews. The multithreaded version will be introduced in another pr using taskflow. → keep to review
- #5667 [Lagrangian] Add stopping condition in NNCG → ready
-
#5648 [LinearSolver] Untangle linear solver and linear system
PrecomputedConstraintCorrectionneeds to be checked because it was modified but not tested properly. Need to add a unit test to see if the precomputed works as intended (not built each time). The idea of usinggmockto test how many time methods have been called. This would help building the unit test, same for precondtionners. → wip - #5610 [Sofa.Simulation.Graph] Remove DAGSimulation and DAGNode Need to fix tests → wip
- #5565 [SofaImplicitField] Add FieldToSurfaceMesh component Scene test is failing → wip
-
#5557 [Simulation] Introduce function to visit mappings according to the mapping graph
Currently, the PR is ready but we need an example of scene where using the mapping graph is relevent. And wait for Olivier test with SofaRigidBodyDynamics plugin.
→ keep to review
-
#542 Support more types of linear systems
Added support in bindings for more CRS matrix type and full matrices too. Some matrices are still missing like BTD, but they might be added in the future. Also added alternatif names for
A(),b(), andx(). → ready -
#541 Add validation for numpy array as return type in AddKToMatrix bindings
Add
elseto throw error whern rteturn type of python overload is wrong. → ready
- #5744 [SolidMechanics] Replace dynamic
vectorwith staticstd::array - #5732 [CI] Update metis version
- #5738 [ComponentChange] GenericConstraintSolver: fix misleading message
- #5666 [Lagrangian] Refactoring of GenericConstraintSolver
- #5727 [GitHub] Update pr-title-checker.yml
- #539 Refactored Windows-specific code
- #531 Apply changes from SOFA PR 5666 regarding GenericConstraintSolver
- #200 Apply changes from SOFA PR 5666 regarding GenericConstraintSolver
- #205 [IRC] Reset the restPositions while fixed - make consistent StartPosition
- Register for the SOFA Week 2025. It's free and open: SW 2025 registration
- Get your open-source contributions awarded at the SOFA Week: apply for the SOFA Awards 2025
- ANR proposal deadline just passed, several projects submitted
- VTK loader project started by Alex: SOFA.VTK. Several file formats are supported (vtk, stl, obj etc.), adding other formats including higher order meshes has been made easy. To be tested now!
- Should be added on the CI
- Could be distributed in the release
- Compilation on GitHub is an issue due to the VTK dependency, but Conda/Pixi should ease this. VTK would be shipped along with the plugin
- Alternative MeshIO but Python only. An example should be written
- Creation of examples of GaussianSplatting (see the ongoing work, demonstration video). A demonstration could be done using the RigidBodyDynamics plugin
- #5713 Issue with SofaPython3
- #5666 [Lagrangian] Refactoring of GenericConstraintSolver → ready
- #5648 [LinearSolver] Untangle linear solver and linear system Not yet finished, all the tests pass including the regression due to the WarpConditioner. Possibly not enough tests on Preconditioners (frequency of precomputation), PrecomputedWarpConditioner does not seem to work. It would be nice that @courtecuisse tests it → keep to review
- #5610 [Sofa.Simulation.Graph] Remove DAGSimulation and DAGNode Linking error (missing header) → wip
- #5565 [SofaImplicitFIeld] Add FieldToSurfaceMesh component Some changes done seem to be out of scope, else OK. → keep to review
-
#5557 [Simulation] Introduce function to visit mappings according to the mapping graph
Following the recent discussions, Alex continued this work, he's still looking for examples where it could help (example identified at IT3D). Visitors are still used as usual, but when a visitor calls a mapping the visitor is not in charge of the propagation.
Mapping graph is not built (quadratic order search in the graph). Simple and short-term to manage the mapping graph.
- Detection of graph changes could be done but out-of-PR-scope
- RigidBodyDynamics plugin might be directly affected by this work (to be tested by @olivier-roussel )
- Linked with TaskFlow
- Keep track of changes within this visitor forest
- Simple conflict → keep to review
- #539 Refactored Windows-specific code File triggered when importing SOFA. → ready
-
#205 [IRC] Reset the restPositions while fixed - make consistent StartPosition
Checking the regression raised the fact that the error on DoFs was significant. This has beem fixed along with a deeper bug on the definition of the initial orientation. Data
startPointis only used for the position, the orientation is given by the topology used. Now only thestartPointdata matters and the PR is more breaking. → ready
- #25 UX improvement when navigating from runSofa to scene file in case of Error/Warning. In tooltip, all the messages (possibly huge) will be displayed. Better if these features were implemented in SofaGLFW. Reminder: the Qt plugin might be just removed from the SOFA distribution packages after the v25.12 → keep to review
- #21 Add data inspector → ready
- #5735 [Defaulttype] RigidDeriv: fix out-of-bounds access in ctor with Vec6
- #5731 [examples] Satisfy checkAlreadyContains in a few scenes
- #5725 [Lagrangian.Correction] remove debug statement inside loop to improve performances
- #5730 [Core] Improve TopologicalMapping error messages
- #5717 [GitHub] Update label name and rest API in Action pr-label-checker
- #5692 [Framework] Remove shadow warnings
- #5676 [Type] BoundingBox: Phase out TBoundingBox<Real>
- #5654 [Sofa.Simulation] minor modernization of Colors
- #5670 [Sofa.Simulation.Graph] Remove DAGNode related test files
- #5719 [Sofa.Core] In BaseViewer, the condition to Hide/Show should work for both rigid and position
- Register for the SOFA Week 2025. It's free and open: sofa-week-2025/registration
- As for every year, we organize the SOFA Awards during the next SOFA Week, where contributions to the project are rewarded with cash prizes! Don't hesitate to apply!!
- Covering recent issues:
- Discussion with Thibault Tricard
- plan a discussion at SOFA Week
- information regarding OpenGL
- Feedback from Journées Thématiques HPC
- frugality mostly for HPC, not exactly the topic of SOFA
- scientific computation with a presentation of TaskFlow
- restarted from scratch with TaskFlow (ongoing work), this will be soon discussed with core-devs
- another interesting talk about multithreading focused on FEM, possibly use Loic's library, SIMD, GPU Python computing, Guix
- Work on delegate pattern: try creating a branch gathering all diffs to check for the tests and make sure verything is compatible then start merging them.
- Issue noticed regarding the scene graph for mapping: graph mappings could solve a problem that cannot currently be solved with node graphs
- #5722 [BuiltConstraintSolver] Add svd based regularization strategy Introducing a new way to differ constraints that should be regularized from others. A new boolean data is now available to activate it → keep to review
- #5719 [Sofa.Core] In BaseViewer, the condition to Hide/Show should work for both rigid and position. → ready
- #5718 [GL] fix segfault when drawing Rigid3d frame Instead, use the iterator provided by find or updated by emplace. Include the hash function. → wip
- #5717 [GitHub] Update label name and rest API in Action pr-label-checker → ready
- #5698 [SofaMatrix] Allow newer metis versions Open a PR with a metis-based regression and see what it gives this PR suite. → keep to review
- #5670 [Sofa.Simulation.Graph] Remove DAGNode related test files → ready
- #5666 [Lagrangian] Refactoring of GenericConstraintSolver SofaPython3 has no SceneCheck but Alex is working on this. In Python, the author can do whatever he/she wants. A scene check has been added but it polutes the PR quite a lot. A simple ComponentChange (Removed) will be added warning the user with the options to copy-paste → keep to review
- #5654 [Sofa.Simulation] minor modernization of Colors → ready
- #5610 [Sofa.Simulation.Graph] Remove DAGSimulation and DAGNode Run CI with all tests, then ready → keep to review
- #5565 [SofaImplicitFIeld] Add FieldToSurfaceMesh component Take the time to review the full PR. → keep to review
- #205 [IRC] Reset the restPositions while fixed Let's wait for the regeneration of the regressions → keep to review
- #5639 [Sofa.Component.Setting] Add data fields to control the rendering parameters for selections
- #5715 [BaseViewer] Add configuration save/load for selection
- #5710 [BaseViewer] Change drawing default value and add a way to deactivate drawing
- #236 [ImGUI] Add menu to modify selection drawing settings
- #235 Fix recent CMake changes for external dependencies compat
- Register for the SOFA Week 2025. It's free and open: sofa-week-2025/registration
- As for every year, we organize the SOFA Awards during the newt SOFA Week, where contributions to the project are rewarded with cash prizes! Don't hesitate to apply!!
- Next week Alex will be part of the Inria-engineer HPC meeting
- Parallel computing with OpenMP:
#pragma omp parallel for(tetras for loop in FEM)- different from SOFA Multithreading approach relying on the thread-pull
- std execution policy
parallelwhich becomes implementation dependent - might not be efficient if using a different threading strategy than the one currently being used in SOFA. If both coexist in the same execution, they will fight over ressources.
- Work at Willow ongoing on coupling Eigen and FAER (linear algebra library) to benefit from Rust implementation, willing to collaborate (Sarah Quinones)
- Eigen 5 might be released this week
- #5648 [LinearSolver] Untangle linear solver and linear system Preconditioner implementation was refactored. Before up the preconditioner when and how to assemble the matrix. A LinearSystem is now required. Some changes have been done in WarpPreconditioner but regression tests are failing. Questioning the interest of the WarpPreconditioner (in term of performances): not enough tests, validation on this component. → wip
- #5715 [BaseViewer] Add configuration save/load for selection → ready
- #5710 [BaseViewer] Change drawing default value and add a way to deactivate drawing Cleaning on the BaseViewer so that when drawing a selection, only the BBox is drawn and not all data. Fix wrong data used too. UX issue due to simple/double click, this should be cleaned later → ready
- #5703 [CI] Update metis version See #5698 then ready → keep to review
-
#5698 [SofaMatrix] Allow newer metis versions
Conda forge is requesting this. In this context, it has been noticed that that the
ci-depends-ondoes not work. This must be fixed in the upcoming CI pipeline. Still pretty strange that a permutation changes the result of the resolution. Open a PR with a metis-based regression and see what it gives this PR suite. Later we should considered scotch instead of metis. Themis will consider coupling scotch and Alex will report on next-week discussions in Bordeaux → keep to review - #5692 [Framework] Remove shadow warnings Shadow warnings could be activated sometimes on the CI, this PR fixes them in the SOFA codebase. Some classes (.cpp) were more tricky. → ready
- #5676 [Type] BoundingBox: Phase out TBoundingBox<Real> → ready
- #5670 [Sofa.Simulation.Graph] Remove DAGNode related test files GTest fails this must be investigated → wip
- #5666 [Lagrangian] Refactoring of GenericConstraintSolver Forgotten message to notice users about the method they are using and a suggestion to copy-paste. Question on if the LCPConstraintSolver could follow the same refactoring. It might be tricky because it is optimized and doesn't use the same data structure. It can be thought of in a future PR. → keep to review
-
#5654 [Sofa.Simulation] minor modernization of Colors
All exported symbols have to be considered (
SOFA_SIMULATION_CORE_API) → wip
- #538 Use SOFA_ROOT naming convention everywhere in the docs Paul will take over to make the modifs → wip
- #205 [IRC] Reset the restPositions while fixed Just need the regeneration of the regression → keep to review
- #236 [ImGUI] Add menu to modify selection drawing settings Add a screenshot, can be reviewed on the code itself but it requires the associated SOFA PR → to review
- #235 Fix recent CMake changes for external dependencies compat → ready
- #5708 [Examples] Fix RayTraceCollision scene
- #5677 [all] Fix out-of-bounds warnings
- #5675 [Type] Vec: Phase out ctor/assignment from pointers and Vec of different sizes/types
- #5689 [GL] DrawToolGL: faster rendering for Frame
- #204 MultiAdaptiveBeamMapping: Fix collision sampling
- #203 MultiAdaptiveBeamMapping: Better collision model topology (and fix 3instruments_collis.scn)
- Register for the SOFA Week 2025. It's free and open: sofa-week-2025/registration
- ℹ️ New schedule of the SOFA dev meeting: Thursday 9:30-11:00 pm
- Shell plugin :Merge both the DEFROST gitlab version and the GitHub public one
- The interest is to take all the scenes presents on the gitlab. They needed an update to be able to be run on the current SOFA version (89)
- Want to add unit/regression/performance tests in the future
- BandSolver plugin
- Used in the context of Vine Robot simulation
- inspired from the LAPACK library
- storing done following the diagonal
- Based on LU decomposition
- Unit tests implemented
- Solver looks still much slower than existing ones
- #5689 [GL] DrawToolGL: faster rendering for Frame LGTM → ready
- #5680 [Lagrangian] Add corrected Jacobi constraint solving method First implementation of the corrected Jacobi. This is ready as is but only monothreaded. A multithreaded version will come later. Wait for #5666 then ready. → keep to review
- #5677 [all] Fix out-of-bounds warnings Wait for #5675 then ready → keep to review
- #5676 [Type] BoundingBox: Phase out TBoundingBox<Real> Still needs a review → keep to review
- #5675 [Type] Vec: Phase out ctor/assignment from pointers and Vec of different sizes/types Still needs a review → keep to review
- #5666 [Lagrangian] Refactoring of GenericConstraintSolver Comment where made on the fact that the API is not explicit on the imput and output of the "doXXX" methods. We agreed that we need to find a better interface but for the time being we can pass the constraint_problem as input. A future PR will rework the constraintPRoblem to make naming more understandable (like unknown, right hand side and so on...). Fred comment goes in the same way. → keep to review
- #5591 [StateContainer] Deprecated visualization Data Scene tests are still failing → wip
- #538 Use SOFA_ROOT naming convention everywhere in the docs Take the review into account → keep to review
- #534 Update timer example introducing the Newton Raphson This is meant to solve a warning that appears during the lifecycle → wip
- #205 [IRC] Reset the restPositions while fixed Add a comment explaining the reason of this fix. The ForceField uses the interpolation object to compute transformation that doesn't use the rest shape. → keep to review
- #204 MultiAdaptiveBeamMapping: Fix collision sampling Wait for 203 to be merged then regenerate the references then ready → keep to review
- #203 MultiAdaptiveBeamMapping: Better collision model topology (and fix 3instruments_collis.scn) → ready
- #5700 [Examples] Fix MultiStepAnimationLoop scene
- #5650 [all] Matrix: replace all calls to [i][j] with a single call (i,j)
- #5699 [GUI.Common] Fix crash when selecting a MechanicalObject<Rigid>
- #201 Generate doc for image
- #200 Generate doc for ModelOrderReduction
- #199 Generate doc for BeamAdapter
- Register for the SOFA Week 2025. It's free and open: sofa-week-2025/registration
- Presentation of Lucas' work on the Shell plugin 25th of September
- ℹ️ New schedule of the SOFA dev meeting: Thursday 9:30-11:00 pm, starting next week Thu 18th of September
- Meeting of Inria engineers in robotics took place, interesting presentations
- GitHub : Your total cache usage exceeds upcoming caching limits
- CGAL plugin : to remove from supported plugins
- what about keeping it in the binary release ?
- No the idea is to completely sotp building it on the main CI
- it could bestil built in its own CI and released independently
- what about keeping it in the binary release ?
-
#5666 [Lagrangian] Refactoring of GenericConstraintSolver
- Alex has got WIP code for direct solving of constraint that'll gain from this refactoring
- Crashes on the GUI from the newly intoduced mechanism of showing the bbox when object is cclicked on the graph. Need to investigate the changes in SOFA that does the draw.
- #5676 [Type] BoundingBox: Phase out TBoundingBox<Real> Wait for alex review. Then ready. → keep to review
- #5675 [Type] Vec: Phase out ctor/assignment from pointers and Vec of different sizes/types Wait for alex review. Then ready. → keep to review
- #5667 [Lagrangian] Add stopping condition in NNCG Add a stopping criterion as expressed in the paper. Wait for 5666 then ready → keep to review
- #5666 [Lagrangian] Refactoring of GenericConstraintSolver Take reviews into account → wip
-
#5650 [all] Matrix: replace all calls to [i][j] with a single call (i,j)
REgarding Damien' comment, the best syntax would be the one coming from C++23, so let's wait for it to be supported.
ON next step, being compatible with Eigen, this is nice but impossible ot make it enter inside SOFA becaus e alot of current feature will not work anymore.
→ ready - #5648 [LinearSolver] Untangle linear solver and linear system New update will come soon but the PR is looking good right now. It separates properly the building of the system and the solving. → wip
- #5610 [Sofa.Simulation.Graph] Remove DAGSimulation and DAGNode PR is not building and is again outdated with master → wip
- #5591 [StateContainer] Deprecated visualization Data Need to fix scene tests → wip
- #5557 [Simulation] Introduce function to visit mappings according to the mapping graph This is a ongoing work that need to be done. → remove to-review tag
- #5513 [CMake] Add SofaMatrix.Qt to the presets Ci is not building → wip
- #4991 [Collision] ADD optional viscous friction at sliding contact points → wip
- #538 Use SOFA_ROOT naming convention everywhere in the docs Take diff to account then ready → keep to review
- #535 Update Installation.rst → ready
- #534 Update timer example introducing the Newton Raphson Doesn't fix the scene test. Need to investigate more → wip
- #204 MultiAdaptiveBeamMapping: Fix collision sampling Need to regenerate the regression sample then ready → keep to review
- #203 MultiAdaptiveBeamMapping: Better collision model topology (and fix 3instruments_collis.scn) Need to regenerate the regression sample then ready → keep to review
- #202 MultiAdaptiveBeamMapping: Add the SubMapping(s) in the slave list → ready
- #201 Generate doc for image Need to wait for the previous one to have a green CI. → ready
- #200 Generate doc for ModelOrderReduction Need to wait for the previous one to have a green CI. → ready
- #199 Generate doc for BeamAdapter Need to merge them to confirm that it doesn't crash on the ci. We also need to make sure we have all supported plugins activated. → ready
- #24 Improve UX on the draw selection settings Needs to be tested then ready → keep to review
- Register for the SOFA Week 2025. It's free and open: sofa-week-2025/registration
- Presentation of Lucas' work on the Shell plugin 25th of September
- ℹ️ New schedule of the SOFA dev meeting: Thursday 9:30-11:00 pm, starting next week Thu 18th of September.
- Fred is working on collision pipeline, and he suggests some refactoring required in the implementation of a new pipeline. A dedicated discussion should be organized with Paul
- #5689 [GL] DrawToolGL: faster rendering for Frame Old gl method was very slow, this PR enhance the speed of drawing frames using CPU based buffers. Restore BeamFEMForceField files → ready
- #5677 [All] Fix out-of-bounds warnings Wait for #5675 → ready
- #5676 [Type] BoundingBox: Phase out TBoundingBox<Real> → wip
- #5675 [Type] Vec: Phase out ctor/assignment from pointers and Vec of different sizes/types Need to be carefully reviewed. → keep to review
- #5670 [Sofa.Simulation.Graph] Remove dagnode related test files Rebase, solve conflicts and then fix tests are failing. → wip
- #5654 [Sofa.Simulation] minor modernization of Colors Not compiling (linking) on Windows. Need to fix it → wip
- #5650 [All] Matrix: replace all calls to [i][j] with a single call (i,j) Wait for one more review then ready → keep to review
- #5648 [LinearSolver] Untangle linear solver and linear system Nice refactoring moving method from linear solver to linear system. → keep to review
- #5626 [CMake] Add SofaViscoElastic as a supported plugin → postponed
- #5625 [CMake] Add SoftRobots.Inverse as supported plugin → wip
- #5610 [Sofa.Simulation.Graph] Remove DAGSimulation and DAGNode Wait for an update of the branch and for the CI. → keep to review
- #532 Add binding for Controller::draw() and drawTools() → ready
- #516 Propagate the removal of DAGNode and DAGSimulation → ready
- #233 [ImGUI] Fix crash on exit Fixes crash on exit. → ready
- #232 [CI] Re-enable plugins compilation → ready
- #231 [All] Use BaseViewer members (root, scenefilename, camera) This PR fixes a crash probably introduced by the changes done on BaseViewer to draw selected object. Now we still have a problem of light in the scene that needs to be investigated. Wait for 232. → ready
- #24 Improve UX on the draw selection settings. Slight more insight needed to understand the changes, else PR would be mergeable. The scene graph was broken in Qt. Load/store mechanism to save visualization would be nice in ImGui → to review
- #5686 [SofaCUDA] adding support for CUDA 13.0: remove deprecated API usage
- #5687 [Sofa.Gui.Common] Fix invalid rendering of Node when selected.
- #5566 [Sofa.Core] Merge DAGNode in Node
- #5678 [Core] ObjectFactory: fix warning about string concatenation
- #5635 [Type] Vec: update equality methods
- #5630 [Mapping.Linear] BarycentricMappingTopologyContainerMapper: Various cleanups
- #5628 [Mapping.Linear] BarycentricMappingTopologyContainerMapper: use array for barycentric coefficients
- #5683 [CImgPlugin] Fix configuration when cmake is reloaded without the fetched dir
- #5653 [Plugins] Remove SofaAssimp from sources and pluginize it
- #5660 [all] Fix warnings
- #204 Change the default behavior regarding SOFA PR 5550
- #206 Update information about windeppack related to #5614
- #229 [All] Fix fetching dependencies when out-of-tree
- #230 [All] Remove ON default value for projects
- Get ready for the SOFA Week 2025: emailing incoming!
- CI issue due to Qt (early merge of PR #18) solved by Fred, thanks!
- CI issue regarding FindCImg.cmake:
CMake Error at /builds/workspace/sofa-framework/master/ubuntu_clang_options_release/build/lib/cmake/FindCImg.cmake:61 (file):
file failed to open for reading (No such file or directory):- #5675 [Type] Vec: Phase out ctor/assignment from pointers and Vec of different sizes/types In the code base (mainly in draw methods) a lot of implicit conversion where done between vectors of different sizes. This is not something that we want, because it is super error prone. Now constructors doing implicit conversions are deprecated and will be removed in the future. This pr adds a lot of safety to the code and avoid potential crashes.
- #5678 [Core] ObjectFactory: fix warning about string concatenation → ready
- #5677 [All] Fix out-of-bounds warnings Continuation of 5675 also removing out of bound warning warning. → keep to review
- #5676 [Type] BoundingBox: Phase out TBoundingBox<Real> This is on the same subject as 5675, but on BoundingBox. → keep to review
- #5675 [Type] Vec: Phase out ctor/assignment from pointers and Vec of different sizes/types See technical discussion. This needs a big review. → keep to review
- #5663 [ODESolver] Lifecycle v25.12 : disable deprecated data Need to fix scenes before merging. → wip
- #5655 [SofaImplicitField] Add getHessian and getGradient to the python binding. Relaunch the ci then ready. → Keep to review
- #5654 [Sofa.Simulation] minor modernization of Colors Adds a way to enrich the default colors of the helper from outside (plugins). Needs unit test then ready. → wip
- #5653 [Plugins] Remove SofaAssimp from sources and pluginize it → ready
-
#5650 [All] Matrix: replace all calls to [i][j] with a single call (i,j)
This comes from tests done on matrices. Instead of using vec of vec, using a big vector was way faster to use for simple operations as teranspose and so on. Also if we ever want to use Eigen matrices, the squared brackets syntax is not usable. But this is just one step towards it. It removes the
[][]mechanism to access information to use a one call instead. This might even simplify the api of CRS matrices. A comment was made on using()for vectors on the whole API too. Maybe using curly brackets instead to differenciate from function call would be a good idea. → keep to review - #5648 [LinearSolver] Untangle linear solver and linear system Put to review not so long ago. We need to review it. → keep to review
- #5635 [Type] Vec: update equality methods Let's make a PR changing the equality threashold using the std::numeric_limits to see if it breaks anything on the whole code base --> add an issue for STC. → ready
- #5630 [Mapping.Linear] BarycentricMappingTopologyContainerMapper: Various cleanups → ready
- #5628 [Mapping.Linear] BarycentricMappingTopologyContainerMapper: use array for barycentric coefficients Relaunch the ci for windows then ready. → keep to review
- #5566 [Sofa.Core] Merge DAGNode in Node Need a rebase + a relaunch of the CI. Wait for the CI then ready → keep to review
- #5565 [SofaImplicitFIeld] Add FieldToSurfaceMesh component This work is interesting but should not be a simple engine, it actually fits the API of TopologicalMappings. Anyway, this is a special case that can stay as an engine for now, but a refactoring might clean the API later on. It copy-pasted a marching cube algorithm that already exists in the code. This algorithm will need to be factorized to only have one implementation. → wip
- #532 Add binding for Controller::draw() and drawTools() Very interesting feature: this is in line of the PR #5991. In additional, users often expect a customized rendering/visualization. This is a nice work. It should be split between changes in the existing API and another PR with new feature. Let's discuss the ability to use new feature as experimental in the code in the next STC. → keep to review
- #531 Apply changes from SOFA PR 5666 regarding GenericConstraintSolver Wait for #5666 → keep to review
- #529 Add RPyC server/client API → ready
- #516 Propagate the removal of DAGNode and DAGSimulation Wait for 5610 → keep to review
- #201 [Constraint] remove deprecated usage of Constraint and replace with LagrangianConstraint → ready
- #200 Apply changes from SOFA PR 5666 regarding GenericConstraintSolver Only apply the naming changes. Wait for 5666. → keep to review
- #230 [All] Remove ON default value for projects → ready
- #229 [All] Fix fetching dependencies when out-of-tree SOFA_ALLOW_FETCH_DEPENDENCIES wasn't defined in OOT. → ready
- #22 [CI] Fix cmake for packaging with Pixi Small suggestions where given. → ready
- #20 Fix color/styling problems → ready
- #5659 [all] Lifecycle v25.12 : disable deprecated attributes
- #5636 [Sofa.GUI.Common] Handle object selection in BaseViewer
- #5658 [LinearSolver,MechanicalLoad] Lifecycle v25.12 : remove deprecated Data
- #5662 [all] Lifecycle v25.12 : disable deprecated headers
- #5657 [all] Lifecycle v25.12 : remove deprecated headers
- #5656 [all] Lifecycle v25.12 : remove deprecated attributes
- #5604 [Response] Clean init of CollisionResponse
- #5614 [CMake] Use cmake and fetch mechanism for windeppack
- #5634 [Type] Mat: explicit instanciations and fix methods
- #5633 [examples] Fix stability in RegularGridTopology.scn
- #5624 [examples] Center default scene in world origin
- #5568 [SceneChecking] Introduce check on mappings and states in a Node
- #5562 [CMake] Add way to parametrize globally where to relocate plugins, projects and applications
- #5550 [Config] Add new macro for fetching dependencies
- #221 Add minimal support for drawSelection in imGui
- #224 Replace disabled findOrCreateAValidPath
- #228 Remove printed log message when control pressed
- #227 Make the time text info more visible
- #225 Change LineAxis style
- #205 Apply modification from SOFA PR 5550
- #84 [References] Add regression refs for RegularGridTopology.scn
- #85 Update reference according to #5624 LineAxis in fallingSOFA
- #23 Fix compilation with Qt5
- #18 Use of BaseViewer selection mechanism to add live selection feedback in the 3D view
- #11 Apply modification from SOFA PR 5550
- Get ready for the SOFA Week 2025
- Lifecycle for v25.12 over
-
#5666 [Lagrangian] Refactoring of GenericConstraintSolver
- GenericConstraintSolver structure was messy: constraint problem contained also the solving method. This PR aims at clarifying the constraint problem, the constraint solver. GenericConstraintSolver is now a purely virtual component and a specific component should be used (e.g. ProjectedGaussSeidelConstraintSolver). This design should be able to support both direct or iterative resolution. LCPConstraintSolver has not been modified in this PR.
- New plugins officially supported on the CI.
- SofaViscoElastic: still a question if we want to integrate it (FEM/mechanics validation is missing). Scenes are long to be tested (small time-step). Upcoming discussions will sort it out
- SoftRobots.Inverse: (racing) issue to be solved
- #5639 [Sofa.Component.Setting] Add data fields to control the rendering parameters for selections → ready
-
#5636 [Sofa.GUI.Common] Handle object selection in BaseViewer
Fix the compilation using the
msg(), wait for the CI then ready → keep to review - #5635 [Type] Vec: update equality methods The threshold defined in Vec.h is mostly used for geometry methods. The cpp numeric limits should be used instead. Possibly remove this threshold. → keep to review
- #5634 [Type] Mat: explicit instanciations and fix methods → ready
- #5633 [examples] Fix stability in RegularGridTopology.scn → ready
- #5628 [Mapping.Linear] BarycentricMappingTopologyContainerMapper: use array for barycentric coefficients New coding style on method signature is used here. It enable the use of a type defined in the class namespace, making the signature more readable and more elegant. → keep to review
- #5624 [examples] Center default scene in world origin → ready
- #5614 [CMake] Use cmake and fetch mechanism for windeppack Documentation has been added. Small typo fixed → ready
- #5604 [Response] Clean init of CollisionResponse This pr adds insight when the CollisionResponse type is either not set or includes a typo. Some scene are failing because they used the default value which is not existing anymore: need to be fixed. → wip
- #5591 [StateContainer] Deprecated visualization Data Some tests are failing. And need to apply modifications comming from sofa-dev. → wip
- #5568 [SceneChecking] Introduce check on mappings and states in a Node Last failing test has been fixed, CI is green. → ready
- #5566 [Sofa.Core] Merge DAGNode in Node Review noticed that DAGNode_test.cpp and DAG_test.cpp has not been removed. Follow-up PR can merge the tests. Wait for Ubuntu CI/Unit tests. → keep to review
- #5562 [CMake] Add way to parametrize globally where to relocate plugins, projects and applications → ready
- #530 Add new generic add method Working branch using the kwargs → wip - experimental
- #529 Add RPyC server/client API → keep to review
- #520 Add Node constructor with kwargs → ready
- #516 Propagate the removal of DAGNode and DAGSimulation Wait for work on https://github.com/sofa-framework/sofa/pull/5610 → keep to review
- #511 Use real copy instead of converting to string for when calling addObject or addChild Superceeded by the #530, while this PR will be a sandbox. → to be closed
- #199 Remove onTearDown and onSetUp Cleaning related to new lifecycle, don't need the SOFA PR to be merged → ready and merged
- #225 Change LineAxis style It might be better for the framework to add teh rendering of the axis in the GUI base class instead of in a real SOFA component. It is questionnable to modify the scene graph when viewing such features that are GUI related and non simulated. This goes beyond the scope of this PR, but keep in mind for later. → ready
- #224 Replace disabled findOrCreateAValidPath To be tested → keep to review
- #221 Add minimal support for drawSelection in imGui If by next week no changes on the parameter pannel has been done, this pr will be merged. → keep to review
- #85 Update reference according to #5624 LineAxis in fallingSOFA To merge along with #5624 → keep to review
- #20 Fix color/styling problems → keep to review
- #18 Use of BaseViewer selection mechanism to add live selection feedback in the 3D view Wait for 5636 and ci-depends-on → ready
- #11 Apply modification from SOFA PR 5550 → ready
- #5664 [GUI] Fix compilation with clang and boost 1.89
- #5665 [Framework] Fix compilation with clang20
- #527 Get timer as a floating-point type instead of an integer
- #514 [Examples] Add a script to access contact forces
- #197 dispatch component description into dedicated files
- #195 Generate the list of SceneCheck
- #196 Introduce a section about scene checking
- #203 Update installation and build instruction for new release
- Get ready for the SOFA Week 2025
- The SOFA team is back, ready to rock for the second 2025 semester! 🎸
- Darmstadt paper promoting paper An Open-Source User-Friendly Interface for Simulating Magnetic Soft Robots using Simulation Open Framework Architecture (SOFA)
- CNRS call for projects
- Lifecycle for v25.12 ongoing
- LN Robotics attempts to replace SOFA matrices with Eigen ones
- New plugins officially supported on the CI
- #5636 [Sofa.GUI.Common] Handle object selection in BaseViewer This PR adds draw mechanism to Base viewer to draw selected object on the scene graph. It is related to #222 on GLFW and #18 on Qt. It unify the drawing methods, not using the ones in the objects. It is a new step to remove debug drawing from objects. It is important for the dev team to take a look at this PR more extensively to give feedback on implementation choices to Damien. Missing CI depends-on. → keep to review
- #5626 [CMake] Add SofaViscoElastic as a supported plugin To be discussed with the dev team again on weather → keep to review
- #5625 [CMake] Add SoftRobots.Inverse as supported plugin Wait for ci to try the fix on SoftRobots.Inverse → keep to review
- #5624 [examples] Update new default scene with LineAxis Remove the LineAxis but keep recentering → wip
- #5614 [CMake] Use cmake and fetch mechanism for windeppack Requires the update of the windeppack documentation [examples] Update new default scene with LineAxis #5624 → keep to review
- #5591 [StateContainer] Deprecated visualization Data Wait for CI. Add link to documentaiton page (or github wiki page) on how to add the visualization component to replace this mechanism. → keep to review
- #5571 [Sofa.Core] Add a registerToFactory template function in ObjectFactory Applying to SOFA would be too expensive. This would assume to keep two mechanisms in SOFA. → close
- #5568 [SceneChecking] Introduce check on mappings and states in a Node Still 3 errors in the CI scene tests, some are timeouts but an error comes from applications/plugins/image/examples/loadVolume.scn → keep to review
- #5566 [Sofa.Core] Merge DAGNode in Node → keep to review
- #5562 [CMake] Add way to parametrize globally where to relocate plugins, projects and applications Add comment on parts that where necessary for SofaPython3 → keep to review
- #5550 [Config] Add new macro for fetching dependencies → ready
- #529 Add RPyC server/client API Trigger remote SOFA simulations using RPyC. Can be useful even on the same machine to share large data → keep to review
- #527 Get timer as a floating-point type instead of an integer → ready
- #520 Add Node constructor with kwargs It would be nice to have a test added → keep to review
- #514 [Examples] Add a script to access contact forces → ready
- #222 [GLFW] Add version requirement while find_package()-ing → ready
- #221 Add minimal support for drawSelection in imGui Window menu should be added to be consistent with the Qt proposal. Needs to be tested using ci-depends-on. → keep to review
- #20 Fix color/styling problems Needs tests → keep to review
- #19 Refactor RadioDataWidget Remove the double behavior between list of 4 item or less and longer lists. It always uses a combo now. Wait for CI to be green then ready. → keep to review
-
#18 Use of BaseViewer selection mechanism to add live selection feedback in the 3D view
See PR description. Two usecases for soon-deprecated
showvisualization data. This relates to PR #5636 in SOFA on BaseViewer. A similar PR has been implemented for SofaGLFW, but it misses the new tab with viewer options. Needs to be tested using ci-depends-on. → keep to review
- Get ready for the SOFA Week 2025
- The team wishes you a nice summer 2025 :beach_with_umbrella:
- Info: Revert "[Type] Replace fixed_array with std::array"
- TypeInfo for std::array was missing, leading to 2700 + scene test errors
- a PR will be reopen to implement it
- Viser: a library for interactive 3D visualization in Python
- CGAL plugin: responsible for recurrent CI compilation fails. The CGAL or Gmsh projects already providing Python bindings, it sounds reasonable. Let's discuss the reason why we shall keep SOFA components using CGAL
- Tough template meta programming
- Attempt using explicit instantiation which did not succceed
- Could be removed from the CI and still compiled on GitHub
- Examples using the CGAL codes could be rewritten in Python
- See issue #37
- SofaGLFW plugin
- many PRs to fix/improve it
- Inconsistency with other GUIs #70 → closed
- Keyboard event are layout dependent in ImGui
- Two plugins added as decided by the SOFA Technical Members
-
#5626 [CMake] Add SofaViscoElastic as a supported plugin
- Might be some implementation issue. We will wait before supporting it. Request Quentin's feedback
-
#5625 [CMake] Add SoftRobots.Inverse as supported plugin
- Already distributed in the release through the CI
-
#5626 [CMake] Add SofaViscoElastic as a supported plugin
- #5630 [Mapping.Linear] BarycentricMappingTopologyContainerMapper: Various cleanups Based on 5628. It adds some small cleanups. → keep to review
- #5628 [Mapping.Linear] BarycentricMappingTopologyContainerMapper: use array for barycentric coefficients Further to some profiling on the BarycentricMapping, barycentric coefficient are passed by pointers and vectors are allocated and deallocated continuously. This PR optimizes it by creating arrays, which makes it a bit faster. Need more extensive review. → keep to review
- #5624 [examples] Update new default scene with LineAxis Share a screenshots displaying the change → keep to review
- #5614 [CMake] Use cmake and fetch mechanism for windeppack Looks good for conda. Documentation page describing how to setup the WinDepPack → keep to review
- #5611 [All] CMake: an other round of speedup (configure stage) → ready & merged
- #5603 [SceneChecking] Add checks for PenalityContactForceField → ready
- #5595 [Engine.Generate] Cleaning volume engines Both components are computing the volume from a mesh (volumetric or surface mesh). Rename might be necessary. We could merge both components. All this could be done in another PR. Let's wait for Eulalie's feedback regarding the error message → keep to review
- #5571 [Sofa.Core] Add a registerToFactory template function in ObjectFactory An example was expected on TrailRenderer since it was templated. But the suggested approach works only for a single template, will need to use a template parameter pack to solve it. → to be rediscussed
- #5566 [Sofa.Core] Merge DAGNode in Node Expected changes were done, another pass of review is required. To be noted, a lot of comments involving TODOs are present. → keep to review
- #5562 [CMake] Add way to parametrize globally where to relocate plugins, projects and applications Just need to check if the scene tests are passing. Wait for the CI → keep to review
- #5558 [CMake] Clean CMake lists to be able to enforce global configuration of output folders Errors, the PR needs to be refreshed → wip
- #5557 [Simulation] Introduce function to visit mappings according to the mapping graph This is a first brute force version. This replicates the scene graph behavior onto the mapping graph. Not the most optimized one, but a working one taking dynamic changes into account. Performances could be kept in mind for future optimization → to be rediscussed with Christian
- #524 Update version in package.nix → ready
-
#522 Update documentation: ImGui, Qt, and Python env
Possibly remove the mention to SofaRuntime to load ImGui and use
import SofaImGuiinstead → keep to review - #520 Add Node constructor with kwargs CI is failing due to the setup environment. Harmless for SofaPython3 but useful for the Prefab (or later, e.g. to handle transformation). Relaunch CI → keep to review
-
#517 CMake: avoid searching Python files multiple times
Speed up the CMake process of SofaPython3. Especially for
CMake > 3.24.0→ ready & merged - #514 [Examples] Add a script to access contact forces Update the example using the VisualVectorField component recently introduced → wip
- #513 register objects from auto-loaded plugins Register all objects from the default plugin list, as done in runSofa → ready
- #511 Use real copy instead of converting to string for when calling addObject or addChild This PR was meant for adding numpy 2 compatibility. But it is too heavy just for the compatibility. Another fix has been introduced. Now this PR is more on avoiding passing through a string representation of the input data and instead use a copy. But this is not possible with the current state of the factory. A roadmap on the refactoring of the factory needs to be defined by Damien and Paul. → wip
- #505 Add python binding for Mappings Feature already successfully tested. Examples might be too simple, more advanced should be showcased. This could be done in another PR → ready
- Many PRs are open, including several on the documentation generation for plugins. It will be reviewed in the coming days
- #36 Try reducing object file creation ram requirement See technical discussions → closed
- #5623 [Plugins] Fix compilation regarding qt code now activated
- #5629 [Helper] Add path to icons to fix release error not finding icons
- #5627 [image] Deactivate image gui by default
- #5619 [GitHub] Add new label in label-checker.yml
- #5618 [Project] Start dev phase v25.12
- #5622 [Helper] Add path to icons to fix release error not finding icons
- #5621 [All] Fix last use of Sofa.GUI.Qt
- #5620 Revert "[Type] Replace fixed_array with std::array"
- #5617 [CHANGELOG] Update for v25.06
- #521 [examples] Update examples using imgui as default
- #503 [STLIB] Add the unified "add" in Sofa.Core.Node
- #523 Fix legacy version in RAII mechanism for numpy compatibility
- #518 Use built in method numpy.set_printoptions in addObject/addChild methods to enable numpy 2
- #220 Fix signature loadFile in ImGuiGUIEngine
- #219 Fix lights when reloading the scene
- #218 Remove reset function and call load instead
- #217 Allow selection in Log window
- #216 Fix scale of the repeated background image
- #215 Add F11 for usual full screen
- Get ready for the SOFA Week 2025
- The team wishes you a nice summer 2025 :beach_with_umbrella:
- #518 Use built in method numpy.set_printoptions in addObject/addChild methods to enable numpy 2 Enforce numpy to use the legacy representation in order to support string conversion for Data. Using the RAII mechanism. PR is ready
- AdaptiveBeamMapping in BeamAdapter: this component allows to map a 3D model onto a beam model and thus calculate forces on the mesh (pneumatic, elastic) and project them onto the beam. API changed since Paul Chaillou's PhD thesis. Await Quentin's feedback regarding the BeamInterpolation object
- SofaGLFW / ImgGui : some features are still missing
- ↩️ button ImGui is doing
reset() - Other features: align on axis, changing the focus point, recently opened files; mouse incision, select in Logs
- ↩️ button ImGui is doing
-
#5611 [All] CMake: an other round of speedup (configure stage)
- This PR exploits the optimization available in
sofa_find_packages(). Applying it to all *Config.in, it avoids re-finding packages that are already found. This is already enough to gain time on configure on windows. PR seems ready, just awaits for Alex's feedback
- This PR exploits the optimization available in
-
#5610 [Sofa.Simulation.Graph] Remove DAGSimulation and DAGNode
- Follow-up of a DAG-related discussion with Alex. All DAG-XXX is meaningless since we support nothing else than DAG (before Tree was existing). All could be simply Node, Context and Simulation. This PR is based on #5566. See below
-
#5566 [Sofa.Core] Merge DAGNode in Node
- This PR merges both DAGNode and Node. Some part of the code where DAG used the design pattern 'call super' has been refactored in a quick way (just changed the call to super to a call to self method). But it might be better to refactor it completely because there is no purpose of having this call to another method anymore.
-
#5608 [Sofa.Core] Merge BaseContext and Context
- Node implementation is inheriting from BaseNode and BaseContext. Merging the two is a complex move. Damien is looking for Context and BaseContext: again no clear explanation why we keep two layers. Context would be merged into BaseContext since it requires less code change (testing purpose). See diff in this commit. The question that arised is:
- why keeping DAGSimulation → #5610
- why does the Node class inherits from both BaseNode and BaseContext. We must clarify why we want to differ a Node and a Context (architecture questioning)
- Node implementation is inheriting from BaseNode and BaseContext. Merging the two is a complex move. Damien is looking for Context and BaseContext: again no clear explanation why we keep two layers. Context would be merged into BaseContext since it requires less code change (testing purpose). See diff in this commit. The question that arised is:
-
#5571 [Sofa.Core] Add a registerToFactory template function in ObjectFactory
- This removes the class name from the method symbol, using templates to pass the class name. This eases the process of refactoring using IDE.
- The specialization of the
registerToFactory<template class T>could be done automatically by providing a default templated implementation. But in that case we would need a static argument in all classes containing the help string of the factory along with a SFINAE-like mechanism to enable this default implementation when this help string is available.
- Data in components for rendering : two purposes are supported. 1) Live introspecting (debug) 2) actual expected visualization of Data in a scene. For the 1) we should have options in ImGui that is supporting the user in its scene development
- #5614 [CMake] Use cmake and fetch mechanism for windeppack Relying on #5550. We need to merge it before this one. → ready
- #5611 [All] CMake: an other round of speedup (configure stage) → approved, await Alex's review
- #5610 [Sofa.Simulation.Graph] Remove DAGSimulation and DAGNode → discussed in technical discussions
- #5608 [Sofa.Core] Merge BaseContext and Context → discussed in technical discussions
- #5605 [Helper] Remove default value on OptionGroup It might be better to keep track of the fact that this OptionGroup has been set or not. And if it hasn't been set when calling the 'get' method, then throw a warning. → wip
- #5604 [Response] Clean init of CollisionResponse Missing scene tests → Wait for the CI
- #5603 [SceneChecking] Add checks for PenalityContactForceField Missing scene tests, it may trigger massive warnings in scene which do not define the contactStiffness data in the case of PenalityContactForceField → wait the CI
- #5601 [Sofa.Core] Refactor extern template to minimize code duplication This PR avoids having to write multiple times the extern explicit instantiation. But it is currently failing on some OS. It might be because it is in the header and the inclusion order doesn't allow the compilator to have access to all templated instantiations when needed. → wip
- #5595 [Engine.Generate] Cleaning volume engines Implements changes expected in #5525. Missing changes asked for links. → keep to review
-
#5591 [StateContainer] Deprecated visualization Data
CI says no. Tests on scenes might massively fail (since the
showObjectData will disappear). What about the ability to show indices ? HAs it been moved to a new component ? → wip - #5590 [Visual] introduce component to visualize a vector field → ready & merged
- #5571 [Sofa.Core] Add a registerToFactory template function in ObjectFactory → See technical discussions
- #5568 [SceneChecking] Introduce check on mappings and states in a Node Scene tests need ot be fixed → keep to review
- #5566 [Sofa.Core] Merge DAGNode in Node Clean the refactoring regarding the call super, else seems fine → wip
- #5562 [CMake] Add way to parametrize globally where to relocate plugins, projects and applications Wait for the scene tests then ready → keep to review
- #5539 [Type] Replace fixed_array with std::array Unit tests are just timeouting, PR is fine → ready
- #5613 [CMake] Bump SOFA version v25.06.00
- #5222 [tools] generate stubfiles during packaging
- #5602 [Helper] Add check in OptionGroup
- #5588 [Visual] Introduce component to visualize a point cloud
- #5587 [Scene] Modernize DataDisplay scene
- #5559 [SofaImplicitField] Add python binding to ScalarField
- #5585 [Rendering2d] Support change of color scheme with callback
- #5584 [Mapping.Linear] DistanceFromTargetMapping: Build indices list if not defined by user
- #5583 [Spring] Fix empty stiffness container
- #5598 [Core] Fix DisplayFlags with showCollision
- #515 Update notify dash
- #509 Add explicit getter and setter for datas
- #508 Introduce bindings for SceneCheck
- Get ready for the SOFA Week 2025
- Roadmap v25.12 is out
- Check needed features for GLFW
- Fred is in the process of improving the node searching behavior
- Maybe the most important one listed in issue and still missing are the keyboard shortcut
- We are also missing the ability to create a video of the execution in the GUI (e.g. save automatically a screenshot by frame)
- Refactoring of the SofaPython Bindings/Modules
- To ease the use of modules/bindings, we should rename them to match the one in SOFA since SOFA NG
- It would require a compatibility layer which doesn't seem trivial
- Maybe a coding sprint would be good for this task
-
#5571 [Sofa.Core] Add a registerToFactory template function in ObjectFactory
- TrailRenderer is the only component that is templated here. But it is the case of most of the components in SOFA. So we would like to see how it works with such a component to decide whether we want this in the core or not.
-
#4991 [Collision] ADD optional viscous friction at sliding contact points
- Paul will do the work on adding it into SOFA, the feature is interesting.
- #511 Use real copy instead of converting to string for when calling addObject or addChild This PR fix the issue with numpy 2. But it increases the strictness of data list formatting. Seems dangerous for a release. But it seems important to be compatible with numpy 2. Let's push it to enable this for the release. → keep to review
- #509 Add explicit getter and setter for datas → ready
- #508 Introduce bindings for SceneCheck → ready
- #5577 [IO] Clean VTKExporter
- #5576 [Core,StateContainer] Remove unused aliases
- #5569 [Core] Visitor to have the same logic for backward and forward
- #5525 [Engine.Generate] New components to compute volume from meshes
- #5589 [Collision.Geometry] SphereModel: remove duplicated return statement
- #5518 [CollisionModel] Rename proximity data to contactDistance
- #5586 [Rendering3D] Minor cleaning of DataDisplay
- #5528 [SlidingLagrangianConstraint] Fix SlidingLagrangianConstraint and make it compatible with Rigids
- #209 Backport all fix commits and new widgets
- #208 Inform vparams OpenGL is supported
- #207 Adapt to 5539
- Get ready for the SOFA Week 2025
- Roadmap v25.12 is out
- Feedback from Slicer Week
- Many people interested in SOFA (medical, soft-robotics)
- SOFA launchable on any server using rpyc
- Several fixes on CMake
- Interest in Gaussian Splatting
- CNRS call is an opportunity
- Create easily 3D environment, use for collision detection (LDI)
- e.g. method Nerf
- Roadmap topics
- Create GitHub projects
- Notify persons in charge
- PoC about the DataTypes
- Plugin SOFA to test the creation of a new DataType: https://github.com/alxbilger/DataTypes
- Understand what was needed to create a new DataType
- it depends on how you use it, and which class is using it
- here : case where it is used by a MechanicalObject
⚠️ this work has only been done until the build of a templated MechanicalObject passed. No runtime tests has been performed
- Observations
- Heavy to implement : 500 lines just to describe a new DataType
- VecCoord, Real etc. are cumbersome to redefine but using std::vector it can be shorten
- Important underlying dependency on MatrixDeriv: a function was introduced in MechanicalObject when working on the new matrix type for constraints (note that MatrixDeriv looks very much like a CompressedRawSparseMatrix which makes it not generic at all)
- Link between Data (relying on AbstractDataTypeInfo) might need to be refactored too
- All this is a large project, not urgent to rush in
- Strategy
- A reasonable strategy could be to work on a more generic refactoring of MatrixDeriv in MechanicalObject
- It could be design as a
C++concept
- Windows remarks
- Execution of Python unit tests on Windows should be re-activated
- Slow configuration on CMake since some weeks (generation takes +180s)
- #5580 [StateContainer] More efficient draw Might soon be closed and a new component will be introduced later to extact all drawing features from the MechanicalObject. → closed
- #5576 [Core,StateContainer] Remove unused aliases → ready
- #5571 [Sofa.Core] Add a registerToFactory template function in ObjectFactory Discussion ongoing → keep to review
-
#5569 [Core] Visitor to have the same logic for backward and forward
testTagsis already implementedrunVisitorTaskthe code is therefore simplified and homogeneized → ready - #5568 [SceneChecking] Introduce check on mappings and states in a Node Check that when a mapping is defined, a state should be defined in the same node. This is a strong condition on the design for visitors to execute properly. Make it an error. → keep to review
- #5562 [CMake] Add way to parametrize globally where to relocate plugins, projects and applications Trigger the scene-tests and then ready → keep to review
- #5559 [SofaImplicitField] Add python binding to ScalarField Trigger the scene-tests and then ready → keep to review
- #5558 [CMake] Clean CMake lists to be able to enfore global configuration of output folders CMake properties could be defined in Config. Could be done as a macro. → keep to review
- #5550 [Config] Add new macro for fetching dependencies Add as many comments as possible. Homogeneize the macro used in SOFA and in plugins → keep to review
- #5539 [Type] Replace fixed_array with std::array Require more changes (fix in plugins) → wip
- #5528 [SlidingLagrangianConstraint] Fix SlidingLagrangianConstraint and make it compatible with Rigids Math have been checked and geometrically validated. Simplification is done due to the missing Hessian information. This would require an API evolution → ready
- #5525 [Engine.Generate] New components to compute volume from meshes This PR transfers code from plugin. The code contains some little mistakes (e.g. cosmetic changes, raw pointers instead of links, semantic consistency). But this should not be fixed in this PR but in a future one. To rebase then merge. → ready
- #5518 [CollisionModel] Rename proximity data to contactDistance Reviews taken into account → ready
- #5552 [GitHub] Add dependabot for monthly update of github-actions
- #5564 [Lagrangian.Model] BilateralLagrangianConstraint: enforce disabled state in getConstraintResolution
- #5527 [Visual] Add a new component drawing an AABB
- SOFA Technical Committee took place, now heading towards the SOFA Week 2025
- DEFROST team will again organize a soft robotics summer school in 2026 in Lille, sponsored by IEEE RAS!
- Consortium took part in the 2RM meeting gathering French engineers in soft-robotics
- Roadmap v25.12 is out
- Discuss and collectively decide about the mapping graph
- where to store the mapping graph
- root context
- assembly component
- animation loop
- Simulation data structure for each simulation (started refactoring of this singleton) with: node (root), graph (mapping), execparams
- when to trigger its update
- each usage
- each time step*
- each change in the scene graph*
- each change in the mapping graph (using callbacks on Links)
- see PR #5557 which introduces a function to visit mappings according to the mapping graph
- way simpler approach
- relying on brute force approach (quadratic-order search on the number of "edges"/mapping connection)
- ongoing work to evaluate the need to create the mapping graph
- exploiting parallelism would be possible, but manually
- where to store the mapping graph
- COAL
- SIMD data structure x8 speedup expected
- for SOFA, it was intended to use Eigen (vector and matrices) which is using SIMD structure too
- #504 Add a function to get the kinetic and potential energy of a node from a python script Some functions of the SOFA Forcefields do not implement the getPotentialEnergy, thus returning 0. The PR is fine as is. → ready
- #194 [GitHub] Add the SofaGLFW README to describe the new GUI Path issues to be solved → wip
- #193 Clarify how to run SOFA, mention SofaPython3 and the new GLFW-ImGUI → keep to review
- #204 Add support of custom GUIs Possibility to create a new GUI based on ImGui. This is done for a C++ implementation (CameraGUI is based on the BaseAdditionalGUI) however the Python version to create a new GUI using the ImGui binding (based on our version of ImGui) is not yet implemented. PR is ready, another review would be welcome → keep to review
- #5555 [FEM.Elastic] Use triangle area function
- #5532 [Elastic] Generalize the use of Tetrahedron::volume
- #5494 [CMake] Add SofaSphFluid.CUDA to the presets
- #5530 [Visual] VisualStyle: Set flags at init()
- #5491 [CMake] Add BeamAdapter.CUDA to the presets
- #5493 [CMake] Add SofaDistanceGrid.CUDA to the presets
- #5492 [CMake] Add SoftRobots.CUDA to the presets
- #5544 [FEM.Elastic] Avoid copy when reading rest position
- #5512 [SofaMatrix] Introduce widget to visualize a matrix in the GUI using imgui
- SOFA Technical Committee took place last week in Strasbourg
- Report incoming
- Interesting discussions and good times 🍻 as always!
- DEFROST team will again organize a soft robotics summer school in 2026 in Lille, sponsored by IEEE RAS!
- Internship ended in Lille on a customized GUI in C++. In Python, the internship did not successfully completed a demo (no best ImGui Python library).
-
#5539 [Type] Replace fixed_array with std::array
- Complex to inherit from
std::arraywhen using advanced mechanisms such as traits or concepts - Super breaking currently, still need a lot of work to make it work. It therefore questioned the interest in pursuing further this change. Dev team estimates it worth changing.
- Possibly push towards removing Vec and Mat
- Wait the PR progresses a bit before notifying reviewers
- Complex to inherit from
- #5539 [Type] Replace fixed_array with std::array → see technical discussions (to be continued)
- #5532 [Elastic] Generalize the use of Tetrahedron::volume Test failing to be fixed. This might also be used in the Mass objects → wip
- #5530 [Visual] VisualStyle: Set flags at init() This fixes the fact that the cube was not shoing int he first frame of the new main simulation. → ready
- #5528 [SlidingLagrangianConstraint] SlidingLagrangianConstraint and make it compatible with Rigids This PR fixes the failing scene on the CI. Thinking about how to check constraint derivatives. Take into account the comment reviews → keep to review
- #5527 [Visual] Add a new component drawing an AABB Take reviews into account → keep to review
- #5525 [Engine.Generate] New components to compute volume from meshes Naming convention about Tetrahedra vs Tetrahedrons. We would prefer tetrahedra. Renaming could be performed → ready
- #5518 [CollisionModel] Rename proximity data to contactDistance Add a comment and take suggestions into account → keep to review
- #5494 [CMake] Add SofaSphFluid.CUDA to the presets Strange behavior that everything is passing, check this. Based on two previous PR, run [force-full-build] → keep to review
- #5493 [CMake] Add SofaDistanceGrid.CUDA to the presets Run [force-full-build] → ready
- #5492 [CMake] Add SoftRobots.CUDA to the presets Run [force-full-build] → ready
- #5491 [CMake] Add BeamAdapter.CUDA to the presets Run [force-full-build] → keep to review
- #72 Filter CUDA extensions → ready
- #192 Add option to Draw the scene Bounding Box Linked to #5527. In Qt GUI, qglviewer was implementing this feature. Now, a dedicated component is implementing the rendering of the visual bounding box. This component is added dynamically in the scene. Why not creating a filtering of such components (also like RequiredPlugin) to make them invisible in the graph. → ready
- 📢 SOFA Technical Committee
- Last minute registration❗
- Program online: sofa-framework.org/stc19/program
- 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
- #5520 [SofaCUDA] Fix warning regarding type of deviceIsValid Merge first #5517 and rebase. → ready
- #5518 [CollisionModel] Rename proximity data to contactDistance Suggestion has been made to rename it instead proximityDistance since it is a proximity used, then the contact/alarmDistance will be used in the process → keep to review
- #5517 [SofaCUDA] Fix OOT compilation of plugin depending on SofaCUDA → ready
- #5513 [CMake] Add SofaMatrix.Qt to the presets Export of target in some plugins has not been updated (cmake.in) → wip
- #5512 [SofaMatrix] Introduce widget to visualize a matrix in the GUI using imgui The RequiredPlugin is a bit heavy to use for a widget → ready
- #5511 [CMake] Add flag to enable the use of a local directory for external projects The associated doc page could be updated → keep to review (and merge along the doc PR)
-
#5508 [Collision.Geometry] Contribute to the BoundingBox only if drawn
The
onlyVisiblevariable should be documented and possibly renamed because its use is pretty unclear. It is true if the BoundingBox is only computed for visible objects. This would be eased using the template method pattern. Open an issue on that subject (make this mechanism more robost) → ready - #5494 [CMake] Add SofaSphFluid.CUDA to the presets Relaunch the CI and then merge → keep to review
- #5493 [CMake] Add SofaDistanceGrid.CUDA to the presets Relaunch the CI and then merge → keep to review
- #5492 [CMake] Add SoftRobots.CUDA to the presets Relaunch the CI and then merge → keep to review
- #5491 [CMake] Add BeamAdapter.CUDA to the presets Relaunch the CI and then merge → keep to review
- #190 [BeamAdapter.CUDA] Fix for refactored SofaCUDA cmake, and overall fix compilation Works on both the plugin CI and the SOFA CI (activating CUDA) → ready
- #191 Make imgui available outside the library Visualizing matrices in the ImGui led to this PR → ready
- #5 Add CI on CSparseSolvers → ready
- #5509 [SofaCUDA] Reorder inclusion of SofaCUDA plugin and fix name of Sofa.Qt target
- #5504 [Constraint] replace bwdInit by init
- #5506 [Core] The Jacobian matrix of the constraints must be evaluated at the previous state
- #5372 [Lagrangian] Remove multigrid support in LCPConstraintSolver
- #5505 [Core] Deprecate unused method rebuildSystem
- #5487 [Core] Remove not relevant comment
- #5507 [Lagrangian.Model] Redundant reading of free position
- #5503 [Constraint] Introduce correctionFactor function for factorization
- #5490 [Core] Apply template method design pattern to CollisionModel::draw
- #5480 [SofaCUDA] Modernize cmake
- #501 [stlib-splib] work on prefabs: cleaning
- #499 [Bindings.Helper] Add bindings to retrieve config directories
- #70 Apply changes introduced by modernization of SofaCUDA cmake
- #71 Exit build when ci-depends-on is broken and notify user
- #69 Add option to limit number of job pool for CGAL
- #32 Fix windows compilation
- #31 Fix compilation MeshGenerationFromPolyhedron
- #29 Add option allows to activate JOB pool limitation
- #30 Fix mesh_criteria_3 parameters name change in CGAL >= v3.8
- 📢 SOFA Technical Committee
- Last minute registration❗
- Program online: sofa-framework.org/stc19/program
- On the support of the CGAL plugin
- Attempt to provide a maximum of resources (space and memory) for the CGAL plugin, but we reached the point where the plugin can not be decently compiled on VM
- Suggestion :
- avoid compiling it on the Ubuntu CI
- test to remove the optimization (o0 or o1)
- Template method pattern: Shall we disable polymorphism by simply removing the virtual keyword (risking shadowing) or lock it by using final keyword ?
Related PRs:
- #5487 [Core] Unvirtualize drawVisual
- #5456 [Framework] Apply template method design pattern to Contact
- #5466 [Framework] Apply template method design pattern to BaseMapping → It is agreed to use the final keyword to give strong guarantee that the deactivaiton of object will work. But we need to keep in mind that this might not be always wanted, blocking overriding is somehow a bad C++ habit.
- #5509 [SofaCUDA] Reorder inclusion of SofaCUDA plugin and fix name of Sofa.Qt target GUIs are included before the plugins but not the case when they are used in external directories. CUDA extension in Sofa.Qt. → ready
-
#5508 [Collision.Geometry] Contribute to the BoundingBox only if drawn
Removing the
!operator ononlyVisibleseems strange. → keep to review - #5507 [Lagrangian.Model] Redundant reading of free position → ready
- #5506 [Core] The Jacobian matrix of the constraints must be evaluated at the previous state This wasn't breaking until now because codes using the API where either not using the passed data, patching their implementation or the constraint directions where constant during the simulation. → ready
- #5505 [Core] Deprecate unused method rebuildSystem Fix mis-definition of the DEPRECATED compatibility layer → keep to review then ready
-
#5504 [Constraint] replace bwdInit by init
Avoid uses of the
bwdInit()function in favor ofinit()and Data dependencies should manage the update → ready - #5503 [Constraint] Introduce correctionFactor function for factorization Remove duplicated code by introducing a static method. → ready
- All following PRs need the #5509. Filter to be done in the CI scripts on all plugins names XXX.CUDA (possibly not just based on the name SofaCUDA)
- #5490 [Core] Apply template method design pattern to CollisionModel::draw Reviews taken into account → ready
- #5487 [Core] Unvirtualize drawVisual See technical discussions. Keep the removal of comment → keep to review
- #5480 [SofaCUDA] Modernize cmake → ready
- #5372 [Lagrangian] Remove multigrid support in LCPConstraintSolver Removing un-used codes and variables. Use deprecation before removal. → ready
-
#499 [Bindings.Helper] Add bindings to retrieve config directories
Mirror the API introduced by Eulalie adding
getSofaUserLocalDirectoryto thesetConfigDirectoryPath→ ready
- #190 Fix for which matrix is diagonal Add sentence to state that the final W matrix is also diagonal. → keep to review then ready
- #71 Exit build when ci-depends-on is broken and notify user Message is now added when a PR (i.e. branch) in a plugin cannot be merged with the master branch of the plugin. → ready
- #70 Apply changes introduced by modernization of SofaCUDA cmake Requires SOFA PR #5480 → ready
- #69 Add option to limit number of job pool for CGAL → ready
- #30 Fix mesh_criteria_3 parameters name change in CGAL >= v3.8 Fix the compilation with the newer version of CGAL → ready
- #29 Add option allows to activate JOB pool limitation Allow to deactivate the limiting pool mechanism during the plugin compilation. Needs the PR #69 on CI → ready
-
#15 Fix cuda compilation with revamped SofaCUDA
SofaCUDA there is a core (
sofa/gpu/) and the components (src/SofaCUDA/). → ready
- #5500 [Core,Lagrangian] Add some useful comments
- #5499 [Core] Replace raw pointer by SingleStateAccessor
- #5427 [Type] Mat: Fix unsafe methods (constructor and assignement) from ptr
- #5498 [Core] Simplify constraint force computation
- #5472 [Core] Rename Constraint to LagrangianConstraint
- 📢 Last minute registration for STC#19:exclamation:
- Vote for the STC discussion topics will take place at the SOFA dev meeting
- 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
- #5499 [Core] Replace raw pointer by SingleStateAccessor → ready
-
#5498 [Core] Simplify constraint force computation
MatrixLinearSolver and ConstraintCorrection are computing similar things. Now it uses existing functions
addMulTransposeandmultTransposeBaseVector. For later:- Since both functions compute the same thing on different matrix type, we should investigate if this could be factorized
- Note that the matrix type is the SparseMatrix, but we could use a smarter matrix type (without map of map). This needs to be tested → ready
- CUDA for plugins in presets Discuss with Paul but this means the configure.sh file should be updated. Possibly find a way to automatize the detection of CUDA plugins → keep to review
-
#5490 [Core] Apply template method design pattern to CollisionModel::draw
Use the
isComponentStateInvalid()else it mimics the pattern of the VisualModel. Possibly add a comment specifying that this functions should be removed once the delegation is applied on BaseObject → keep to review - #5487 [Core] Unvirtualize drawVisual virtual final functions are a trick to warn developers but it helps developers and understanding of the behavior. PR is fine but nee to be rediscussed (either ready or close it) : how valuable it is preventing the shadowing ease understanding of the code and prevent error → keep to review
- #5480 [SofaCUDA] Modernize cmake Changing file architecture (but it remains strangely organized sofa/gpu vs SofaCUDA). It should be split in two : SofaCUDA/Component and SofaCUDA/framework/. This PR also updates the CMake to be compatible with latest version of CUDA. Native keyword allows not to specify the architecture but it requires 3.24+ CMake version. This PR fixes also the compilation on Win with latest CUDA 12 versions. TriangularFEMForceFieldOptim code is requesting the CUDA 6+, a proper check should be done with a warning (else atomic_add will fail in double). One conflict remains, then ready. → keep to review
- #5472 [Core] Rename Constraint to LagrangianConstraint → ready
- #5372 [Lagrangian] Remove multigrid support in LCPConstraintSolver CI does not successfully configure, to be investigated → back to wip
- #190 [BeamAdapter.CUDA] Fix for refactored SofaCUDA cmake, and overall fix compilation Possibly depends on the #5491, let's wait for it. PR looks fine, restart the CI after #5491 is merged → keep to review
- #5458 [SofaCUDA] Remove code related to SPH
- #5406 [VolumetricRendering] Apply new factory registration mechanism
- #5497 [Simulation.Core] Deprecate AnimateVisitor
- #5426 [SofaDistanceGrid] Substitute pointer-sharing and ref-counting mechanism of the DistanceGrid class with std smart pointers
- #5495 [Core] Update comment to reflect code
- #5425 [SOFADistanceGrid] Replace pointer to the mstate with a link in the collision models of the plugin
- #5411 [SofaDistanceGrid] New scenes and regression tests for the plugin
- #5488 [ODESolver] Fix warnings in StaticSolver
- #5479 [Core] Remove useless inheritance in BaseInteractionProjectiveCS
- #5469 [Core] Update deprecation date
- #5431 [Topology.Container.Dynamic] Missing call to super init
- #187 Cleaning of AdaptiveBeamForceFieldAndMass
- #192 Remove quote to send real boolean
- #191 Add 'notify dashboard' step to CI
- #185 [Interpolations] Remove raw ptr for mstate and topology
- #188 DisplayFlags widget
- #189 Add 'Notify dasboard' step to CI
- #185 [ImGui] QoL: Remember last window position/size
- #180 [CI] Update workflow to match branch name
- #186 [GLFW] macOS/cocoa: do not set icon on window
- #187 [CI] Fix deployment
- #13 Move CUDA code related to SPH from SofaCUDA to a SofaSphFluid extension
- #9 Update regarding changes done in #7
- #12 Change from gitter to discord
- 📢 STC#19 registration is open: register online now ❗
- Release branch v25.06 has just been created on the SOFA repository as well as on every supported plugins
- Ongoing sprint with SED Nancy on the application of the template method pattern on the base API
-
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
- #187 [CI] Fix deployment → ready
- #186 [GLFW] macOS/cocoa: do not set icon on window → ready
- #185 [ImGui] QoL: Remember last window position/size Last check to be done → keep to review
- #5438 [IO.Mesh] Add check on VTK format version
- #5440 [Core] isComponentStateInvalid function
- #5423 [Core] Rename BaseConstraint to BaseLagrangianConstraint
- #5116 [Engine.Select] Automatically find topology in MeshBoundaryROI
- #5430 [LinearSolver] Fix usage of a wrong pointer
- #182 Add CMake flag to optionnaly deactivate x11
- #181 Refactor window closing logic
- #184 increase precision when displaying a scalar
- #183 Show jacobian matrix using prettyPrint function
- 📢 STC#19 registration is open: register online now ❗
- SOFA release branch v25.06 has just been created, ready for stabilization and release
- SOFA consortium will take part to the Slicer Week #43 in Montreal from June 23rd to June 27th
- 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.
addDForcefor 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
- #5431 [Topology.Container.Dynamic] Missing call to super init Let's wait for the tests then ready → ready
- #5430 [LinearSolver] Fix usage of a wrong pointer → ready
- #5427 [Type] Mat: Fix unsafe methods (constructor and assignement) from ptr Fred will do a new PR to depreciate those unesafe methods → ready
- #5426 [SofaDistanceGrid] Substitute pointer-sharing and ref-counting mechanism of the DistanceGrid class with std smart pointers Same, waiting for the #5411 and add ci-depends → keep to review
- #5425 [SOFADistanceGrid] Replace pointer to the mstate with a link in the collision models of the plugin Rebase will be needed, waiting for the #5411 → keep to review
- #5423 [Core] Rename BaseConstraint to BaseLagrangianConstraint Merge PRs on plugin (warning: create the release branches before those commits) → ready
- #5411 [SofaDistanceGrid] New scenes and regression tests for the plugin No time to investigate the problematic scenes so far, only two scenes added. Windows tests will be re-run, but it should not be related to the PR. See le results of the tests → then ready
- #5116 [Engine.Select] Automatically find topology in MeshBoundaryROI Might neet to update clang versions on ubuntu/fedora to be able to use std::view. Need to wait for a rebuild on fedora. Milestone updated: v25.12 → keep to review
- #185 [Interpolations] Remove raw ptr for mstate and topology Add inheritance to SingleStateAccessor. → keep to review
-
#184 [Interpolations] Fix init stage
Very young PR, replacing the
bwdInitfunction. → ready
- #183 IRC: Fix compilation for clang
- #181 [IRC] Fix things about xTips
- #180 Add more regression tests
- #179 [Scenes] Fix runtime warnings, and consistent behavior between python and xml
- 📢 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
- SOFA consortium will take part to the Slicer Week #43 in Montreal from June 23rd to June 27th
- Scene errors:
[ERROR] [FileSystem::createdirectory()] /home/runner/.config/SOFA: File existsfurther to #5096- Linux error only since when the folder is existing, an error is thrown. We should either use
std::filesysteminstead ofsofa::helper::system::FileSystem(see Fred's comment) - Decision : use
std::filesystemdirectly in the SOFAFileSystem
- Linux error only since when the folder is existing, an error is thrown. We should either use
-
#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.
- #5426 [SofaDistance Grid] Substitute pointer-sharing and ref-counting mechanism of the DistanceGrid class with std smart pointers Add ci-depends Erik → keep to review
- #5425 [SOFADistanceGrid] Replace pointer to the mstate with a link in the collision models of the plugin Wait for #5411. Possibly rely on the SingleStateAccessor instead to take advantage of init mechanism → keep to review
- #5423 [Core] Rename BaseConstraint to BaseLagrangianConstraint Plugins need to be updated (e.g. MOR) → keep to review
- #5419 [SofaImplicitField] A bit of cleaning in the plugin → ready
- #5411 New scenes and regression tests for the SofaDistanceGrid plugin See technical discussions → keep to review
-
#5406 [VolumetricRendering] Apply new factory registration mechanism
Errors where thrown when using namespace
volumetricrendering::cudabecause of the explicit instanciation. Either put it in the right namespage or use absolute namespace when instanciating it. → wip - #25383 [_MechanicalLoad] Factorize damping forcefields Get back to regular C++ loops → back to wip
- #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
- #181 [IRC] Fix things about xTips → ready
- #180 Add more regression tests Related to #179 → keep to review
- #179 [Scenes] Fix runtime warnings, and consistent behavior between python and xml Investigation has still to be performed. Wait for discussion wi27th Christian (STC)→ keep to review
- #188 Documentation for FixedLagrangianConstraint Paul wants to suggest some additional doc text → keep to review
- #80 Update regresion_test.py Need to update the script → keep to review
- #81 Reference files for regression tests in the SofaDistanceGrid plugin Need to be at least reviewed to make sure it has not been generated using a DEBUG configuration. → wip
- #5394 [ArticulatedSystemPlugin] Apply new factory registration mechanism
- #5392 [SofaImplicitField] Apply new factory registration mechanism
- #5391 [SofaDistanceGrid] Apply new factory registration mechanism
- #5421 [Lagrangian.Model] Remove extra endEdit
- #5404 [CollisionOBBCapsule] Apply new factory registration mechanism
- #5096 [runSofa,Helper] Changes screenshots and config directories location
- #5415 [examples] Run PluginFinder
- #178 [IRC] Add checks/warnings at init stage
- #177 [Wire Shape] Fix the confusion between the nbEdgesCollision and the number of mechanical Beams
- #176 [InterventionalRadiologyController] Remove remnant of the "broken" feature
- #175 [All] Clean types
- 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.
-
#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
localToGlobalCoordas in the rigid mapping. To allow any relative position at the begining of the simulation between the dof and the mesh.
- It might be great to fix that and enable a mechanism of
- 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
MiniFlowVRthat 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.
- 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.
- #5415 [examples] Run PluginFinder Wait for scene tests → then ready
- #5411 About the SofaDistanceGrid plugin → see technical discussions
- #5394 [ArticulatedSystemPlugin] Apply new factory registration mechanism Wait to see if the scene tests failing are real fails. → keep to review
-
#5391 [SofaDistanceGrid] Apply new factory registration mechanism
The embeded namespace
sofadistancegrid::cudashould be the right one. It shows that it is part of the CUDA extension of SOFADistanceGrid. And still some comments to be answered. → keep to review - #5383 [MechanicalLoad] Factorize damping forcefields Alex is doubtful that the code could be factoried because of the use of accessors, and the need to be compatible with both Vec and Rigid types. → keep to review
- #5375 [Mass,MechanicalLoad] Use enumeration to clarify the code Take suggestion into account → wip
- #494 [doc] Fix examples given in the First Steps Need to be tested. Might be good to use ImGui instead of QGLViewer → keep to review
- #180 Add more regression tests Wait for PR on Regression → keep to review
- #179 [Scenes] Fix runtime warnings, and consistent behavior between python and xml Investigate if, which, and when the component are used for mass contribution. This could be done using tool to export mass matrix for instance. → keep to review
-
#178 [IRC] Add checks/warnings at init stage
Add warning when size of MState and Topology is incompatible with the maximum size of deployed beam because it will break at one point.
We will need to rethink this mechanism to maybe enable the dynamic modification of both the topology and the mstate to avoid having to set this beforehand.
→ ready -
#177 [Wire Shape] Fix the confusion between the nbEdgesCollision and the number of mechanical Beams
Remove correlation between topologies for collision model, visual model and mechanical model. Now you can have different number of edges for collision, mechanical computation. Erik wants to have time to review it and make sure this is mechanically possible.
(Out of scope: Investigate why unit tests are failling even in master). → keep to review -
#176 [InterventionalRadiologyController] Remove remnant of the "broken" feature
Remove old artifact of the feature 'Broken in two' that allowed to not simulate a part of the beam. It was not working anyway.
→ ready - #175 [All] Clean types Type cleaning, use const, remove ref when possible and use SOFA types. → ready
- #79 Make the scene test name to include extension Use it in a SOFA PR with a ci-depends-on before merge → keep it to review
- #5417 [examples] remove non-existing plugin
- #5416 [examples] Remove scenes with SleepController
- #5418 [Examples] Remove examples using Monitor
- #5397 [SofaMatrix] Apply new factory registration mechanism
- #5403 [SofaCarving] Apply new factory registration mechanism
- #5395 [SofaEulerianFluid] Apply new factory registration mechanism
- #5387 [Geomagic] Apply new factory registration mechanism
- #5382 [ODESolver.Backward] Refactor StaticSolver to use NewtonRaphsonSolver
- #5313 [CMake] Remove cmake ignore path install prefix
- #186 Fix markdown of lists
- #185 Finalize doc gen for plugin
- #184 Fix description
- #183 Fix enumerations
- #182 Change the note for plugins and fix an image
- #179 Add headers for auto generated plugin list
- #181 25 04 fix doc build
- #180 Allow workflow dispatch to specify a script branch to run
- #178 Add scripts for auto generation
- #177 Introduction of BDFOdeSolver
- #176 Introduction of NewtonRaphsonSolver
- 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
- 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!
- #5383 [MechanicalLoad] Factorize damping forcefields Wait for the CI → keep to review
- #5382 [ODESolver.Backward] Refactor StaticSolver to use NewtonRaphsonSolver The polar decomposition does not seem to converge using 100 Newton iterations, which is highly suspicious (see #5400). Explicit link added. → ready
- #5375 [Mass,MechanicalLoad] Use enumeration to clarify the code → keep to review
- #5313 [CMake] Remove cmake ignore path install prefix We need to add information in the documentation on good practice on how to set the install dir (or where not to put it, aka the build dir...) → ready
- #5096 [runSofa,Helper] Changes screenshots and config directories location Just wait for the CI → ready
- #179 Add headers for auto generated plugin list → keep to review
- #178 Add scripts for auto generation. → keep to review
- #177 Introduction of BDFOdeSolver → ready
- #176 Introduction of NewtonRaphsonSolver → ready
- #14 Apply new factory registration mechanism CI needs to be restarted → keep to review
- #5385 [Type] Template deduction guide for fixed_array and Vec
- #5401 [CI] Nix: Fix CI
- #5356 [All] Move fetched guis folders into dedicated folder
- 📢 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.
- 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
- #5397 [SofaMatrix] Apply new factory registration mechanism Paul will change the namespaces in this pr then ready → keep to review
- #5395 [SofaEulerianFluid] Apply new factory registration mechanism Paul will change the namespaces in this pr then ready → keep to review
- #5394 [ArticulatedSystemPlugin] Apply new factory registration mechanism Paul will change the namespaces in this pr then ready → keep to review
- #5392 [SofaImplicitField] Apply new factory registration mechanism Paul will change the namespaces in this pr then ready → keep to review
- #5391 [SofaDistanceGrid] Apply new factory registration mechanism Paul will change the namespaces in this pr then ready → keep to review
- #5390 [Presets] Activate Cosserat and clean postinstall-fixup Scene test are failing → wip
- #5387 [Geomagic] Apply new factory registration mechanism Paul will change the namespaces in this pr then ready → keep to review
- #5385 [Type] Template deduction guide for fixed_array and Vec → ready
- #5383 [MechanicalLoad] Factorize damping forcefields Tests are failing → wip
-
#5382 [ODESolver.Backward] Refactor StaticSolver to use NewtonRaphsonSolver
Static solver is now using the recently-introduced NewtonRaphson to avoid code duplication.
correction_normis not computed anymore, the associated has been removed. Timers have been updated too. A compatiblity layer has also been added. Expliciting the Newton-Raphson link should be added. The polar decomposition does not seem to converge using 100 Newton iterations, which is highly suspicious. → wip - #5375 [Mass,MechanicalLoad] Use enumeration to clarify the code Need more feedback → keep to review
- #5372 [Lagrangian] Remove multigrid support in LCPConstraintSolver Need to fix tests failing → back to wip
- #5356 [All] Move fetched guis folders into dedicated folder Wait for Fred's feedback, else seems fine. → keep to review
- #5313 [CMake] Remove cmake ignore path install prefix Paul tested whether having the install within the build breaks and it does with gtest. But no problem when the install dir is defined outside the build directory. So this is ok → ready
- #5096 [runSofa,Helper] Changes screenshots and config directories location Pending feedback from authors/contributors → keep to review
- #1618 [plugins] Beam plastic This can now be closed the plugin repository has been added, see BeamPlastic plugin. → close
- #177 Introduction of BDFOdeSolver → ready
- #176 Introduction of NewtonRaphsonSolver An example snipped will be added. → keep to review then ready
- #14 Apply new factory registration mechanism Paul will change the namespaces in this pr then ready → keep to review
- #11 Apply new factory registration mechanism Paul will change the namespaces in this pr then ready → keep to review
- #5388 [Defaulttype, Helper] Return empty string instead of zero
- #5386 [Engine] Remove docstring for GenerateCylinder
- #5376 [ODESolver.Backward] BDFOdeSolver: Fix assertions
- #5332 [CMake] Fetch in build dir instead of source to avoid lots of cmake errors
- #5373 [examples] Minor update default scene
- #5374 [Mapping] Remove warning in DistanceToPlaneMapping_test.cpp
- #65 Modify regression settings for fetch in build
- #64 Modify ci-depends-on for fetching in build
- #63 Modify scene tests for fetching in build
- 📢 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.
- 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
- #5376 [ODESolver.Backward] BDFOdeSolver: Fix assertions Alex is going to take a look at it → keep to review
- #5375 [Mass,MechanicalLoad] Use enumeration to clarify the code Fix the tests → wip
- #5374 [Mapping] Remove warning in DistanceToPlaneMapping_test.cpp → ready
- #5373 [examples] Minor update default scene To be tested before merge → keep to review
-
#5372 [Lagrangian] Remove multigrid support in LCPConstraintSolver
Request of a compatibility layer for the
getConstraintInfofunction. Tests failing to be fixed too. → wip - #5332 [CMake] Fetch in build dir instead of source to avoid lots of cmake errors Merge CI - PR and ci-depends-on in the right order. Update the CMakeLists in plugins so that it lists the fetchable plugins without empty folders. List in the documentation the supported plugins. Then ready → ready
- #5313 [CMake] Remove cmake ignore path install prefix Paul did check this contribution. A risk is that a cmake after installation might point to the install dir instead of the build dir. Try an install out from SOFA, comment and merge → keep to review
- #5096 [runSofa,Helper] Changes screenshots and config directories location Failure may come from the fact that Ubuntu is using docker. To be investigated. Tests should also not fail on local computer. Scene tests have still to be fixed. → keep to review
- #1618 [plugins] Beam plastic → see technical discussions
- #7 Add bindings for SofaPython3 → ready
- #5362 [Examples] Add an option to (not) build SimpleAPI examples
- #5369 [All] Fix warnings
- #5361 [CMake] Remove references to deleted projects/option
- #5360 [all] Lifecycle : Disable SOFA_ATTRIBUTE_DEPRECATED
- #5336 [GUI.Common] Clean and fix MouseOperation
- #5367 [examples] Fix wrong topology Data arrays on the surface mesh in HexahedralFEMForceField.scn
- #5363 [CMake] Fix install process with default option SOFA_INSTALL_RESOURCES_FILES
- #5359 [all] Lifecycle : Remove SOFA_ATTRIBUTE_DISABLED, forgotten files
- #5349 [CMake] Remove compatibility layer in macro
- #5341 [All] Spring cleaning 5: reduce size of ressources
- #5339 [Tutorials] Spring cleaning 3: remove old c++ tutorials
- #5325 [All] Spring cleaning 1: clean main & tools directories
- #5324 [examples] Propose a new default scene
- #5173 [ODESolver] Introduction of generic Newton-Raphson algorithm
- #5347 [all] Lifecycle : Remove SOFA_ATTRIBUTE_DEPRECATED (part 2)
- #174 Fix warnings
- #173 Fix compilation BeamInterpolation_test.cpp
- #172 Remove SteerableCatheter
- #169 [BeamInterpolation] Generalize parameters per edge
- Registration to the 19th SOFA Technical Committee is open (and still free): online registration
- 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)
- #5355 [Type] Fix cmake warning for boost Fix windows and fedora and update the minimal versio of Boost required. → WIP
- #5349 [CMake] Remove compatibility layer in macro This has been introduced 5 years ago. It can be removed now. → ready
- #5341 [All] Spring cleaning 5: reduce size of ressources → ready
- #5339 [Tutorials] Spring cleaning 3: remove old c++ tutorials It would be great to have all the python bindings using the simplAPI. This would ensure that the pythons bindings are mirrored in SimpleAPI. Currently the GUIs are dealt with python but not SimpleAPI, but it could be shared. It might exists some automation tool that synchronize bindings ? Add an issue on enriching SimpleAPI to discuss it at the next STC. ConstraintAttachButtonSetting was not being added. This might be tranformed as an issue. → ready
- #5336 [GUI.Common] Clean and fix MouseOperation investigate the compilation error → keep to review
- #5325 [All] Spring cleaning 1: clean main & tools directories → ready
- #5324 [examples] Propose a new default scene → ready
- #5313 [CMake] Remove cmake ignore path install prefix Try it with the install folder in build and try to put the install folder outside the build folder. → Then ready
- #489 [SofaGui] Remove Sofa.Gui.Qt references Update the scenes (import SofaQt) → then ready
- #488 [Test] Fix test_dump_json test → already merged
- #172 Remove SteerableCatheter Not working anymore, very old. → ready
- #169 [BeamInterpolation] Generalize parameters per edge → ready
- #60 Update macos install script used during macos builder update → ready
- #57 Configure plugin Cosserat Use preset in the PR on SOFA → closed
- #7 Add bindings for SofaPython3 Wait for SofaPython3/pull/489 to be ready, then merge both in the same time → ready
- #5338 [GUI.Common] Change inheritance of ConstraintAttachOperation
- #5334 [IO.Mesh.BlenderExporter] Inherit from BaseSimulationExporter
- #5353 [examples] Fix SofaScene not launched during scene tests
- #5346 [all] Lifecycle : Remove SOFA_ATTRIBUTE_DEPRECATED (part 1)
- #5315 [Lagrangian] Add loading capability for bilateral constraints
- #5340 [projects] Spring cleaning 4: Remove forgotten projects
- #5335 [scripts] Spring cleaning 2: Move old scripts in deprecated folder
- #5352 [LinearSystem] Fix mass access on macos
- #5321 [IO.Mesh.VTKExporter] Inherit from BaseSimulationExporter
- #5342 [Type] Add tests on Vec default constructor
- #5317 [Core] SingleStateAccessor: add explicit instantiations
- #5344 [tests] Prevent test leaks when loading plugins
- #6 Remove unused 'config/object' mechanism
- #5 Auto activate NODEGRAPH if NodeEditor is found
- #2 Remove GUI from target name
- Registration to the 19th SOFA Technical Committee is open (and still free): online registration
- Sprint SED, two topics were suggested
- propagate the template-method pattern
- dashboard of plugins
- Demo of haptics from Haply Robotics
- 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
- #5335 [scripts] Spring cleaning 2: Move old scripts in deprecated folder Might be great to also execute the script for dox comments on the CI. → keep to review
- #5334 [IO.Mesh.BlenderExporter] Inherit from BaseSimulationExporter Check if the exported file is readable (not mandatory for the PR to pass). Same comment on reinit than #5321 → keep to review
- #5332 [CMake] Fetch in build dir instead of source to avoid lots of cmake errors → see technical discussions
- #5325 [All] Spring cleaning 1: clean main & tools directories sofa-launcher should have its own repository. astyle could also disappear but clang style should be used on the CI → keep to review
- #5324 [examples] Propose a new default scene → see technical discussions
- #5321 [IO.Mesh.VTKExporter] Inherit from BaseSimulationExporter Wait for last modification then ready → keep to review
- #5317 [Core] SingleStateAccessor: add explicit instantiations → ready
-
#5315 [Lagrangian] Add loading capability for bilateral constraints
Change WriteOnly into setValue().
Unify the callback api : add a method
addDirectCallbackin another PR. → keep to review - #5313 [CMake] Remove cmake ignore path install prefix Make sure all supported plugin doesn't override the install path. Test an installation process. If fine, then ready. (+add in documentation that a good dev process is to put the install dir outside of build directory) → keep to review
- #5173 [ODESolver] Introduction of generic Newton-Raphson algorithm Introduce a standard way of defining ODE solvers by only passing recurrence coefficient. One familly type of LinearMultistepMethods is already implemented. But it is easy to add more. Last reviews this week, then ready. Think a an example scene where N-R method is required for good behavior (crushing something ?) → keep to review
- #1618 [plugins] Beam plastic A repository has been created here, but we are waiting for UCA feedback → keep to review
- #169 [BeamInterpolation] Generalize parameters per edge Change occurs on a component not used by InfinyTech3D. Tests have been fixed but constant variables should be constexpr → keep to review
- #173 [Linux] installation of GUIs Take comment into account → keep to review
- #6 Remove unused 'config/object' mechanism Remove unused symbol → keep to review
- #5 Auto activate NODEGRAPH if NodeEditor is found → ready
- #5348 [Topology] Fix warning in TriangleSubdividers
- #5318 [Haptics.tests] Fix LCPForceFeedback blinking tests on ci
- #5297 [Topology.container.dynamic] Add method computeTriangleBarycentricCoordinates and depreciate old versions
- #5300 [Topology.container.dynamic] Add new method computeIncisionPath using new PointModifier class
- #5337 [examples] Remove bad XML artefact
- #5327 [all] Lifecycle : remove SOFA_HEADER_DISABLED
- #5331 [GitHub] Change targeted Discord room
- #5328 [Engine] Lifecycle : remove RemovedData
- #5326 [Core] Fix warning in LinearSolver.h
- #5309 [all] Lifecycle : remove SOFA_ATTRIBUTE_DISABLED
- #5333 [all] Copy Data description as comments
- #5323 [Nix] Fix Nix CI
- #5322 [Mapping] Fix assertion error in debug
- #5319 [examples] Fix F letter collision in SofaScene
- #5296 [Topology.container] Remove TopologyAlgorithms compatibility headers and some disabled methods
- #5260 [Topology.dynamic] Add new method computeSegmentTriangulationIntersections in TriangleSetGeometryAlgorithm to replace old versions
- #166 GUI passes mouse settings to pick handler
- #165 Introduce mouse manager
- #164 EnterReturnsTrue is not supported by imgui for floats
- 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
- 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
- #5317 [Core] SingleStateAccessor: add explicit instantiations This pr fixes stange compilation errors on MSVC whren inheriting from SingleStateAccessor. In the mean time, the compilation is speed up by adding explicit instantiation. → ready
- #5315 [Lagrangian] Add loading capability for bilateral constraints Add a callback to check value + update the decription → wip
- #5313 [CMake] Remove cmake ignore path install prefix We need the CI feedback (waiting for Windows feedback). Let's wait for it and for Olivier's feedback. → keep to review
- #5309 [all] Remove SOFA_ATTRIBUTE_DISABLED Remove the unused part of the code. → keep to review
- #5297 [Topology.container.dynamic] Add method computeTriangleBarycentricCoordinates and depreciate old versions Use getCPos() instead → keep to review then ready
- #5296 [Topology.container] Remove TopologyAlgorithms compatibility headers and some disabled methods → ready
- #5260 [Topology.dynamic] Add new method computeSegmentTriangulationIntersections in TriangleSetGeometryAlgorithm to replace old versions → ready
-
#5173 [ODESolver] Introduction of generic Newton-Raphson algorithm
Review can now be performed. Three new components are introduced: NewtonRaphsonSolver, which can be used within the
StaticOdeSolveror theBDFOdeSolver. The newStaticSolverwill be added subsequently in another PR where firstly all scenes using StaticSolver should crash then the compatibility layer would be added → keep to review - #1618 [plugins] Beam plastic → see technical discussions
- #5293 [Mapping] Add distance to plane mapping
- #5311 [CMake] Fix fetching name for Sofa.METIS
- #5272 [CMake]Modify presets to generalize its use
- #5299 [Lagrangian] Add regularization term in lagrangian constraints
- #5295 [DistanceGrid.CUDA] Fix compilation
- #5306 [all] Set of fixes before lifecycle
- #5294 [CMake] Update auto generated name for fetching
- 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
- 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
- #5299 [Lagrangian] Add regularization term in lagrangian constraints Two methods are proposed : global regularization on the entire matrix W or per object (on constraint correction). → ready
- #5297 [Topology.container.dynamic] Add method computeTriangleBarycentricCoordinates and depreciate old versions Wait for #5245 to avoid merge conflict. → keep to review
- #5296 [Topology.container] Remove TopologyAlgorithms compatibility headers and some disabled methods Wait for #5245 to avoid merge conflict. → keep to review
- #5295 [DistanceGrid.CUDA] Fix compilation Without Qt, the headers are not available. → ready
- #5294 [CMake] Update auto generated name for fetching → ready
- #5293 [Mapping] Add distance to plane mapping The value to compare with is a threshold and not really an epsilon. Be careful of the floating type used : generalize the use of SReal. → keep to review
- #5272 [CMake] Modify presets to generalize its use Keep the QT_ENABLE_QDOCBROWSER + QT_ENABLE_NODEGRAPH option with SoftRobots as long as the Qt GUI is availalbe → minor change then ready
- #171 Remove unavailable/unusable components → ready
-
#170 [Tentative] Uniformize namespace
Should the plugin namespace contains the prefix
sofa::beamadapteror justbeamadapter. It makes more sense to have simplybeamadapter. For now same namespace for every component, maybe add sub-namespace for some components. To be tested. → keep to review - #169 [BeamInterpolation] Generalize parameters per edge Tests are failing + wait for Erik feedback → keep to review
- #2 Remove GUI from target name Wait for test by hugo → keep to review
- #5259 [Geometry] Fix edge-edge intersection method avoiding decimal precision error
- #5303 [GUI.performer] Fix compilation of TopologicalChangeManager due to ambigous name
- #5298 [MechanicalLoad] Small update on SphereFF drawing to follow wireframe
- #5284 [Core] Add 2 new categories (Exporter and OrderingMethod)
- #5280 [Visual] Replace string by SelectableItem in VisualGrid
- #5277 [Helper] Readability in ComponentChange
- #5271 [Core] ObjectFactory: remove message when a plugin has already registered its components
- #5250 [examples] Add new example showcasing how to attach two bodies
- 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
-
#5245 [all] Lifecycle in preparation of v25.06 release
- possibly coming from an issue with vec_id changes
-
#1618 Plastic beams
- old PR from Camille Krewcun
- updated and compiling again
- we could pluginize it
- firstly ask Camille about what he wants / is allowed to do with the PR
- #5293 [Mapping] Add distance to plane mapping Investigation on mappings to compute a plane mapping. Can be used to model contact but not with a Coulomb friction law. Use ::spatial_dimension instead for the plane data and use constexpr CPos to access positional data indepently on the DataTypes. PenalityContactForceField could be investigated in the scene → keep to review
- #5284 [Core] Add 2 new categories (Exporter and OrderingMethod) Mechanism of arbitrary filtering on super class. Else the PR is fine → ready
- #5280 [Visual] Replace string by SelectableItem in VisualGrid → ready
- #5277 [Helper] Readability in ComponentChange → ready
- #5272 [CMake] Modify presets to generalize its use → ready
- #5271 [Core] ObjectFactory: remove message when a plugin has already registered its components Comment the warning and add a comment explaining for posterity → ready
- #5259 [Geometry] Fix edge-edge intersection method avoiding decimal precision error Intersection with edge test failing on Ubuntu → keep to review
- #5250 [examples] Add new example showcasing how to attach two bodies → ready
- #5245 [all] Lifecycle in preparation of v25.06 release → see technical discussions
- #169 [BeamInterpolation] Generalize parameters per edge Tests on CI are failing and Erik did not have time to review → keep to review
- #151 Imgui: Support (macOS) HiDPI font scaling Compatibility with retina/non-retina screens. Tested on MacOS only. Might not be relevant on other OS. → test PR on Ubuntu/Win beforehands → will be merged within the day
- #2 Remove GUI from target name → keep to review
- #22 Minor clean ICPRegistrationFF → keep to review
- #5287 [github] Use token for performance regression launching
- #5282 [ODESolver] Update data comment in EulerImplicit
- #5286 [github] Add workflow for performance testing launch
- #5279 [IO.Mesh] Fix missing
iomanipheader in tests - #5263 [ODESolver] Add option to compute residual at the end of the solving
- #5264 [Helper] Deprecate findOrCreateAValidPath and introduce clearer functions
- #5269 [All] Fix compilation with FLOATING_POINT_TYPE=float
- #5241 [SceneUtility] Remove *AliasComponent
- #484 [doc] Update .readthedocs.yml
- #482 [doc] Towards automatic documentation generation for SofaPython3
- #483 [doc] Update Python version 3.10 -> 3.12
- #481 [doc] Update conf.py
- #154 use ensureFolderForFileExists instead
- #157 Color picker
- #160 Bump version of simpleini
- #159 Fix call to EndChild
- #158 Bump imgui version
- #156 Set dirty outputs when changing a SelectableItem
- #155 Open component window with auto-resize according to its content
- Recruitment Gaetan Desrue (Epione) to work on electrophysiology simulations for 6 months
- Themis just arrived at InfinyTech3D as software engineer on SOFA
-
#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)
- #5272 [CMake] Modify presets to generalize its use → see technical discussions
- #5270 [Nix] Fix Nix CI Not actually fixing it, a CMake error is still there with SofaGLFW → wip
- #5269 [All] Fix compilation with FLOATING_POINT_TYPE=float → ready
- #5264 [Helper] Deprecate findOrCreateAValidPath and introduce clearer functions → ready
- #5263 [ODESolver] Add option to compute residual at the end of the solving → ready
- #5259 [Geometry] Fix edge-edge intersection method avoiding decimal precission error Erik will take a look at it → keep to review
- #5250 [examples] Add new example showcasing how to attach two bodies Why not use LinearVelocityProjectiveConstraint to be able to use its feature 'continueAfterEnd' → keep to review
- #5246 [Tests] Factorize code and add new tests on adding/removing triangles in TriangleSetTopology_test → closed
- #5245 [all] Lifecycle in preparation of v25.06 release Tests are failing (due to some last errors) and the compilation of the plugin SofaCUDA needs to be fixed too → keep to review (quick merge will be needed as soon as it is ready)
- #5238 [Core] Warn when input/output of mapping is deduced automatically Scenes are still failing → wip
- #483 [doc] Update Python version 3.10 -> 3.12 Updating the version of SOFA suggested for each OS. → ready
- #482 [doc] Towards automatic documentation generation for SofaPython3 Actual automation of the doc generation → keep to review
- #481 [doc] Update conf.py Add right link to github repository → ready
- #169 [BeamInterpolation] Generalizes parameters per egde To be properly reviewed (tests are not passing) → keep to review
- #168 Fix compilation with FLOATING_POINT_TYPE=float → ready
- #151 Imgui: Support (macOS) HiDPI font scaling Compatibility with retina/non-retina screens. Tested on MacOS only. Might not be relevant on other OS. → test PR on Ubuntu/Win beforehand
- #3 Add Action (Build & Install) CI which is Ubuntu only. A later PR could add MacOS and Windows using the sofa-setup-action → ready
-
#2 Remove GUI from target name
Make sure that all CMake variable are properly updated
SOFA_GUI_QT_XXXbecomesSOFA_QT_XXX→ keep to review
-
#22 Minor clean ICPRegistrationFF
Replace the error message by
msg_info()→ keep to review
- #5276 [SceneChecking] Check if a Node has an empty name
- #5258 [visual] Adds features to LineAxis and DrawTools
- #5176 [GUI] Remove Qt and make SofaImGUI as default viewer
- #5261 [Contact] Clean FrictionContact
- #153 Use external dependencies
- #147 Fix compilation further to lifecycle v25.06
- #149 Set priority to force Imgui as the default GUI
- 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
⚠️ #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)
- too many different definitions
- #5269 [All] Fix compilation with FLOATING_POINT_TYPE=float → wait for CI then ready
- #5264 [Helper] Fix findOrCreateAValidPath when given a file path The .h could be cleaned to have the same declaration/definition → keep to review
-
#5263 [ODESolver] Add option to compute residual at the end of the solving
It seems that the call to
computeForce()could be avoided for the seek of performance → keep to review - #5261 [Contact] Clean FrictionContact → ready and merged
- #5259 [Geometry] Fix edge-edge intersection method avoiding decimal precision error → ready
- #5258 [visual] Adds features to LineAxis and DrawTools → ready
- #5252 [Pixi][CI] Add pixi support A clear configuration file will be proposed (possibly as Presets, see technical discussions). Once it will be done, this PR could be updated accordingly → wip
- #5250 [examples] Add new example showcasing how to attach two bodies UncoupledConstraintCorrection to be added in the RigidBody → wip
- #5246 [Tests] Factorize code and add new tests on adding/removing triangles in TriangleSetTopology_test The PR #5127 has been merged before this one while the #5127 was based on this PR. The fix of conflict should be done by epernod to avoid errors. Our apologies for the early merge! → keep to review
- #5245 [all] Lifecycle in preparation of v25.06 release Still plugins to be fixed and fix conflicts → keep to review (to have the CI feedback)
- #5241 [SceneUtility] Remove *AliasComponent Scene example using the C++ class should be removed, then check CI → back to wip
- #5238 [Core] Warn when input/output of mapping is deduced automatically → wip
- #5176 [GUI] Remove Qt and make SofaImGUI as default viewer Changes in the PR on Sofa.Qt have to be performed (out of the PR scope) → ready (and merged)
- #5106 [Mapping] Implement tetrahedral-topological changes in SubsetTopologicalMapping Need to be fixed or at least rediscussed with epernod → keep to review
- #168 Update 45_Lifecycle_mechanisms.md Since DeprecatedAndRemoved has no constructor (see code config.h), we need a refactoring to distinguish deprecation/removal of data for users and in the C++ code (symbols) → ready
- #149 Set priotity to force Imgui as the default GUI The priority on Qt GUI should be set to 0 → ready
- #147 Fix compilation further to lifecycle v25.06 The maybe_unsused will be removed, then ready → keep to review
- #5253 [StateContainer] Allow coord difference in vOp for rigids
- #5188 [Topology.Container] Add new method computeSegmentTriangleIntersectionInPlane in TriangleSetGeometryAlgorithm
- #141 Set compilation of plugins by default
- #150 (Again) Update macos image version to macos14 (arm64 by default) #145
- #148 Don't use range
- #143 Feature: Change background (color, texture)
- 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
- 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
- The Animation loop could inspect the mstates :
- #5259 [Geometry] Fix edge-edge intersection method avoiding decimal precission error → keep to review
- #5258 [visual] Adds features to LineAxis and DrawTools Take comment into account. → wip
- #5253 [StateContainer] Allow coord difference in vOp for rigids Issue 5256 has been opened because this difference doesn't exist in Cuda -> need to add the method for it to work in another pr. → ready
- #5252 [Pixi][CI] Add pixi support Need to change configurations to use the ones from the Conda CI to replace this. We will have a meeting on this. → wip
- #5250 [examples] Add new example showcasing how to attach two bodies Simplify scene. Use real dynamics for rigid body. Add a post on github discussion to present it. → wip
- #5246 [Tests] Factorize code and add new tests on adding/removing triangles in TriangleSetTopology_test Need to add an issue regarding comment → ready
- #5245 [all] Lifecycle in preparation of v25.06 release See lifecycle discussion on renamed data. Update maniforld topology → wip
- #5241 [SceneUtility] Remove *AliasComponent → wip
- #5238 [Core] Warn when input/output of mapping is deduced automatically Segfaults appear -> need to investigate → wip
- #5188 [Topology.Container] Add new method computeSegmentTriangleIntersectionInPlane in TriangleSetGeometryAlgorithm → ready
- #5176 [GUI] Remove Qt and make SofaImGUI as default viewer Currently the default GUI is SofaGLFW because it appears before SofaImGUI in order, this should be modified. → keep to review
- #5106 [Mapping] Implement tetrahedral-topological changes in SubsetTopologicalMapping This component is somewhat broken and will require a lot of refactoring to make it work properly -> open issue. Anyway this PR can be merged if it works for him, because in any cases we need to fix this component. → keep to review
- #479 Fix bindings cmake config for missing simpleApi Might be good to automatise the find_package part of the cmake.config.in files regarding dependencies of the lib → ready
- #465 Nix: initial packaging & flake → ready
- #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
- #147 Fix compilation further to lifecycle v25.06 → ready
- #141 Set compilation of plugins by default Might be good in near future to split this repo → wait for 5176
- #5237 [StateContainer] Extend the possible vector operations in vOp
- #5212 [Simulation] Trigger warning when Node already contains component
- #5166 [SofaCUDA] Print CUDA standard at init of the module
- #5249 Bump version of Tracy from v0.9.1 to v0.11.1
- #5239 [Core] Remove some static functions create
- #5233 [StateContainer] Extensive tests of MechanicalObject::vOp
- #5231 [Playback] Remove deprecated macro
- #5230 [CMake] Add possibility to remove auto installing of resource files
- 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
- 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
- #5246 [Tests] Factorize code and add new tests on adding/removing triangles in TriangleSetTopology_test Looks good, not 7 days old → review then ready
- #5241 [SceneUtility] Remove *AliasComponent Make it Removed in ComponentChange → wip
- #5239 [Core] Remove some static functions create → ready
- #5238 [Core] Warn when input/output of mapping is deduced automatically Investigate the change of behavior in the scenes → wip
- #5237 [StateContainer] Extend the possible vector operations in vOp API changes needed for operations mixing Coord and Deriv (ex: \Delta v = x(t+dt)-x(t)). If the operation is now supported by the type, an error messages would be emitted → wait for #5233, then ready
- #5233 [StateContainer] Extensive tests of MechanicalObject::vOp → ready
- #5231 [Playback] Remove deprecated macro → ready
- #5230 [CMake] Add possibility to remove auto installing of ressource files → ready
- #5223 [Core] No longer support links to Node in Links → postponed
- #5222 [tools] generate stubfiles during packaging Add a script that is launched right after CPack copied the install files and before the package is built. At stubfile on Windows with ZIP, the generation fails. Possibly linked to: issues with path and slash, with a library which fails at loading due to failing link. → wip
- #5212 [Simulation] Trigger warning when Node already contains component → wait for CI then ready
- #5195 [All] Refactor create/cancreate in ObjectFactory Take comments into account (add a compatibility layer) → wip
- #5188 [Topology.Container] Add new method computeSegmentTriangleIntersectionInPlane in TriangleSetGeometryAlgorithm CI is failing on the added test → wip
- #5176 [GUI] Remove Qt and make SofaImGUI as default viewer Make sure to add the reference to the new Sofa.Qt repository + make a PR in CI to activate this plugin in PR. → keep to review
- #5166 [SofaCUDA] Print CUDA standard at init of the module → ready
- #480 Update macos builder for arm support → ready
- #461 Proposal for code helper to fix the binding docstring to make code documentation and completion happy → wip
- #166 Update macos builder for arm support → ready
- #164 [WIP/POC] Use new regression Wait for #69 of Regression → wip
- #167 Move static solver from forward to backward Check website to make sure it looks good → ready
- #5183 [examples] Fix warnings of all examples
- #5242 [ODESolver] Remove repeated class name in log messages
- #5234 [SofaMatrix] Put Qt dependent code into an extension
- #5191 [Base] Fix a minor bug related to the printing of info message while parsing & minor upgrade to c++11
- #5240 [plugins] Change remote of ConstraintGeomtery and CollisionAlgorithm
- #5224 [GL] OglSceneFrame: fix background
- #5215 [all] Replace find by contains
- #5169 [Backward] Fix trapezoidal rule in EulerImplicitSolver
- #5211 [All] Remove last deprecated VecId and use constexpr vecids
- #4747 [Topology.Container.Dynamic] Add class TriangleSubdividers to store methods to subdivide a triangle in differents configurations
- #5177 [examples] Add proposition for a new default scene
- #5162 [tests] Template method design pattern from BaseTest in derived classes
- #145 Update macos image version to macos14 (arm64 by default)
- #144 Allow repeating steps while the mouse button is pressed
- SOFA v24.12 is now out, give it a try!
-
Agenda 2025 is available too!
- Next STC#19 will take place in Strasbourg on June 11-13
- We did move from Twitter to Reddit, discover our new Reddit account!
-
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_
- #5234 [SofaMatrix] Put Qt dependent code into an extension Wait for CI → then ready
- #5224 [GL] OglSceneFrame: fix background → ready
-
#5223 [Core] No longer support links to Node in Links
958 scenes are failing! Avoiding impliciting a link to a component, this PR aims at linking components between them but not nodes.
Goal is to force explicit link to the mstate. Warning modifying can create only might not be sufficient for template inference because one of the mastate could be not existing.
Add a new PR just for mappings displaying warnings for Mappings stating the mstate found and that it should be explicitly linked.
→ postponed - #5221 [all] use std::views::keys/values Compilation error on Windows to fix → wip
- #5215 [all] Replace find by contains → ready
- #5212 [Simulation] Trigger error when Node already contains component Fix unit tests → wip
- #5211 [All] Remove last deprecated VecId and use constexpr vecids → ready
- #5195 [All] Refactor create/cancreate in ObjectFactory PR investigating the locations of usage create/cancreate
- #5191 [Base] Fix a minor bug related to the printing of info message while parsing & minor upgrade to c++11 → ready
- #5188 [Topology.Container] Add new method computeSegmentTriangleIntersectionInPlane in TriangleSetGeometryAlgorithm Add unit test → wip
- #5183 [examples] Fix warnings of all examples → ready
- #5177 [examples] Add proposition for a new default scene Simple default scene: LagrangianBeamFall (with a nice rendering). This one is now ready, just add a regression reference → ready
- #5176 [GUI] Remove Qt and make SofaImGUI as default viewer Wait for #5234. Make PR on ci to compile it for each PR and release → then ready
- #5173 [ODESolver] Introduction of generic Newton-Raphson algorithm Struggling in the manipulation of Coord with Deriv types for Rigids → still draft
- #5169 [Backward] Fix trapezoidal rule in EulerImplicitSolver Merge regression first → ready
- #5162 [tests] Template method design pattern from BaseTest in derived classes → ready
- #4747 [Topology.Container.Dynamic] Add class TriangleSubdividers to store methods to subdivide a triangle in differents configurations → ready
- #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
- #144 Allow repeating steps while the mouse button is pressed → ready
- #143 Feature: Change background (color, texture) → ready
- #129 [GUI] Mouse Manager window → This pr introduced mainly GUI elements. The interaction is still broken and doesn't seem to work for every scene. Will need to work on it if we want to have GLFW as new GUI.
- #5218 [Project] Start dev phase v25.06
- #5168 [Helper] XCode: run in Debug (and load debug plugins)
- #5228 [Helper] WriteAccessorVector: add resize method with default filler value
- #5225 [Core] Move all LifeCycle classes in a dedicated namespace
- #5208 [Type] Support structured binding for tuple-like types
- #5200 [Type] Simplification of the Rebind trait using concepts
- #5210 [Type] Deprecate is_container trait
- #5205 [Type] Convert enable_if to concepts in fixed_array
- #5209 [Type] Convert is_fixed_array trait to concept
- #5201 [Type] Convert is_vector trait to concept
- #5199 [Type] A concept for isRigidType
- #5163 [Helper] Fix warning in SelectableItem
- #165 Add reference to RenamedData
- #164 Bump SOFA version v24.12
- #161 Add Nix in the Linux documentation
- Release v24.12 is now out (both source and binary versions)
- Agenda 2025 is available!
- 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.
- #5169 [Backward] Fix trapezoidal rule in EulerImplicitSolver Add documentation, add an example scene of the Trapezoidal rule and add regression on this new scene → wip
- #5168 [Helper] XCode: run in Debug (and load debug plugins) → ready
- #5167 [SofaCUDA] Check that the CUDA standard is the one specified in CMake → close
- #5166 [SofaCUDA] Print CUDA standard at init of the module Remove empty scene → then ready
- #5163 [Helper] Fix warning in SelectableItem → ready
-
#5162 [tests] Template method design pattern from BaseTest in derived classes
Set functions
SetUpandTearDownin BaseTest to final.TearDownunloads the plugins and then, later tests should use the loadPlugin function. → then ready - #5154 [Simulation] In-place creation of mechanical visitors This could be a future implementation but it has complexity. Let's wait for the work on mapping visiors to be done. Then we would possibly reopen it. → postponed
- #5126 [Core] Modern visitor creation New mechanical visitors will be created. For now, we can close it. → close
-
#5096 [runSofa,Helper] Changes screenshots and config directories location
Add tests to check if directories given by
getUserHomeDirectory()exists and matches the one of the CI and same for the other methods (getSofaDataDirectory,getConfigDiretoryPath,getScreenshotDiretoryPath) → wip
- #5203 [SolidMechanics] Make Data innerRadius of BeamFEMFF not required
- #5204 [Mapping] Fix draw in RigidMapping
- #5197 [tools] Update post-install fixup to fix rpath
- #5206 [Engine] Fix drawLines from ValuesFromPositions
- #5148 [Config] Introduce SOFA modules data structure
- #5198 [DefaultType] Aliases defined twice
- #5149 [Core] Isolate the intrusive reference counting
- #3368 [Topology] Add function in BaseMeshTopology to compute all topology containers
- #476 [examples] Use initRoot instead of init
- #477 [fork] Fix type forward declaration in the bindings
- #478 [SofaStubgen] Remove the generation of the parameter "hack" for first release.
- #453 Add stubgen autogeneration
- 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)
- 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{}
- all namepsaces should be prefixed with the plugin name (e.g.
- 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)
- Not a real problem because it can be deactivated with CMake
(
-
#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
-
#5177 [runSofa] Change default scene
--> modify this PR to remove the set to default and include the scene in the Demo folder.
-
#5149 [Core] Isolate the intrusive reference counting
To use boost instrusive pointer, an object must have two functions (
intrusive_ptr_add_refandintrusive_ptr_release). An additional level of inheritance has been added to clarifies what isBaseand anIntrusiveObject→ ready - #5148 [Config] Introduce SOFA modules data structure → ready
- #5106 [Mapping] Implement tetrahedral-topological changes in SubsetTopologicalMapping Take a look at the associated issue and then come back on the PR → keep to review
- #5096 [runSofa,Helper] Changes screenshots and config directories location Reviews merged. The default proposal meets an agreement. The only things to be added would be the possibility to redefine the screenshot folder through the config file and a documentation page should be added about it. This could be done in a separate PR. → keep to review
- #4991 [Collision] ADD optional viscous friction at sliding contact points This PR has to be rebased/merged with the AugmentedLagrangian method. → wip
- #4939 [Mass] Fix rigid uniform mass → wip
- #4935 [Mass] Add unit test to test rotation of inertia matrix for rigid objects → wip
- #4747 [Topology.Container.Dynamic] Add class TriangleSubdividers to store methods to subdivide a triangle in differents configurations Add comment to notify that the methods only works when the number of point is smaller than 1000000 → wip and then ready
-
#3368 [Topology] Add function in BaseMeshTopology to compute all topology containers
The computation of all topological structures is not added by default in the
init()method from MeshTopology. This could be made as an option by adding boolean Data to activate the computation in init. → wip and then ready
- #476 [examples] Use initRoot instead of init → ready
- #465 Nix: initial packaging & flake Not yet tested, to do asap. → keep to review
- #461 Proposal for code helper to fix the binding docstring to make code documentation and completion happy Wait for Damien's update → keep to reivew
- #457 Fix type forward declaration in the bindings Wait for Damien to solve conflicts + backport → ready
- #453 Add stubgen autogeneration → ready
- #162 Remove deprecated section → ready
-
#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