                         ; assume all keys held now were held since "then"
                         [(iv/interval (:now w) new-now) (keys/key-states)]
                         ; bailout if we transition more than 60 times per second
-                        (* 60 (- new-now (:now w)))
+                        (.max js/Math (* 60 (- new-now (:now w))) 5)
                         0)
                 new-w (if (not= c new-c)
                         (world-append w new-c)

                              [t (ha/extrapolate ha-def ha t)]))
                          os)))))

(def world-widget
  (let [props (fn [this] (aget (.-props this) "args"))
        ; world -> view: scale up and flip

        c
        (.createClass js/React
                      #js {:shouldComponentUpdate
                           (fn [next-props _next-state]
                             (this-as this
                               true))
                           :render
                           (fn []
                             (this-as this
