-
Notifications
You must be signed in to change notification settings - Fork 39
Offset Geometric Contact #192
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
Conversation
…n Candidates class
- Introduced CollisionSetType enum to manage different collision strategies: IPC, IMPROVED_MAX_APPROX, and OGC. - Updated NormalCollisions and NormalCollisionsBuilder to utilize the new collision set type. - Replaced deprecated methods related to improved max approximator with the new collision set type methods. - Enhanced collision building logic to accommodate the new OGC strategy. - Updated tests to validate behavior across different collision set types.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #192 +/- ##
==========================================
- Coverage 97.42% 97.38% -0.05%
==========================================
Files 153 157 +4
Lines 23917 24240 +323
Branches 804 844 +40
==========================================
+ Hits 23301 23605 +304
- Misses 616 635 +19
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 39 out of 42 changed files in this pull request and generated 6 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
…ions in collision_mesh.cpp; remove unused assertions in normal_collisions_builder.cpp and clean up test_barrier_potential.cpp
…rtions in OGC tests
…and implement unit tests for TrustRegion functionality
…isions_builder.hpp
- Included TinyAD in the list of dependencies with a brief description. - Specified the license type (MIT) and provided a link to the GitHub repository.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 74 out of 77 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Description
Implementation of "Offset Geometric Contact" [Chen et al. 2025].
Details
This PR implements the Offset Geometric Contact (OGC) algorithm [Chen et al. 2025], a penetration-free contact model that replaces continuous collision detection (CCD) with a trust-region-based approach.
1. Core Library (
src/ipc/ogc/)ipc::ogcto encapsulate OGC-specific functionality.TrustRegionclass (trust_region.hpp,trust_region.cpp) to manage per-vertex conservative bounds.warm_start_time_stepto initialize the trust region and handle initial predictions.filter_stepto scale optimization steps ensuring vertices stay within safe bounds.updateandupdate_if_neededto dynamically resize trust regions based on motion.feasible_region.hppandfeasible_region.cppcontaining geometric predicates (e.g.,check_vertex_feasible_region,is_edge_edge_feasible) to verify if primitives are within valid non-penetrating regions.2. Python Bindings (
python/src/ogc/)ipctk.ogcmodule.TrustRegionand related classes, allowing seamless integration with Python-based optimization loops.3. Documentation (
docs/)docs/source/tutorials/ogc.rst) explaining:NormalCollisionsfor OGC.TrustRegionclass into a simulation loop (C++ and Python).docs/source/conf.pyto support new documentation features.4. Build System
ogcsource directory and dependencies.tsl::robin_mapandabsl::hashas private dependencies in CMake. Update the dependency documentation accordingly.SpatialHashto PImpl idiom to hidetsl::robin_mapandabsl::hashfrom the public API.Key Implementation Details
TrustRegion::filter_stepscales the descent directionType of change