function peelTransform(start, finish, options = {}) {
const { turns = 2 } = options;
const rand = options.rand || makeRandFunction(Math.random());
const rotAxis = options.rotAxis || [rand(-1, 1), rand(-1, 1), rand(-1, 1)];
vec3.normalize(rotAxis, rotAxis);
const p0 = [...start, 0],
p1 = [...finish, 30];
return (t) => {
let m = mat4.create();
let dest = vec3.lerp([], p0, p1, t);
mat4.translate(m, m, dest);
let ang = t * turns * Math.PI * 2;
mat4.rotate(m, m, ang, rotAxis);
return DOMMatrix.fromFloat32Array(
mat4.translate(m, m, [-p0[0], -p0[1], 0])
);
};
}