Skip to content

[Collision] Introduce multi-staged collision pipeline#5841

Merged
hugtalbot merged 29 commits intosofa-framework:masterfrom
fredroy:add_multi_pipeline
Feb 5, 2026
Merged

[Collision] Introduce multi-staged collision pipeline#5841
hugtalbot merged 29 commits intosofa-framework:masterfrom
fredroy:add_multi_pipeline

Conversation

@fredroy
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Contributor Author

fredroy commented Jan 27, 2026

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

@sofabot
Copy link
Copy Markdown
Collaborator

sofabot commented Jan 27, 2026

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

To unlock the merge button, you must

@sofabot
Copy link
Copy Markdown
Collaborator

sofabot commented Jan 27, 2026

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

To unlock the merge button, you must

@sofabot
Copy link
Copy Markdown
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
Copy Markdown
Collaborator

sofabot commented Feb 2, 2026

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

To unlock the merge button, you must

@fredroy fredroy force-pushed the add_multi_pipeline branch from 4f048ad to 3ac2add Compare February 4, 2026 02:29
@sofabot
Copy link
Copy Markdown
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 <alxbilger@users.noreply.github.com>
@sofabot
Copy link
Copy Markdown
Collaborator

sofabot commented Feb 4, 2026

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

To unlock the merge button, you must

@sofabot
Copy link
Copy Markdown
Collaborator

sofabot commented Feb 4, 2026

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

To unlock the merge button, you must

@alxbilger alxbilger added pr: status ready Approved a pull-request, ready to be squashed and removed pr: status to review To notify reviewers to review this pull-request labels Feb 5, 2026
@sofabot
Copy link
Copy Markdown
Collaborator

sofabot commented Feb 5, 2026

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

To unlock the merge button, you must

@hugtalbot
Copy link
Copy Markdown
Contributor

[ci-build]

@sofabot
Copy link
Copy Markdown
Collaborator

sofabot commented Feb 5, 2026

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

All dependencies are merged/closed. Congrats! 👍

@hugtalbot hugtalbot merged commit 19375d3 into sofa-framework:master Feb 5, 2026
13 of 18 checks passed
@hugtalbot hugtalbot deleted the add_multi_pipeline branch February 5, 2026 15:46
@hugtalbot
Copy link
Copy Markdown
Contributor

Hey @fredroy
Do you agree saying that PipelineImpl could be deprecated ?

@bakpaul
Copy link
Copy Markdown
Contributor

bakpaul commented Apr 9, 2026

Removed

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 ready Approved a pull-request, ready to be squashed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants