<17:08 EEST>
It's been a pretty amazing, perhaps even life-changing winter of art and
hacking. There was my first art
exhibition, not necessarily a huge success per se, but a nice launch of
sorts. Narttujuttu went
on to Mikkeli to arouse a bit of
controversy and polarize reviews, perhaps not unlike Paska kaparee in its
time. With basically 2-hour musical shows a few times a week, it felt like a lot of work
towards the end. I had enough to do from then on, with the Bridges conference coming
up.
At this point, I'm happy to confirm that my works have been accepted at the art exhibition — a proper international art event. In all likelihood, this won't be my only contribution to the conference, but none of that is fully certain yet. The art expo is the one I've been looking forward to the most, given the static 2D nature of my works.. so far.
In the meantime, I've also been preparing for more local events such as Yläkaupungin yö. The exact time and place for my show is still on hold, though. As this will be a different setting from a static expo, I thought I could show off random generation of static images as I had already tested, besides actual moving pictures I had prepared during hours and hours on multiple machines.
However, for a long time I had been thinking of the power of GPUs I already use for cryptocurrency mining, and I knew I could make things a lot faster for nice realtime demos. On the other hand, I'd like to keep it light enough to run on a laptop with Intel integrated graphics. I also knew from my basic IFS explanation that linear iterations are essentially image manipulations: shifts, rotations and shrinks. OpenGL textures are a natural way of manipulating these, and fast enough even on older GPUs.
I spent a lot of days pondering different approaches. I was even worried that the newer Vulkan standards would make OpenGL soon obsolete, but it seems OpenGL will continue to be supported as an easier, higher-level interface. So I bit the bullet and looked for some example code in PyOpenGL, and in just a day I had a working basic demo. Soon I also looked into escape-time rendering of Julia and Mandelbrot sets with GLSL; this was natural to be integrated with IFS, given I had already used the results of one as the initial set of the other for fun effects.
Some curious synergetic effects emerged, as the OpenGL projects started to inspire bits in my Julia/gnuplot code, and vice versa. Most notably, GL provided a quick way of testing new escape-time functions, while my traditional approach offered more variety and better quality for final rendering. Another GL-inspired idea was a kind of random flight through the parameter space to complement the simpler, preprogrammed paths I'd used in several videos. On the other hand, a lot of my older ideas burst into new life as they could be animated in novel ways.
Of course, the way to rendering nice IFS or escape-time graphs was not quite straightforward. OpenGL has a lot to test and explore, and some of the demos have led to interesting side effects. Thus the choice to use OpenGL and the image-manipulation approach, rather than simply speeding up calculations in something like OpenCL, has really opened up my art into new directions. It's no longer just iterated function art as I'd described the first exhibition. I guess the basic combo of doing a bit of thinking and simply hacking around goes a long way, whatever the medium.
As a person with strong tendencies and interests in both art and science, it feels like this algorithmic art, and notably the Bridges community, is what I've been looking for all my life. The official community with its peer-reviewed publications makes a world of difference to me — it's a way of telling everyone that this thing of mine is actually important and internationally recognized. Hopefully, some financial compensation will also follow, as this can be a rather expensive hobby :-j