View Full Version : nCloth suturing

04 April 2008, 07:07 PM

I'm working on an animation to demonstrate a particular surgical procedure that involves suturing tissue together (the a torn iris). I would like to use nCloth to simulate the suture itself (the thread), as well as the iris under repair. What I am struggling with right now is how to use constraints in such a way that will allow the suture thread pass and slide through the iris material and pull the tissue at these points. Imagine a long wound that needs to be sewn along its length and when tightened the edges of the wound are drawn together. The suture must be made with one length of thread (rather than a series of small threads along the wound).

Any ideas, or any analogous non-medical challenges that you have solved somehow?

Thanks in advance for your help!

04 April 2008, 08:43 PM
Perhaps use the edge collision method on the tissue. This leaves holes in the tissue that you could potentially thread a thin long quad strip of nCloth through. Turn on collide width solver display to see the thickened edges. The collide width should be large enough that the edges are fat but have a gap. If the edges are too skinny then the thread would tend to cut through them. Make your tissue nCloth low resolution so that the quads are fairly large, then smooth the outputMesh to get the final smoothed cloth. The puncture marks could be done with added bump/displacement and color mapping.

Optionally you could instead model the holes, although this would likely be a more compute intensive simulation.

For this to work you will likely need high simulation substeps and collide iterations on the solver node. Lowering the stretch resistance on the tissue might help a bit and you may also want a fair bit of damp. If you have trouble pulling the tissue together with the thread you could augment it with point to point constraints, where the constraint restLengthScale is animated.

One other interesting technique you could explore... One could model the lace in the desired position then select cvs on the tissue cloth where the holes would be along with the lace nCloth. Create a slide on surface surface constraint( the cvs on the tissue can then slide along the lace... this is a two way constraint). Create transform constraints on the lace end cvs and pull to tighten.


04 April 2008, 10:31 PM
I've attached a file that uses the first method I described. The second method would have problems in that the slide on surface constraint would allow the lace to twist around the eyelets, interpenetrating them. An even better method might involve creating an eyelet object, perhaps a squashed cube without a top or bottom face, then poly combine the eyelets and point to surface constraint them to the flesh object. One could then collide the lace cloth only with the eyelets and not the mesh. This would create a better collision shape for the lace. The eyelets could also work for the slide on surface method. A top and bottom cv from an eyelet could be made to slide on the lace, keeping the lace more or less vertical along the holes.


04 April 2008, 06:08 AM
Hey Duncan,
i have a question about ncloth too (sorry to hijack the thread)

its built on the particle node right?

i can see attributes in the connection list like velocity and other particle related attrs.
but these are hidden.

is there a way to access this info from ncloth? is it even being used?

if it is then it would be great to have things in ncloth scripts like particles ie;

vector $vel = velocity;
velocity = <<clamp(0,1,$vel.x), clamp(0,1,$vel.y),clamp(0,1,$vel.z)>>;

or even

inputForce to check for fields , or any basic information about the results of the influences and forces on each vertex/particle

would be heaps more useful in production then

just some thoughts



04 April 2008, 03:15 PM
I think that currently you can access the nCloth velocity and positions in a particle expression, but currently it does not affect the simulation if you set them. Hopefully we will add that capability in the future at some point.

Some particle stuff just works with nCloth that you might not expect, for example particle instancer( although you can't properly control rotations ). NCloth is derived from the particle system, but not all the methods and attributes are fleshed out currently( some never will be ). Any hidden attributes are not supported( and probably don't do anything useful ), so you are on your own if you use them.


05 May 2008, 05:53 PM
I will try the methods that you have suggested. I will report back to document my (hopeful) success. I appreciate the response. I, probably like every other Maya nCloth/Paint Effects/etc. poster hope as I press that "Submit post" button that Duncan will reply. I have to say that I am really impressed with nCloth, in part because it is so fun to goof around with - its responsiveness and immediacy makes experimentation so much more rewarding. In fact it sometimes keeps me from my other responsibilities (although it looks like I'm working...)


CGTalk Moderation
05 May 2008, 05:53 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.