         total-time     (random-between 1 5)
         path           (ensure-above-canvas (de-casteljau (anchor-points position 0.1 2 3 15 0.4) 0.01))
         velocities     (path-velocities path total-time)
-        masses         (path-masses path (random-between 5 30))
+        masses         (path-masses path (random-between 0.1 1))
         projected-path (map #(project-point %1 %2) path velocities)
         splatter       (map (fn [[position velocity] mass]
                               (if (does-impact-splatter? mass velocity)

;; work out the impact force of the paint and use this as a cutoff for
;; whether the paint should splatter.

;; In order to work out this value as a scalar we will need to be able
;; to calculate the absolute value of a vector. This can be done by
;; summing the squares of the vector's components and then taking the

(defn vector-absolute [vector]
  (Math/sqrt (reduce + (map #(* % %) vector))))


;; Based of this function to calculate the impact force we can define
;; a predicate that will tell us whether paint should splatter based
