Dynamic portraits w/ quasicrystal, waves interference and half-toning​
​by Sumit Sijher

Wolfram Language code

hthr=Import["hthrtzy.jpg"];​​​​hthrC=ImageData[hthr,"Byte"];​​​​hthrG=ImageData[ColorConvert[hthr,"GrayLevel"],"Byte"];​​​​L=Length@hthrC;​​​​waves[x_,y_,w_,a_,t_]:=Sin[w((Cos[a]+Sin[a])x+(Sin[a]-Cos[a])y)+t*2Pi]​​​​G[ImgDataG_,ImgDataC_,IS_,s_,N_,w_,A_,A1_,A2_,h_,f_,t_]:=Graphics[Table[Translate[{RGBColor[Part[ImgDataC,y,x]/255],Opacity[.6],Disk[{x,-y},(A1+A2(1-Part[ImgDataG,y,x]/255))*A(1+Sum[waves[x+200,y+50,w,a*2Pi/N,t],{a,0,N-1,1}]/(2N))]},h*{Cos[2Pi*(t+f(x+y)/L)],Sin[2Pi*(t+f(x+y)/L)]}],{x,1,L,s},{y,1,L,s}],PlotRange{{-15,L+11},{15,-L-11}},ImageSizeIS]​​​​Manipulate[G[hthrG,hthrC,540,8,5,.1,4,.7,3,2,1.5,t],{t,0,1}]