The fork authors’ goal is to foster active development of PIL through:
This is great news for me, because there are several projects (this site included) that use PIL, and I have been worried about its future. In addition to the infrequent PIL releases, the lack of Python 3 support in PIL was starting to be a real drag...and it was the main thing that kept some of us on Python 2.7.
So yeah, it's nice to have a path forward...time to embrace the fork and move on. I will miss the PIL acronym.
Fri Dec 19 2008 23:41:05 GMT-0800 (Pacific Standard Time)
In my ongoing attempt to learn yet another utilitarian programming language, I have decided to pick up some Python. I'm only still scratching the surface (for example I haven't even touched python regular expressions yet, nor object persistence/marshalling), but I've managed to make a few toys. I often learn best by just diving in and doing, and I've come to enjoy stumbling through toy projects when learning a new language.
So I thought it would be interesting to see what kind of images I could create with a self-modifying, mutative Markov chain. While the results below aren't yet self-modifying, they're somewhat entertaining eye-candy that's probably been done hundreds of times before.
![image](http://noisybox.net/blog/images/200812mkv/mkv_0029487 9_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_0117431 9_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_1601942 1_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_2110368 4_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_2140472 5_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_2141125 1_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_2513682 8_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_2557379 5_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_3046379 0_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_3464231 5_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_5810069 6_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_6025264 4_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_6119376 4_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_7040438 3_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_7199980 1_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_7523450 6_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_7799159 0_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_8347840 0_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_8791500 4_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_9180882 5_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_9326855 3_th.png) ![image](http://noisybox.net/blog/images/200812mkv/mkv_9996562 4_th.png)
I'm using the Python Imaging Lirbary (PIL) to create/paint the images. Sure, it's pretty well documented and intuitive, but doesn't immediatly support drawing with alpha transparency, which is a real bummer. There is at least one other drawing toolkit that does alpha, and one that does that with opengl. It would be nice to render these in realtime, but the current incantation seems to take about a second to do about 54k 2d polygons, which isn't exactly fast. I'm also not yet sure how much of that time is spent in python versus actual Tk rendering.
I'm now mostly interested in switching drawing toolkits to support alpha, doing marshalling to save/restore interesting chains, and coming up with interesting strategies of self-modification. The current models are very linear, and it might be nice to have a little abstraction that allows nonlinear curving to happen more seamlessly.
I'll probably share the code after I continue to learn from my mistakes and make things more better.