I need idea how i can make brush who can color smudge.
Example in picture: right side painting with basic brush with two different colors in left also painting but additional use smudge tool, the result should be something like left side
I need advice how i can try to do it
Here is one attempt
On mousedown grab a copy of the area under the mouse into a separate canvas
On mousemove draw that copy one pixel at a time from the previous mouse position to the current mouse position at 50% alpha, grabbing a new copy after each move.
In pseudo code
on mouse down grab copy of canvas at mouse position prevMousePos = currentMousePos on mouse move for (pos = prevMousePos to currentMousePos step 1 pixel) draw copy at pos with 50% alpha grab new copy of canvas at pos prevMousePos = currentMousePos
The brush is feathered by drawing a rgba(0,0,0,0) to rgba(0,0,0,1) radial gradient over it using
globalCompositeOperation = 'destination-out'.