Skip to content

[Collision] Introduce multi-staged collision pipeline#5841

Open
fredroy wants to merge 28 commits intosofa-framework:masterfrom
fredroy:add_multi_pipeline
Open

[Collision] Introduce multi-staged collision pipeline#5841
fredroy wants to merge 28 commits intosofa-framework:masterfrom
fredroy:add_multi_pipeline

Conversation

@fredroy
Copy link
Contributor

@fredroy fredroy commented Dec 23, 2025

Based on

Add the ability to have multiple collision pipeline in a scene, instead of one monolithic pipeline (presented at the STC20)
This allows a lot of things:

  • group collision model with {alarm,contact} distances (can mitigate some tunneling-effect artifacts during collisions)
  • different response for a group of models (not tested)
  • mix different type of intersections
  • easily add custom pipelines
  • maybe more

It adds a warning if no collision model are handled by any pipeline.

This PR also adds a not-an-alias for CollisionPipeline similar to BruteForceDetection, but in this case I would not deprecate it and would be more seen as a convenience for most users, as the whole Multi + Sub collision pipeline is quite verbose in the end. And the former CollisionPipeline was doing a lot of things implicitly.

EDIT: with this, PipelineImpl is not used anymore (and has ... a dubious implementation by the way)

[with-all-tests]

[ci-depends-on https://github.com/sofa-framework/Regression/pull/96]

EDIT2: examples for a showcase
w/o Composite Pipeline [same collision distance, the 2nd sphere cannot go through]
demo_composite_pipeline_none

w/ Composite Pipeline [different collision distances, the 2nd case has a smaller one so the sphere can go through]
demo_composite_pipeline


By submitting this pull request, I acknowledge that
I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).


Reviewers will merge this pull-request only if

  • it builds with SUCCESS for all platforms on the CI.
  • it does not generate new warnings.
  • it does not generate new unit test failures.
  • it does not generate new scene test failures.
  • it does not break API compatibility.
  • it is more than 1 week old (or has fast-merge label).

@fredroy fredroy added pr: status to review To notify reviewers to review this pull-request pr: new feature Implement a new feature pr: highlighted in next release Highlight this contribution in the notes of the upcoming release topic for next dev-meeting PR to be discussed in sofa-dev meeting labels Dec 23, 2025
@fredroy
Copy link
Contributor Author

fredroy commented Dec 24, 2025

[ci-build][with-all-tests]

@hugtalbot hugtalbot added this to the v26.06 milestone Jan 5, 2026
@hugtalbot hugtalbot removed the topic for next dev-meeting PR to be discussed in sofa-dev meeting label Jan 13, 2026
@fredroy fredroy added pr: status wip Development in the pull-request is still in progress and removed pr: status to review To notify reviewers to review this pull-request labels Jan 22, 2026
@fredroy fredroy force-pushed the add_multi_pipeline branch from 9518785 to add0b08 Compare January 22, 2026 04:08
@fredroy
Copy link
Contributor Author

fredroy commented Jan 22, 2026

[ci-build][with-all-tests]

@fredroy fredroy added pr: status to review To notify reviewers to review this pull-request and removed pr: status wip Development in the pull-request is still in progress labels Jan 22, 2026
@fredroy
Copy link
Contributor Author

fredroy commented Jan 27, 2026

[ci-build][with-all-tests]

@sofabot
Copy link
Collaborator

sofabot commented Jan 27, 2026

[ci-depends-on] detected during build #15.

To unlock the merge button, you must

@sofabot
Copy link
Collaborator

sofabot commented Jan 27, 2026

[ci-depends-on] detected during build #16.

To unlock the merge button, you must

@sofabot
Copy link
Collaborator

sofabot commented Jan 27, 2026

[ci-depends-on] detected during build #17.

To unlock the merge button, you must

@hugtalbot hugtalbot requested a review from bakpaul January 30, 2026 15:32
@fredroy fredroy force-pushed the add_multi_pipeline branch from e1b30ab to 4f048ad Compare February 2, 2026 04:15
@sofabot
Copy link
Collaborator

sofabot commented Feb 2, 2026

[ci-depends-on] detected during build #18.

To unlock the merge button, you must

fredroy and others added 22 commits February 4, 2026 11:29
…t/collision/detection/algorithm/MultiCollisionPipeline.h

Co-authored-by: Paul Baksic <[email protected]>
…t/collision/detection/algorithm/CollisionPipeline.cpp - add assertion

Co-authored-by: Alex Bilger <[email protected]>
@fredroy fredroy force-pushed the add_multi_pipeline branch from 4f048ad to 3ac2add Compare February 4, 2026 02:29
@sofabot
Copy link
Collaborator

sofabot commented Feb 4, 2026

[ci-depends-on] detected during build #19.

To unlock the merge button, you must

…t/collision/detection/algorithm/CollisionPipeline.cpp (update msg)

Co-authored-by: Alex Bilger <[email protected]>
@sofabot
Copy link
Collaborator

sofabot commented Feb 4, 2026

[ci-depends-on] detected during build #20.

To unlock the merge button, you must

@sofabot
Copy link
Collaborator

sofabot commented Feb 4, 2026

[ci-depends-on] detected during build #21.

To unlock the merge button, you must

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

Labels

pr: highlighted in next release Highlight this contribution in the notes of the upcoming release pr: new feature Implement a new feature pr: status to review To notify reviewers to review this pull-request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants