Is there a more efficient way of implementing this clock in Raphael JS?
I think not, this is how it is meant to be.

That being said, you


Have a few missing semicolons
Capture c1 &amp; c2 for no good reason
Calculate secAngle for no good reason
Have a veritable legion of hard coded mystical constants
Have a few weirdly named variables


After some thought, it appears that the biggest problem with this code is that you count on the animation to take 0 (milli)seconds and the execution/scheduling of the animations is instantaneous. Have you tried keeping this clock up for an hour or more? I would expect there to be discrepancies between the real time and the animated clock.