Что в итоге получилось, может кому пригодится.
var
width = 80,
height = 100,
color = [255, 255, 255],
depth = 100; // 1-100
scale = 100; // 1-100
canvas = document.createElement('canvas'),
context = canvas.getContext('2d'),
image = context.createImageData(width, height),
data = image.data;
canvas.width = width;
canvas.height = height;
for(var j = 0, row = 0, column = 0; j < data.length; j+=4, column++) {
if(column >= width) {
row++;
column = 0;
}
data[j] = color[0];
data[j+1] = color[1];
data[j+2] = color[2];
data[j+3] = 255 * ((scale * 0.02 - (Math.pow(row - height/2, 2) / Math.pow(height/2, 2) + Math.pow(column - width/2, 2) / Math.pow(width/2, 2)))/(depth/100))
}
context.putImageData(image, 0, 0);
P.S. с терминами может напутал scale и depth