Good points!
-
Asymmetry of constraint stiffness/strength can be included by considering the direction of movement of the constrained component relative to its relaxed constrained reference point, i.e. compression and stretching have different signs and this sign input can be used to branch two different equations for asymmetric strength/stiffness into the ‘set parameters’ node.
-
Yes, I absolutely agree on the problem of mass differences in the current implementation of the PhysX Code base. Are you saying you tweaked the PhysX constraints in a way that they apply different forces in each direction? Or do you mean a double spring composed of two out-of-the-box PhysX constraints.
-
Well, there seems to be something like this going on. The actual spring force also scales with the attached masses. For example our nonsense robot: Body is always the same weight, but you can choose different leg/arm/feet/hand parts with different weight each. Now here it comes: Lighter legs are wobblier, while heavy legs are stronger because the constraints (hip/knee/ankle) react different when different masses are constrained together. We never cared too much about it because it actually makes a nice gameplay feature, but it shows clearly that something is on relative scales under the hood. If constrains were on an absolute scale, i.e. for example same strength for all mass combinations that are constrained, that would make it easier to control.