     (restore!)))
 
 (defn draw-orbit!
-  [opts]
-  )
+  [{: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!
-  [opts]
-  )
+  [{:keys [alpha] :as opts}]
+  (when-not (zero? alpha)
+    (save!)
+    (global-alpha! alpha)
+    (draw-orbit! opts)
+    (draw-planet! opts)
+    (restore!)))
 
 (defn draw-dart!
-  [opts]
-  )
+  [{:keys [alpha] :as opts}]
+  (when-not (zero? alpha)
+    (save!)
+    (global-alpha! alpha)
+    (draw-orbit! opts)
+    (draw-planet! opts)
+    (restore!)))
 
 (defn draw-clojurescript!
-  [opts]
-  )
+  [{:keys [alpha] :as opts}]
+  (when-not (zero? alpha)
+    (save!)
+    (global-alpha! alpha)
+    (draw-orbit! opts)
+    (draw-planet! opts)
+    (restore!)))
 
 ;;--------------------------------------------------------------------------------
 ;; Drawing


     ;; show coffeescript
     #(go
        (swap! state assoc :enable-orbits true)
        (<! (multi-animate!
              {:a :_ :b 1 :duration 1} [:coffeescript :alpha]
              )))

     ;; show dart
     #(go
        (<! (multi-animate!
              {:a :_ :b 1 :duration 1} [:dart :alpha]
              {:a :_ :b 0.1 :duration 1} [:cam :zoom])))

     ;; show clojurescript
     #(go
        (<! (multi-animate!
              {:a :_ :b 1 :duration 1} [:clojurescript :alpha]
              {:a :_ :b 0.05 :duration 1} [:cam :zoom])))

     ])))


            :soundscript {:alpha 0}
            :flow {:alpha 0}}
   :coffeescript {:alpha 0
                  :size 50
                  :highlight false
                  :angle 0
                  :angle-speed (/ PI 5)
                  :r 900
                  }
   :dart {:alpha 0
          :size 100
          :highlight false
          :angle 0
          :angle-speed (/ PI 15)
          :r 1400
                  }
   :clojurescript {:alpha 0
                   :size 100
                   :highlight false
                   :angle 0
                   :angle-speed (/ PI 10)
                   :r 2100
                  }
   :radar {:orbit nil
           :offset 0}
   })

;; Current state of the application.
(defonce state
  (atom initial-state))

;;--------------------------------------------------------------------------------
;; Canvas
