Easing Functions

Take a look at the following animation.

val bubble =
  Reactor.linearRamp(0, 200)
    .withRender(r => Image.circle(r))
// bubble: Reactor[Double] = Reactor(
//   initial = 0.0,
//   onMouseClickHandler = doodle.reactor.Reactor$$$Lambda/0x00007f0a9a40ce68@6c1bf1de,
//   onMouseMoveHandler = doodle.reactor.Reactor$$$Lambda/0x00007f0a9a40d408@5e09966c,
//   onTickHandler = doodle.reactor.Reactor$$$Lambda/0x00007f0a9a40b930@8c95448,
//   tickRate = 100 milliseconds,
//   renderHandler = repl.MdocSession$MdocApp$$Lambda/0x00007f0a9a410800@26d769ef,
//   stopHandler = doodle.reactor.Reactor$$$Lambda/0x00007f0a9a414000@15f1e9ea
// )