Interpolazioni oscillanti

// height=100 lines=auto
var t = 0;
var tVel = 0.005;

var rosso;  // colore iniziale
var verde;  // colore finale

function setup() {
    rosso = color( 255,0,0 );
    verde = color( 0,255,0 );
}

function draw() {

    var interpolato = lerpColor( rosso,verde, t );
    background( interpolato );

    t += tVel;
    if (t < 0 || t > 1.0001) {
        tVel = -tVel;
        t += tVel*2;
    }
}
if (t < 0 || t > 1.0001) {
    tVel = -tVel;

La velocità (tVel) viene invertita se t esce dai limiti minimo (0) o massimo (1.0001). Con tVel negativo l'interpolazione andrà da 1 a 0.

t += tVel*2;

Fa tornare indietro il valore di t in modo che rientri nei propri limiti senza assumere la posizione avuta prima di uscire.