gmic command fuzz tester

I’m working on a project, similar to my random expression generator, that will generate entirely random gmic pipelines. (Math expressions were proving entirely too slow and not too useful). As a result, I have begun work on a system that allows me to programmatically catalog commands in order to resolve their parameters randomly. Current results are as follows:

gmic +lorem 955 blur z,65.7%,0,1 
gmic +lorem 482 blur xzy,74.784%,1,0 
gmic +lorem 469 blur yxy,27.37,0,1 
gmic +lorem 98,177 blur cyzc,60.479%,1,0 
gmic +lorem 973 blur 77.966,3,1 
gmic +lorem 955 blur 99.722,0,0 
gmic +lorem 682,35 blur xc,28.663,2,1 
gmic +lorem 882,162 blur y,23.99,3,1 
gmic +lorem 662,310 blur z,47.488,1,1 
gmic +lorem 714,536 blur 60.239,3,1 

I figure that this script would be very useful for someone testing out their custom processing commands and for people who just generally want to explore the possibilities of a command.

Is this a standalone utility anyone would be interested in?

The script is very much in its infancy and would still need a GUI to effectively insert command definitions, so this wouldn’t be something on the near horizon. I’m just trying to gauge interest to see if I should focus on it more; if anyone had suggestions, those would also be useful.


This seem like advanced material. For the idea itself, I can see some application in randomly generating effect per areas. You would have to create a parser to do this.

Ιsn’t this what tutorials do? :wink: (Sorry, pulling my own leg here).

Yes. for both these reasons, but especially the first. Script authors fall in love with their creations, so only come up with endearingly unchallenging tests — a subconscious tendency, methinks.

This in a public repo anywhere?

1 Like

As I’m a random guy doing random things for random reasons… I can only say yes.


Thanks for the response! Currently not in a state to be usefully shared, but I am working towards one…slowly.

My biggest holdup will be interfacing the command cataloger: a command can have multiple headers, a header has multiple parameters, and a parameter can have multiple options. Making a UI for this is going to take some time and thinking, but ill repo the backend as soon as its shareable for review.