Page 1 of 1

Non elastic rope II

Posted: Thu Mar 18, 2010 4:24 pm
by Morfo
Hello. I'm trying to make a non elastic rope for our game without using soft bodies. Our rope is just a chain of small rigid bodies, and, following the suggestion of another post with same subject, using btGeneric6DofConstraint between them. What happens is, when we attach the last chain element to a heavy rigid body, and we drag the first element with a big force, looks like one of the constraints gets broken, because is no longer keeping the fixed separation distance. What could we do to fix this? Any help will be appreciated. Thanks very much.

Re: Non elastic rope II

Posted: Fri Mar 19, 2010 10:42 pm
by marcimatz
Maybe try to increase the mass of the small rope elements?

Re: Non elastic rope II

Posted: Sat Mar 20, 2010 7:24 am
by nisse
This is a well-known instability. Light elements under high tension vibrates at high frequency - like tuning a guitar string. When the vibrational frequency becomes close to or smaller than the time-step size these high-frequency modes may develop into instabilities.

Increasing mass, element size and number of iterations help. Also decreasing the time-step size. Increasing the resistance to bending of the joint help as well (e.g. a relaxed lock-joint). But that should be done dynamically such that it increases under high tension and decreases again when the tension drops.

www.vrlab.umu.se/research/flexible/rbcve.pdf

There some other ways as well - but probably takes some labor to get it implement in Bullet.

I guess position-based dynamics steppers (that projects positions and orientations to maintain constraints) are less flawed by this instability. Anyone with experience on this, please comment!

Re: Non elastic rope II

Posted: Mon Mar 22, 2010 12:23 pm
by Morfo
Thanks very much for the answers. At the end, we are using soft body ropes, they are much more stable for this kind of issues.

Re: Non elastic rope II

Posted: Tue Jul 03, 2012 12:45 pm
by qupie
one good solution is to use uneven mass entry per rope node. To compensate for node forces created towards top rope area due to a heavy object anchored at bottom area, the nodes should get heavier as moving towards top area. That will make lighter rope towards load area and heavier rope at top to handle strong forces.