     window.requestAnimationFrame(@draw)
 
 MOUSE =
-  pos: undefined
+  pos: 
+    x: 0
+    y: 0
   mass: 1000
 $ ->
   MOUSE = 

    @canvas = @$canvas[0]
    @$canvas.mousemove(@update_mouse_pos)
    @particles = @generate_particles(50)
    @tick = 1

  generate_particles: (num) ->
    colors = ['green', 'blue', 'green', 'purple', 'maroon', 'orange']
    funcs = _.times(num, () =>
      -> return new Particle(_.random(0, @canvas.width),
                             _.random(0, @canvas.height),
                             0.1,
                             colors[_.random(0, 6)])
    )
    return _.map(funcs, (f) -> f())


    @pos = new Vector(x, y)
    @vel = new Vector(0, 0)


  force: (pos, vel) =>
    difference = Vector.subtract(MOUSE.pos, pos)
    dist_sq = Math.max(difference.mag_sq(), 25)

    velocity = @vel.mag()
    g_force = 100000 * MOUSE.mass * @mass / dist_sq
    spring_force = 10000 * Math.sqrt(dist_sq)
    spring_and_g_force_vector = Vector.unit(difference).s_mult(spring_force + g_force)

    damp_force_vector = Vector.s_mult(@vel, -10)

    return spring_and_g_force_vector.plus(damp_force_vector)

  update: (canvas, ctx, tick) =>
    f = @force(@pos, @vel)
