Немного покопался и нашёл такую неприятность:
function moveObj(obj) {
var X = Math.cos(obj[6]);
var Y = Math.sin(obj[6]);
obj[1] += X;
obj[2] += Y;
}
Этот код берёт угол объекта(obj[6]), меряет по нему синус и косинус и обновляет координаты (obj[1] и obj[2]). Проблема в том что периодически он даёт очень странные значения синуса и косинуса которые и приводят к дрыганью. Ниже версия в которой записываются данные, где наглядно видно когда и какой sin и cos получались.
Всё ещё очень нуждаюсь в помощи
http://ifolder.ru/22611344