       ;; TODO: would be nice to get this a different way :(
       (let [viewport (utils/canvas-size)]
         (when (and (< 640 (:width viewport)) ;; only if not on mobile
-                   (empty? (d/datoms @(om/get-shared owner :db) :avet :layer/source "signup-animation")))
+                   (empty? (d/datoms @(om/get-shared owner :db) :avet :layer/source signup-animation-source)))
           (run-animation owner (signup-animation document (cameras/top-right camera viewport))))))
     om/IWillUnmount
     (will-unmount [_]

                   :end-tick 200
                   :start-x rect-start-x :end-x rect-end-x
                   :start-y rect-start-y :end-y rect-end-y
                   :source "signup-animation"
                   :props {:layer/ui-target "/signup"
                           :layer/ui-id "/signup"
                           :layer/signup-button true}})

            [om.core :as om :include-macros true]
            [om.dom :as dom :include-macros true])
  (:import [goog.ui IdGenerator]))

(defonce signup-animation-source (utils/squuid))

(defn add-tick [tick-state tick tick-fn]
  (update-in tick-state [:ticks tick] (fn [f] (fn [owner]
