randomColor (attribute, index, base, spread) {
        'use strict'

        let r = base.r + (Math.random() * spread.x),
            g = base.g + (Math.random() * spread.y),
            b = base.b + (Math.random() * spread.z)

        r = this.clamp(r, 0, 1)
        g = this.clamp(g, 0, 1)
        b = this.clamp(b, 0, 1)


        attribute.typedArray.setVec3Components(index, r, g, b)
    }
Given an SPE.Shader attribute instance, and various other settings,
assign Color values to the attribute.
@param  {Object} attribute The instance of SPE.ShaderAttribute to save the result to.
@param  {Number} index     The offset in the attribute's TypedArray to save the result from.
@param  {Object} base      THREE.Color instance describing the start color.
@param  {Object} spread    THREE.Vector3 instance describing the random variance to apply to the start color.