               cz (if (pos? (bit-and idx 4)) (+ z d) z)]
           [(OctreeNode. cx cy cz (* 0.5 w) (* 0.5 h) (* 0.5 d) nil (if add? p)) idx]))))
   (node-bounds [this]
-    (thi.ng.geom.types.AABB. (g/vec3 x y z) (g/vec3 (* w 2) (* h 2) (* d 2))))
+    (thi.ng.geom.types.AABB. (g/vec3 x y z) (g/vec3 (* w 2.0) (* h 2.0) (* d 2.0))))
   (split-node [this]
     (assoc this :children ot-children :data nil))
   (add-point

              cy (if (pos? (bit-and idx 2)) (+ y h) y)]
          [(QuadtreeNode. cx cy (* 0.5 w) (* 0.5 h) nil (if add? p)) idx]))))
  (node-bounds [this]
    (thi.ng.geom.types.Rect. (g/vec2 x y) (* w 2) (* h 2)))
  (split-node [this]
    (assoc this :children qt-children :data nil))
  (add-point

  [this p path]
  (if (:children this)
    (let [[c i] (make-child-for-point this p false)]
      (recur c p (conj path [this i])))
    (let [data (:data this)]
      (if data
        (if (m/delta= data p)
