     delta_pos = Vector.add(@vel, Vector.s_mult(accel, tick).s_div(2))
     @pos.plus(delta_pos.s_mult(tick))
 
-    #console.log("X: #{@x}, VX: #{@vx}, AX: #{ax}")
+    #console.log("X: #{@pos.x}, VX: #{@vel.x}, AX: #{accel.x}")
 
     f = @force(@pos, @vel)
     accel2 = Vector.s_div(f, @mass)

    start = Date.now()
    ctx = @canvas.getContext("2d")
    ctx.globalCompositeOperation = 'source-over'
    ctx.fillStyle = "rgba(0, 0, 0, #{255 * 1 * @tick})"
    #ctx.fillRect(0, 0, @canvas.width, @canvas.height)
    ctx.clearRect(0, 0, @canvas.width, @canvas.height)

    for particle in @particles
      particle.update(@canvas, ctx, @tick)

    @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)
