changingView = t => {
const e = d3.easeCubicInOut(t);
const startPos = [4,10,4];
const endPos = [10,4,4];
const pivot = [7,7,0];
const startDir = v.sub([],startPos,pivot);
const endDir =v.sub([],endPos,pivot)
const axis = v.cross3([],startDir,endDir);
const endAngle = v.angleBetween3(startDir,endDir);
const camPos = v.add([],pivot,m.mulV([],m.rotationAroundAxis33([],axis,e*endAngle,true),startDir))
const top = m.mulV([],m.rotationAroundAxis33([],[1,0,0],e*0.5*Math.PI,true),[0,0,-1]);
return m.lookAt([],camPos,[4,4,4],top)
}