Facilitação da animação JavaScript pura

Eu tenho tentado encontrar uma implementação de facilidade de JavaScript puro por algumas horas, mas não consegui encontrar nenhuma. Os que se aproximaram não faziam sentido. Tudo o que pude encontrar foi um monte de funções de facilitação sem implementação.

Por exemplo, funções como estas:

function linear(time, begin, change, duration) {
    return change * time / duration + begin;
}

function easeInQuad(t) {
    return t*t
},

function easeOutQuad(t) {
    return t*(2-t)
},

Uma das coisas que me incomoda é onde os fps entram para jogar? Está diretamente relacionado à duração. Eu não vi nenhuma menção a isso.

Como eu implementaria as funções de facilitação acima na animação a seguir?

JSFiddle

var box = document.getElementById("box");

var fps		= 60;
var duration	= 2; // seconds
var start	= 0; // pixel
var finish	= window.innerWidth - box.clientWidth;
var distance	= finish - start;
var increment	= distance / (duration * fps);

var position = start;

function move() {
  position += increment;
  if (position >= finish) {
    clearInterval(handler);
    box.style.left = finish + "px";
    return;
  }
  box.style.left = position + "px";
}

var handler = setInterval(move, 1000 / fps);
body {
  background: gainsboro;
}
#box {
  width: 100px;
  height: 100px;
  background: white;
  box-shadow: 1px 1px 1px rgba(0, 0, 0, .2);
  position: absolute;
  left: 0;
}
<div id="box"></div>

questionAnswers(1)

yourAnswerToTheQuestion