Using Millisecs with Sin and Cos may be to blame for some jumpiness. Millisecs can get very large and Sin and Cos start returning very iffy results when used with very large numbers due to lack of floating point precision. The result of this is that the value returned does not change at all over the course of many Milliseconds and then jumps suddenly. Not sure if thats to blame here, not too much maybe as you are dividing millisecs() down somewhat, but it is going to depend on machine uptime.