In[]:=
W=240;H=135;v=.35/W;f=Norm;X={1,0,0};Z={0,0,1};L=Last;k=#/f@#&;t=Interpolation@RandomReal[1,99];T[o_,n_,s_:1]:=(c=0;j=99;e=.05;l=X+eZ;S[u_,r_]:=(h=u-o;a=f[hn];If[a<r,If[j>#>e,c=If[p=o+n#;b=p-u;T[p,l]==0,l.k@b(t[50+L@pr]+6),s];j=#]&/@(h.n+Sqrt[r^2-a^2]{-1,1})]);S[0X,4]S[{8,6,0},.4];a=L@n;If[f@a>e,h=-L@o/a;p=o+nh;If[j>h>e&&6<f@p<9,c=If[T[p,l]==0,t[6f@p]+2,s];j=h]];.1c);m=RotationMatrix;M=m[1,Z].m[1,X];Image@Table[T[40M.Z,k[M.{xv,yv,-1}],0],{y,H,-H,-1},{x,-W,W}]
Out[]=