now you are going in both direction with in increasing speed, while when you go back you to start fast and end slow:

```
def linear(factor):
return factor
def easeIn(factor):
return factor*factor
def easeOut(factor):
return factor * (2-factor)
steps = 100
blockWidth = width() / steps
for func in [linear, easeIn, easeOut]:
newPage(2000, 1000)
for i in range(steps):
factor = i / (steps-1)
factor = func(factor)
rect(0, 0, blockWidth, height() * factor)
translate(blockWidth, 0)
for i in range(steps):
factor = i / (steps-1)
# go the other way around
factor = func(1 - factor)
rect(0, 0, blockWidth, height() * factor)
translate(blockWidth, 0)
```