I'm trying to understand what is a correct way to model a muscle contraction in a physics engine like PhysX (Unity3D). Muscle that I'm modelling is connected to a bones in 2 points A and B.

Having a total force for the muscle fTotal, I'm trying to apply two forces in points A and B on corresponding bones, where magnitude of each force is a half of the total force. And of course force vectors are lying on the same AB line and pointing to the opposite directions towards the center of the muscle.

fTotal = ||fA|| + ||fB||

One thing that bothers me is a situation when one bone is fixed in space. Intuitively, all contraction force should be applied only to a single attachment point, however, my model will apply only 1/2 of a force. Can you suggest a better way to implement this?


just saw your idea and it helped me on my project! As for your problem: I think that the presence of a fixed object ("kinematic" I guess) is a problem specific enough to deserve a solution of it own. Just check if the other part is kinematic. If yes, then apply the full force on the movable part.

| improve this answer | |
  • \$\begingroup\$ This is not really a useful insight to the person asking, maybe an example would be useful? \$\endgroup\$ – Ryan white Aug 12 '16 at 10:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.