 ;; using the initial paint amount as the stroke-weight. This allows
 ;; for a smooth decrease in the width of the path.
 
+(defn mass-to-weight [mass]
+  (* 50 mass))
+
 (defn draw-path [path]
   (doall
    (map-2 (fn [[position1 _ mass] [position2 _ _]]
-            (q/stroke-weight mass)
+            (q/stroke-weight (mass-to-weight mass))
             (apply q/line (concat (position-to-pixel position1) (position-to-pixel position2))))
           path)))
 

;; 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

        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 0.1 1))
        projected-path (map #(project-point %1 %2) path velocities)
        splatter       (map (fn [[position velocity] mass]
                              (if (does-impact-splatter? mass velocity)
