       (. scatter-plot (add new-line))
       (om/set-state! owner :line new-line))
 
-    (let [point-geo (js/THREE.Geometry.)]
-      (doseq [d datoms]
+    (let [point-geo (js/THREE.Geometry.)
+          time-bound (om/get-state owner :time-bound)
+          ds (filter (partial hide? time-bound) datoms)]
+
+      (doseq [d ds]
         (let [x (x-scale (:x d))
               y (y-scale (:y d))
               z (z-scale (:z d))]

                                 "#EFBD2E"
                                 "#73B845"
                                 "#009BDD"])

(defn events->chan
  "Given a target DOM element and event type return a channel of

                    (om/set-state! owner :sy (+ sy dy))
                    ))
           (log/warning l "nothing!"))
         (recur (alts! [down up move]))))
     (let [{:keys [renderer camera scene scatter-plot w h]} (om/get-state owner)]
       (. renderer (setSize w h))
       (dommy/append! (om/get-node owner "plot") (.-domElement renderer))
       (. renderer (setClearColor 0xEEEEEE 1.0))
       (. scene (add scatter-plot))
       (aset camera "position" "x" 200)
       (aset camera "position" "y" -100)
       (aset camera "position" "z" 100)
       (aset scatter-plot "rotation" "y" 0)
       (render owner (om/get-state owner :datoms))
       (animate renderer camera scene (.getTime (js/Date.)))))

   )
  (render
