     }
    }
    return animation.length;
  }

  function progress() {
    if(animation == null) return null;
    var i = Math.floor((animationTime * 0.001)/dt);
    return (i*100)/(numframes()-1);
  }

  function init() {
    var container = document.getElementById("canvas");
    klampt_frontend = KLAMPT.KlamptFrontend(container);
    klampt_frontend.update_scene(scene);
    klampt_frontend.set_shadow(true);
    klampt_frontend.rpc({type:'add_text',name:'time_display',x:5,y:5});
    if(rpcs && rpcs[0]) {
 