I'm trying to animate a bicycle and I have a question related to the pedals. Using drivers on the gear and the wheels I have got the automatic rotation of the bicycle as it moves through the y-axis. The thing is, the pedals rotates just like the rest. How can I make an object (in this case, the pedal) rotates always showing the same face locked parallel to the ground.

Thanks in advance.

  • 2
    $\begingroup$ With a Limit Rotation Constraint. $\endgroup$
    – FFeller
    Oct 9, 2020 at 15:46

1 Answer 1


I think this can be achieved with drivers as well.


You could add a driver to the rotation direction around the axis of the pedal, and then have it driven via Scripted Expression by the rotation of the gear object.

The expression should be "-var" since the pedal turns in the opposite direction with the same angular velocity.

Also, because the pedal is most likely a child of the gear, make sure Space it set to World Space (otherwise it won't work)


Another way is to is to do it using constraints and empties. You could add an Empty at the location of the pedal origin (or pivot or turning axis), and add an empty exactly below it on the ground. Add a Damped track constraint to the pedal with Ground Empty as the Target, and set it to the X axis. Add a Copy Location Constraint to the Ground Target and with the Pedal Empty as a target, and check the boxes next to X and Y (but not Z).

You need the extra Pedal Empty because it won't work if you target the pedal itself directly (probably because the constraint on pedal is targeting the Ground Empty and it causes a direct loop).

enter image description here

Left is with drivers. Right with constraints.

  • $\begingroup$ Which method would be the more performant one? And do you maybe also happen to know, which one is more likely to be supported when it comes to exporting to other 3D projects like three.js? $\endgroup$ Dec 24, 2020 at 14:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .