Motors between all these elements :
  var P1toP2 = ()=>sqrt(P2 * P1),
      p1top2 = ()=>sqrt(p2 * p1),
      l1tol2 = ()=>sqrt(l2 * l1);
      
  // Graph it
  document.body.appendChild(this.graph(()=>{
    // Animation time.
    var t = 0.5+0.5*Math.sin(performance.now()/1000);

    // A rotation around the z-axis.
    var R = motor(line(0,0,0,1,0,0),t*Math.PI*2);
    
    return [
      "Rotations and Translations",
      0x882288,lerp(p1top2, t) >>> p1*0.3,     // move between planes
      0x882288,lerp