Still a few improvements :
Here is the code source.
@grosgood may be interested by that, I’m using a lot of diffusion tensors to achieve the painting simulation
paint :
+diffusiontensors 0.1,1,0.5,2
+b[0] 10%
f=0
repeat inf,t
beta={1-exp(-$t/70)}
100%,100%,1,4
{u(16,512)},1,1,1,"*
const da = 10;
const dl = 1;
const beta = $beta;
const bs = lerp(80,2,beta);
const anisotropy = lerp(0,1,beta);
lmax = u(lerp(1,20,beta^2));
X0 = round(u([w#0,h#0]-1));
RGB = [ I(#0,X0),255 ];
for (a = 0, a<360, a+=da,
X = X0;
U = [ cos(a°), sin(a°) ];
for (l = 0, l<lmax, l+=dl,
C = I(#1,X,1);
T = [ C[0],C[1],C[1],C[2] ];
eig = eig(T);
l1 = eig[0];
l2 = eig[1];
u = eig[2];
v = eig[3];
ellipse(#-1,X[0],X[1],bs,bs*lerp(1,(1 - l1 + l2),anisotropy),atan2(v,u),1,RGB);
nU = T*U;
X+=nU*dl;
);
);" rm.
sh. 100% distance. 0 n. 0,1 pow. {u(0.5)} *. 255 rm.
opac={lerp(0,0.5,$beta)}
blend[2,-1] alpha,{u(0.15,$opac)}
w. # on. frame.jpg,$f
f+=1
done