Hi Ben,
Let me go from “no dynamics”.
First of all, you want to be able to direct the character freely, which means the function you are after should never overwrite the given animation.
Joints should be rotated only, except, you want to stretch them (we had a more extended discussion about this already)
I assume it is not just the floor, but either way, it is something that can be expressed in X, Y, Z.
The example shows that one after the next joint is affected and the result will obviously, that all joints are surrender to the barrier.
Typically, the Goal of an IK joint is used to create such “non-penetration” by stopping at a particular position. Like a foot is not going into the ground. I do not see that this will be sufficient here, as it allows in some cases the parenting joints to move beyond that point of the Goal. Like the character crashes on the floor. The Goal limit to any negative Y value setup was showcased by Kai in a 2006 tutorial (an addendum to the Flabio series). Your request is complex, I wouldn’t even start to explore this in Xpresso or with Constraints, with every single joint.
https://www.cineversity.com/vidplaytut/foot_on_floor
It needs obviously a formula that takes the current position of each joint, as well the orientation that it has to its parent. Then calculates the angle that the parent has to move the object, so it doesn’t penetrate the given border. Again, just to dumb a position on a given joint will change the length in pretty much any case, which will look wrong.
If the object moves away, the same needs happen but in reverse. All of that, I presume to leave any given animation intact as much as possible. This is not what I can do here.
This set up needs to be done for every single joint. Perhaps a python script. But I guess at one point any developer in the Maxon Developer Forum will rightfully ask for co-author credits/benefits if you want to involve them as much.
Sorry, there is nothing that I can see that is given by default and excludes dynamics.
Cheers