Cloth sim string attached to cloth sim plane - three failing approaches

Hi all,

I’m trying to do something which ought to be fairly simple in 2.79*; I have a cloth plane to which I want to attach a cloth string such that the string collides with the cloth plane. I have tried:

  1. Making a simple cylinder, subdividing it and attaching it to the cloth. This fails because the cloth sim cannot handle collisions with such dense meshes and goes mental (or at least I think that’s why). The angry mess of vertices that results does collide with the cloth plane, but looks nothing like a string.

  2. Using a single line of vertices and skinning them. This looks much better, but try as I might I just cannot get it to collide with the cloth plane - it passes through like it wasn’t there.

  3. Hooking a curve to a single line of vertices via a series of empties, then adding a circular plane with array and curve modifiers to give it shape. This does collide with the cloth plane, but the curve does not follow the deformed line of vertices. Also, for some reason the curve insists on appearing much longer than it should.

All three string attempts are connected to the cloth by vertex parenting. See attached (573.5 KB) .blend for details. I’ve spent a whole day (now on my second day) trying to solve this, and I think I’m about to have a fit - please, help!

*) Much as I would like to go to 2.80 it crashes hard on my machine when panning around a scene (Thinkpad X220 w. Devuan ASCII), necessitating a forced shutdown to recover.

Blender really isn’t the best tool for this, but you can achieve your goal, by adding a subdivision surface to the cloth. You need lots of quads to portray convincing collision, otherwise your string will act like a rope or a pipe.

Don’t be afraid of putting in really big numbers.
cloth_on_cloth

Set the subdivsion surface to 4x4.
ap_28_dual_cloth_collision.blend (549.9 KB)

Thanks. The actual model has way more subdivisions than the simplified example I posted. The problem is not that the cloth plane looks unrealistic, but that the (cylinder mesh) string does. Similar to how it looks in your example. If I understand correctly, this is because the cloth simulation’s collision algorithm fails for high density meshes like the cylinder. Hence my search for an alternative route, like using single vertex string, and/or a curve. Any ideas how I can get the 2nd option (skinned single vertex string) to collide properly? The cloth sim does look quite good on this…

So if this can’t be done in Blender 2.79, what is the correct tool to use?

It can be done. But IMHO the only way to get a string behave half-way physically credible is doing a softbody sim on a curve.

Relating to 1. and 2. you already found out that making the string a cloth won’t work. The cylinder will completely collapse when bending stiffness is off (and wpn’t behave nicely either, when it is on).

This setup works for me:

  • use 3 objects, a curve, a subdivided cylinder and a grid/cloth
  • add collision to the cloth
  • add a softbody sim to the curve
  • add a curve modifier to the cylinder (make it track the curve)
  • add collision to the cylinder
  • add cloth sim to the cloth

In short: softbody sim on a curve as the string, collision of the cloth against the string using a cylinder tracking the curve.

Sorry, but my version of 2.79 gave me trouble (unrelated to the sim), so I tested it in 2.80. Did you try the beta of 2.81? Chances are that is already has less bugs than 2.80 stable. There are no reasons, though, why the setup should not workin 2.79 also.

curve-collide.blend (4.6 MB)