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$14055/0x000000010384f840@2f4b3eec,
//   onMouseMoveHandler = doodle.reactor.Reactor$$$Lambda$14056/0x0000000103850840@16c8daba,
//   onTickHandler = doodle.reactor.Reactor$$$Lambda$14060/0x0000000103853840@444cd291,
//   tickRate = 100 milliseconds,
//   renderHandler = repl.MdocSession$MdocApp$$Lambda$14062/0x0000000103855840@40348dd9,
//   stopHandler = doodle.reactor.Reactor$$$Lambda$14061/0x0000000103854840@367e676d
// )