Fijate:
http://fiddle.jshell.net/XYHpJ/show/
Viendo código fuente:
http://alexismangin.com/public/cbc/js/paper.js
Y ahí:
Código:
//...
DomEvent.requestAnimationFrame = new function() {
var part = 'equestAnimationFrame',
request = window['r' + part] || window['webkitR' + part]
|| window['mozR' + part] || window['oR' + part]
|| window['msR' + part];
if (request) {
request(function(time) {
if (time == undefined)
request = null;
});
}
var callbacks = [],
focused = true,
timer;
DomEvent.add(window, {//....
Y si seguís mirando vas a encontrar un setInterval también.
La que yo describí es una manera sencilla de hacerlo, también puede usarse el mismo evento onmousemove y prescindir de timmers. No analicé el código en profundidad para ver qué es exactamente lo que usan acá, porque la verdad me parece absurdo usar semejante librería para un ejercicio tan básico

Lo de customizar el atributo type es una mala manera (no estandar) de ejecutar el javascript de manera postergada o temporizada o a demanda, ya que los tipos que no son text/javascript (o, para ser más exactos, los que no tienen un valor que el navegador reconozca) no se ejecutan hasta no ser evaluados ex profeso por un script de tipo text/javascript (en realidad no hay garantías de que esto deba ser respetado por los navegadores, aunque en la práctica suceda). Un ejemplo:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script type="text/javascript">
alert(123);
onload=function(){
var sc=document.getElementsByTagName('script'),i=0,l=sc.length;
for(;i<l;i++){
//sin esto, el 2do. alert no saldría
if(sc[i].getAttribute('type')=='panino5001')eval(sc[i].text);
}
}
</script>
</head>
<body>
<script type="panino5001">
alert(456);
</script>
</body>
</html>