       nodes.forEach (o, i) ->
         o.x += (Math.random() - .5) * 5
         o.y += (Math.random() - .5) * 5
-      force.resume()
+      masterForce.resume()
 
     drawRadar = ->
       radii = []

          d_r =
            if o.r < (nodeArc.innerRadius + containerPadding) then Math.max(k_r, min_k_r)
            else if (nodeArc.outerRadius - containerPadding) < o.r then -Math.max(k_r, min_k_r)
            else 0

          d_thetaDirection = 0
          smallestAngleBetween = (source, target) ->

    layoutHeight = defineControl("Layout height", true, true, 0, 1200, 700)
    padding = defineControl("Node padding", true, false, 0, 15, 6)

    forceGravity = defineControl("Gravity", false, false, 0, 1, 0, (g) -> masterForce.gravity(g))
    forceAlpha = defineControl("Alpha", false, false, 0, 3, 0.2, (a) -> masterForce.alpha(a))
    forceCharge = defineControl("Charge", false, false, -50, 50, -2, (c) -> masterForce.charge(c))
    forceFriction = defineControl("Friction", false, false, .8, 1, .90, (f) -> masterForce.friction(f))

    forces = []

    masterForce = {
      gravity: (g) -> _.each(forces, (force) -> force.gravity(g)); this
      alpha: (a) -> _.each(forces, (force) -> force.alpha(a)); this
      charge: (c) -> _.each(forces, (force) -> force.charge(c)); this
      friction: (f) -> _.each(forces, (force) -> force.friction(f)); this
      resume: () ->  _.each(forces, (force) -> force.resume()); this
      start: () ->  _.each(forces, (force) -> force.start()); this
      apply: (func) ->  _.each(forces, (force) -> func(force)); this
    }


    containerForce = defineControl("Container force", false, false, 0, 100, 50)
    minAlpha = defineControl("Minimum alpha", false, false, 0, 1, 0, (a) -> if forceAlpha() < a then forceAlpha(a))
