anchor.diff:            //don't want a clear canvas
             canvas.width = imageCanvas.width;
             canvas.height = imageCanvas.height;
  -          canvas.context2D.drawImage(imageCanvas,0,0);
  +         // canvas.context2D.drawImage(imageCanvas,0,0);
             CanvasElement sacrifice = new CanvasElement(width: imageCanvas.width, height: imageCanvas.height);
             coverWithGradient(sacrifice);
             canvas.context2D.drawImage(sacrifice,0,0);
  
positive.code: }
  
  Future<Null> initTaint() async {
      window.alert("the taint");
      CanvasElement imageCanvas = new CanvasElement(width: image.width, height: image.height);
      imageCanvas.context2D.drawImage(image,0,0);
      DreamTaint dreamDrawer = new DreamTaint(
  
negative.code:       //if i return here i definitly see a black canvas in the end product
        ImageData boxImageData =sacrificeCanvas.context2D.getImageData(0, 0, sacrificeCanvas.width, sacrificeCanvas.height);
  
        int maxY = (sacrificeCanvas.height).floor();//blindly doubling it for now to make it look right
  
        int maxX = (sacrificeCanvas.width).floor();//blindly doubling it for now to make it look right
        Uint8ClampedList data = boxImageData.data; //Uint8ClampedList
        int currentGradient = 255;
        for(int i =0; i<data.length; i+=4) {
            int pixelIndex = (i/4).floor();
            int y = (pixelIndex/maxX).floor();
            currentGradient = 255-(255* y/maxY).ceil();
            data[i+3] = currentGradient;
        }
        sacrificeCanvas.context2D.putImageData(boxImageData, 0,0);
  