The new IK solvers don't work as expected with a joint limitation

Godot Version

v4.6.beta.mono.arch_linux [63227bbc8]

Question

Hi. The new IK chain solvers, such as FABRIK3D or JacobianIK3D, don’t seem to work as expected when the rotation is limited by a JointLimitationCone3D.

I added a FABRIK3D to my humanoid rig to fix its feet to target 3D nodes which works as intended initially:

However, when I restrict the rotation radius to prevent the joint from bending in the wrong way, it fails to solve proper positions for the end bones:

I think I got the joint cone’s orientation right, from the way the legs bend when I adjust its radius.

Could anyone help me with this problem?

Thanks in advance!

Adding constraints makes it more difficult to solve, and the solver will give up after it tries max iterations. Try increasing the max iterations? The only other thing I could think is that there is something also constraining the other bone in the chain making the solution impossible.

Edit: It had been a while since I played with IK, and I am reproducing this behavior in my own scene. You are right. The JointLimitationCone3D doesn’t seem to be constraining things in a way one would expect.