Builtin Library
README.md
ik.reach
How far a limb can extend, and how far away a point is, in the same units —
plus whether that point falls inside the reachable band. Part of ik.toolbox;
surfaces as ik.reach.
This is the first thing to check when an IK solve looks inert. A limb reaches as far as its bones are long and no further: a target beyond that has no solution, so the chain extends straight toward it and stops. That is correct behaviour and it is indistinguishable from a broken solver by eye. There is a lower bound too — a two-bone chain cannot fold its tip closer to the root than the difference between its segment lengths.
Everything is reported in world units, so the rig's model space never has to be
reasoned about. That matters because a limb's reach as the component reports it
is in model space, where a 0.61 m arm reads as about 61, and the scale factor
usually lives on a node inside the imported body rather than on the entity you
set localScale on.
Takes either a canonical limb role (leftarm, rightarm, leftleg,
rightleg) or a "rootBone..tipBone" pair, so it works on rigs that carry no
retarget profile at all.