function()

in toolkit/jb/shared.js [219:277]


        function(p, inlets, ctx, width, height) {

            p.noStroke();

            var palette = inlets.palette;

            p.noiseDetail(inlets.octave, inlets.falloff);
            lastSeed = p.random(1000);
            lastStep = inlets.grain;
            grainRadius = inlets.radius;
            p.noiseSeed(lastSeed);

            var x, y, c, opacity, resultColor, startColor, middleColor, endColor;

            var noisePoints = [];
            var max = 0
            var point;
            for (x = 0; x < width; x+=lastStep) {
                noisePoints[x] = [];
                for (y = 0; y < height; y+=lastStep) {
                    point = p.noise(x * 0.005, y * 0.005);
                    noisePoints[x][y] = point;
                    if( point >= max) {
                        max = point;

                    }

                }
            }

            for (x = 0; x < width; x += lastStep) {
                for (y = 0; y < height; y += lastStep) {

                    opacity = noisePoints[x][y] + 1 - max;

                    startColor = hexToColor(p, palette[2], opacity * 255);
                    middleColor = hexToColor(p, palette[1], opacity * 255);
                    endColor = hexToColor(p, palette[0], opacity * 255);

                     if (opacity < 0.5) {
                         resultColor = p.lerpColor(startColor, middleColor, opacity * 2);
                     } else {
                         resultColor = p.lerpColor(middleColor, endColor, (opacity - 0.5) * 2 );
                     }

                    //c = (x / width) * 255;
                    if (inlets.border) {
                        p.stroke(p.color(sketchConfig.bgcolor.r, sketchConfig.bgcolor.g, sketchConfig.bgcolor.b));
                        p.strokeWeight(inlets.border);
                    }

                    p.fill(resultColor);
                    p.rect(x, y, lastStep, lastStep, grainRadius * lastStep );
                    //p.rect(width - x, y, 10, 10);
                    //column.push(c);
                }
                //lastValues.push(column);
            }
        },