Genetic Image needs to be able to do things like this. I just discovered Andy Gilmore today, and a lot of his abstract work is extremely applicable to the Genetic Image project. While it’s not really feasible to put a lot of organic shapes into the program, especially not with the pictures that are hand-held pen on paper, some of the more abstract shapes and the principles behind them could be induced algorithmically. It’s possible to get more process based stuff into a system like Painter, but that needs so much work.
Category: ‘Genetic Image’
I have started working on GeneticImage again. A long time ago, I started a secondary project, called Painter, which was an extension of the expression-generation of GeneticImage into a full-fledged code generation thing. Painter is very interesting, and has oodles of potential, but it’s not something I am capable of working on in full right now. On the other hand, I’ve been using GeneticImage off and on, creating fun new things with it from time to time.
I’m creating a Kenai project around it, so it will be interesting to see where that goes and how it works out.
My interest in working on the project again is primarily to improve it for how I use it, rather than general usability, which is something of a conflict of interests. Hopefully, it should be fun for people to peruse.
I’ve been very interested in doing experiments with cellular automata and other soft of image generation work, and amid reading AI papers, I’ve done some miscellaneous code experiments. Right now I’ve built a nifty little system that is able to handle many types of CAs, and can represent in space in several ways, represent their contents in several ways, and render them in a variety of ways as well.
I’ve included a little demo applet which handles a small diffusion-like CA, and is hopefully a sign of some things potentially to come.
Okay, I made a render over the last weekend using a modified version of Genetic Image. Basically the modified version takes a render and splits it up into tiles, and saves these tiles separately. So, I decided to take Blueshift, and make it into something really big. The modified version of the program will split images into 5000×5000 pixel square tiles. I thought, since I was going to leave it running for the weekend, why not make it 10 times that, in both directions. So I now have a single 50000×50000 image in 100 5000×5000 tiles. I don’t know what I am ever going to do with this monstrosity now. It eats up something on the order of 6 GB on the computer it is sitting on. That’s not a lot, but if I decide to make many more mammoth images, I will run out of space quickly.
What to do with it, though, is a major problem. I am thinking of scaling the image down by a factor of 4 (downsampling will smooth out some of the pixelation that Genetic Image produces) to a more manageable size of 12500×12500, and then printing the result at 300 dpi to a nice ~42″ square poster. Maybe I can sell them. Who knows? An issue, though, is how to actually work with the saved images. I can’t just open up a massive canvas in Photoshop and just drop the images in. I don’t know of any software for editing really huge images. It may be necessary to simply write a small program to load the images, compress, and manage them that way.
Maybe someone will find this post and kindly provide me with suggestions.
I’m rather pleased with this one. It has an interesting balance of color, shapes, texture, and it also has a good diversity of light and dark areas. A lot of times, working with GeneticImage, the images come out very homogeneous and uniform. This is pleasingly different in that it has managed to carve out some clear forms while at the same time having a lot of visual information that is pleasing to look into. I have also uploaded the image’s genfile, so if you are so inclined, you can fire up GeneticImage and render it or mess with it in general. I’ve made one really big render (15000 pixels square), and am considering plugging it into some visualizer like Modest Maps or the Google Maps API to make it browsable.
Also, for those of you so interested, I am going to put up a set of notes on how the image is composed, what functions go into it, how they work, and so on.
I’ve been persuaded to do some more work with Genetic Image. I am not sure what is going to result out of this, but it’s possible that there may be some nice new stuff on the way. I’ve created a few new large renders, and I’m thinking about making a step by step guide that shows how the program actually turns mathematical functions into pretty pictures.
I’ve also been wanting to do some more work on Painter, but it will be a while before anything happens with that. My next qualifying exam is on May 1st. Why is it that whenever some big huge update deadline approaches that I suddenly feel motivated to work on my independent projects?
Because I don’t know when to quit on these things (or, possibly because working on somethings helps me relax from working on others), I made some nice progress on Painter, and rather than showing images, I figured I might embed an applet. This is very simple, and contains some primitive graphical methods, but is nonetheless quite neat and has its own sort of style.
The applet will think when you click on it, and if it thinks for too long (10 seconds) it will realize that it is confused and allow you to click again. If you are interested in this project, it is available via svn on the Painter site. The documentation on the site is abhorrent, I know.
EDIT: Due to strange technical issues, I had to take the applet down, as it was causing issues with browsers. I truly regret having to do so, but I just haven’t been able to fix it yet.
In my copious spare time, I’ve been working on Painter. Today I was able to get it to produce some sort of image. Amazing! Painter is essentially a metaprogramming project, and it generates its own programming control structures. Generally what I’m trying to do with it is put in some sort of automatic Processing. Eventually it will be able to do a lot more. But, we all must start small.
I am re-writing GeneticImage.
GeneticImage was enormously successful as a project, but it is time to move on, pushing it in new and exciting and convoluted directions. GeneticImage is turning into a new project, Painter. Instead of having the evaluative model that GeneticImage has (wherein every point is evaluated with functions), Painter has a procedural, process oriented approach. Painter will actually draw to the canvas, doing brush strokes, and employing interesting procedural mechanics to make images. Painter is online as a Google code project: http://code.google.com/p/painter/
Painter is still far from being available or released, but I figured I’d make a post to say that I was working on something new.
I have done some scrounging and am building the capacity for orbit traps into Genetic Image. Orbit traps are one of the more interesting ways to represent classic complex function fractal imagery. For those of you who see a lot of the fractal images that have that sort of lacy-spiky characteristic, there’s a good probability that it’s created with an orbit trap.
The math is pretty simple, I did a major reworking of complex function fractals in Genetic Image so that they’re possible, and it’s possible to do a number of other interesting things. My main complaint with them is that the performance is still really terrible, as compared to Perlin fractal noise so I tend to bypass complex fractals a lot of the time. They also don’t have very many outputs, so they don’t show up very often unless they’re heavily weighted.
I am going to spend a little bit more time getting interesting effects, and seeing if I can encourage the traps to appear, create other interesting behavior. Also I’ll need to do a few more bug fixes. Always the bug fixes.