10-06-2026, 02:36 PM
(This post was last modified: 19-06-2026, 07:52 AM by josemendez.)
Hi,
This won't work at all. Pinholes are designed for velocity-level coupling between particles and rigidbodies, won't work for coupling particles to particles at a positional level. Plus pinholes are by definition a single point in space, while a suture thread is constrained to path inside a volume.
You'll need to implement your own position constraint for this, since this kind of constraint isn't offered by Obi out of the box.
Judging from fig 19 in the paper you linked, they've clearly generated the softbody using a cubic hexahedral lattice, likely to be able to express the suture path positions as a function of particle positions using barycentric coordinates on the faces of tetrahedrons. This makes the problem locally tractable, as deformation due to the suture is limited to the interaction between a 2-simplex (2 contiguous particles in the rope) and a 4-simplex (a tetrahedron, part of the hexahedral lattice). As a result you can express the suture as a positional constraint than constrains a point on a 2-simplex to a point on a 4-simplex leaving only one DOF (along the 2-simplex) possibly modulated by a user-defined friction coefficient between both that determines how easy it is for the thread to slide trough. This article details a similar approach: https://onlinelibrary.wiley.com/doi/abs/...2/cav.1940
Obi's default unstructured cluster-based approach to softbody blueprint generation wouldn't work in this case either since you can't easily parametrize the volume/surface of the softbody using it. You'll need to generate hexahedra instead. A simple approach is to voxelize the mesh (Obi's default blueprint implementation already does this) and then build exactly 6 clusters with 4 particles each from each voxel.
As you slide the rope trough the hexahedral face, you'll need to move the constraint to adjacent 2-simplices. Using Obi's built-in elements for this is good idea, as their relative order along the rope is guaranteed.
This is in no way a small task to tackle. Let me know if you need further help,
kind regards,
Quote:I have setup that when the needle punctures the tissue it connects to the nearest traingle and attaches a gameobject for the entrance and exit points. Then, when the rope passes through the tissue, it creates pinholes so that the thread passes through the tissue.
This won't work at all. Pinholes are designed for velocity-level coupling between particles and rigidbodies, won't work for coupling particles to particles at a positional level. Plus pinholes are by definition a single point in space, while a suture thread is constrained to path inside a volume.
You'll need to implement your own position constraint for this, since this kind of constraint isn't offered by Obi out of the box.
Judging from fig 19 in the paper you linked, they've clearly generated the softbody using a cubic hexahedral lattice, likely to be able to express the suture path positions as a function of particle positions using barycentric coordinates on the faces of tetrahedrons. This makes the problem locally tractable, as deformation due to the suture is limited to the interaction between a 2-simplex (2 contiguous particles in the rope) and a 4-simplex (a tetrahedron, part of the hexahedral lattice). As a result you can express the suture as a positional constraint than constrains a point on a 2-simplex to a point on a 4-simplex leaving only one DOF (along the 2-simplex) possibly modulated by a user-defined friction coefficient between both that determines how easy it is for the thread to slide trough. This article details a similar approach: https://onlinelibrary.wiley.com/doi/abs/...2/cav.1940
Obi's default unstructured cluster-based approach to softbody blueprint generation wouldn't work in this case either since you can't easily parametrize the volume/surface of the softbody using it. You'll need to generate hexahedra instead. A simple approach is to voxelize the mesh (Obi's default blueprint implementation already does this) and then build exactly 6 clusters with 4 particles each from each voxel.
As you slide the rope trough the hexahedral face, you'll need to move the constraint to adjacent 2-simplices. Using Obi's built-in elements for this is good idea, as their relative order along the rope is guaranteed.
This is in no way a small task to tackle. Let me know if you need further help,
kind regards,

