Need advice on rigging a mechanical windshield wiper

Hello everyone,

First post here, glad to be part of this community! Please excuse me if I’m mistakenly posting this in the wrong section…

I’ve run into a roadblock and would like to please ask for some advice. My objective is to rig a mechanical style windshield wiper system. I’m trying to get the wiper blade arms (1) rotate around their respective pivot points (2) while simultaneously following the blade strip (3) as it conforms to the shape of a windshield’s curved surface. Essentially trying to have the wiper assembly to “compress” downwards as at it would in real life from the pressure of the wiper arm spring.

What would be the best way to go about this? So far I’ve tried parenting each blade arm progressively from small to large then using lattice & shrinkwrap to get the blade strip to conform to the windshield’s surface. This works well but I’m having trouble figuring out a way to get the arms to also follow along with the curvature of the blade strip.

The screenshots show the points referred to above along with an example that I positioned manually of what I’m trying to achieve.

Thanks in advance for your help!

The best way to do this is to pose and keyframe it by hand, to eye. You need only a single cycle, and anything you rig isn’t going to be reusable on any other windshield anyways. You could spend days working on a rig, or you could spend minutes keyframing.

After you have a single cycle, you can use it in an action constraint, possibly with drivers for that constraint, if you want to have some overarching control.

I’d suggest, as a rule of thumb, that any motion that relies on bending, tension, and friction is not a good candidate for trying to totally automate via constraints or drivers-- you’re not going to recreate the entire physical structure that creates the motion.

1 Like


Theirs and the whole wiper arm motion(rotation) - 2 Bones, one as the pivot(parent) the other for the blade assm.(child)

Back to 1

Shrinkwrap modifier AND / OR constraint
I did a quick test using ‘Emptys’(parented to the wiper assm bone) to shrinkwrap(constrnt) to a windshield object, worked well, did not go about figuring out actual mesh parts, but that should give you a start.

1 Like

Thanks for the input guys, very helpful indeed. I`ll experiment with both suggestions and see how that goes.

Hey, I did an all bones version that seems to track/follow the surface very well, here is a pic

I ended up manually posing the wipers in this case due to scope of the project, but I`m quite curious to continue experimenting and see how far this can go in terms of rigging.


The all bones version looks good. I tried using the shrinkwrap constraint method you mentioned earlier and it works nicely for tracking the rubber strip along the shape of the windshield.

I’m now trying to find a way for the mesh of the wiper blade to articulate along with the rubber strip. Will likely experiment with a bone system as I can’t seem to get a good result using only constraints.

The same way - a string of bones parented but not connected, all with S/W const, your mesh object ((wiper blade)rubber part) gets an Armature mod so it can be parented with weights. I tried it and it worked great - my weight painting skills(lack of) are what ruined it in the end :grinning: :upside_down_face: