Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  Chains jitter when surface collsions are turned on
#1
Using the chains from the sample scene in a new scene with a large cube for a floor.

When surface collisions are off they sit still on a large cube but when surface collisions are on they jitter about.

I need the surface collision turned on otherwise a thin rope will pass right through the chain.

The rope doesn't jitter with surface collision on.

The rope has a thickness of 0.04 and resolution 0.113 and has surface collisions on
The chain has thickness 0.1 and resolution 0.43

I've tried having more or less substeps in the solver, only using cpu backend cos nothing appears on the gpu backend

What's the solution to have chains that don't allow ropes to pass through and doesn't jitter?
Reply
#2
For the moment I've given up on surface collisions and just went with a higher resolution rope but I'm trying to add as many ropes to the scene as I can.
Reply
#3
Quote:The rope doesn't jitter with surface collision on.
Using the chains from the sample scene in a new scene with a large cube for a floor.
When surface collisions are off they sit still on a large cube but when surface collisions are on they jitter about.


There's zero difference between chains and ropes simulation wise: they're the same, the only difference is the component used to draw them
(ObiRopeExtrudedRenderer for ropes, and ObiRopeChainRenderer for "chains").

Surface collisions have some inherent jitter to them because of the way they work (a single contact point for each segment), as explained in the "shortcomings" section in the manual's surface collision page. This applies only to collisions against collider though, not between ropes/chains. You can reduce this by increasing the amount of surface collision iterations and surface collision tolerance in the ObiSolver settings.

kind regards,
Reply
#4
(21-09-2026, 07:04 AM)josemendez Wrote: There's zero difference between chains and ropes simulation wise: they're the same, the only difference is the component used to draw them
(ObiRopeExtrudedRenderer for ropes, and ObiRopeChainRenderer for "chains").

Surface collisions have some inherent jitter to them because of the way they work (a single contact point for each segment), as explained in the "shortcomings" section in the manual's surface collision page. This applies only to collisions against collider though, not between ropes/chains. You can reduce this by increasing the amount of surface collision iterations and surface collision tolerance in the ObiSolver settings.

kind regards,

Thanks for the reply

What's the best way to prevent ropes from passing through each other?
I'm trying to make a game about untangling ropes and they pass through each other with not much force

Also when I put a knot into a rope I can just pull on it and the knot passes through itself (self collision is on)
Reply
#5
(21-09-2026, 07:11 AM)mechabit Wrote: Thanks for the reply

What's the best way to prevent ropes from passing through each other?
I'm trying to make a game about untangling ropes and they pass through each other with not much force

They shouldn't pass unless you're ignoring two-way coupling, see the included "TangledRopes" sample scene. It does not use surface collisions yet rope tangling is quite robust.

The key thing is that when moving ropes around, you must not ignore the forces they exert on whatever is moving them. For example if you attach them to an object and then move the object by directly manipulating its transform (eg transform.posicion = something), ropes will easily pass trough each other and other objects in the scene since the transform is completely ignoring physics.

Instead, manipulate the rope using forces, which is physically consistent. This can be done in many ways: by directly modifying the solver's externalForces or velocities arrays, by having a dynamic attachment to a rigidbody and then modifying the rigid body's velocity, by calling AddForce on the rigidbody, etc.

What this accomplishes is that when the ropes are taut, the forces moving them around are cancelled by the forces exerted by the rope, so you can't keep pulling them when physically impossible. See "tips and tricks" in the attachments manual page.
Reply
#6
I tested it in the sample scene and I've attached a video show what I mean

When you pull on a rope with a knot the knot passes through itself and untangles, one end it pinned down to make it easier to show

I'm not even pulling very hard

Is there no way to prevent this?

youtube link in case the attachment didn't work: https://youtu.be/RHrpVuRANog
Reply
#7
(21-09-2026, 01:30 PM)mechabit Wrote: I tested it in the sample scene and I've attached a video show what I mean

When you pull on a rope with a knot the knot passes through itself and untangles, one end it pinned down to make it easier to show

I'm not even pulling very hard

Is there no way to prevent this?

youtube link in case the attachment didn't work: https://youtu.be/RHrpVuRANog

I’m unable to reproduce this. I assume you’re using the included ObiParticleDragger component, in that case what’s the force of the spring you’re using? (and the mass of your rope?)

I need to use really extreme force values for this to happen.
Reply
#8
(21-09-2026, 04:13 PM)josemendez Wrote: I’m unable to reproduce this. I assume you’re using the included ObiParticleDragger component, in that case what’s the force of the spring you’re using? (and the mass of your rope?)

I need to use really extreme force values for this to happen.

This is the default setting in the colliding ropes sample


Attached Files Thumbnail(s)
   
Reply
#9
(21-09-2026, 05:01 PM)mechabit Wrote: This is the default setting in the colliding ropes sample

4 substeps is very few. That scene only uses 4 because the ropes in it are under no tension at all.

For a taut rope under tension, use at least 8-12 substeps.
Reply