                            ; -> accelerate right or left
                            (when (< vx move-speed)
                              (make-edge
-                               (kw :jumping dir (inc vx))
-                               [:geq :acc-timer 0.1]
+                               (kw :jumping dir (.min js/Math move-speed (+ vx air-move-acc)))
+                               [:geq :acc-timer acc-interval]
                                #{[:on #{dir}]}
                                clear-acc-timer))
-                           (if (= vx 0)
+                           (if (< (- vx air-move-acc) 0)
                              (make-edge
-                               (kw :jumping opp 1)
-                               [:geq :acc-timer 0.1]
+                               (kw :jumping opp (.abs js/Math (- vx air-move-acc)))
+                               [:geq :acc-timer acc-interval]
                                #{[:on #{opp}]}
                                clear-acc-timer)
                              (make-edge
-                               (kw :jumping dir (dec vx))
-                               [:geq :acc-timer 0.1]
+                               (kw :jumping dir (.min js/Math move-speed (- vx air-move-acc)))
+                               [:geq :acc-timer acc-interval]
                                #{[:on #{opp}]})))
                          ])
                       ]

                           ;moving -> moving (faster)
                           (when (< vx move-speed)
                             (make-edge
                               (kw :moving dir (inc vx))
                               [:and
                                (non-bumping-guard dir walls wall-others)
                                [:geq :acc-timer 0.05]]
                               #{:required}
                               clear-timers))
                           ;moving -> jumping  (ascend controlled)

                           ;  -> falling at apex
                           (make-edge
                             (kw :falling dir vx jump-speed)
                             [:geq :jump-timer jump-time]
                             #{:required}
                             clear-timers)
                           ; -> falling because of button release
