A simple filter using Splits, mirroring and random rotations.
I called it Sloppy Mess
because it’s what the default settings create
Multiple iterations look nice though.
I wanted to output the effect to a new layer but the default layer mode (Average) doesn’t exist in Gimp, and also it would need to rewrite the script because of iterations…
And I think i should remove some layer modes from the list (Shape stuff), since they don’t seem to make any difference…
Script (Hopefully without too many errors) :
#@gui Sloppy Mess : sloppymess, sloppymess_preview(0)*
#@gui : note = note("<small>Author: <i><a href="http://prawnsushi.free.fr">Prawnsushi</i></a>. Latest Update: <i>2023/11/06</i>.</small>")
#@gui : sep = separator()
#@gui : note = note(<small><i>Slices</i></small>")
#@gui : Width (px) = int(1,1,2000)
#@gui : Axis (1x, 2y) = int(1,1,2)
#@gui : Mirror Axis (1x, 2y) = int(1,1,2)
#@gui : sep = separator()
#@gui : note = note(<small><i>Rotation</i></small>")
#@gui : Range Clockwise = int(35,0,90)
#@gui : Range Counter-Clockwise = int(-35,-90,0)
#@gui : Boundary Conditions = int(2,0,3)
#@gui : Center X(%) = int(0,0,100)
#@gui : Center Y(%) = int(0,0,100)
#@gui : sep = separator()
#@gui : Deform = int(3,0,20)
#@gui : sep = separator()
#@gui : Iterations = int(1,1,20)
#@gui : Blending = choice(3,"add","alpha","and","average","blue","burn","darken","difference","divide","dodge","edges","exclusion","freeze","grainextract","grainmerge","green","hardlight","hardmix","hue","interpolation","lchlightness","lighten","lightness","linearburn","linearlight","luminance","multiply","negation","or","overlay","pinlight","red","reflect","saturation","screen","seamless","seamless_mixed","shapeareamax","shapeareamax0","shapeareamin","shapeareamin0","shapeaverage","shapeaverage0","shapemedian","shapemedian0","shapemin","shapemin0","shapemax","shapemax0","shapeprevalent","softburn","softdodge","softlight","stamp","subtract","value","vividlight","xor")
#@gui : Strength = float(100,0,100)
#@gui : sep = separator()
sloppymess: skip "${1=1},${2=1},${3=1},${4=35},${5=-35},${6=2},${7=0},${8=0},${9=3},${10=1},${11=3},${12=100}"
m "BlendMode : $""=__mode" BlendMode "add","alpha","and","average","blue","burn","darken","difference","divide","dodge","edges","exclusion","freeze","grainextract","grainmerge","green","hardlight","hardmix","hue","interpolation","lchlightness","lighten","lightness","linearburn","linearlight","luminance","multiply","negation","or","overlay","pinlight","red","reflect","saturation","screen","seamless","seamless_mixed","shapeareamax","shapeareamax0","shapeareamin","shapeareamin0","shapeaverage","shapeaverage0","shapemedian","shapemedian0","shapemin","shapemin0","shapemax","shapemax0","shapeprevalent","softburn","softdodge","softlight","stamp","subtract","value","vividlight","xor"
wi={w}
he={h}
n 0,255
repeat $10
if $2==1
spins={w/$1}
dir=x
sli=y
else
spins={h/$1}
dir=y
sli=x
fi
if $3==1
mir=x
else
mir=y
fi
+s. $dir,$spins
repeat $spins
l[{$>+1}]
if $4||$5
rotate {u($4,$5)},0,$6,$7%,$8%
fi
p={($>+1)%2}
if $p==0
mirror $mir
fi
done
done
a[^0] $dir
+gradient_norm.
negate.
deform[^0] $9
blend[^0] edges,1
equalize.
blend ${__mode{$11+1}},$12
done
equalize.
sloppymess_preview:
sloppymess $*
Here’s what it did to sample portrait9
:
Default settings.
Defaults settings, 3 iterations.
Width set to 100px, using Y axis, rotations to 0, blending to “Luminance” mode.
Changed Boundary Conditions to 0 and blending to “Value”.
Default settings but Width > 1000 and 6 iterations.