     (take number-of-points (range initial-mass 0 step))))
 
 
+
+
+
+
+;; ## Putting it all together
+
+;; I've pulled a bunch of colours that Pollock used in his seminal
+;; work "Number 8" so that each flick of paint can be rendered in a
+;; random colour out of this pallete
+
+(def canvas-colour [142 141 93])
+
+(def paint-colours
+  [[232 51 1]
+   [248 179 10]
+   [247 239 189]
+   [29 16 8]])
+
+(defn pick-a-colour []
+  (nth paint-colours (rand-int (count paint-colours))))
+
 ;; now we need to assemble all of the above functions into something
 ;; that will work out everything
 
-(defn do-the-things []
+(defn fling-paint []
   (let [position       (starting-point)
         total-time     (random-between 1 5)
-        path           (ensure-above-canvas (de-casteljau (anchor-points position 0.1 2 3 15 0.4) 0.005))
+        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))
         projected-path (map #(project-point %1 %2) path velocities)

;; 
;;  R = V - (2 * (V.N) * N)

(def canvas-normal [0 1 0])

;; dot product is he sum of the multiples of the dimensions

(defn dot-product [vector1 vector2]

                                 splatter-dampening-constant)))






;; ## Paths vs Points

;; having all the code for dealing with a point is all well and good,
;; but we need to be dealing with paths

