   collide = (p1, alpha) ->
 
     return (quad, x1, y1, x2, y2) ->
+      collisions += 1
+
       p2 = quad.point
       if quad.leaf && p2 && p2 != p1
         dx = Math.abs (p1.x - p2.x)

            p2.y -= offset_y / 2
            p1.y += offset_y / 2

      # Visit subregions if we could possibly have a collision there
      neighborhood_radius = p1.radius
      nx1 = p1.x - neighborhood_radius

              y1 > ny2 ||
              y2 < ny1

  write_positions = -> 
    positions = {}
    for o, i in nodes
      positions[parseInt(opinions[i].user.substring(6))] = \
        [Math.round((o.x - o.radius) * 10) / 10, Math.round((o.y - o.radius) * 10) / 10]

    opts.done?(positions)

  ##############
  # Initialize positions of each node
