         (.data (apply array nodes))
         (.attr "cx" view-x)
         (.attr "cy" view-y)
-        (.attr "r" view-radius)
+        (.attr "r" _view-radius)
         .enter
         (.append "circle")
         (.attr "class" "node")
         (.attr "cx" (comp view-x))
         (.attr "cy" (comp view-y))
-        (.attr "r" view-radius))))
+        (.attr "r" _view-radius))))
 
 ;; State management
 

  (let [{:keys [view-width view-height camera-x camera-y]} state
        view-center-x (/ view-width 2)
        view-center-y (/ view-height 2)
        safe-distance-x (* safe-zone-size view-center-x)
        safe-distance-y (* safe-zone-size view-center-y)
        max-distance-x (- view-center-x edge-buffer)
        max-distance-y (- view-center-y edge-buffer)
        true-x-displacement (- x camera-x)
        true-y-displacement (- y camera-y)
        projected-x-displacement (project-displacement true-x-displacement
                                                       safe-distance-x
                                                       max-distance-x)
        projected-y-displacement (project-displacement true-y-displacement
                                                       safe-distance-y
                                                       max-distance-y)]
    {:x (+ view-center-x projected-x-displacement)
     :y (+ view-center-y projected-y-displacement)}))

(defn view-radius [state x y] 32)

(defn sync-graph! [state]
  (let [{:keys [svg nodes]} state

(def swipe-damping-factor 1)
(def min-slide-speed-sq 16)

(def max-radius 32)
(def min-radius 2)
(def edge-buffer (+ min-radius 3))


