Easing Functions

t must be between 0 and 1

def smoothstep(t):
    return t * t * (3 - 2 * t)

def ease_in(t):
    return t * t

def ease_out(t):
    return 1 - (1 - t) * (1 - t)

def ease_in_out(t):
    return t * t * (3 - 2 * t)   # classic smoothstep