 
      ;; show coffeescript
      #(go
-        (swap! state assoc :enable-orbits true)
+        (swap! state assoc :enable-orbits? true)
+        (swap! state assoc-in [:radar :orbit] :coffeescript)
+        (swap! state assoc-in [:coffeescript :highlight] true)
         (<! (multi-animate!
               {:a :_ :b 1 :duration 1} [:coffeescript :alpha]
               )))
 
      ;; show dart
      #(go
+        (swap! state assoc-in [:coffeescript :highlight] false)
+        (swap! state assoc-in [:dart :highlight] true)
+        (swap! state assoc-in [:radar :orbit] :dart)
         (<! (multi-animate!
               {:a :_ :b 1 :duration 1} [:dart :alpha]
-              {:a :_ :b 0.1 :duration 1} [:cam :zoom])))
+              ;;{:a :_ :b 0.1 :duration 1} [:cam :zoom]
+              )))
 
      ;; show clojurescript
      #(go
+        (swap! state assoc-in [:dart :highlight] false)
+        (swap! state assoc-in [:clojurescript :highlight] true)
+        (swap! state assoc-in [:radar :orbit] :clojurescript)
         (<! (multi-animate!
               {:a :_ :b 1 :duration 1} [:clojurescript :alpha]
-              {:a :_ :b 0.05 :duration 1} [:cam :zoom])))
+              {:a :_ :b 0 :duration 1} [:cam :y]
+              {:a :_ :b 300 :duration 1} [:cam :x]
+              {:a :_ :b 0.15 :duration 1} [:cam :zoom]
+              )))
 
      ])))
 

                   (/ 1000 60))
        dt (/ delta-ms 1000)]
    (set! prev-time curr-time)
    (put! tick-chan dt))
  (.requestAnimationFrame js/window tick!))

;;--------------------------------------------------------------------------------

    (restore!)))

(defn draw-orbit!
  [{:keys [r]}]
  (line-width! 10)
  (circle! 0 0 r)
  (stroke-style! "#566")
  (stroke!))

(defn draw-radar!
  [opts]
  )

(defn draw-planet!
  [{:keys [size angle r highlight]}]
  (let [x (* r (cos angle))
        y (* r (sin angle))]

    (circle! x y size)
    (fill-style! (if highlight "#FFF" "#566"))
    (fill!)
    ))

(defn draw-coffeescript!
  [{:keys [alpha] :as opts}]
  (when-not (zero? alpha)
    (save!)
    (global-alpha! alpha)
    (draw-orbit! opts)
    (draw-planet! opts)
    (restore!)))

(defn draw-dart!
  [{:keys [alpha] :as opts}]
  (when-not (zero? alpha)
    (save!)
    (global-alpha! alpha)
    (draw-orbit! opts)
    (draw-planet! opts)
    (restore!)))

(defn draw-clojurescript!
  [{:keys [alpha] :as opts}]
  (when-not (zero? alpha)
    (save!)
    (global-alpha! alpha)
    (draw-orbit! opts)
    (draw-planet! opts)
    (restore!)))

;;--------------------------------------------------------------------------------
;; Drawing
