         :head (make-node 300 150 2)
         :tail (make-node 100 150 2)
 
-        :h-l-k (make-node 310 75 0.5)
+        :h-l-k (make-node 300 75 0.5)
         :h-l-f (make-node 300 0 0.5)
-        :h-t-k (make-node 310 75 0.5)
+        :h-t-k (make-node 300 75 0.5)
         :h-t-f (make-node 300 0 0.5)
 
-        :t-l-k (make-node 90 75 0.5)
+        :t-l-k (make-node 100 75 0.5)
         :t-l-f (make-node 100 0 0.5)
-        :t-t-k (make-node 90 75 0.5)
+        :t-t-k (make-node 100 75 0.5)
         :t-t-f (make-node 100 0 0.5)
 
         :top-of-head (make-node 320 200 1)
+        :end-of-tail (make-node 80 200 1)
     }
     (map (partial apply make-spring) [
         [:head-a :head]
         [:tail-a :tail]
         [:head-a :tail-a]
         [:top-of-head :head]
+        [:end-of-tail :tail]
         [:head :tail]
         [:head :h-l-k]
         [:h-l-k :h-l-f]

                c (vec- (:pos (nodes (:node-c h))) (:pos (nodes (:node-b h))))]
                (angle a c))
            :modifier-angle 0.0
            :strength 1000000))
        hinges)
})


                (update-node-velocities
                    (:nodes state)
                    (calculate-all-node-forces state)
                    (calculate-all-node-impulses (:nodes state) tick-step)
                    tick-step)
                tick-step)))

(defn tick [game-state-ref input-state] (let [real-step (* 0.001 (real-tick-step))] (do
    (swap! game-state-ref #(tick-imp % real-step input-state)))))

(defn world-to-screen [[x y]]
    [x (- 275 y)])
