Random Stained Glass:
$ gmic 1024,1024,1,5 noise 0.02,2 voronoi r 50%,50%,1,3,2 +gradient_norm. negate. n.. 0,255 n. 0,1 mul
Variant:
$ gmic 1024,1024,1,12 noise 0.002,2 voronoi r 50%,50%,1,3,2 +gradient_norm. negate. n.. 0,255 n. 0,1 mul
Random Stained Glass:
$ gmic 1024,1024,1,5 noise 0.02,2 voronoi r 50%,50%,1,3,2 +gradient_norm. negate. n.. 0,255 n. 0,1 mul
Variant:
$ gmic 1024,1024,1,12 noise 0.002,2 voronoi r 50%,50%,1,3,2 +gradient_norm. negate. n.. 0,255 n. 0,1 mul
$ gmic 2048,2048,1,1,"L = clog(20*([x,y]/w - 0.5)); P = cexp([log(40/exp(L[0])),L[1]]); 85*xor(P[0]%4,P[1]%4)" map 6 rs 50%
@cedric I raised that issue before. I stop using sample lena because of that, and I followed her wish.
Well, that probably was my 1st post here anyway, and i didn’t know about this. Cannot edit it anymore, so here’s an alternative (if David doesn’t mind
):
The eye:
gmic sp david repeat 2000 rotate {v*1.8},0,3,435,215 w done d
and one with periodic boundary conditions, even messier:
gmic sp portrait9,512 repeat 2000 rotate {u*1.2},0,2,37%,47% w done d
Well, i don’t care much about the eye now, but i love the painterly mess rotations can create. I wonder if this look could be done faster with something else. Maybe deform + spread?
Inspired by this post, seen on Mastodon :
foo :
repeat 12 { b:=1+$>
repeat 12 { a:=1+$>
{min(4096,$b*360)},1,1,2,"t = lerp(0,2*pi*$b,x/w); r = cos($a/$b*t); [ r*cos(t),r*sin(t) ]"
l. { s c foreach { - {ia} * 90 + 100 } a c round }
200,200,1,1,255
eval.. ":P0 = I[x]; P1 = I[x+1,2]; dp = max(abs(P1 - P0));
repeat (dp,p,P = lerp(P0,P1,p/dp); ellipse(#-1,P,2,2,0,1,0))"
rm..
}
}
frame xy,2,200 append_tiles , rs 1280
Not strictly a one-ine though, but I like the result!
Nice sharp patterns because of their simplicity, though I like the dense patterns less because they look very similar and therefore less unique.
Potential fun could be had if you animated each shape’s formation such that each shape finishes drawing by the last frame. Consider that a request if you find the time. ![]()
Another thing one could do is rotate certain patterns in 2d or 3d to introduce randomness.
I found the time ![]()
foo :
# Generate coordinates.
M,N=12
$M,$N,256,2,"a = 1 + x; b = 1 + y; t = lerp(0,2*pi*b,z/d); cos(a/b*t)*cexp([0,t])"
$M,$N,1,2,"S = crop(#-1,x,y,0,c,1,1,d#0,1); S = round(45*(S - avg(S)) + 50); draw(#-1,S,x,y,0,c,1,1,d#0,1)" rm.
# Generate animation.
{[$M,$N]*100},1,3,255
repeat {-2,d} {
$M,$N,1,1,"const dl = 16; repeat (dl,l, X = 100*[x,y] + round(I(#0,x,y,$> + l/dl,2,2)); ellipse(#-1,X,1,1,0,1,0))" rm.
+rs. 50% w. on. frame.jpg,$> rm.
}
EDIT: Finally, this is a one-liner !
$ gmic 12,12,256,2,"a = 1 + x; b = 1 + y; t = lerp(0,2*pi*b,z/d); cos(a/b*t)*cexp([0,t])" 12,12,1,2,"S = crop(#-1,x,y,0,c,1,1,d#0,1); S = round(45*(S - avg(S)) + 50); draw(#-1,S,x,y,0,c,1,1,d#0,1)" rm. 1200,1200,1,3,255 repeat 256 { 12,12,1,1,"repeat (16,l, X = 100*[x,y] + round(I(#0,x,y,$> + l/16,2,2)); ellipse(#-1,X,1,1,0,1,0))" rm. +rs. 600 w. rm. wait 20 } rm
Awesome. Not perfect: shapes that are the same do not draw at the same rate.
It’s not a bug, it’s a feature ![]()
Some shapes requires only one or a few cycles to be drawn, other requires way more cycles, and it’s actually not that easy to determine the optimal number of cycles directly from the formula.
I thought that was the case. Anyway, thanks for sharing!