def easeInOutCubic(currentTime, start, end, totalTime):
    """
    Args:
        currentTime (float): is the current time (or position) of the tween.
        start (float): is the beginning value of the property.
        end (float): is the change between the beginning and 
            destination value of the property.
        totalTime (float): is the total time of the tween.
    Returns:
        float: normalized interpoltion value
    """
    currentTime /= totalTime/2
    if currentTime < 1:
        return end/2*currentTime*currentTime*currentTime + start
    currentTime -= 2
    return end/2*(currentTime*currentTime*currentTime + 2) + start