Skip to content

[Collision] Introduce multi-staged collision pipeline#5841

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

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

Conversation

@fredroy

@fredroy fredroy commented Dec 23, 2025

Copy link
Copy Markdown
Contributor

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

fredroy commented Dec 24, 2025

Copy link
Copy Markdown
Contributor Author

[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

fredroy commented Jan 22, 2026

Copy link
Copy Markdown
Contributor Author

[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

fredroy commented Jan 27, 2026

Copy link
Copy Markdown
Contributor Author

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

@sofabot

sofabot commented Jan 27, 2026

Copy link
Copy Markdown
Collaborator

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

To unlock the merge button, you must

@sofabot

sofabot commented Jan 27, 2026

Copy link
Copy Markdown
Collaborator

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

To unlock the merge button, you must

@sofabot

sofabot commented Jan 27, 2026

Copy link
Copy Markdown
Collaborator

[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

sofabot commented Feb 2, 2026

Copy link
Copy Markdown
Collaborator

[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

sofabot commented Feb 4, 2026

Copy link
Copy Markdown
Collaborator

[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

sofabot commented Feb 4, 2026

Copy link
Copy Markdown
Collaborator

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

To unlock the merge button, you must

@sofabot

sofabot commented Feb 4, 2026

Copy link
Copy Markdown
Collaborator

[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

sofabot commented Feb 5, 2026

Copy link
Copy Markdown
Collaborator

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

To unlock the merge button, you must

@hugtalbot

Copy link
Copy Markdown
Contributor

[ci-build]

@sofabot

sofabot commented Feb 5, 2026

Copy link
Copy Markdown
Collaborator

[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

bakpaul commented Apr 9, 2026

Copy link
Copy Markdown
Contributor

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