Comments (4)
I am not sure if you mean can the toolkit completely perform codimensional FEM simulations like in the CIPC paper, or if the toolkit has the necessary components to implement CIPC?
This code base includes the necessary components in order to add the IPC's frictional contact model to a simulation pipeline. This includes computing the barrier potentials, smooth friction dissipative potential, and performing CCD. What the toolkit does not have is the FEM components necessary to implement codimensional FEM (FEM basis, elasticity models, and optimization framework for time-stepping).
That being said, this toolkit contains most of the components shown in the CIPC paper.
Implemented
These features from the CIPC paper are already implemented.
- Support for codimensional triangle-triangle, triangle-edge, triangle-point, edge-edge, and edge-point (in 2D) frictional contact.
- This is sufficient for standard IPC and a lot of CIPC, but misses some types of contact (see below)
- The IPC thickness model (i.e.,
$\xi$ offset in the barrier potential) - CCD between codimensional triangle-triangle, triangle-edge, triangle-point, edge-edge, and edge-point (in 2D)
- This is using the Tight-Inclusion CCD method for guaranteed conservative CCD under floating-point
- Thickness offset in the CCD
- This is handled through Tight-Inclusion's minimum separation CCD.
Missing Features
The following components are missing, but could be easily added (I am happy to add them).
- Support for codimensional edge-point (in 3D) and point-point contact.
- These are important for contacts between codim. edges with codim. points and for contacts between particles (like in Fig. 22 "Granules on cloth" of the CIPC paper)
- Strain limiting
- This is more on the side of FEM but could be added to the toolkit. My only concern is it is a little out of scope.
- CCD for contacts between edge-point (in 3D) and point-point contact
- I believe we can add these using Tight-Inclusion CCD
- Additive CCD
- Instead we choose to use Tight-Inclusion because of its guarantees
from ipc-toolkit.
Thanks so much. My main interest is having a more robust discrete elastic rod framework than is currently implemented in Co-IPC. Eventually, I would want to be able to simulate rods interacting with a deformable solid geometry. Co-IPC gets 75% of the way there as currently written, but the implementation of rod physics is limited (only considers bending and rods that are straight in their stress-free configuration). I'm not a developer, so I'm just trying to determine the path of least resistance given my skills. Any plans to bring discrete elastic rods to polyfem (hint, hint). ;-) Seriously though, your work is amazingly impressive and appreciated! Thank you for bringing these tools to the public.
from ipc-toolkit.
Thank you for your nice comments. Adding shell and rod models to PolyFEM is something I have wanted to play with for a while, but I don't have a research project that motivates implementing it. I think it will eventually be implemented, but no timeline right now.
from ipc-toolkit.
Small update: #22 added the thickness offset in the CCD.
from ipc-toolkit.
Related Issues (16)
- issue in distance_type.tpp HOT 3
- std::array issue HOT 2
- EdgeEdgeConstraint distance gradient crash HOT 1
- Questions regarding RigidIPC and GPU CCD HOT 1
- Clarify dimensions of matrix inputs HOT 3
- Slightly confusing documentation for CollisionMesh HOT 4
- Shallow checkout with FetchContent may fail if tag is not HEAD HOT 4
- Control threading behavior HOT 3
- Unexpectedly slow CCD HOT 13
- Consider changing naming convention to indicate squared distances HOT 3
- Possibly inconsistent results for convergent formulation with respect to dhat? HOT 2
- Average body mass in IPC-toolkit vs average lumped nodal mass in IPC HOT 4
- Basic example of initialization and simulation loop HOT 2
- Closed-form expressions for the Distance Gradients / Hessians HOT 1
- Possible Bug in the Definition of the Hash Structure HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ipc-toolkit.