           (doseq [[actx actx-info] (:actxs @vis)]
             (when (= actx-id (last actx))
               (swap! vis #(assoc-in % [:actxs actx :closed] (not (:closed actx-info))))
-              (>! render-ch [@vis nil true])))
+              (>! render-ch [@vis nil true nil])))
           (recur))))
     (vis-run-controls event-delay step-ch el-prefix)))
 

    (go-loop [num-events 0]  ; Process events from world / simulation.
      (let [[actx event] (<! event-ch)
            [verb step & args] event
            deltas ((get (get vis-event-handlers verb) step) vis actx args)]
        (set-el-innerHTML (str el-prefix "-event")
                          (str num-events ": " (last actx) " " verb " " step " " args))
        (when (and (not (zero? @event-delay)) (some #(not (:after %)) deltas))
          (>! render-ch [@vis deltas false])
          (when (> @event-delay 0) (<! (timeout @event-delay)))
          (when (< @event-delay 0) (<! step-ch)))
        (>! render-ch [@vis deltas true])
        (when (> @event-delay 0) (<! (timeout @event-delay)))
        (when (< @event-delay 0) (<! step-ch)))
        (recur (inc num-events)))
    (go-loop [vis-last nil
              vis-last-positions nil
              vis-last-html nil
              vis-last-svg nil]
      (let [[vis-next deltas after] (<! render-ch)] ; Process render-ch, updating U/I.
        (if after
          (let [vis-next-positions (atom {})
                actx-ch-ch-infos (group-by #(:first-taker-actx (second %)) (:chs vis-next))]

                                                                   actx-ch-ch-infos)))
                  vis-next-svg (apply str (flatten (vis-svg-actxs vis-next @vis-next-positions
                                                                  deltas true)))]
              (when (not= vis-next-html vis-last-html)
                (set-el-innerHTML (str el-prefix "-html") vis-next-html)
                (set-el-innerHTML (str el-prefix "-event") event-str))
              (when (not= vis-next-svg vis-last-svg)
                (set-el-innerHTML (str el-prefix "-svg") vis-next-svg))
              (recur vis-next @vis-next-positions vis-next-html vis-next-svg)))
          (let [vis-next-svg (apply str (flatten (vis-svg-actxs vis-last vis-last-positions
                                                                deltas false)))]
            (when (not= vis-next-svg vis-last-svg)
              (set-el-innerHTML (str el-prefix "-svg") vis-next-svg))
            (recur vis-last vis-last-positions vis-last-html vis-next-svg)))))
    (ago world w
         (reset! root-actx world)
