Hi, I have done this using the y-rotation of the Blue rod to drive its z-location. The Top rod is driven by the z-location of the Blue rod.


As you can see, the animation looks imprecise, and the calculation behind it is also not intuitive (for one, the reverse control using asin(x) does not work). Sure I could tweak things to fit, but I'm instead looking for some method to precisely rig these bodies intuitively. So far I have known these methods for mechanical rigging: a) Constraints b) Drivers c) Armatures and d) Physics.

My questions:

a) Is there any way to actually rig (complexity does not matter) by simply constraining the bodies wrt each other without actually calculating any of the mechanics of motion that the setup will entail?

b) Are there other methods that I have not mentioned above.


Note: I do not need a complete solution, just some useful directions and/or resources will suffice.


After a lot of trial and error here's what I could come up with. It is not perfect and will glitch out at extreme cases, but otherwise works for the most part.

It relies on a system of three empties and relations between them.


  • The $Start$ $Empty$ - Has a Location constraint to prevent it from going anywhere away from $-0.90$ to $0.90$ in the $X$ axis

Start Empty

  • The $End$ $Empty$ - Has a Location constraint to prevent it from going anywhere away from $-0.90$ to $0.90$ in the $X$ axis and $0.2$ to $1.8$ in $Z$ direction. Additionally it as a Limit Distance constraint set to On Surface preventing it go further away than $1.8$ from $Start$ $Empty$

End Empty

  • Lastly $Tracking$ $Empty$ is parented to $Start$ $Empty$ and has a locked track to the $End$ $Empty$.

Tracking Empty

  • The $Upper$ $Arm$ also has a Copy Location on $Z$ axis only from $End$ $Empty$so it keeps position correctly automatically

Upper Arm

  • $\begingroup$ Thanks. This was not exactly what I am trying to achieve, but it helped a lot. I think I'll be able to expand from here. $\endgroup$
    – Log
    Apr 21 '17 at 6:44

enter image description here

This solution is actually kind of a hybrid of the other two answers.

The main Spherical empty drives the rotating bar's x position by a range via a driver.

enter image description here

The base point of the rotating bar is at the bottom of the bar (as seen when it is vertical.)

The other empty is set opposite to the basepoint, and parented to this bar.

The top horizontal bar is set to copy the "Y" location of the parented empty.

The rotating bar has a constraint to match that of the main spherical empty.

Lastly the spherical empty just has a Z-Rotation constraint to limit the min/max to -174.5°/-5.5° respectively.

Please Note:

This solution is not accurate, as it does not obey the cosine/sine ratios. It is strictly linear based on angular rotation of the empty.

Easy enough fix:

The overall bar dimensions in my case are 2.0 units overall.

So the radius (1.0 in my case) is super easy for me in the driver.

just replace the driver formula listed with this:



enter image description here

The basics of it:

The empties of the scissor hinge were left in the same location, less the center one as it was no longer needed.

The top Left one was parented to the one on the bottom right of the scissor assembly.

The top bar's y location follows the top left empty's y location with the copy location constraint.

The bottom right one then gets two contraints to follow the rig below as follows:

it uses the copy rotation and copy location (x) contraints targeted to the empty directly below it.

The rig at the bottom is just three empties the Parent being the one the forms the 90° degree corner point amongst them.

  • $\begingroup$ Actually, this is exactly the method I used to create my demo. I drove the z-location of the central rod (C) with the (length of C)*sin(y-rotation of C). I've mentioned this in the question. $\endgroup$
    – Log
    Apr 21 '17 at 6:53
  • $\begingroup$ I believe that there may be a constraint that could solve this and get rid of the driver in this solution. I need to experiment a little more though. I'll append the answer if I can find anything good. $\endgroup$
    – Rick Riggs
    Apr 21 '17 at 13:44

This answer is (partially) a cheat!!

enter image description here

The relative movement is correct, but the bottom rod is moving and the above gif is done moving the camera.

Without the camera, here is the result:

enter image description here

How it is done:

  • The top empty is parented to 3 of the top vertices of the white rod
  • Same principle for the bottom empty with the bottom vertices of this rod

enter image description here

  • Each horizontal bar (blue and green), have a driver constraint: their Z position is assigned to the corresponding empty Z position

enter image description here

This is all for the rod/bar movements...

Now the camera which is faking the vertical stability: its own vertical (Z) position is constrained by the bottom empty:

enter image description here

  • $\begingroup$ I'm sorry, but this won't work for me. This mechanism is part of a bigger structure and I need mechanical fidelity. Anyway, the "3 vertices" idea was pretty helpful. Thanks. $\endgroup$
    – Log
    Apr 21 '17 at 6:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.