Hello! This is a feedback to the Computer Graphics student @amyspark. She participates to the Google Summer of Code 2020 on Krita for a procedural generator based on SeExpr. This thread is my answer to her recent call for example in this must-read blog post of her here: https://www.amyspark.me/blog/posts/2020/05/19/what-is-seexpr-about.html
Diclaimer: to get visual examples, I couldn’t produce any procedural layer myself because I couldn’t find any Free Libre and Open Sources software allowing me to produce what I had in mind. So, I had to search online and used for this feedback textures that are not my creations. This example are not for commercial usage, only for information and I hope the authors of the texture used under will allow me this use (if not, contact me and I’ll remove).
Procedural generator are great for generating electric arc, thunders to overlay over an artwork as a special effect (figure 1.A). With multiple axis of symetry a generator can also do complex mandalas effect; great for any magic ring summoning effect or magic circle (figure 1.B). Energy waves with thin lines would be complex to paint one by one, while a generator can produce them quickly (figure 2.B).
Sometime generator can tiles easily the procedural effects. With the transform tool of Krita that can deform them later; it’s possible to use a thick Voronoï pattern as a lighting effect (figure 2.A), or to use concentric circles bubbles as an interesting floor texture (figure 2.B) or to create more geometric pattern to ease the creation of complex tiles on floors that would take ages to trace manually in perspective and paint (figure 2.C). Of course, all this textures wouldn’t be perfect to use “as it is” and would require to the painter to paint-over them to melt them visually into the painting stroke rythm of the piece. But their quick setup and generation would open creative experimentation and a quick way to prototype an idea before finalising it.
Other ideas: underwater light difraction pattern (figure 3.A), cloudy type of texture for interesting overlays (figure 3.B) or depht of field Bokeh effect auto generated (figure 3.C).
Other ideas: Sci-fi mosaïc pattern (figure 4.A), broken glass shatter pattern or very dry floor (figure 4.B), or more organic webbing (figure 4.C).
I have to admit that I’m not really personnaly interested by keeping the texture “dynamic”; as in using it as a layer that can rescale and keeps the effect as it is. The procedural effect I want to generate are transitional in my workflow and never an end point. The “texture” generated will be in any case be deformed, erased partially, recolored and painted-over. I’m 100% sure about it for my workflow.
That’s why I wouldn’t mind at all if the dialog would be like a filter and result in filling a layer or a selection with the generated output as baked pixels. I would certainly not use the feature if the whole generation required a special dynamic layer slow to compute at print resolution (around 3000px or 4000px large artworks). But I wouldn’t mind getting a slow progress bar to render and bake to pixel a texture like that after I press “OK” in a dialog.
Speaking of GUI, I wouldn’t use it if it was only code (figure 5.A) It would be a too big investment learning a new syntax and words for only this little “extra texture spice” benefits. Something like a node editor would feel also too overkill to me (figure 5.B) and I think it would be too complex for a feature like that (also, I imagine to maintain). All in all, I really like the GUI on the SeExpr website (figure 5.C): a quick preview, a set of presets (that’s very cool) and a part with widget to adapt parameters: Frequency, Turbulances, etc… I also like the customisable gradient editor to color the effect. I also enjoy to see the code exposed on the bottom but I think a part like that shouldn’t be visible by default; but be hidden as the text tool in Krita does for the SVG markup in another tab.
I think one of the challenge and success of the feature will be to get a solid list of presets in the list, named for practical use in artworks. It could be words like: fire, thunder, electricity sparks, clouds, lava, alien wall, organic nest, rain, snow, grain, crackles, shattering, sci-fi pattern…etc… rather than technical abstract identifier like tiles-voronoi-Freq22, inversed-Perlin27, random-noises, Xgen, EFX, 00121115…etc…. Then users might discover them, customise them (color/zoom/complexity) and insert them in their artworks for creative purpose. That would be a success!
That’s all, I hope my feedback will help @amyspark, you can guess it; I’m really passionate about the topic That’s because my first comic colored with digital color back in 1998 with Corel PhotoPaint had a procedural generator and I love it.
Thank you for reading.
Other artists and developper: feel free to join this discussion and share your own example and feedback. I posted this on Krita-Artist and not on my blog for this purpose!