The following WebGL animation is designed using a similar approach used by its desktop OpenGL counterpart.
Wheel.js
SwingArm.js, and SwingFrame.js)
THREE.Matrix4 objects: wheel_cf and arm_cf)
The initial skeleton of the code was generated by YeoMan ThreeJS Generator