             :rest-length 224.0
             :strength 2000
         }
-        {
-            :node-a :u
-            :node-b :v
-            :rest-length 141.0
-            :strength 2000
-        }
+        ;{
+        ;    :node-a :u
+        ;    :node-b :v
+        ;    :rest-length 141.0
+        ;    :strength 2000
+        ;}
         {
             :node-a :t
             :node-b :v
             :rest-length 100.0
             :strength 2000
         }
-    ] })
+    ]
+    :hinges [
+        {
+            :node-a :u
+            :node-b :t
+            :node-c :v
+            :rest-angle (/ Math/PI 2)
+            :strength 100000
+        }
+    ]
+    })
 
 (defn print-to-log [v]
     (.log js/console v))

        ))

(def my-code-url "https://github.com/pauldoo/scratch/blob/master/ClojureScript/hello.cljs")
(def tick-step (/ 1 200))
(def render-step (/ 1 30))
(def gravity-strength 500)
(def ground-strength 200)
(def initial-game-state {
    :nodes {
        :t {
            :pos [150 100]
            :vel [0 0]
        }
        :u {
            :pos [350 200]
            :vel [0 0]
        }
        :v {
            :pos [250 100]
            :vel [0 0]
        }
    }

                (vec* [(- xv) (+ (Math/max 0 (- yv)) (- y))] ground-strength)
                [0 0])) (vals nodes))))

(defn calculate-all-node-forces [{:keys [nodes springs hinges]}]
    (merge-with vec+
        (calculate-spring-forces nodes springs)
        (calculate-hinge-forces nodes hinges)
        (calculate-gravity-forces nodes)
        (calculate-ground-forces nodes)))

