function* processRopeMotions(motions) {
const RX = new Float64Array(k);
const RY = new Float64Array(k);
yield Array.from({length: k}, (_, i) => [RX[i], RY[i]]);
for ([RX[0], RY[0]] of processMotions(motions)) {
for (let i = 1; i < k; ++i) {
[RX[i], RY[i]] = moveTail(RX[i], RY[i], RX[i - 1], RY[i - 1]);
}
yield Array.from({length: k}, (_, i) => [RX[i], RY[i]]);
}
}