docs: function(field, canvasImage){
      var buffer32 = canvasImage.buffer32;
      var width = canvasImage.width;
      var height = canvasImage.height;
      for (var y=0; y<height; ++y)
        for (var x=0; x<width; ++x)
          buffer32[y*width+x] = field(x, y);
      canvasImage.imageData.data.set(canvasImage.buffer8);
      canvasImage.context.putImageData(canvasImage.imageData, 0, 0);
      return canvasImage;
    }