Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding new plugins to base Slicer-SOFA #30

Open
RafaelPalomar opened this issue Dec 12, 2024 · 5 comments
Open

Adding new plugins to base Slicer-SOFA #30

RafaelPalomar opened this issue Dec 12, 2024 · 5 comments

Comments

@RafaelPalomar
Copy link
Collaborator

RafaelPalomar commented Dec 12, 2024

🎯 Proposal to Expand Slicer-SOFA Default Plugins

After discussing with @bakpaul , we've identified several SOFA plugins that would greatly enhance Slicer-SOFA out-of-the-box. These plugins introduce advanced modeling capabilities, which can be particularly beneficial for medical simulation scenarios.

🔧 Candidates for Inclusion

  1. BeamAdapter (LGPL)

    • Use Case: 📐 Simulation of 1D flexible structures (e.g., catheters).
    • Why It’s Useful: Perfect for minimally invasive procedures, like guidewire simulations in surgical planning and training.
  2. Registration (Q License)

    • Use Case: 🎯 Precise registration of models within a scene.
    • Status: ❌ Not included due to licensing constraints.
    • Status: Included as license changed to LGPL.
  3. CGALPlugin (GPL)

    • Use Case: 🏗️ Advanced 3D tetrahedral mesh generation for complex geometries.
    • Status: ❌ Not included due to GPL licensing.
  4. Shell (LGPL)

    • Use Case: 🐚 Simulation of thin, flexible surfaces with bending rigidity (e.g., organ capsules, metal plates).
    • Why It’s Useful: Enhances realism by reinforcing surface integrity and supporting biomechanical modeling of soft tissues.

⚖️ Licensing Considerations

  • Excluded:

    • Registration (Q License)
    • CGALPlugin (GPL)

    These plugins cannot be bundled by default due to their restrictive licenses.

  • Included:

    • BeamAdapter (LGPL)
    • Shell (LGPL)

    Both are under LGPL, making them suitable for inclusion and distribution. Their functionalities align well with medical training and research scenarios, especially for simulating catheters and reinforcing organ surfaces.

🚀 Next Steps

  • Confirm suitability of BeamAdapter and Shell for inclusion.
  • Consider documentation and examples to help users get started.

By incorporating BeamAdapter and Shell into Slicer-SOFA’s default setup, we can enhance the capabilities of Slicer-SOFA, offering more realistic and versatile simulation tools right out of the box.

@lassoan
Copy link
Collaborator

lassoan commented Dec 12, 2024

Running the simulation in a separate process would prevent the viral license to spread to the Slicer application, which would allow using SOFA in commercial applications with GPL plugins. It is good to have the option of running the simulation in the same process, but it would be useful to be able to run it in a separate process, too.

@lassoan
Copy link
Collaborator

lassoan commented Dec 12, 2024

In the long term, https://github.com/BrunoLevy/geogram could be used instead of CGAL.

Registration plugin developer could be asked to change the license to permissive. By now he probably realized that the restrictive license does not do him any good (nobody goes to him to buy a commercial license) while it has clear disadvantages. There may be also many registration librariesthat could be used to reimplement a similar plugin with permissive license.

@pieper
Copy link
Member

pieper commented Dec 12, 2024

If we can just distribute an wrapper, like we do for ffmpeg, and require the user to download and install the GPL parts then we are safe. But to be on the safe side we can't build/distribute GPL code even if it will be running in a separate process.

@bakpaul
Copy link
Contributor

bakpaul commented Dec 13, 2024

I agree with @lassoan on the fact that multiprocess execution must still be in sight of every development, simulation by its nature is crash prone and take a lot of computing time. To enhance hte user experience, we need to target such soft.

We are the maintainers of Registration, I'll take a look on what is making it GPL and how to solve this ! Maybe we cans add it too at one point !

@bakpaul
Copy link
Contributor

bakpaul commented Dec 16, 2024

Here it is : sofa-framework/Registration#18 Registration is now LGPL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

4 participants