So this is the real life counterpart:
The two at the top of the image are “bushings”, or in roblox, hinge constraints. They move like a human’s elbow or knee.
The two ends at the bottom of the image are “heim joints”, or in roblox, ball and socket constraints. This allows them to move like a human’s shoulder.
And the black part in between them is rigidly attached to both of them, resulting only in very specific movement. One end can spin in pretty much any direction, while the other end has only one axis of freedom.
Now, if you take multiple of those (let’s call them “links”), you can make stuff out of them, such as suspension systems:
This is still pretty easy. I can make a program that uses raycasts (to know where the player clicked) and draw a cylinder part from one place to another, and then give those sides either hinge constraints or ball and socket constraints. No problem. However, I think some of y’all can notice a problem though, there are no springs. And therein lies the problem.
Notice this example has springs.
As soon as I try to add springs, everything falls apart. In roblox, a spring cannot be rigidly bound to any part, because it lacks the limits. Here’s what I mean:
It just freely spins. And that’s not too far from real life, because if you want a rigid spring, you need something inside of it, such as a prismatic or cylindrical constraint:
So, then, finally, my question is: What would an easy to understand intuitive system be that allows for all of this to happen? For players to place their own links, ball and socket constraints, hinge constraints, spring constraints, and prismatic constraints? What would be the necessary buttons and parts for players to create the things show in the images above?
Thanks!