As the previous parade of hopefuls is essentially still ongoing, I focused for a bit on painting with numbers, functions and scripts to automate it all. This is the write-up, with pics further down, as usual, playing catch-up (but not yet winning) with what came out of it so far.
Initially I wanted simply to tidy up all those loose scripts for texture generation and tie them together into a more easily controllable tool for exploring the R,G,B space where all possible textures await discovery. The whole of it didn't take all that long - in one day and a half (with assorted C/CPP related misery) over the weekend, all the relevant scripts were neatly separated into relevant categories, ready for mix-and-match or add-new-ones: image domain mapping, pattern generation, colour mapping. Then the full list of what was available got some additions as I started implemented all sorts of ideas gotten from my previous reading and then I started to give it a spin or two and then of course the whole carefully set up overall scripting went overboard because new things require new knobs to explore and there's no way to set it all upfront for *all* of it. And when I finally sat down today to "write it up", I looked in mild surprise at the accumulated *sets* of textures that have each a different style really because of the different underlying approach and various knobs and all that. While I could perhaps cram them all in a single article and be done with it, I think it makes more sense to take at least the write-up (and images per page) at a more reasonable pace and make a series out of it so that's it a bit easier to load and to digest too. This way I might even remember to pace the rest too, next time!1
In a rather amusing inversion of terms, from a fractal point of view it turns out that the M.C. Escher style is really just about the most boringly classical you could make - all it takes is a perlin-based typical multifractal2 + the most basic of colouring mappings (such as interpreting the result as % of each colour) and you're all set. Fiddle with the multifractal's classical knobs controlling noise and amplitude and you'll fit, as expected, increasingly more of it in each tiny patch until it all quickly turns to noise essentially - indistinguishable from noise, at least. Fiddle further with the additional offset knob and you can get some variation in pattern - as long as you keep the amplitude (hence number of octaves knob) quite low, up to a maximum of about 4 really. Worth noting here that the offset in this case simply acts as a fixed amount of *additional* amplitude at each iteration so basically making the fractal pack increasingly more/less in each shape already determined by the rest of knobs. So in this sense, the offset's effect is limited really, at least compared to what one can truly do with offsets that are not tied up so tightly with the multifractal's own parameters.
Without spending the time to fit any specific colour mappings to work just-so (or any other similar overfittings essentially), the pictures obtained are rather... boring, I should say, with all my heartfelt apologies going to Maurits Cornelis who did it all before there were computers to unleash the fractals just like that at the push of a button (after a lot of calculations and some code writing). Variations of pattern can be obtained to some degree with that limited knob controlling the offset but the essential trouble with this typical multifractal is that there's only one offset and no way to further play around with it during the iterations themselves. Nevertheless, hopefuls were found to want to give a go at getting under those escher-like skins, so here's the list of shots, starting with the textures themselves and then some hopefuls showing off the improved rotations by different angles on x,y and z axes as well as their newly found, skin-deep love of M.C. Escher:
In the next articles of this series, I shall leave classical Escher behind and illustrate for instance an exploration of the eyes-river, a travel through texture-galaxy and a stare into the trigonometry vortex that surely ate many other hopefuls before. Stay tuned or get out of tune, for the pictures are generated already and so I'll have to write them up anyway!
I can imagine it. Just about... imagine it. ↩
The very term multifractal is rather slippery since basically any combination of "fractal transformations" fits the notion of multifractal. Nevertheless, the simplest of those that I could find is this one used here: an fbm based on perlin noise, having in addition to the usual H and octaves, a fixed offset that gets applied (multiplication) at each iteration. ↩
Comments feed: RSS 2.0
Kinda interesting.
Yeah, not a lot to it as it stands but since I was writing the stuff down, I wanted to have each "type" shown for the record at least, if for nothing else. And then anyway, who knows when it will turn out useful in whatever surprising way.
Indeed!
[...] of faces and eyes. So it was one of the first directions I explored further with my newly tidied up texture generation scripts that turned out in short order a whole... river of crazy eyes effectively flowing diagonally as you [...]
[...] you compare the above with the previous styles featured in this series (such as the Escher-like or the swirly river), you might get perhaps some idea that there are some specific choices made so [...]
[...] http://ossasepia.com/2020/05/12/fashionable-hopefuls-a-bit-of-escher-under-the-skin/ << Ossa Sepia -- Fashionable Hopefuls: A Bit of Escher under the Skin [...]
[...] be different in style (in the way for instance swirly textures make a clearly distinct group from Escher-type textures and both are still different from the naive/surreal set), as the initial shape acts as a sort of [...]