-
Notifications
You must be signed in to change notification settings - Fork 360
SOFA dev reports (2026)
Join us every Thursday 9:30 am CET online: www.sofa-framework.org/sofa-dev-meeting
Present: Paul Baksic, Alexandre Bilger, Lucas Burel, Erik Pernod, Frederick Roy, Themis Skamagkis, Hugo Talbot
- The v26.06 release is out! Thank's to all the contibutors - developers and users - who made this release an even better version of SOFA
- Training session planned on July 31st: available free seats
-
#6172 [Core] Start discussion about higher-order topologies
Alex worked on dynamic topologies to assess the implementation of a generic function -
#6176 [Plugin] SofaCHOLMOD: Add plugin with a supernodal Cholesky direct solver (EigenCholmodSupernodalLLT)
Performances are strongly impacted by the version of BLAS used (Linux) which is only checked at runtime. Not optimal. MacOS accelerate is using the optimized version of BLAS. Not yet tested on Windows. To be tested by core-devs. Cholmod doesn't need a reordering method but the current API forces to provide one that'll be ignored (because an internal one is already used).
-
#6191 [Plugins] Set Cosserat as supported plugin
Check that Cosserat is well taken into account, and check tests → keep to review -
#6190 [Plugins] Set SofaDistanceGrid as supported plugin
wait for tests → keep to review -
#6189 [Plugins] Set SofaImplicitFiled as supported plugin
wait for tests → keep to review -
#6187 [StateContainer] fix warnings
declaration of * hides class member
All data of the MechanicalObject could start withd_but renaming C++ data symbols can be sensitive. Instead this PR aims at local fixes and local fixes. Wait for CI to turn green. → then ready -
#6183 [Defaulttype] TypeInfoRegistry: Fix crash at exit in TypeInfoRegistry deleter
Fix bug happening when deleting the not-owned pointers. Alex might take a bit of time to review this work → keep to review -
#6181 [Config] Cmake: Skip dependency re-fetch when already at requested reference
Paul will give it a try, to make sure it works with branches → keep to review -
#6176 [Plugin] SofaCHOLMOD: Add plugin with a supernodal Cholesky direct solver (EigenCholmodSupernodalLLT)
See technical discussions → keep to review -
#6175 [Engine] Rename VolumeFromTetrahedrons to VolumeFromVolumetricElements
Rename scene + wait for CI → then ready -
#6172 [Core] Start discussion about higher-order topologies
See technical discussions → keep to review -
#6171 [SofaCUDA] ElementForceField(s): add support for Prisms and Pyramids → ready
-
#6169 [Mass] NodalMassDensity: add explicit registrations to float and double instead of SReal → ready
-
#6168 [All] Introduce Snapshot feature
CI triggered and now needs review → keep to review -
#6164 [Helper] Messaging: add msg*once macros to display a message only once per component instance → ready
-
#6145 [Framework] Cmake: set warnings-as-errors in all the Framework targets
Wait for new builders → keep to review -
#6130 [CORE] Add remove function in BaseLink
A test has been added → keep to review -
#6129 [CORE] Refactoring add functions from BaseLink and Link
Need reviews → keep to review
-
#236 [InterventionalRadiologyController] Fix various potential bugs
Wait for the previous one to be reviewed → keep to review -
#234 [InterventionalRadiologyController] Remove motionData-related code → ready
-
#228 Fix wires with 3+ sections: initTopology accumulation + chained-section rest frame → keep to review
-
#288 Fix display of SOFA version in About menu
Would be great to instead modify CMake so that the string is already rightly formed in CMake then use it as is. → ready -
#287 Support of Data edition → keep to review
- #44 Fix compilation → ready
-
#6186 [StateContainer] Avoid many calls to
getValuein MechanicalObject - #6185 [Visual] LineAxis cleaning
- #6177 [SceneChecking] Mapping checks are no longer errors
- #6180 [v26.06] Add changelog
- #6179 [CMake] Bump SOFA version v26.06.00
- #6178 [applications] Change remote version for fetched plugins
- #6174 [CI] Fix relocation in NSIS
- #625 Introduce rigidification example/tutorial
- #622 Add SOFAUnits, a utilitary lib for unit conversion
- #627 Add all py examples and data to install
- #616 Enable scene checking when launching through python
- #624 [CI] Update workflow to match branch name
- #286 [CI] Update workflow to match branch name
- #285 Give more ❤️ to the log window
- #284 Expand/collapse for element vectors
- STC#21 took place this month in Strasbourg, the associated report will be soon released online
- The consortium gave a training session at this year edition of the Summer School on soft robotics in Lille !
-
#6172 [Core] Start discussion about higher-order topologies
- This PR is a suggestion to support higher-order topologies. E.g. access topology of quadratic tetrahedron from a BaseMeshTopology. BaseMeshTopology is an abstract class and most functions are hardcoded (plus functions to access neighboring information). To do so, the PR proposes an new homogeneized API which can be extended with new element types.
- One weak point raised was that we need to explicitly add all types with their corresponding enum, duplicating static knowledge. But it is not easy to do it dynamically, especially for component interfaces.
- Compatibility with existing data structure is proposed
- Implementation should be rigorous on the const aspects.
- Missing features (neighboring elements) might not be needed for rendering and physics computation. So next steps would be to test these directly in rendering and FF. But before going to FF, engine to produce those higher order elements will be needed.
- For masses, the surrounding elements will be needed. Of course, starting simple with physics is good, but we need to keep an eye on all corner cases (all dynamical topologies will be tricky because of hardcoded topological changes methods)
- Another issue to think about in the future are mapping which are currently though of for linear elements (especially barycentric mappings).
- Contribution of CholMod linear solver might take place soon (by Fred)
- Coupling with PETSc : could be done through the Python bindings of linear solvers
-
#6172 [Core] Start discussion about higher-order topologies → see technical discussions
-
#6171 [SofaCUDA] ElementForceField(s): add support for Prisms and Pyramids → ready
-
#6169 [Mass] NodalMassDensity: add explicit registrations to float and double instead of SReal
This and the following two PR are related to the SOFACuda Work on adding GPU version of the new FEM. Some template types where missing (here float, for the next, the element type and so on...) → ready -
#6168 [All] Introduce Snapshot feature
SnapshotJSONExporterandSnapshotManagerare introduced. Review is needed. Some changes to come soon since the feature is very GUI-dependent.
Sanitizing the scene names (without spaces) should be done separately (regarding the associated regression regeneration) → keep to review -
#6164 [Helper] Messaging: add msg*once macros to display a message only once per component instance
Add one example of use in the codebase → keep to review (then ready) -
#6145 [Framework] Cmake: set warnings-as-errors in all the Framework targets
Need to wait for the CI migration. Plus the Windows compilation is already failing, we will need to fix it → keep to review -
#6130 [CORE] Add remove function in BaseLink
Lucas did not have time to work on it. This PR is linked to the snapshot feature #6168 and should be close to an end → wip -
#6129 [CORE] Refactoring add functions from BaseLink and Link
Lucas did not have time to work on it. This PR is linked to the snapshot feature #6168 and should be close to an end → wip -
#6117 [All] Introduce integration schemes
A sprint will be done by Paul but some work is needed to regenerated unit tests → wip -
#6073 [Diffusion] Explicit MechanicalObject link
It seems that Gaetan faced an issue to use a PCG preconditioner using a CG linear solver, then asked an AI to solve the issue. The original PR is about adding a link. However, all ForceFields are SingleStateAccessor, which are member calledmstateand already are a link to the mechanical state → keep to review
-
#625 Introduce rigidification example/tutorial
Further to the changes related to the mapping graph, rigidification can now be done differently, actually in a more simple way. It could even be possible in XML. Text has been AI-generated. To be carefully reviewed, and to be backported. → keep to review -
#622 Add SOFAUnits, a utilitary lib for unit conversion
Hugo will share some reviews → keep to review -
#621 add binding to convert elastic parameters to Lamé's parameters
Need an example of usage of this binding → keep to review -
#618 Replace deprecated PYBIND11_OVERLOAD* by PYBIND11_OVERRIDE*
Requires to update the minimal version of pybind, wait for the update of the CI VM → keep to review + postponed -
#616 Enable scene checking when launching through python
Wait for the CI → then ready
- #228 Fix wires with 3+ sections: initTopology accumulation + chained-section rest frame → keep to review
- #225 Complete build step for Windows → keep to review
-
#284 Expand/collapse for element vectors
Reimplement the same feature existing for vec3 → ready
- #6173 [FileSystem] Use generic_string to enfore forward slash in path
- #6167 [CI] Update pixi lockfile
- #6159 [examples] Use CCD for example scene
- #6135 [Helper] FileRepository::findFile(): use the list of paths when given a dotted path
- #6132 [FEM] Add support of pyramids elements
- STC#21 took place last week in Strasbourg, the associated report will be soon released online.
- The consortium gave a training session at this year edition of the Summer School on soft robotics in Lille !
- The release process for the 26.06 has started. The branch has been frozen on every plugin and in the main repository. The release will be generated once the binaries meet the requirements.
-
#6167 [CI] Update pixi lockfile
Failing for windows and ubuntu. We want it for the release -
#6161 [Core] Improve UX when defining template of a Component
Superseed by 6162 that is more complex -
#6162 [Core] Rework the component factory
Rewrote the factory from scratch to review the process of creating a component.- Breaking
- Cleaned the data structure defining the component (ClassEntry), replaced by a list.
- It also changes the way components are registered in the factory. The idea is, instead of having one registration per object per template, the registration is unique with multiple templates. A work has been done to make those entry independents in the factory
- Now the module has to be defined explicitly
- Name of the component no longer rely on the reflexion mechanism in SOFA
- Remove the use of static class function used in the factory (getCustomClassName, create, canCreate). Create could be completely deleted from the API.
- One effect is that we can create a component even if it doesn't match the current context (like when creating a mapping without mechanical object)
- Template deduction rule is not implemented in the factory any more, and because the create method doesn't exist anymore, we need to specify it when we register the component
- Template attribute is not "template" anymore but is set by the registering method.
- Same for the element type
- Comments on reflexion mechanism
- Reflexion is a complexe mechanism to keep but it is usefull anyway to avoid having names completely unrelated to the C++ symbol name.
- Anyway the current implementation will keep it for compatibility issue, we can later think of what we want to do with it
- Comment on template name
- Issue with the fact that now we will have multiple names for the same exact mechanism. It will be difficult to follow for the users.
- This mechanism adds a new attribute that can be modified by the dev and the issue is that if we force the dev to name it, we will end up with many different template name attribute.
- The idea of having a default name so that there is no need to redefine it each time might solve it.
- Some idea was proposed on putting the template name in the component but that would be difficult because it removes the template deduction mechanism.
- We need a 1h discussion with interested devs (especially Damien)
-
#6167 [CI] Update pixi lockfile → see technical discussion
-
#6164 [Helper] Messaging: add msg*once macros to display a message only once per component instance
This PR is to ensure that a message is only sent once (not repeated multiple times). It is using a local structure that register when it has been called. The mechanism is a bit complex but does the job properly. Let's keep it open for next week.
→ keep to review
-
#6159 [examples] Use CCD for example scene
test for warning → then ready -
#6135 [Helper] FileRepository::findFile(): use the list of paths when given a dotted path
Wait for CI to turn green → then ready
-
#622 Add SOFAUnits, a utilitary lib for unit conversion
Might be better to install it in the site-packages of SOFA (directly with the bindings). → ready
-
#285 Give more ❤️ to the log window
Log is broken for long lines. This makes the log window more usable. We would like to have it for the 26.06 release. Need to test it locally → then ready
- #6154 [SolidMechanics][FEM] Fix FastTetrahedralCorotationalForceField stiffness matrix assembly
- #6128 [FEM] TetrahedralCorotationalFEMForceField fix stream functions
- #6152 [Core] DrawMesh: add quick test for quads when drawing hexa
- #224 Fix html details using pure html code within this section
- #223 Update build doc using html within the details scope
- #222 Remove unused CMake options
SOFA dev meeting will not take place because the STC#21 was meeting on that same date in Strasbourg.
- Registration for the STC#21 is open: technical-committees > registration
- Skills for compatibility layer by Paul: https://github.com/bakpaul/AI-skills/tree/main/custom-skills/sofa-compat-layer
- existing one on CMake, now we have another skill
- not restricted to Claude
- next : Lifecycle, integration of SofaPython3, possibly merging the design pattern PR suite
- Plugin SOFA.FloatPrecision made by Alex to change the floating point precision : if you want to compile it with double precision, and with float, the script creates another dynamic library
- This investigation led to some fixes (see PR)
- Mixing precision is common to gain in performance. Instantiation of SparseLDLSolver in float which seems to slow down the simulation (possibly due to many conversions)
- Another solution would be to add some factors in the linear system so that we have a 'unit' linear system
- Write new material laws in Python is becoming easier and easier. An example here is available with St Venant Kirchhoff
- This is a part of the roadmap : providing bindings for hyperelastic materials
- Hyperelasticity seems to work as expected
- Only 3 functions to overwrite
- Next : second type of material using the SPK (Second Piola Kirchhoff). However, this will have downside : huge overhead using python conversion
- A next step woul dbe to use autodiff to help building such FF.
- #6159 [examples] Use CCD for example scene Update comments. And update regression test → Then ready
- #6154 [SolidMechanics][FEM] Fix FastTetrahedralCorotationalForceField stiffness matrix assembly Issue when loading mesh from GMesh. If you forward it to the topology container using src, or using link the result is not the same, and worse it is wrong. This is because sourcing will copy the edges but those edges are not computed the same way by the loader and the topology. Wait for the CI with all tests. → then ready
- #6153 [Spring] Enable dynamic update of spring stiffness Dynamically changing the stifness of springs was not possible until this PR. It is needed for SOFA.Diff → ready
- #6152 [Core] DrawMesh<Hexahedron>: add quick test for quads when drawing hexa This doesn't solve everything, it prevents crash but some topology will still not be drawn. We might fix the topology to compute those sub elements each time. → ready
- #6150 [Core] Move SceneCheckerVisitor out of the SceneChecking project into the core Wait for the CI. Then fix/merge the python one. → then ready
- #6146 [Simulation.Core] Fix BoundingBox initialization and updates UPdates and initilization where broken because of a bug in the visitors. It could be increased but never shrank because it wasn't set to zero properly. → ready
- #6145 [Framework] Cmake: set warnings-as-errors in all the Framework targets Wait for the update of builder to merge this PR. Make another PR to an option to activate the warning as error so that they are not activated by default. → keep to review
- #6135 [Helper] FileRepository::findFile(): use the list of paths when given a dotted path Let's wait for the tests → then ready
- #6132 [FEM] Add support of pyramids elements → ready
-
#6129 [CORE] Refactoring add functions from BaseLink and Link
Test if a simple add would work instead of the
_doAdd_→ keep to review - #6128 [FEM] TetrahedralCorotationalFEMForceField fix stream functions Wait for the CI then ready → then ready
- #6124 [FEM] Refactor templates in latest FEM classes Wait for the CI then ready → then ready
- #6117 [All] Introduce integration schemes Still ongoing. Compatibility layer on C++ and CMake (deleted ODESolver repository is warned in CMake). Use the namespace integrationscheme → keep to review
- #621 add binding to convert elastic parameters to Lamé's parameters It would be nice to see an example of this binding. → keep to review
- #620 Fix/add/test Mat bindings Related to the technical discussions. Some of the bindings were broken and no test was implemented. This PR fixes the one already implemented and add tests. But anyway, converting to numpy whould be the way to go when using matrix in python. Python "self" should return itsef for the binding to be supported by PyBind11 → ready
- #619 export symbols for BindingBase to be used in other libs → ready
- #618 Replace deprecated PYBIND11_OVERLOAD* by PYBIND11_OVERRIDE* Update the minimal required 2.6 version for PyBind11 → keep to review
- #617 [Python] Set the current cwd to the scene's path We should avoid changing the current working directory. The path of the scene file should be added to the list of path. This PR is too breaking and we should merge the PR in SOFA → close
- #616 Enable scene checking when launching through python Enable scne checking when launching python3 scenes out of runSofa. Add a default bool 'applySceneCheck=true' so that it is possible to deactivate it when launching batches of scenes → keep to review
- #228 Fix wires with 3+ sections: initTopology accumulation + chained-section rest frame Wait for his modifications → keep to review
- #19 [forcefield] TriangularShellForceField: draw element showing the measured values (color map) Wait for conflict fixes → then ready
- #6155 [Visual] Instantiate VisualPointCloud for more DataTypes
- #6071 [SofaCUDA] ElementFEMForceField: Generic CUDA implementation
- #6149 [XML] Error handling when parsing
- #6140 [Helper] Refactor SimpleTimer
- #6143 [Topology][Mapping] Add swapping of triangle diagonals when mapping Quads-2-Triangles as an option
- #6144 [Framework] Fix last warnings
- #6138 [Type] Remove
VecViewclass and update codebase to useVecutilities instead - #6137 [Visual] VisualModelImpl: add data to optionally generate uv coords
- #6136 [Visual] VisualModelImpl: clean apply transformations
- Registration for the STC#21 is open: technical-committees > registration
- #6146 [Simulation.Core] Fix BoundingBox initialization and updates isSet is sometimes used for other purposes : defined by the user. This could be extended into data as a state. updateBBox should be renamed as updateVisualBBox → keep to review
- #6145 [Framework] Cmake: set warnings-as-errors in all the Framework targets When updating of VMs / CIs, warnings are to be expected therefore creating errors. Let's discuss this with Paul → keep to review
- #6143 [Topology][Mapping] Add swapping of triangle diagonals when mapping Quads-2-Triangles as an option In the scope of MMS, need to test locking cases in 2D → ready
- #6140 [Helper] Refactor SimpleTimer → ready
-
#6138 [Type] Remove
VecViewclass and update codebase to useVecutilities instead We could let Alex talk more about it, else ready → ready - #6137 [Visual] VisualModelImpl: add data to optionally generate uv coords Computation of uv coords is now triggered through a data → ready
- #6136 [Visual] VisualModelImpl: clean apply transformations In init, the computeVisual was committing changes at each apply call. Minor refactoring and optim → ready
- #6135 [Helper] FileRepository::findFile(): use the list of paths when given a dotted path This PR is changing the behavior of file search in case of relative paths (relative to the list of paths). But it might bring perturbations with other libs. runSofa (+SofaPython3) and Python do not use the same, respectively the script path and the path from which you run Python. Sofa.Runtime could set the current working directory, consistently with runSofa. To be rediscussed → keep to review
- #6125 [Simulation.Core] WorkerThread: fix memory leak/resource retention Test has been added and fixed → ready
- #6124 [FEM] Refactor templates in latest FEM classes This PR should be discussed (it's for now more a PoC). Important we should avoid repeating things. Possibly deducing DoFs template, deducing elements might be more complicated when having mixed elements. Note that it also requires users to know the existing templates. Why not having two solutions : static type definition, or on-the-fly deduction → keep to review
- #6117 [All] Introduce integration schemes Compatibility layer could be added without effort. Fred might ask a colleague to review this dense work → keep to review
- #6071 [SofaCUDA] ElementFEMForceField: Generic CUDA implementation Wait for the #6132 → keep to review
- #612 [Prefabs] Add modifiers Scene tests failing and typo in header → keep to review
- #19 [forcefield] TriangularShellForceField: draw element showing the measured values (color map) Conflict to solve then ready → keep to review
- #6147 [CI] Only launch pixi action in sofa-framework
- #6122 [LinearAlgebra] Factorize matrix bloc trait using concept
- #6096 [Helper] FileSystem: refactor using std::filesystem
- #6116 [Simulation.Core] WorkerThread: fix use-after-free crash with ultra-short Task
- #6133 [FEM.Elastic] Remove complex unproductive stiffness matrix data structure
- #6139 [FEM.Elastic] introduce virtual method called before force derivatives
- #6113 [Framework] Fix more warnings (msvc)
- #6141 [GUI] Factorize camera related code to use in child class
- #6087 [Simulation] Mapping graph visitors
- Registration for the STC#21 is open: technical-committees > registration
- The SOFA consortium was present at ICRA 2026 in Vienna. We presented the framework at the workshop Synthetic Data for Robot Learning ! Many interesting discussions and presentations there !
- #6141 [GUI] Factorize camera related code to use in child class → ready
- #6139 [FEM.Elastic] introduce virtual method called before force derivatives Not used directly in the COre but needed for the hyperelastic forcefields. It mimics design already present in classical forcefield in addForce. → ready
- #6133 [FEM.Elastic] Remove complex unproductive stiffness matrix data structure Remove the local factorized version of stiffness matrix because it seems to be slowing down results. This is certainly due to the use of the Voigt mapping that is difficult to be optimized by the compiler. The benchmarks show real speedup. We can see the speedupt everywhere except for tetra on ubuntu. Anyway, this is not a "dealbreaker" because it still simplify the API for not too much loose. → ready
- #6132 [FEM] Add support of pyramids elements Alex will add the example scene as a regression test. This PR requires reviews ! → keep to review
- #6130 [CORE] Add remove function in BaseLink Add a remove function in the base class. Unit tests incoming → wip
-
#6129 [CORE] Refactoring add functions from BaseLink and Link
This fixes an inssue in the BaseLink class implementing an non-virtual add class that is overriden in the child class. Unit tests incoming too.
→ wip - #6128 [FEM] TetrahedralCorotationalFEMForceField fix stream functions Adds the stream operator to the structure TetrahedronInformation. Internaly precomputed information required for the ForceField to work. → wip
- #6125 [Simulation.Core] WorkerThread: fix memory leak/resource retention It only adds a test to show the error, the fix will come soon. → WIP
- #6124 [FEM] Refactor templates in latest FEM classes We would also like to remove the prefix 'Element' from forcefields names. But the issue is that this name already exists as a "prefab" instanciating the proper template given the topology. In the real prefabs we expect the user to specify the element type once. So it would be great to also have a way to only specify once the element type, as a template for every type or as a component in the scene 'Tetrahedron'. For this PR we will start by removing the templated classes and add it to the template. → keep to review
- #6122 [LinearAlgebra] Factorize matrix bloc trait using concept Fix unit tests. And launch all tests then ready → keep to review
- #6116 [Simulation.Core] WorkerThread: fix use-after-free crash with ultra-short Task → ready
- #6087 [Simulation] Mapping graph visitors We could discuss at one point efficiency of sharing this mapping graph in the scene instead of having local version of it. (matrix assemply + ODE) → ready
- #6071 [SofaCUDA] ElementFEMForceField: Generic CUDA implementation Wait for #6133 → then ready
- #231 [src] Add option to get the tip dof id of a beam/wire Add a data that gives the tip if f the tool. Scene test is failing, it'll need to be fixed → wip
- #230 [mapping] BeamProjectionDifferenceMultiMapping: cleaning initial value → ready
- #228 Fix wires with 3+ sections: initTopology accumulation + chained-section rest frame Fixing 2 bugs, the first one is real and the fix is good. Second bug might not be a real bug actually. The proposed fix is correct regarding the description, but Erik is not sure the original issue is actually one. Waiting for his answer → keep to review
- #224 [RodStraightSection] Fix rest shape double-offset for non-first sections Review have been made by Erik, catching mistake in logic. Let's wait for his response → keep to review
- #281 Fix scale issue and gizmo not showing when reloading scene Fixes the reloading of a scene. → ready
- #109 [Python] SofaRegressionProgram: move all related files to a new cmake "project" and install This will not break compilation because the option is not on by default. Let's merge this and deal with the presets once we have the finale name. → ready
- #20 [forcefield] TriangularShellForceField: changes inheritance Changes inheritance to inherit from the new elasticity classes. Ci is failing but it is unrealated to this PR, we will need to fix it in another PR. → ready
- #19 [forcefield] TriangularShellForceField: draw element showing the measured values (color map) Wait for her to tell us that she finished to copy missing features → keep to review
- #6099 [CI] Update pixi lockfile
- #6134 [type] Add missing TypeTrait.h in CMakeList
- #6121 [all] Factorize primitive numeric types reflection
- #6103 [plugins] Change Cosserat plugin GIT_REF from master to main
- Registration for the STC#21 is open: technical-committees > registration
- #6099 [CI] Update pixi lockfile Paul will work on it → keep to review
- #6132 [FEM] Add support of pyramids elements Alex will add the example scene as a regression test. This PR requires reviews → keep to review
- #6130 [CORE] Add remove function in BaseLink Work to be done → wip
- #6129 [CORE] Refactoring add functions from BaseLink and Link Work to be done → wip
- #6128 [FEM] TetrahedralCorotationalFEMForceField fix stream functions Work to be done → wip
- #6125 [Simulation.Core] WorkerThread: fix memory leak/resource retention This adds a new test showing a current memory leak in the WorkerThread → keep to review
- #6122 [LinearAlgebra] Factorize matrix bloc trait using concept → ready
- #6121 [all] Factorize primitive numeric types reflection Now all reflections are available in TypeTrait.h, only the VecTypes are not covered due to constexpr status → ready
- #6113 [Framework] Fix more warnings (msvc) Reviews taken into account → ready
- #6103 [plugins] Change Cosserat plugin GIT_REF from master to main CI has been updated → ready
- #20 [forcefield] TriangularShellForceField: changes inheritance Changes inheritance to inherit from the new elasticity classes. Ci is failing but it is unrealated to this PR, we will need to fix it in another PR. → ready
- #19 [forcefield] TriangularShellForceField: draw element showing the measured values (color map) Wait for her to tell us that she finished to copy missing features → keep to review
- #6119 [LinearSolver,LinearSystem] Include appropriate inl to no longer on extern symbols
- #6131 [FEM.Elastic] Expose potential energy getter in FEM force fields
- #6115 [all] Fix float compilation
- #6126 [CI] Fix build_and_test script
- #6123 [GitHub] Prefix actions for better readibility
- #6075 [Visual] Fix crash when texturename is not leading to a valid texture file
- #6120 [defaulttype] Fix VecN type when compiling with float
- #6118 [SofaCarving] Clean the handleEvent method to have less conditions and also remove some Data
- #6112 [GitHub] Revise CONTRIBUTING.md for clarity and updates
- #6108 [Pixi] Fix pixi compilation for CUDA related plugins
- #6093 [Sofa.GL] DrawToolGL: improve indices text rendering quality
- #5905 [Lifecycle] v26.06 : SOFA_HEADER_DEPRECATED
- Registration for the STC#21 is open: technical-committees > registration
- Scientific & Technical Committees with members take place this week
- A SOFA paper could be a good idea to:
- provide a up-to-date pitch for SOFA
- highlight the current features
- share our vision of the project
- Fork the CollisionAlgorithm plugin (GPL) at InfinyTech3D, including history and reference to the original project
- Regression in Python is fully home-made
-
#6103 [plugins] Change Cosserat plugin GIT_REF from master to main
- The actual maintained branch is the main branch
- We would like to build it in the CI at one point
- We will test it in the CI by creating a PR adding it to the supported plugins
- SofaImplicitField, SofaDistanceGrid, Cosserat officially supported ?
- It has been accepted to put the two first as supported as they are already tested and built. We could also take them out of the main repository.
- Cosserat will wait for the CI to say it is good
- Documentation of the plugin SofaPyhon3
- OK to simplify the documentation
- Having a readthedoc is fine for self-contained Python project, SofaPython3 should be merged within SOFA and its documentation too
- a first step could be to merged the plugin within the SOFA repository as the Sofa.GL repositories
- Float compilation
- We want to keep it but we need to test it on the CI somehow
- #6118 [SofaCarving] Clean the handleEvent method to have less conditions and also remove some Data Need to incorporate the review changes → then ready
-
#6116 [Simulation.Core] WorkerThread: fix use-after-free crash with ultra-short Task
In the process of parallelizing an algo, Fred found a crash due to the deleting of small task before re-using it. This PR is currently to show the issue, he will push the fix soon in this same PR.
→ wip - #6115 [All] Fix float compilation → ready
- #6113 [Framework] Fix more warnings (msvc) Need review → keep to review
- #6112 [GitHub] Revise CONTRIBUTING.md for clarity and updates → ready
- #6108 Fix Pixi compilation for CUDA related plugins → ready
- #6105 [Type] Standardize extern template instantiations for vector We need benchmarks to make sure there is no overhead → wip
- #6103 [plugins] Change Cosserat plugin GIT_REF from master to main → see technical discussions
- #6099 [CI] Update Pixi lockfile Wait for #6108 → keep to review
- #6096 [Helper] FileSystem: refactor using std::filesystem Reviews to be taken into account → then ready
- #6087 [Simulation] Mapping graph visitors Need full review. This pr enables now more complex mapping configuration unrelated to the simulation graph. → keep to review
- #6075 [Visual] Fix crash when texturename is not leading to a valid texture file Changes taking into account reviews. Launch the tests then ready → wait for CI then ready
- #6071 [SofaCUDA] ElementFEMForceField: Generic CUDA implementation Benchmarks done by Paul, implementation produces correct results. The support of Prisms could be added to the list → keep to review
- #6069 [FEM.Elastic] Cache stiffness matrices before computations → keep to review
- #5905 [Lifecycle] v26.06 : SOFA_HEADER_DEPRECATED → ready
- #611 Fix float compilation This enables the compilation in float. The Python bindings with Vec3 will not be able to generate Vec3f bindings. → ready
- #228 Fix wires with 3+ sections: initTopology accumulation + chained-section rest frame PR is not passing the tests → keep to review
- #224 [RodStraightSection] Fix rest shape double-offset for non-first sections A priori AI-assisted PRs. InfinyTech3D will be reviewing it → keep to review
-
#109 [Python] SofaRegressionProgram: move all related files to a new cmake "project" and install
Conflicts to solve. The CI should activate the flag
APPLICATION_SOFAREGRESSIONPROGRAM=ONin the presets. Then, ready → keep to review
- #6092 [Sofa.GL] DrawToolGL: Auto-scale indices display based on camera distance
- #6083 [Framework] Fix more warnings (clang, macos)
- #6095 [Helper] FileSystem: add more unittests
- #6110 [Mass] Support prisms in mass
- #6106 [Type] Add streaming deserialization for vectorstd::string
- #112 [Python] Add optional flag to disable printing from the SOFA side
- #110 [Python] add duration for all regression test (even if it fails)
- #111 [Python] Fix errors introduced by the ProgressHandler PR
- Registration for the STC#21 is open: technical-committees > registration
- Short question from Leo : how to build an augmented system for constraints so that they can be solved directly
- Alex started to work on this, it is paused for now (still on the roadmap)
- Possibly using InteractionForceField
- Presentation by Lucas Burel : save and load snapshots of a simulation
- Struggling with using Links extraction
- Graph structure not saved: need to load the scene
- Next
- Work on internal state
- Use Python to detect corner cases
- Contact cases could be a bit complex to export
- Disturbances on the CI due to work on VM (Inria's infrastructure)
- #6109 [SofaCarving] CarvingManager: use checkEventType instead of dynamic_cast-ing → ready
- #6108 Fix pixi compilation for CUDA related plugins Let's wait for the CI then ready → ready
- #6106 [Type] Add streaming de-serialization for vectorstd::string Implement a missing serialization for vector of strings. This is for Lucas's work. Wait for the scene tests. → keep to review
- #6105 [Type] Standardize extern template instantiations for vector Instead of having the compiler to instantiate it every time. This PR ensure the compiler always use the explicitly instantiated version. But overhead might appear. Needs to be investigated. → wip
- #6103 [plugins] Change Cosserat plugin GIT_REF from master to main Let's discuss it next time. → keep to review
- #6102 [Core] Fix: avoid extra ';' in macro causing massive warnings Wait for ci then ready → ready
- #6099 [CI] Update pixi lockfile Need to first merge the one fixing the CUDA compilation. Then update this one to see if it fixes compilation. → keep to review
- #6096 [Helper] FileSystem: refactor using std::filesystem need real reviews → keep to review
- #6095 [Helper] FileSystem: add more unittests → ready
- #6093 [Sofa.GL] DrawToolGL: improve indices text rendering quality → ready
- #6092 [Sofa.GL] DrawtoolGL: Auto-scale indices display based on camera distance → ready
- #6089 [Example] Convert Torusfall XML scene to SofaPython3 scene Move this scene in SofaPython3 examples. → closed
- #6083 [Framework] Fix more warnings (clang, macos) The fix here really removes a warning on implicit cast to bool. The rest is out of this PR scope. → ready
- #6071 [SofaCUDA] ElementFEMForceField: Generic CUDA implementation Paul will generate the CPU regression files and test the GPU one. → keep to review
- #6069 [FEM.Elastic] Cache stiffness matrices before computations Alex found similar results on Windows. On other OS, we also have increase of performances. Compare Linux performance. A recent change introduced the Voigt mapping, this might have affected the performances. With the current code, it is better to only rely on the assembled matrix, so if this is the case, we have to remove the currently implemented non-assembled version. → keep to review
- #5899 [Lifecycle] v26.06 : SOFA_ATTRIBUTE_DEPRECATED Need to be merged ASAP. Need last reviews then ready → ready
- #218 Update doc with Pixi installation Merge comments then ready → ready
- #108 [Python] Remove hard dependency to tqdm if progress bar are not needed Removes tqdm as a required dependency. Now if it is not installed, no progress bar is shown → ready
- #107 [Python] add duration for each regression test Add time tracking for regression test →ready
- #105 [scripts] Fix ReplayState class to use the IO method and add the id of scene to replay form the input list → waiting for Erik feedback, then ready
- #83 [Lifecycle] Removal of computeResidual and rebuildSystem Related to #5899 → ready
- #6061 [Mass] Introduce element-agnostic FEM mass
- #6090 [Visual] draw more lines for LineAxis and VisualGrid
- #174 Fixing the applyJT function in Strain2RigidCosseratMaping | The way the force propagates along the rod still needs to be verified.
- #176 Fix the Strain to Rigid branch : Remove comments
- Registration for the STC#21 is open: technical-committees > registration
- First demos by Tristan Cordeboeuf for VFX with SOFA
- Alex presents his work on symbolic automatic differentiation plugin for SOFA
- new tool to implement new FEM models
- based on nothing, on a symbolic library SOFA.Symbolic made with AI that has only one dependency which is SOFA
- only needs the implementation the energy computation in one element (in the
energyFunctionfunction) - At init the forcefield will generate/compile the derived functions (gradient for the force and hessian for the stiffness matrix)
- Using hash of the symbolic expression, it is able to cache the compiled functions to avoid rebuilding at each launch
- Can be used to derive the forces with respect to the parameters for differentiable simulation using the SOFA.Diff plugin
- Wish-list
- Python bindings could be added in order to create new forcefield in Python using energy expression
- It could be thought how to make so that user could still change the mechanical parameters of the material law while the simulation is running
- It would be nice to abstract this for all types of elements
- Leo will present in an upcoming SOFA dev meeting his Sofa.Diff plugin. Release and presentation coming soon. Stay tuned!
- Paul is working on a big refactoring of ODESolvers and AnimationLoop to enable the use of NewtonSolver with Lagrangian constraints that'll break a bit the API. He will make a presentation of the design in upcoming meeting.
- Documentation process should be updated
- the master branch as a working version
- the website should display only the latest release (currently v25.12)
- Duplication of FEM based forcefield/mass (with Alex's recent contributions)
- Promotion and presentation at the next release (v26.06)
- Switch all scenes using the new components
- Start the deprecation (v26.12) to plan a deletion (v27.12 or later)
- We don't ant to delete the old one directly, to make sure demos are stable and behaves the same before.
- Still not compatible with topological changes
- Engine could also be implemented to allow user to input the total mass (instead of mass density)
- #6096 [Helper] FileSystem: refactor using std::filesystem Wait for the CI to run all tests that might depends on filesystem. → keep to review
- #6095 [Helper] FileSystem: add more unittests Take comment into account → then ready
- #6093 [Sofa.GL] DrawToolGL: improve indices text rendering quality → ready
- #6092 [Sofa.GL] DrawtoolGL: Auto-scale indices display based on camera distance Take review into account → then ready
- #6090 [Visual] draw more lines for LineAxis and VisualGrid → ready
-
#6089 [Example] Convert Torusfall XML scene to SofaPython3 scene
A question on the fact that why having this as an exception in the examples ? We should do this for all examples. Wait for Fred's answer.
→ keep to review - #6087 [Simulation] Mapping graph visitors Continue to work on it, soon to be ready. Needs reviews. → keep to review
- #6083 [Framework] Fix more warnings (clang, macos) Wait for his answer and for Ubuntu CI → then ready
- #6081 [LinearSystem] Check if state is mapped to contribute to the global vector This is mergeable because it will not affect non-problematic scenes. And the one that'll break already have warning telling what to do. It actually breaks simulations that should not work normally. → ready
- #6073 [Diffusion] Explicit MechanicalObject link Instead of searching it in the init, we should use the feature of the SingleStateAccessor. Hugo will discuss it with him → wip
- #6071 [SofaCUDA] ElementFEMForceField: Generic CUDA implementation Need to generate CPU regression files to test them against a GPU execution of the scenes to make sure it follows the CPU behavior properly. Based on #6069 → keep to review
- #6069 [FEM.Elastic] Cache stiffness matrices before computations Need to run the tests of increasing the mesh size again (on Windows). Performance comparison with legacy codes. Ideally to be discussed with Fred. Not ready by itself, and if ready, it would be that we can simplify some implementation. → keep to review
- #6061 [Mass] Introduce element-agnostic FEM mass Nodal definition of properties should then allow us to model real heteregeneous materials. Check nodal values (mass, Poisson ratio) is not always meaningful. → ready
- #218 Update doc with Pixi installation Adds documentation on Pixi, modifying the recommended and alternative methods for building SOFA. → review upcoming from Paul, then ready
- #106 [scripts] Fix error check to use error_by_dof Error was tested against the wrong one. This PR fixes it and use the real error by DoF → ready
- #105 [scripts] Fix ReplayState class to use the IO method and add the id of scene to replay form the input list Enables to replay the regression when it fails to understand more what's happening → keep to review
- #6086 [Core] Clarify how the visitor knows if a state is mapped or not
- #6057 [visual] VisualModelImpl: add resetMaterial variable
- #6094 [Engine.Select] Explicit template instantiation for BaseROI and export to API
- #6079 [SofaCUDA] CMake: Remove old options
- #6078 [FEM.Elastic] FEMForcefield: implement computeBBox
- #6084 [Core, Simulation.Core] MSVC: fix inconsistent linkages
- #6067 [LinearSystem] ConstantSparsityPatternSystem: change key type to support bigger meshes
- #222 [All] Deprecations: fix type::Vec casting and BaseObject with BaseComponent
- #219 [InterventionalRadiologyController] fix when giving 0 as index for fixFirstNodesWithUntil
- Registration for the STC#21 is open: technical-committees > registration
- #6093 [Sofa.GL] DrawToolGL: improve indices text rendering quality Make the indices readable with white background. Need real review. → keep to review
- #6092 [Sofa.GL] DrawtoolGL: Auto-scale indices display based on camera distance Make the show indices automatically scaled. Need real review. → keep to review
- #6090 [Visual] draw more lines for LineAxis and VisualGrid Because those two objects are components, we would prefer this number to be added as a data. Maybe a video or puicture of the artifact to better understand the issue would be good. → keep to review
- #6089 [Example] Convert Torusfall XML scene to SofaPython3 scene Might be useful to add it in the PerformanceRegressionTests. Wait for scene and regression tests → then ready
- #6086 [Core] Clarify how the visitor knows if a state is mapped or not Unify the check on the mapped state → ready
- #6084 [Core, Simulation.Core] MSVC: fix inconsistent linkages Wait for the Macos to be green, it crashed → then ready
-
#6083 [Framework] Fix more warnings (clang, macos)
Need to take a look at the change on
FSEventStreamSetDispatchQueue(m_eventStream, dispatch_get_main_queue());→ keep to review - #6081 [LinearSystem] Check if state is mapped to contribute to the global vector This pull request fix one bugs which make the scene broken, so what do we do with this PR ? Maybe put the scene as a regression test in the PR at the end. Wait for Alex comment on this PR. → keep to review
- #6079 [SofaCUDA] CMake: Remove old options → ready
- #6075 [Visual] Fix crash when texturename is not leading to a valid texture file 'findFile' is already used in 'getFullPAth'. So the real check should be to only check if the file exists. → keep to review
- #6074 [all] Apply template method pattern to SOFA Core Maybe the rotation finder could be suppressed from the API. → keep to review
- #6073 [Diffusion] Explicit MechanicalObject link Waiting for the answer of Gaetan. → keep to review
- #6071 [SofaCUDA] ElementFEMForceField: Generic CUDA implementation We need to compare it against the CPU version using Regression tests. In the future such test might be done using V&V pipeline. → keep to review
- #6069 [FEM.Elastic] Cache stiffness matrices before computations Wait for Alex investigation → keep to review
- #6067 [LinearSystem] ConstantSparsityPatternSystem: change key type to support bigger meshes → ready
- #6061 [Mass] Introduce element-agnostic FEM mass Resolve remaining discussions → then ready
- #609 Acquire gil for the full scope of the lifetime returned matrix Fix a crash on addKToMatrix → ready
- #606 Component is the new controller Change the date on the license and wait for Damien's review. → keep to review
- #6085 [test] Unit test describing visitor behavior
- #6080 [Mapping] SkinningMapping: compute weights from position
- #6068 [LinearSolver.Direct] Add some unit tests
- Registration for the STC#21 is open: technical-committees > registration
- Alex talked about a new plugin he made using symbolic calculus to express new forcefield by only giving the energy function. He will make a full demonstration next week.
- #6084 [Core, Simulation.Core] MSVC: fix inconsistent linkages This fixes warning because the fwd.h header is forwarding an external implementation, thus breaking the import/export mechanism. The solution is good, but we might think of other ones. Let's discuss it at the next dev-meeting → keep to review
- #6083 [Framework] Fix more warnings (clang, macos) Need real review because it was made with AI. → keep to review
- #6080 [Mapping] SkinningMapping: compute weights from position This is mandatory for pre-stressed model. → ready
- #6079 [SofaCUDA] CMake: Remove old options It would be preferred to leave the possibility to deactivate the DOUBLE compilation. So, let's keep the option but put it to on by default. → keep to review
- #6078 [FEM.Elastic] FEMForcefield: implement computeBBox → ready
- #6075 [Visual] Fix crash when texturename is not leading to a valid texture file → keep to review
- #6074 [all] Apply template method pattern to SOFA Core → keep to review
- #6073 [Diffusion] Explicit MechanicalObject link All ForceFields are SingleStateAccessor, which are member called mstate and already are a link to the mechanical state. Let's wait for Gaetan's feedback. → keep to review
- #6071 [SofaCUDA] ElementFEMForceField: Generic CUDA implementation This PR is a first CUDA version that has the merit to exists. We expected that this implementation could be closer to the CPU version. But it is not the case. This makes the code difficult to understand and thus to keep up to date. Maybe doing cross validation (comparing CPU results to the GPU ones) to validate it. This PR will need more review, especially on the kernels. → keep to review
- #6069 [FEM.Elastic] Cache stiffness matrices before computations "Tetra don't use the assembled matrix on purpose. It's supposed to be faster to use the factorization. If not, there is something wrong". This PR needs to be investigated by Alex. → keep to review
- #6068 [LinearSolver.Direct] Add some unit tests → ready
- #6067 [LinearSystem] ConstantSparsityPatternSystem: change key type to support bigger meshes Try to use unsigned 64 integer → keep to review
- #6061 [Mass] Introduce element-agnostic FEM mass Hugo made some review, Themis will do it too. → keep to review
- #6057 [visual] VisualModelImpl: add resetMaterial variable → ready
- #606 Component is the new controller Implements binding fo the BaseComponent Class. The issue was that BaseController and BaseComponent are basically the same class with just simple inheritance in between. In order not to duplicate the trampoline code, a CRTP implementation has been proposed. An runtime error on windows is to be fixed. → wip
- #6062 [FEM] Add support for elasticity of prisms
- #6072 [CMake] Remove Qt from all configurations
- #5987 [Geometry] Bugfixes and add unit tests
- #10 Fix solve_impl() mixups args and cusolverSpScsrcholBufferInfoHost() call with wrong values
- #9 Fix compilation with gcc
- Registration for the STC#21 is open: technical-committees > registration
- SOFAGym project
- Research initiative on which no one masters it currently
- Let's contact the researchers that used Gym with SOFA to decide on a direction for this project
- Template Method Pattern : PR sorting has restarted #6074
- Mateo's work aims at animating via Gaussian Splatting (Interval Shading)
- use a mesh shader (too recent for our supported OpenGL version)
- geometry shader, a workaround
- a work remains to be done to update our rendering API, using BGFX possibly
- #6075 [Visual] Fix crash when texturename is not leading to a valid texture file → keep to review
- #6074 [all] Apply template method pattern to SOFA Core → see technical discussions
- #6055 [CMake] Activate the errors in scene checking in the dev configurations About 480 scene check warnings that we would need to fix at one point. → close
- #5987 [Geometry] Bugfixes and add unit tests Discussion about whether or not the function computing barycentric coordinates for a triangle should return a value (negative) when the point is out from the triangle. This PR should not affect performances → ready
- #605 Add binding for modifying and adding entries to sparse matrices Flag auto-compress at compilation exists for sparse matrices. To be checked whether it is used for both mechanical / constraint matrices. Aiming at doing a Mapping written in Python (apply, applyJ, applyJT). The issue is that applyJT works with matrices and the binding does not allow for this → ready
- #218 Update doc with Pixi installation → keep to review
- #80 Remove draft check → ready
- #280 Make both CTRL keys active → ready
- #279 Minor cleaning on camera → ready
- #6070 [FEM.Elastic] Fix includes
- #6066 [FEM.Elastic] FEMForcefield: getExecutionPolicy did not use the provided data
- #6039 [all] In RequiredPlugin, use pluginName instead of name
- #6059 [SceneChecking] Update message for missing RequiredPlugin
- #6063 [CI] Update pixi lockfile
- #6060 [Framework] Fix warnings from modern gcc/clang
- #604 [All] Deprecation: replace BaseObject with BaseComponent
- #603 [RequiredPlugin] Use pluginName instead of name
- Registration for the STC#21 is open: technical-committees > registration
- Pixi infrastructure is officially supported since the merge of #5252
-
#6063 [CI] Update pixi lockfile
- PR is not triggering the Pixi CI, except when a pixi file is modified
- PR is green on CI 👍
- Remark: hard to trust updates of so many packages
-
#6044 Eigen 3.4.1 and 5.01 available and more third party updates
- SOFA supports the last Ubuntu LTS which means that the version of the dependencies is frozen for two years each time, while allowing ourselves to update some sparsely. All dependencies will be updated at once for the next LTS
- Question : how to generate a mesh with quadratic elements?
- MechanicalObject needs to be extended, the elements too
- Discussions with Mimesis could be of interest
- VTK seems to support quadratic elements (cell type name, vtkQuadraticTetra)
- Missing : mappings for quadratic, even if we could use our existing linear mapping
- Cuda code : we might try to implement new version of linear solvers on GPU starting from the example of the CudaSparseLDLSolver of Alex, and maybe a CG using AI agents. Might also rework the CPU version of the LDL using a new lib doing sparse work SuiteSparse.
- #6063 [CI] Update pixi lockfile → ready
- #6062 [FEM] Add support for elasticity of prisms Add a specilization of FEM for prisms. Add a regression test in the validation folder. Need review from the team. → keep to review
- #6061 [Mass] Introduce element-agnostic FEM mass It's similar to the elasticity forcefields. Based on the same design, so working similarly. It relies on a nodal expression of the mass density to better support heterogeneity. Need profound reviews. Even when updating a regression test he didn't have to update the regression reference, meaning that we have the same behavior. An other example using tetraerdra should be updated using this new mass, even using Eulalie's engine that compute the mass density from the total mass. → keep to review
- #6060 [Framework] Fix warnings from modern gcc/clang → merged
- #6059 [SceneChecking] Update message for missing RequiredPlugin → ready
- #6057 [visual] VisualModelImpl: add resetMaterial variable Variable should be renamed, set as protected, a getter should be added, a documentation also. And the pointer towards when it is used would be nice → keep to review
- #6055 [CMake] Activate the errors in scene checking in the dev configurations Good demonstration, that could be the start of a dev sprint. Keep it open and then restart the CI once the #6039 would be merged. Drafted. → keep to review + draft
- #6039 [all] In RequiredPlugin, use pluginName instead of name One scene missing (Validation/Cantilever) → keep to review
- #5987 [Geometry] Bugfixes and add unit tests Wait one last week for a last review → then ready
- #604 [All] Deprecation: replace BaseObject with BaseComponent Rebased, wait for CI then ready → keep to review
- #603 [RequiredPlugin] Use pluginName instead of name → ready
- #222 [All] Deprecations: fix type::Vec casting and BaseObject with BaseComponent Simple API should also be renamed, BaseObjectDescription, ObjectFactory, the addObject() Python interface → ready
- #221 [RequiredPlugin] Use pluginName instead of name Strange regression on MacOS, check then ready → keep to review
- #219 [InterventionalRadiologyController] fix when giving 0 as index for fixFirstNodesWithUntil → ready
- #218 Update doc with Pixi installation Remove info about Qt, remove the not-supported plugins. Move the manual installation among the alternative solutions. Other OS to be done. → wip
- #32 Update imageregistration.scn WARNING scenes using old plugin names are not launched by the CI. This might be the reason why the scene wasn't launched by the CI. → ready
- #2 Enable loading cell/point data arrays in the BaseVTKLoader Need review → keep to review
- #6033 [Mapping.Linear] Add applyJT for matrices for IdentityMultiMapping
- #6056 [CI] Fix conda ci curl call
- #6058 [Type] FullySymmetric4Tensor: fix compilation error on macos/xcode 26
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes
- #6038 [Simulation.Core] Add warning if RequiredPlugin uses its name to load a plugin
- #6048 [SofaCUDA] init: print info about driver and runtime version
- #6046 [Framework] Remove warnings by adding compilation time checks
- #6045 [Sofa.Config] Remove already define macro warning
- #6025 [SceneChecking] Introduce SceneCheckSpecialCharacters
- #6050 [LinearAlgebra] Fixed element for lower triangular part of BTDMatrix
- #6042 [SceneChecking] CMake option to treat warnings as errors in SceneChecking
- Registration for the STC#21 is open: technical-committees > registration
- Pixi infrastructure is officially supported since the merge of #5252
- Pixi installation could be added on each OS documentation to advise using it for install
- Full replacement for Windows
- "Manual installation (for developers)" could be kept on Ubuntu
- For MacOS, it has to be investigated
- Sofa.VTK
- Check the Conda packages of VTK, they might be modular
- The plugin
- Make a PR adding the plugin to the supported plugins
- Make a Python example scene to load VTK mesh
- #6050 Fixed element for lower triangular part of BTDMatrix → ready
- #6048 [SofaCUDA] init: print info about driver and runtime version → ready
- #6046 [Framework] Remove warnings by adding compilation time checks → ready
- #6045 [Sofa.Config] Remove already define macro warning → ready
- #6043 [SofaMatrix] Try loading extensions based on the GUI PR was to ease simply the use of the plugin. It brings a additional way to handle extensions. This PR should be closed and replaced by PR on the extensions to explicitly register objects of the super plugin into the factory → close
- #6042 [SceneChecking] CMake option to treat warnings as errors in SceneChecking Enable the option on the CI → ready
- #6039 [all] In RequiredPlugin, use pluginName instead of name Wait for Ci then ready. Might be good to also apply this to the SofaPython3 scenes. → keep to review
- #6038 [Simulation.Core] Add warning if RequiredPlugin uses its name to load a plugin Replace ##6026 → keep to review
-
#6033 [Mapping.Linear] Add applyJT for matrices for IdentityMultiMapping
Think about simplification of such
applyJT()functions. → to review - #5995 Robustify links reading Draft PR to have a workaround on Links for Lucas' & Leo's work. → wip
- #5987 [Geometry] Bugfixes and add unit tests Review needed here → keep to review
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes PR is green, let's get it merged → ready
- #220 [InterventionalRadiologyController] fix potential div by 0 in computeInstrumentsCurvAbs → ready
- #219 [InterventionalRadiologyController] fix when giving 0 as index for fixFirstNodesWithUntil Wait for erik to accept the PR → then ready
- #345 [CI] Add sofa-test-action Add time out in PR → keep to review
- #81 Add sofa-test-action Investigate Windows error → keep to review
- #174 [CI] Add sofa-test-action Typos fixed and some tests were failing → keep to review
- #6030 [Type] Quat: factorize matrix code
- #6032 [Core] Introduce WriteAccessor move constructor
- #6037 [Sofa.Helper] Fix a few warnings
- #6036 [Helper] ScopedAdvancedTimer: add a compile-time check on string argument in macros
- #6022 [Type] Vec: Short-circuit toVecN for same-type conversions
- #5974 [SofaCUDA] FixedProjectiveConstraint: Fix for double templates
- #6053 [Conda-CI] Fix launch action
- #6052 [Conda-ci] Add hash info for glfw in the payload
- #6040 [Simulation] Update advice to use RequiredPlugin using the Data pluginName
- #6020 [all] Another round of renaming of BaseObject to BaseComponent
- #6000 [ODESolver.Forward] Support mapped masses in EulerExplicitSolver
- #5981 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to improve readability and add unit tests
- #5979 [Helper] Add
getNamemethod to allMessageHandlerimplementations and update related tests - #5920 [Mass] Add unit test framework and tests for Mass components
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field
- #5989 [LinearAlgebra] Various bugfixes and add unit tests
- #6035 [Type] vector: Fix warning(error) about implicit cast of long into int
- #6029 [Core] Fix MeshLoader parse method when calling super method
- #590 Add
getNamemethod to MessageHandler classes and bindings - #585 Fix rightBeforeLoadingScene method overloading
- #217 AdaptiveBeamForceFieldAndMass:move step-constant things out of the loop in addForce
- #218 AdaptiveBeamMapping: remove unused buffer mechanism
- Registration for the STC#21 is open: technical-committees > registration
- Pixi infrastructure is now officially supported ! Since the merge of #5252, you can download and build sofa in only three steps without any environment installation :
- Clone SOFA : https://github.com/sofa-framework/sofa
- Install pixi : https://pixi.prefix.dev/latest/installation/
- Launch the build : run
pixi run -e supported-plugins buildin the sofa source folder
- #6025 [SceneChecking] Introduce SceneCheckSpecialCharacters Special characters in object names break links paths. This scene checker ensure that those characters are tracked and warning displayed. PR [#6026 [Simulation.Core] Refactor logic of loading a plugin from a RequiredPlugin name] tries to automatise the required plugins case where the name is used intead of another data. But we really should disable this feature. A compatibility layer will be added by Alex.
-
#6031 [Tracy] Fix compilation when enabling Tracy
A PR broke the compilation of SOFA with Tracy because it uses a dynamic name when Tracy expects
constexpr. To fix this a new PR introduced a new set of macro enabling this. It works with Tracy now, but the issue is that still, the CI will not see when it is not used for future dev. #6036 introduced a compile time check so that in the future we will track those errors. - Question about dropping explicit solvers. They are a good entry point for ODE solvers in term of learning and also for testing dev. It might even be relevant for multiphysics simulations.
- #6036 [Helper] ScopedAdvancedTimer: add a compile-time check on string argument in macros → ready
- #6035 [Type] vector: Fix warning(error) about implicit cast of long into int → ready
- #6033 [Mapping.Linear] Add applyJT for matrices for IdentityMultiMapping Wanted to check for mapped mass under multimapping that those masses are correctly transferred to the main DOFS. It was actually not working because of a lack of API implementation in the IdentityMultiMapping. Need reviews. → keep to review
- #6032 [Core] Introduce WriteAccessor move constructor Add tests to clarify what appends when the write accessor is moved → then ready
- #6030 [Type] Quat: factorize matrix code It might be good at one point to simplify this API and give correct names. To deprecate it we could add a warning when using this matrix. → ready
- #6029 [Core] Fix MeshLoader parse method when calling super method → ready
- #6026 [Simulation.Core] Refactor logic of loading a plugin from a RequiredPlugin name see technical discussions → keep to riview
- #6025 [SceneChecking] Introduce SceneCheckSpecialCharacters → ready
- #6022 [Type] Vec: Short-circuit toVecN for same-type conversions Avoid overhead when the input and the output type are equivalent. The compiler does it properly most of the time when the compilation is optimized. → ready
-
#6020 [all] Another round of renaming of BaseObject to BaseComponent
Let's wait for the windows CI
→ then ready -
#6000 [ODESolver.Forward] Support mapped masses in EulerExplicitSolver
If a mass is mapped, by default the mass is considered as non diagonal. Loosing the fast property of implicit solvers, but it is not very used. At least this offers a working mechanism.
→ ready - #5989 [LinearAlgebra] Various bugfixes and add unit tests → ready
- #5987 [Geometry] Bugfixes and add unit tests Need real review → keep to review
- #5981 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to improve readability and add unit tests → ready
-
#5979 [Helper] Add
getNamemethod to allMessageHandlerimplementations and update related tests Wait for windows CI → then ready - #5920 [Mass] Add unit test framework and tests for Mass components → ready
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field It is ready, Alex added a lot of new scene test. He intend to add them to the regression tests. We can put them also on the performance regression tests, Alex will select a set of heavy load scenes to add them. If the added regression pass then it is ready. → keep to review
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes Wait for ubuntu to report status → then ready
-
#590 Add
getNamemethod to MessageHandler classes and bindings Wait for the SOFA PR → keep to review - #585 Fix rightBeforeLoadingScene method overloading → ready
- #219 [InterventionalRadiologyController] fix when giving 0 as index for fixFirstNodesWithUntil Maybe adding a warning would be great. → then ready
- #218 AdaptiveBeamMapping: remove unused buffer mechanism → ready
- #217 AdaptiveBeamForceFieldAndMass:move step-constant things out of the loop in addForce → ready
-
#103 add the hash of the path to the test name
Name of scenes where used to give the name of the test to GTest. So if you have two scenes with same name in two separated folders, gtest would break. Need to be tested on a opened SOFA PR with a ci-depends-on.
→ keep to review
- #345 [CI] Add sofa-test-action Need to fix timeout → keep to review
- #344 [behavior] Rename epsilon by energyWeight → keep to review
- #81 Add sofa-test-action Need to fix action → keep to reveiew
- #174 [CI] Add sofa-test-action Need to fix action → keep to review
- #2 Enable loading cell/point data arrays in the BaseVTKLoader Question on some uncommon types (int8) present in VTK. They should be converted in the usual SOFA types. If they are indices we need to cast them to sofa::Index. The team need also to make a review on this PR. → keep to review
- #5978 [Helper] Replace console message handler instantiation with singleton usage
- #6031 [Tracy] Fix compilation when enabling Tracy
- #6034 [Sofa.Topology] Treat warnings as errors
- #6024 [CMake] Add path to the windeppack to help cmake find it
- #6019 [Collision.Detection] SubCollisionPipeline: fix timings
- #5973 [SofaCUDA] SofaCUDA is now a meta-plugin of two plugins: SofaCUDA.Core and SofaCUDA.Component
- #6028 [Sofa.Geometry] Treat warnings as errors
- #6027 [Sofa.Type] Treat warnings as errors
- #5971 [SofaCUDA] GUI: create extension to use Sofa.GUI with SofaCUDA
- #5968 [SofaCUDA] move Qt-related code
- #5967 [SofaCUDA] Reorganize files and components
- #6023 [CMake] Add missing install compat headers for Sofa.Component.LinearSystem
- #6021 [Geometry] Prism: remove warning about multiline comment
- #6004 [Core] Use
toBaseComponent()instead oftoBaseObject() - #5998 [LinearSystem] Remove stale cached components
- #6015 [CMake] Fix TinyXML2 cmake module for windeppack
- #6014 [CI] Fix scene tests by ignoring Cuda scenes from benchmarks
- #6011 [CI] Update pixi lockfile
- #6013 [CI] Fix title and label in update pixi lockfile action
- #6012 [CI] Change name of pr and tags for update pixi lockfile PR
- #6010 [CI] Add action to update pixi lockfile
- #5252 [Pixi][CI] Add pixi support
- #5991 [Simulation] Move MappingGraph class from Sofa.Component.LinearSystem to Sofa.Simulation.Core
- #5988 [Defaulttype] RigidTypes: Fix various bugs in RigidCoord/RigidMass and add unit tests
- #5984 [Topology.Mapping] Introduce component
Hexa2PrismTopologicalMapping - #5980 [Type] Quat : Add more unit tests and two bugfixes
- #5983 [examples] Mitigate mesh-induced anisotropy in cantilever beam simulations
- #5961 [SofaCUDA] Call register functions in the plugin initialization function
- #5965 [SofaCUDA] Cleanup cmake file and remove obsolete options
- #593 Support all types of mappings
- #588 Introduce bindings for MessageDispatcher
- #399 Update on Transform and Quat bindings
- #599 Use sofa-test-action in github action
- Registration for the STC#21 is open: technical-committees > registration
- Master M1 in Lille make some offering for master student to work on desired topics (what started the work on Jupyter Notebook)
- #6009 [Core] BaseNode: Remove usage of BaseObject alias → ready
-
#6004 Use
toBaseComponent()instead oftoBaseObject()CI fails on all OS (find and replace to be further applied) → keep to review - #6000 [ODESolver.Forward] Support mapped masses in EulerExplicitSolver Need more reviews → keep to review
- #5998 [LinearSystem] Remove stale cached components When using penalities, ForceField appears and disappears. But the LinearSystem was keeping references towards them, leading to a crash. → ready
-
#5995 Robustify links reading
This work was needed because of the work on serialization. In order to make this work we will need to drop the
@object[int]→ wip - #5991 [Simulation] move MappingGraph class from Sofa.Component.LinearSystem to Sofa.Simulation.Core → ready
- #5989 [LinearAlgebra] Various bugfixes and add unit tests One additional review is expected here → keep to review
- #5988 [Defaulttype] RigidTypes: Fix various bugs in RigidCoord/RigidMass and add unit tests → ready
- #5987 [Geometry] Bugfixes and add unit tests Need more review → keep to review
-
#5984 [Topology.Mapping] Introduce component
Hexa2PrismTopologicalMapping→ ready - #5983 [examples] Mitigate mesh-induced anisotropy in cantilever beam simulations → ready
- #5981 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to improve readability and add unit tests Test triggered on Windows, then ready → keep to review
- #5980 [Type] Quat : Add more unit tests and two bugfixes → ready
-
#5979 [Helper] Add
getNamemethod to allMessageHandlerimplementations and update related tests Failing on Windows, restart CI → keep to review - #5978 [Helper] Replace console message handler instantiation with singleton usage → keep to review
- #5973 [SofaCUDA] SofaCUDA is now a meta-plugin of two plugins: SofaCUDA.Core and SofaCUDA.Component → ready
- #5971 [SofaCUDA] GUI: create extension to use Sofa.GUI with SofaCUDA → ready
- #5968 [SofaCUDA] move Qt-related code → ready
- #5967 [SofaCUDA] Reorganize files and components → ready
- #5965 [SofaCUDA] Cleanup cmake file and remove obsolete options → ready
- #5964 [SofaCUDA] Clean dead code due to required CUDA version → ready
- #5962 [SofaCUDA] examples: replace PHP scenes with python3 → ready
- #5952 [Mapping] Introduce SubsetTopologicalMultiMapping with multiple topology inputs and one output → wip
- #5936 [SpringForceField] Add stiffness matrix computation to JointSpringForceField → wip
- #5920 [Mass] Add unit test framework and tests for Mass components Hugo will review it → keep to review
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field → keep to review
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes Need a file to test → keep to review
- #599 Use sofa-test-action in github action → ready
- #593 Support all types of mappings Fred suggested to instantiate bindings using SReal. Compiling in float or double would change the name of the class to be used in Python. Either we should remove the option of float compilation or find a solution to name Python objects to avoid influence of the TypeInfo. In XML we had alias for this. Issue created here #600 Non-templated Python class names → ready
-
#590 Add
getNamemethod to MessageHandler classes and bindings Related to a SOFA PR → keep to review - #588 Introduce bindings for MessageDispatcher → ready
- #585 Fix rightBeforeLoadingScene method overloading Ready wait for the #599 to test the scenes → ready
- #399 Transform bindings Ready wait for the #599 to test the scenes → ready
- #275 Fix some crash Wait for CI after merging review → keep to review
- #31 [CI] Add sofa-test-action → ready
- #22 [CI] Add sofa-test-action → ready
- #345 [CI] Add sofa-test-action Fix timeout issue → keep to review
- #344 [behavior] Rename epsilon by energyWeight Depends on #77 → keep to review
- #81 Add sofa-test-action Works for most OS apart from Windows. Scene and regression tests are now triggered. To be fixed, then ready. → keep to review
- #77 [solver-constraint] Rename epsilon by energyWeight Wait for #81 to be merged, then launch the sofa-test-action on this one → keep to review
- #174 [CI] Add sofa-test-action → keep to review
- #6005 [all] Replace
BaseObject::canCreatebyBaseComponent::canCreate - #6007 [Core] BaseContext: Remove usage of BaseObject alias
- #6006 [Core] Fix warning unreachable code in BaseClassNameHelper.h
- #6003 [all] Replace BaseObject.h by BaseComponent.h
- #5985 [Visual] Compute bounding box in VisualMesh
- #6002 [Visual] Consider sphere boundaries when computing bbox in VisualPointCloud
- #6001 [Visual] add support of 2d and 1d for TrailRenderer
- #5996 [Example] BUFIX: Adjust relative paths in fallingSOFA.scn file
- #5992 [Constraint.Projective] Fix warning in DirectionProjectiveConstraint
- #5982 [example] Add a demo scene showcasing mesh-induced anisotropy effects
- #5917 [Type] Fix type conversion in RGBAColor
- #5976 [Visual] Scene center and radius are not longer cached
- #5994 [CMake] Add missing install compat headers for Sofa.Core
- #5963 [LinearSystem] Update the "M, B, K factors" of the linear system when necessary
- #5947 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to support MeshTopology output
- #5934 [Core] Rename BaseObject to BaseComponent
- #5958 [Constraint] Add PCR direct constraint solver
- #598 Revert #581
- #572 Update cachix/install-nix-action to version 31
- #573 [Controller] POC: overall speedup
- #581 [CMake] Multi-Config: Avoid creating configuration-related folders for the python packages when building
- #594 Fix typo in method name
- A sprint on Prefabs took place earlier this week. Results will be presented at the upcoming STC#21
- #5891 [Core] BaseObject: remove components from the slave list Makes the mouse performer crash, see issue #111 on Compliance SofaGLFW. Will be tested. Click using the mouse performer creates a temporary mapper, a mechanical object and a spring. When removing it, someone may refer to it while it's deleted.
- #5989 [LinearAlgebra] Various bugfixes and add unit tests Some bug fixes from Claude. Need better review → keep to review
- #5988 [Defaulttype] RigidTypes: Fix various bugs in RigidCoord/RigidMass and add unit tests Some bug fixes from Claude. Need better review → keep to review
- #5987 [Geometry] Bugfixes and add unit tests Some bug fixes from Claude. Need better review → keep to review
-
#5985 [Visual] Compute bounding box in VisualMesh
Question on when to compute the BBox for this model. Do we compute it even when the object is not drawn ? If this is not the case, we might gain from implementing the template mthod pattern here for every objects.
The conclusion here is that if
computeOnlyVisibleis false, compute it, if it is true, then compute it only when display flags shows visual models. → wip -
#5984 [Topology.Mapping] Introduce component
Hexa2PrismTopologicalMappingMight want to add the swapping in a future PR. Ready next week. → keep to review - #5983 [examples] Mitigate mesh-induced anisotropy in cantilever beam simulations Fix SOFA examples where there is mesh_induced anisotropy. Need to update the regression files then ready → keep to review
- #5982 [example] Add a demo scene showcasing mesh-induced anisotropy effects → ready
- #5981 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to improve readability and add unit tests Let's wait for scene and regression tests, and better reviews → keep to review
- #5980 [Type] Quat : Add more unit tests and two bugfixes → ready
-
#5979 [Helper] Add
getNamemethod to allMessageHandlerimplementations and update related tests → keep to review - #5978 [Helper] Replace console message handler instantiation with singleton usage This pr uses a singleton to avoid memory leak. Let's launch the scene tests to see if debug info are well output. → keep to review
- #5976 [Visual] Scene center and radius are not longer cached → ready
- #5974 [SofaCUDA] FixedProjectiveConstraint: Fix for double templates Wait for other PR to be merged → ready
- #5973 [SofaCUDA] SofaCUDA is now a meta-plugin of two plugins: SofaCUDA.Core and SofaCUDA.Component Big boy, aggegating all the previous SofaCuda PRs. Test from Paul, then ready → then ready
- #5971 [SofaCUDA] GUI: create extension to use Sofa.GUI with SofaCUDA Split the GUI related code to deactivate it easily. Test from Paul, then ready → then ready
- #5970 [Haptics] Double iterations to fix LCPForceFeedback_test Test failing more then even now. Erik want to try reducing the complexity of the contact problem to be solved → close
- #5968 [SofaCUDA] move Qt-related code Test from Paul, then ready → then ready
- #5967 [SofaCUDA] Reorganize files and components Move files around. Test from Paul, then ready → then ready
- #5965 [SofaCUDA] Cleanup cmake file and remove obsolete options Remove a lot of deprecated codes using cudapp and never used code. Test from Paul, then ready → then ready
- #5964 [SofaCUDA] Clean dead code due to required CUDA version Remove all guarded codes by deprecated macros. Some classes do not have any namespace (cuda files). Test from Paul, then ready → ready
- #5963 [LinearSystem] Update the "M, B, K factors" of the linear system when necessary → ready
- #5962 [SofaCUDA] examples: replace PHP scenes with python3 Changed the PHP scenes into python scenes. Test from Paul, then ready → keep to review
- #5961 [SofaCUDA] Call register functions in the plugin initialization function Test from Paul, then ready → then ready
- #5958 [Constraint] Add PCR direct constraint solver Designed for a system in a NewtonRaphson, further PR will be opened about it. Suggestion will be implemented in another PR. → ready
- #5952 [Mapping] Introduce SubsetTopologicalMultiMapping with multiple topology inputs and one output Suggestion and reviews to be taken into account → keep to review
- #5947 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to support MeshTopology output → ready
- #5936 [SpringForceField] Add stiffness matrix computation to JointSpringForceField Create a scene to test the component and fix the inconsistency pointed in the review → wip
- #5934 [Core] Rename BaseObject to BaseComponent CI now passes (without all tests for now) → ready
- #5921 [Type] Mat: better cache locality for operator*(Mat) → ready
- #5920 [Mass] Add unit test framework and tests for Mass components Unit test failing. Review to be done and wait for updated CI → keep to review
- #5917 [Type] Fix type conversion in RGBAColor Still failing on the CI. An exception somewhere from a static point of view → keep to review
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field Reviews are being taken into account → keep to review
- #594 Fix typo in method name We could rename it removing the "constraint" from the name in the future → ready
- #593 Support all types of mappings Reviews to be taken into account → keep to review
-
#590 Add
getNamemethod to MessageHandler classes and bindings Related to a SOFA PR → keep to review -
#589 Message handlers are no longer cleared
This PR comes from testing the nodebook in a python context (using
with). In the notebook,SofaRuntime.init()clears all message handlers while one is being used when opening the context. SOFA and Python are both singleton and SofaRuntime behavior interferes with the messages. Work around is using the logs from the Python environment. → close - #588 Introduce bindings for MessageDispatcher One conflict. The naming should be updated accordingly to current convention. → wip
- #585 Fix rightBeforeLoadingScene method overloading SofaTestAction will be firstly configured and then this PR will be merged → keep to review
- #581 [CMake] Multi-Config: Avoid creating configuration-related folders for the python packages when building → ready
- #573 [Controller] POC: overall speedup → ready
- #572 Update cachix/install-nix-action to version 31 → ready
- #275 Fix some crash → keep to review
- #344 [behavior] Rename epsilon by energyWeight → keep to review
- #80 Update Conda CI to devel conda packages CI was done since the CI is now using the conda devel packages (SOFA + SofaPython3). SoftRobots plugin still needs to be compiled. → ready
- #77 [solver-constraint] Rename epsilon by energyWeight → keep to review
- #5914 [Config] Introduce CMake function to treat compilation warnings as errors
- #5935 [Constraint] Improve initialization and state validation in StopperLagrangianConstraint
- #5948 [Topology.Mapping] Support MeshTopology as output in Tetra2TriangleTopologicalMapping
- #5975 [Project] Update rules for pull-requests regarding AI
- #5946 [Topology] Add support for adding prism and pyramid elements in MeshTopology
- #5957 [All] Clean task scheduler usage
- #5966 [SofaDistanceGrid] Use the correct flag for miniflowvr activation
- #5972 [Type] Mat: Add unit tests for operators and related free functions
- #583 Add binding for
GetVersionand associated unit tests - #586 [doc] Use sphinx-design in order to fix doc generation
- #591 Remove unappropriate comment
- #587 Ignore the meshing scenes
- #570 [RPyC] Add new exposed methods to SOFA server
- #580 nix: update sources & lock
- #567 Add python modules that uses the CGAL binding
- #204 [examples] Add a thermo-elastic example
- #274 Add gizmos from compliance
- #278 update continuous_key_pressing in SofaGLFWBaseGUI
- #272 [Dependency] NFD: use the alias for nfd only if it exists
- #277 Add spaces for visualization in the documentation
- #276 Update shortcuts section with key events
- #269 Fix crashes when changing Mouse operation
- The sofa-test-action is now ready to be used/tested on your plugin CI
- Discussion about Jupyter Notebooks
- Working proof of concept (on a server from mybinder)
- A local installation with conda could be easily done
- Info : API changes in Eigen5 (PR merged by Traversaro)
- External contributions through AI
- A human has to be in the loop
- Our contributing rules will be updated too
- CUDA-less preset
- Let's amke the PR and see if it is interesting
-
#5973 [SofaCUDA] SofaCUDA is now a meta-plugin of two plugins: SofaCUDA.Core and SofaCUDA.Component
- Important work re-architecturing the SofaCUDA plugin
- Tests should be added and run using CUDA
-
#5958 [Constraint] Add PCR direct constraint solver
Wait for review + try implementing a generic LinearConstraintSolver unsing SOFA + Alex will try this solver with the incompressibility.
→ keep to review - #5957 [All] Clean task scheduler usage Some broadly used components where not using the task scheduler properly (by inheriting from TaskSchedulerUser) and thus forcing the nb of thread at maximum. This PR fixes it. → ready
- #5952 [Mapping] Introduce SubsetTopologicalMultiMapping with multiple topology inputs and one output Wait for Alex's review and the regression tests → keep to review
- #5948 [Topology.Mapping] Support MeshTopology as output in Tetra2TriangleTopologicalMapping Wait for review from IT3D → keep to review
- #5947 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to support MeshTopology output Wait for review from IT3D → keep to review
- #5946 [Topology] Add support for adding prism and pyramid elements in MeshTopology → ready
- #5936 [SpringForceField] Add stiffness matrix computation to JointSpringForceField Create a scene to actually test the component → keep to review
- #5935 [Constraint] Improve initialization and state validation in StopperLagrangianConstraint Take comment into account → wip
- #5934 [Core] Rename BaseObject to BaseComponent sofa-reviewers got notified. All OS CI are failing. Removing the CI depends on should fix it. → keep to review
- #5921 [Type] Mat: better cache locality for operator*(Mat) New unit tests have been added as asked. This PR is now based on #5972. Let's wait for the merge of 5972 → then ready
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field → changes to be taken into account
- #586 [doc] Use sphinx-design in order to fix doc generation → ready
- #585 Fix rightBeforeLoadingScene method overloading Waiting for Damien's feedback → keep to review
-
#583 Add binding for
GetVersionand associated unit tests Could be added in the__init__of the SOFA python package so that we can callsofa.getVersion()→ keep to review - #581 [CMake] Multi-Config: Avoid creating configuration-related folders for the python packages when building Check nothing has been broken on MSVC → keep to review
- #573 [Controller] POC: overall speedup → Feedback to be taken into account
- #572 Update cachix/install-nix-action to version 31 Waiting for Nix CI → keep to review
- #570 [RPyC] Add new exposed methods to SOFA server Pedagogical reasons are enough to keep the duplication → ready
- #204 [examples] Add a thermo-elastic example → ready
- #215 [All] Lifecycle for v26.06 → ready
- #276 Update shortcuts section with key events Need more communication on this → ready
- #275 Fix some crash → changes to be taken into account
- #274 Add gizmos from compliance Agreement with Alex. Let's create a fork and see if we can fetch it and add the header. Let's wait for Olivier's feedback. Make sure that the header does not include Compliance one. → keep to review
- #269 Fix crashes when changing Mouse operation → ready
- #5959 [Collision] CompositeCollisionPipeline: propagate reset calls on the sub collision pipelines
- #5953 [HyperElastic] Enable the SelfAdjointEigenSolver in Ogden
- #5943 [Mapping] Fix rigid mapping init
- #5960 [Mass] Add missing Vec2 template to DiagonalMass in the ObjectFactory
- #5956 [CI] Fix workflow that trigger conda-ci for devel conda packages
- #5942 [Collision] CompositeCollisionPipeline: add bwdInit for subcollision pipelines
- #5938 [Type] Default constructor zero-initialized
- #5918 [Testing] Modularize functions in ForceFieldTestCreation and add test of buildStiffnessMatrix
- #5907 [Type] Array/Vec: small refresh for modern C++
- #5904 [All] Security : memory management, destructors and al
- #5902 [All] Security: unsafe string operations
- #5885 [GitHub] Update install-nix-action to version 31
- #557 Example of a ForceField implemented with JAX
- #582 Fix code block indentation for createScene function
- #216 Use sofa-test-action
- #212 [mapping] BeamProjectionDifferenceMultiMapping: new feature and refactoring
- #100 [scripts] Adding RegressionHelper file with methods to write Error/Warning/Logs highlighted with colors
- #93 [scripts] Add option to load and compare old regression files
- #92 [scripts] Update SofaRegressionProgram to support both JSON and CSV format
- The sofa-test-action is now ready to be used/tested on your plugin CI. It is a reusable action that launches unit tests, scene tests and regression tests directly on your plugin for master commits and every PRs. It works on Ubuntu, MacOS and Windows. Here is an example PR adding the test to BeamAdapter : https://github.com/sofa-framework/BeamAdapter/pull/216 → Don't hesitate to try it out and give feedback !
- #5953 [HyperElastic] Enable the SelfAdjointEigenSolver in Ogden Let's update the regression tests → keep to review
- #5952 [Mapping] Introduce SubsetTopologicalMultiMapping with multiple topology inputs and one output Adding regression test is required + need a review from Alex → keep to review
- #5948 [Topology.Mapping] Support MeshTopology as output in Tetra2TriangleTopologicalMapping Let's wait from IT3D's reviews → keep to review
- #5947 [Topology.Mapping] Refactor Hexa2TetraTopologicalMapping to support MeshTopology output Let's wait from IT3D's reviews → keep to review
- #5946 [Topology] Add support for adding prism and pyramid elements in MeshTopology Let's wait from IT3D's reviews → keep t o review
- #5944 [Nix] Update cachix/install-nix-action version to v31 Nix is failing. Maybe a rebase after the merge of #5885 might fix → wip
- #5943 [Mapping] Fix rigid mapping init Let's wait for the CI → then ready
- #5942 [Collision] CompositeCollisionPipeline: add bwdInit for subcollision pipelines Let's waut for the CI → then ready
- #5939 [Type] Initialize Mat and Vec with random values → closed
- #5938 [Type] Default constructor zero-initialized Let's wait for the regression tests. → then ready
- #5937 [LinearSolver] Add unit test for SparseLDLLinearSolver Take comment into acocunt → wip
- #5936 [SpringForceField] Add stiffness matrix computation to JointSpringForceField Need more review for next meeting → keep to review
- #5935 [Constraint] Improve initialization and state validation in StopperLagrangianConstraint Finish discussion → keep to review
- #5934 [Core] Rename BaseObject to BaseComponent → ready
- #5928 [Project] Start dev phase v26.06 → ready
- #5921 [Type] Mat: better cache locality for operator*(Mat) → ready
- #5920 [Mass] Add unit test framework and tests for Mass components Need to fix crash on Ubuntu → wip
- #5918 [Testing] Modularize functions in ForceFieldTestCreation and add test of buildStiffnessMatrix Wait for more reviews → keep to review
- #5917 [Type] Fix type conversion in RGBAColor Fixes compilaiton on Windows but crashes on unix. → wip
- #5915 [Config] Runs clang-tidy on specific targets during the build Take comment into account → keep to review
- #5914 [Config] Introduce CMake function to treat compilation warnings as errors This has been broken by anopther PR. → wip
- #5907 [Type] Array/Vec: small refresh for modern C++ → ready
- #5905 [Lifecycle] v26.06 : SOFA_HEADER_DEPRECATED Need to fix Qt compilation → wip
- #5899 [Lifecycle] v26.06 : SOFA_ATTRIBUTE_DEPRECATED A PR on at least SoftRobots.Inverse is needed (some other plugins might fail) → wip
- #5885 [GitHub] Update install-nix-action to version 31 It fixes NIX so let's merge this → ready
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field Take review into account → keep to review
- #581 [CMake] Multi-Config: Avoid creating configuration-related folders for the python packages when building Let's wait for Alex to test this PR on Windows and see if it still fits him. → keep to review
- #573 [Controller] POC: overall speedup Wait for Damien's review → keep to review
- #572 Update cachix/install-nix-action to version 31 Nix still failing. We might need to relaunch it after the PR on SOFA has been merged. → keep to review
- #570 [RPyC] Add new exposed methods to SOFA server Wait for Damien's review → keep to review
- #567 Add python modules that uses the CGAL binding → ready
- #557 Example of a ForceField implemented with JAX Hugo need to double ckeck with Léo → keep to review
- #216 Use sofa-test-action → ready
- #215 [All] Lifecycle for v26.06 → ready
- #214 [ci] Fix Regression url zip for other releases, not on master → close
- #212 [mapping] BeamProjectionDifferenceMultiMapping: new feature and refactoring We should add either a description of the object in C++ or an example scene. → ready
- #273 [SofaGLFW] Add FPS in the title bar 30% Overhead using imgui instead of GLFW for the default scene (more for some other), wait for the screenshot → then ready
- #272 [Dependency] NFD: use the alias for nfd only if it exists → ready
- #269 Fix crashes when changing Mouse operation Let's try it. → keep to review
- #100 [scripts] Just add some color in the logs to highlight errors wait for comment to be taken into account → keep to review
- #93 [scripts] Add option to load and compare old regression files → ready
- #92 [scripts] Update SofaRegressionProgram to support both JSON and CSV format → ready
- #5925 [Mass] Fix kinetic energy in MeshMatrixMass when lumped
- #5913 [Config] Enable W4 option for MSVC
- #5911 [Ordering] Remove deprecated 'ordering' datafield
- #5910 [CI] Add action to trigger conda packages "nightly" builds
- #5929 [Helper] FileSystem::createDirectory: fix missing return warning
- #5931 [Framework] BaseMatrix:: Remove warnings about overloaded-virtual about add()
- #5888 [Lifecycle] v26.06 : SOFA_ATTRIBUTE_DISABLED
- #579 fix wrong parameter order in addDForce and addKToMatrix
- #578 Add bindings for prism and pyramid topology functions
- #577 ordering field is deprecated, use NaturalOrderingMethod instead
- #576 Redirect SOFA logs to Python's sys.stdout using a custom PythonMessageHandler
- #561 Clean getRecords in Timer module
- Update about TIRREX
- sofa-core library is now officially on the conda forge
- Another PR is pending on conda forge since 🎄
- RigidBodyDynamics plugin with a robotic hand
- Pixi CI
- Starting discussion about mapped mapped
- Presentation of Jupyter Notebook
- powerful tool to lean/teach SOFA
- work of an intern extended by Alex
- tests are added to check the notebook
- it would be nice to get an online version (using notebook.link from QwantStack or mybinder.org) avoiding installing SOFA. The solution using notebook.link requires a web-assembly compilation for this.
- #579 fix wrong parameter order in addDForce and addKToMatrix → ready
- #578 Add bindings for prism and pyramid topology functions → ready
- #577 ordering field is deprecated, use NaturalOrderingMethod instead Modify scene to follow depreciation → ready
-
#576 Redirect SOFA logs to Python's sys.stdout using a custom PythonMessageHandler
This could have be implemented in the
__init__of the module SofaRuntime for instance. Could be done in another PR. → ready - #573 [Controller] POC: overall speedup New changes made by Fred. Pending Damien's review, then ready → keep to review
- #572 Update cachix/install-nix-action to version 31 Changing version made the nix ci crash. → wip
- #567 Add python modules that uses the CGAL binding → ready
- #561 Clean getRecords in Timer module → ready
- #557 Example of a ForceField implemented with JAX If working as expected, let's get this merged. Examples of ForceFields are not extensive enough, we should work on this. Alex is working on a → keep to review
- #214 [ci] Fix Regression url zip for other releases, not on master CI is broken because of last commit → wip
- #212 [mapping] BeamProjectionDifferenceMultiMapping: new feature and refactoring Need real review during next week → keep to review
- #269 Fix crashes when changing Mouse operation Need to test if value entered are kept even without the static value → keep to review
- #100 [scripts] Just add some color in the logs to highlight errors Need real review during next week → keep to review
- #93 [scripts] Add option to load and compare old regression files Need real review during next week → keep to review
- #92 [scripts] Update SofaRegressionProgram to support both JSON and CSV format Need real review during next week → keep to review
- #344 [behavior] Rename epsilon by energyWeight Wait for #77 → keep to review
- #77 [solver-constraint] Rename epsilon by energyWeight Should rather use an homogeneous way to manage the lifecycle in all codes. Avoid the boiler plate code in the init. Paul will test this PR soon with his new sofa-test-action. Olivier will also take a look at the failing conda CI and update it with Pixi → keep to review
- #5945 [Simulation.Core] use
getNodeObjectsfor cleaner iteration over objects - #5877 [Type] Introduce function to compute the determinant of any square matrix
- #5940 [Type] Add unit tests for matrix default constructors
- #5932 [Framework] remove virtual keyword for final classes
- #5909 [Type] Mat: add unit tests and fix isDiagonal()
- #5903 [All] Security : nullptr checks
- #5901 [all] Security: fix overflows
- #5891 [Core] BaseObject: remove components from the slave list
- #5889 [Config] CMake: Shallow clone when using the git-fetch mechanism
- #5898 [all] Clean uncovered lifecycle codes
- #5892 [Lifecycle] v26.06 : SOFA_HEADER_DISABLED
- #5883 [script] replace bash script by Python
- #5841 [Collision] Introduce multi-staged collision pipeline
- #5916 CMake & Nix: add tight_inclusion
- #99 [scripts] Fix recursive node parsing was forgetting root and add option to test if MechanicalObject is mapped
- #98 [refs] rename all references files with new default name
- #96 [References] Add CompositeCollisionPipeline scenes
- Update of the release:
- binary created
- official publication will be done within the next 48h
- Presentation of Jupyter Notebook (postponed next week)
-
#5916 CMake & Nix: add tight_inclusion
- process to add a rockies dependency (Tight Inclusion)
- should be validated by STC
- researchers coding, not finished
- present in conda but cannot install properly : patch not in upstream (divergence between packages)
- symptomatic error : know what you miss
- define our relationship with the authors
- An evolution of the process of adding a dependency in the core is needed. To make sure every time a dependency is added we need to make sure every consequences are though of.
- target
SofaGTestMain- target to be linked against all targets for unit tests
- allow to init() and cleanup() before and after all tests
- install is not done usually since we do not distribute it
- libraries targets sorted in a folder
librariesdespite the commandset_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Sofa.Framework)- command
Sofa.Frameworkis useless : two contradictory intentions sofa_add_* (module/library/plugin) will do the sort, Sofa.Component will overwrite to sort into aSofa.Componentfolder - clarify this later
- command
-
#5891 [Core] BaseObject: remove components from the slave list
- if a component is overriding this function and not calling
super::cleanup() - the template method pattern would solve this
- if a component is overriding this function and not calling
-
#573 [Controller] POC: overall speedup
- We could have a review from Damien
- Need to take a dynamic change of the method into account (see pr comment)
-
#5938 [Type] Default constructor zero-initialized
- we had a component if not initialized (with no_init). This has been changed since #4396
- this went un-noticed due to the compilers we use
- we should initialize to zero by default, explicitly
- #5916 CMake & Nix: add tight_inclusion → ready
- #5911 [Ordering] Remove deprecated 'ordering' datafield Scene tests are falling → wip
- #5909 [Type] Mat: add unit tests and fix isDiagonal() → ready
- #5908 [Collision.Geometry] Use StateAccessor and Topology accessor Need time to fix it → keep to review
- #5907 [Type] Array/Vec: small refresh for modern C++ Remove stl version of inner product and accumulate because of a slow down in debug debug + add a comment → keep to review
- #5905 [Lifecycle] v26.06 : SOFA_HEADER_DEPRECATED Need to fix compilation → wip
- #5904 [All] Security : memory management, destructors and al → ready
- #5903 [All] Security : nullptr checks → ready
- #5902 [All] Security: unsafe string operations → ready
- #5901 [All] Security: fix overflows Remove wouldOverflowCompliance and use the hardening method → ready
- #5899 [Lifecycle] v26.06 : SOFA_ATTRIBUTE_DEPRECATED SoftRobots.Inverse needs an update → keep to review
- #5898 [all] Clean uncovered lifecycle codes → ready
- #5895 [Spring] Add empty buildStiffnessMatrix in JointSpringForceField Superseed by #5936 → close
- #5891 [Core] BaseObject: remove components from the slave list see technical discussions → ready
- #5889 [Config] CMake: Shallow clone when using the git-fetch mechanism → ready
- #5888 [Lifecycle] v26.06 : SOFA_ATTRIBUTE_DISABLED Take remarks into account then ready → keep to review
- #5885 [GitHub] Update install-nix-action to version 31 Merge 5916 then this one if nix green → keep to review
- #5883 [script] replace bash script by Python → ready
- #5877 [Type] Introduce function to compute the determinant of any square matrix → keep to review
- #5873 Quick test on current regression on the CI Would be a real plus to detect / warn when a test reference is not found → closed
- #5841 [Collision] Introduce multi-staged collision pipeline → ready
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes Waiting for a mesh to test → wip
- #557 Example of a ForceField implemented with JAX Another try should be done → keep to review
- #269 Fix crashes when changing Mouse operation Paul will test, then ready → keep to review
- #266 Show more information about SOFA → ready
- #99 [scripts] Fix recursive node parsing was forgetting root and add option to test if mechanicalObject is mapped Difference between current regression and new one with a error of 10^-7 with a threshold if 10^-8. Using json has been finally selected, versatile → keep to review
- #98 [refs] rename all references files with new default name → ready
- #79 [extlibs] fixes qpOASES libs conflict Integration of changes from the original repository of qpOASES. The use of the same BLAS version could also be an option. The use of ProxSuite could be the next way to go. Could be discussed at the next STC. → ready
- #5924 [Helper] Match ubuntu implementation of create dir for Windows
- #5926 [Type] Deprecated determinant for non-square matrices
- #5919 [Elastic] Load required plugin in test
- #5906 [all] Fix some compilation warnings
- #5900 [All] Security: malloc checks
- #5880 [CMake] Fix cmake error on already defined metis target
- #5879 [Tools] Fix windows postinstall
- #5871 [Lagrangian.Solver] UnbuiltConstraintSolver: Fix resetForUnbuiltResolution (constraint re-ordering)
- #5857 [helper/system] FileRepository: adds findAllFilesInRepository method
- #5923 [SofaMatrix] Rollback to metis 5.1.0
- #5927 [v25.12] Add changelog
- #575 include
sofa/core/fwd.hinstead of the forward declaration - #574 [Example] MessageHandler: fix mixed-up quote/doublequote
- #566 Generalize use of initRoot
- #556 Remove the implementation of getPathName as it is now in Sofa.Core.BaseData
- #569 Introduce an example of a custom message handler
- #571 Follow lifecycle v26.06 deprecated header : task
- #271 Remove some compilation warnings
- #270 Introduce widget for bounding box
- #267 Resize the plugins window the first use
- #265 Open documentation in context menu
- #264 move bool implementation in a dedicated file
- #97 [scripts] Fix support of REGRESSION_DIR env variable
- #88 [scripts] Add option to display reference state along the simulation to visually compare them
- #91 [scripts] Add filter to select scenes for regression detection
- Exceptionally the SOFA dev meeting took place on Friday afternoon
- v25.12 release should come before the end of January !
- Issue with Metis (see ##5878), the binaries are crashing in the Eigen support code for Metis when version is 5.2.1. Full debut mode is not helping analyzing the bug. The error stops when simulation speed decreases, thus possibly linked to multithreading. For the release, we suggest to roll-back to 5.1.0. Either the problem is in SOFA else we should signal the issue to mark the Conda package as broken. EigenSimplicialLDLT using Metis is crashing too. This would advocate that since SOFA + Eigen experience the issue, the problem origins in Metis.
- Blinking LCPForceFeedback_test #4671: rather than deactivating the test, we could investigate the number of iterations computed by the Gauss-Seidel in the LCPForceFeedback and decrease this number (+ update the reference values)
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field: this comes from the Elasticity plugin. Linear elasticity is introduced in two different classes : pure linear elasticity and co-rotational elasticity. PR is not finished yet. The component agnostic from the type of element is not yet added. Other features like test codes, benchmarks (in C++, in Python), the mass (not necessarily restricting to a tensor mass implementation, approximating non-simplex cases), plasticity are still present in the plugin.
- #5889 [Config] CMake: Shallow clone when using the git-fetch mechanism A ci-depends-on has been added in the PR description to test → keep to review
- #5888 [Lifecycle] v26.06 : SOFA_ATTRIBUTE_DISABLED Lifecycle has started, four PRs are open to remove and disable codes → keep to review
- #5885 [GitHub] Update install-nix-action to version 31 New dependencies appeared in SOFA (nholmann_json, tight_inclusion) however tight_inclusion is not yet distributed with Nix. → keep to review
- #5883 [script] replace bash script by Python Compilation issue, due to "unexpected character" → wip
- #5882 [FEM.Elastic] Introduce generic element-agnostic elastic FEM force field Need a thorough review from as many people as possible → keep to review
- #5880 [CMake] Fix CMake error on already defined Metis target Problem faced when compiling with various versions of Metis → ready
- #5879 [Tools] Fix windows postinstall Under Windows, few people were using the install process outside from the release → ready
- #5878 [tools] Remove autoload of Sofa.Metis for windows A new PR will be done to change the Metis version → closed
- #5877 [Type] Introduce function to compute the determinant of any square matrix Pending Paul's implementation → keep to review
- #5876 [Type] Remove non-square determinant PR is not to merge because since the deprecation layer is not implemented. Later a generic implement would be proposed. → wip
- #5875 [Lagrangian.Solver] UnbuiltConstraintSolver: implement hotstart Pending reply to reviews → keep to review
- #5873 Quick test on current regression on the CI This PR is a draft, adding two changes to check if the regressions are well caught. Before this was not caught, PR#98 has to be checked, reviewed and merged to fix regressions. → draft
- #5857 [helper/system] FileRepository: adds findAllFilesInRepository method → ready
- #5841 [Collision] Introduce multi-staged collision pipeline Pending Paul's review → keep to review
- #5822 [Spring] SpringForceField now handles configuration singularity Create test case reproducing the singular configuration. Investigate the role of regParams. Remove magic numbers and make it as data → wip
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes PR updated but a mesh would needed to actually test the PR → keep to review
- #5383 [MechanicalLoad] Factorize damping forcefields Scene tests failing → wip
- #5906 [all] Fix some compilation warnings
- #5827 [SofaCUDA] Apply new factory registration mechanism
- #5897 [StateContainer] Fix warning in MechanicalObjectVOp_test
- #5896 [ODESolver] Minor fix warning in NewtonRaphsonSolver_test
- #5894 [Core] Fix warning in CollisionModel
- #5886 [Mass] Remove wrong URL from doxygen
- #5884 [Core] Show closest matches only if any
- #5874 [CMake] Bump SOFA version v25.12.00
- #5869 [CMake] Remove CGALPlugin from supported plugins
- #556 Remove the implementation of getPathName as it is now in Sofa.Core.BaseData
- #569 Introduce an example of a custom message handler
- #571 Follow lifecycle v26.06 deprecated header : task
- #270 Introduce widget for bounding box
- #267 Resize the plugins window the first use
- #265 Open documentation in context menu
- #264 move bool implementation in a dedicated file
- #261 Fix ImGui DPI scaling by using DPI-scaled fonts and removing inverse global scaling
- #91 [scripts] Add filter to select scenes for regression detection
- #90 [scripts] Add description for the input argument
- #89 [scripts] error message if directory not exist
- v25.12 release should come before the end of January !
- The consortium will take part to a workshop on simulation @ICRA2026, thanks to Ziqiu Zeng at NUS!
-
#5878 [tools] Remove autoload of Sofa.Metis for windows
- Couple of scenes are crashing due to metis, only occurring on Windows. It might take time to fix it, that's the reason why the suggestion is to remove it from autoload
- The bug does not occur with Pixi
- Ideas to investigate
- Test binaries from Pixi and investigate the Pixi patch
- Try the release without CGAL to see if it solves the issue
- OrderingMethod for a direct solver is a property hidden to user, which is based on a plugin (Metis) by default if one is found. We could find an alternative Scotch
-
#5869 [CMake] Remove CGALPlugin from supported plugins
- Half of Ubuntu compilations fails due to CGAL plugin memory issues
- Only MeshGenerationFromImage is a valuable code from the plugin, the rest has equivalent in Python
-
#5875 [Lagrangian.Solver] UnbuiltConstraintSolver: implement hotstart
- Hotstart for unbuilt constraint solver
- Performance drop when using UnbuildConstraintSolver instead of LCPConstraintSolver
- Let's make a deeper review on this pr now we know that it has been generated by AI
- Part of this work was partially generated from an AI, how to manage such AI-generated codes: define a flag "pr: ai-generated" to notify reviewers
- Jacobi could also undergo the same changes (see with Paul)
-
#94 Running SofaRegressionProgram on SOFA /examples directory
- 20 out of 67 regressions are actually tested (30 are not tested, and warning silently)
- Name of the MechanicalObject is used to generate the state export. However. The default name was "MObject" and it has been updated to "MechanicalObject", the CompareState did not find the reference (without throwing a warning/error as stated in #45)
- We also need tom implement other metrics in the next python script for regression because the current way of doing it accumulated errors during the simulation. So very clone behavior might break the regression.
- #261 Fix ImGui DPI scaling by using DPI-scaled fonts and removing inverse global scaling Review needed but conflicts to solve first → keep to review
- #93 [scripts] Add option to load and compare old regression files Wip because a difference with old references (check on mapped MechanicalObject) → wip
- #92 [scripts] Update SofaRegressionProgram to export in CSV format The version of the RegressionProgram could be added, regarding backward compatibility. Why not keeping both (csv and json) but then we might face issues of coherency, compatibility. Lucas is working on comparing serialized exports from SOFA. This could be extended to the regression. → keep to review
- #91 [scripts] Add filter to select scenes for regression detection Add an example, then ready → keep to review
- #90 [scripts] Add description for the input argument → ready
- #88 [scripts] Add option to display reference state along the simulation to visually compare them Using Python, a check could be added to export and compare framebuffers in order to test visual models. Some reviews → keep to review
- #5872 [tools] Remove Sofa.Qt from autoload
- #5851 [Helper::Utils] Add method to be able to manually set SOFAPathPrefix to override getExecutablePath if SOFA_ROOT is not set
- #5865 [Helper] Add a quiet option for testing methods
- #5862 [GL] Modify the FFMPeg recorder to be able to use it in SofaGLFW
- #5870 [GL] Deal with non existing path for ffmprg in VideoRecorderFFMPEG
- #5868 [CMake] Remove SofaViscoElastic from supported plugins
- #5867 [Helper] FileSystem: (really) fix compilation on macOS
- #5866 [Helper] Fix compilation
- #5852 [Core] Support generic drawing of edges and quads
- #5850 [Geomagic] Fix crash when drawDevice is set to true and add option to log haptic thread speed
- #5861 [FEM] Less calls to getValue
- #5798 [FileSystem] Add openFileWithDefaultApplication method
- #263 Patch install path for ini
- #262 Use Sofa/GL VideoRecorderFFMPEG
- #260 Fix saving of settings.ini
- #256 Hide non-public interface
- #255 Allow user to close the Selection window
- #259 First context menu in the scene graph
- #257 Improve UX of tables of Vec
- #258 Introduce SOFA clang-format file
- Awards : discuss format
- either two prizes for the two-best contributions
- or one prize for the best contribution and one for the best SW26 presentation
Discussion concluded on the fact that we would need clear criteria also for the presentation but it is a good idea if it helps us to save time and if it helps people into making a presentation
- #5862 [GL] Modify the FFMPeg recorder to be able to use it in SofaGLFW → The current binaries are not compatible with the latest LTS. We need to take the link to FFMPEG libs out of the linking. This PR uses the 'old way' used with Qt based using the executable.
- Claude coding agent for SOFA is really powerful
- #5862 [GL] Modify the FFMPeg recorder to be able to use it in SofaGLFW → see technical discussion
- #5861 [FEM] Less calls to getValue → ready
- #5857 [helper/system] FileRepository: adds findAllFilesInRepository method Some comments about code refactoring (lambda) → keep to review
- #5850 [Geomagic] Fix crash when drawDevice is set to true and add option to log haptic thread speed → ready
- #5841 [Collision] Introduce multi-staged collision pipeline → wip
- #5837 [GitHub] Add write permissions to filter_build job → wip
- #5827 [SofaCUDA] Apply new factory registration mechanism Wait for a short review then ready. → keep to review
- #5822 [Spring] SpringForceField now handles configuration singularity → consortium will take over the PRs
- #5821 [IO] Update MeshVTKLoader so that it can read polydata description of meshes → consortium will take over the PRs
- #5798 [FileSystem] Add openFileWithDefaultApplication method This new API is not used (yet) in SOFA / SOFAGLFW (could be possibly added further to SofaGLFW#259) → ready
- #561 Clean getRecords in Timer module PR cleans the code. Hugo will test it → keep to review
- #557 Example of a ForceField implemented with JAX Seems to work for Paul, to be tested by others → keep to review
- #262 Use Sofa/GL VideoRecorderFFMPEG → see technical discussion
- #261 Fix ImGui DPI scaling by using DPI-scaled fonts and removing inverse global scaling Fonts size was not updated properly depending on the screen resolution. This PR has to be tested → keep to review
-
#260 Fix saving of settings.ini
Each time runSofa is launched, a folder imgui is created in the current dir which shouldn't be the case, it should use the config path. This PR fixes it.
→ ready - #259 First context menu in the scene graph We could already add 'find in doc' of 'find in files' menu. → ready
- #258 introduce SOFA clang-format file Such clang format files do not apply on all repositories, but only SOFA. We should possibly add them on all repositories → ready
- #257 Improve UX of tables of Vec Maybe change the magic number 8.5 and make it dynamic. Then ready → keep to review, then ready
- #88 [scripts] Add option to display reference state along the simulation to visually compare them Based on #69, allows to visualize the references for debug. → keep to review
- #69 New regression in python Put back the python version of regression test on the table. We need to switch from the executable to this version. Let's merge this along the existing regression code to test it. → ready
- #160 [forcefield] BeamHookeLawForceField: implements buildStiffnessMatrix → keep to review
- #159 Rewrite the force transfer of applyJT functions in the DiscreteCosserat mapping → wip
- #5814 [Type] Add optional support for mimalloc
- #5860 [Core] DrawMesh: Fix assertion
- #5825 [all] add namespace to all BaseObject relying on using declarations
- #5855 [GUI] Invalidate static dangling pointer
🎉 Happy new year 2026!
The SOFA core developers wish you a healthy and successful year 2️⃣ 0️⃣ 2️⃣ 6️⃣ ✨
- Discover all SOFA events for 2026
- Awards 2026 competition will be open thorough the year!
- Change of visio link (no more Webex)
- Release update
- work on plugins
- OOT compilation of plugins is tested (most PR are even merged)
- SofaPython3 fails on MacOS for stub-generation
- SoftRobots.Inverse fails for Conda CI : nightly due to tight-inclusion
- ffmeg dependency must be distributed for Windows and fixed on other os
- work on plugins
- Update on the project Template Method design pattern
- many PRs opened
- test of all PRs will be merged for test in one branch
- remaining task : BaseObject
- Parallelism in Elasticity plugin
- The code uses a std::for_each using a ExecutionPolicy
- Provides a generic implementation for both parallel and sequential policies
- std policies are really faster than our task scheduler
- compiler support is still an issue : MacOS does not support the feature at all so far (installing tbb and possibly forcing the sequential execution on MacOS could be done)
- comparison with TaskFlow would help to benchmark to evaluate if it makes sense to replace the TaskScheduler with TaskFlow
- Viser visualization: viser.studio
- OSQP has been reimplemented in ProxSuite
- ProxSuite reimplements it for comparison and benchmark purposes (dense system mostly)
- mim_solvers
-
#5841 [Collision] Introduce multi-staged collision pipeline
- Presented at the STC
- Allow to have different collision pipelines in a scene
- Issue : all links are explicit, and linking possibly on a not-yet created object
- Should implement an inheritance between multi and CollisionPipeline which is a special case of multi that have only one SubCollisionPipeline
- Might be good to rename Multi into Composite
- Remove the sorting of pipeline regarding the alarm distance
- Problem of thread safetiness on response creation inside of the Barycentric mappers
-
#5814 [Type] Add optional support for mimalloc
- so far the option is added, but OFF by default
- if distributed through Pixi, the VM (Ubuntu + MacOS) could activate it later
-
#5851 [Helper::Utils] Add method to be able to manually set SOFAPathPrefix to override getExecutablePath if SOFA_ROOT is not set
Needed to specify the location of
sites-packagesdepending onSOFA_ROOT→ ready
- #557 Example of a ForceField implemented with JAX Need local discussion with Leo → keep to review
- #215 Minimal description of the SpringForceField component Suggestion done → keep to review
- #207 For Linux distribution since Ubuntu 21.04 a warning is displayed during installation The issue should now be fixed, let's give a try on v25.12 release (upcoming!) → postponed
- #256 Hide non-public interface Significant refactoring to hide non-public interfaces, which is required for conda. The question of having private and public header on the project and or on the plugins only has been discussed, no agreement has been reached. Symbol export should be investigated. → ready
- #255 Allow user to close the Selection window Paul is tested then ready → keep to review
- #160 [forcefield] BeamHookeLawForceField: implements buildStiffnessMatrix Implementation looks fine and generic. It should maybe be tested instantiated in Vec6. This PR made us notice that the entire class needs some cleaning for Vec6. → keep to review
- #159 Rewrite the force transfer of applyJT functions in the DiscreteCosserat mapping → keep to review
- #5853 [Helper] Add default constructor for iota_iterator
- #5839 [SceneChecking] Collision: new checker on the presence of a pipeline and models
- #5824 [Core] Introduction of TopologyAccessor
- #5844 [Container.Grid] SparseGridTopology: Fix dangling reference
- #5847 [SolidMechanics.Spring] Cleaning in SpringForceField
- #5842 [AnimationLoop] Deprecated ConstraintAnimationLoop
- #5782 [Visual] Introduce generic visualization of mesh
- #5843 [Lagrangian.Solver] Replace raw pointers by unique_ptr for GenericConstraintProblem
- #5846 [applications] Change remote version for fetched plugins