matched set

michael | generative art | Friday, December 29th, 2006

Added a few minor tweaks to the “dial” subprogram, but the main thing I added was a batch of 80 or so photos that I shot over the past two weekends specifically for the purpose of feeding back in to these programs. The photographic process (though I called it cheating earlier) is helping me learn what patterns I am looking for in a composition, and also what details work best with the programs. I am taking lots of notes for an upcoming attempt at generating compositions from scratch.

Previously, my photos were formal studies with lots of straight flat lines; however, the conversion to vector really seems to produce the most interesting results when fed a photographic source with a balance of hard and soft transition areas (more curves and especially more gradients). The new photos reflect that– in fact, quite a few were shot on an old manual lens from the ’80s (Nikkor AI-S f2 85mm, if you must know… one of my dad’s castoffs), and are thus a tad out of focus (I am rusty with the manual focus thing). Blurry and grainy are not bad things in this context.

Subject matter? Closeups, mostly. Details of Park Slope storefronts, ripped subway posters, bicycle gears, sidewalks. The usual urban detritus bits and pieces I capture on walks around town. These two came out on consecutive runs, and I like them as a matched set. I have very little to complain about on either one.

dial049 and dial050
dial_049.jpgdial_050.jpg

balanced

michael | generative art | Monday, December 18th, 2006

I just like this one. Sheet of color vs. a spilling junk drawer of parts.

gold.jpg

photography

michael | generative art | Sunday, December 17th, 2006

I feel that in the interest of full disclosure, I should point out that these images start out life as photographs. There’s a bunch of programming going on, the source material is often made unrecognizable (or at least seriously abstracted), and the raster to vector conversion makes things very different in feel once printed. However, I can’t help but feel like a) I’m cheating, and b) this process is little more than a fancy Photoshop filter. My desire is to have completely computer generated visual compositions, but I’m not there yet.

Right now, some of the source photos are by other people, and most are by me. As a photographer, I think I’m on the level about this, since I make double sure that any non-me photos that feed one of my final images are so seriously tweaked as not to be the same artwork. Sometimes if you smash them down to thumbnail size, you can still see a bit of the old photo.

In the short term, this experiment has a manual feedback loop, which is my selection of the images used in the first place. I am taking pictures to make abstractions to take pictures by (to paraphrase the Spacemen 3), and I find that the generative work is already affecting the way I see compositions. I spent last Saturday out and about with the camera, and found myself snapping color compositions in a different way than I had previously. Not surprising, really; the time-consuming part of this process is editing the photos, then vetting the results of runs of the program, then picking the keepers. I have a pool of about 300 photos, selected over time strictly on their color balance (that’s gate 1). The program picks an image randomly from the pool, does its thing, and I decide if the result was interesting or not (gate 2). Finally, I pick the best of the keepers (gate 3). The pool of photos was whittled down from over 15,000 of my own (and a near infinite number from the real world), I get about one interesting result out of 25 when the program runs, and about 5 out of 100 of those are keepers at the end of the day, so I’m probably looking at a minimum of 50 images for each “success”. Learning what to reject is as important, if not more so, than what to keep.

“All painting is an accident. But it’s also not an accident, because one must select what part of the accident one chooses to preserve.” — Francis Bacon

But I do want to move away from photographic input. My ultimate goal is to have the program generate the entire composition and have it sufficiently visually pleasing and complex to maintain interest. Eventually, what I really want is an artificial intelligence with whom I can only converse symbolically.

For now, I am starting small. I have a second Ruby program I’m calling “underpainting”, which generates bitmaps for me. It generally builds on a desaturated, grayish background, and builds up spots of saturated interest. Layout is sort of random, but I hope to put in some training/memory/analysis routines to let it learn what I like. This could be easily networked, too, so others could help me train it over the web. For now, it’s a bit stupid, but it occasionally happens on a decent result. This one has almost the same palette as a painting of the Delaware Bay marshes I have hanging in my office:

paint31.jpg

Eventually, I won’t even need the bitmap step. Another possibility is statistical analysis of the existing photos. What are my favorite colors, really? Clues about what I really like to see in paintings will help me make the programs that make more of them for me. Once there’s a set of algorithms that is correctly describing what I want to see, plans are in the works to go back to ActionScript and Max/MSP/Jitter and animate the stuff. And then there’s those designs for a painting robot to put them on canvas (completing the circle back to the physical), but we’ll leave that for another time.

trigonometry

michael | generative art | Saturday, December 16th, 2006

dial_hed.gif
Busted out the 9th grade math to do proper radians. In some of the previous examples, I was varying the angle of each element based on parameters of the color, but I wasn’t doing by proper trigonometry; instead, I was just using an offset one way across the bottom, and the opposite offset across the top. This limits the angle to plus or minus 45 degrees, and won’t line up with a circle. This new routine allows proper 360 degree rotation. So now I can play with making each shape-mark more of a glyph. Depending on parameters, they look like arrows, tees, dials, sputniks, etc. And each mark is representative of the color information with which it’s drawn.

dial_4.jpgdial_3.jpgdial_2.jpgdial_1.jpg

detail views
dial_4_det.jpgdial_1_det.jpg

because i can

michael | generative art | Monday, December 11th, 2006

One great thing about working in a digital medium is that when an algorithm is generating interesting results, it can be pretty simple to scale the experiment up. With that in mind, here’s a screenshot of part of a 15.5 megabyte vector file, with over 79,000 circles. This takes four full minutes to draw on screen. Not my favorite composition (the colors are a little too soap-bubbly), but included here as an example of the textures possible with sheer overkill.

lucid 011 and detail
overkill.jpgoverkill-detail.jpg

translucent

michael | generative art | Monday, December 11th, 2006

When I was a wee tot, my favorite toy was a simple set of hard plastic shapes cast in bright, transparent colors. I would hold the red discs and green cylinders up to my eyes and get freaked out by how these simple filters could change every color in the world. Never outgrew that love of translucency, really.

Each circle in these prints has a 6% opacity fill in the inverse color of its rim color. Often this produces horrible failures. But when it works, the effect can be subtle and striking.

lucid 000 and detail
lucid01.jpglucid01-detail.jpg

lucid 003 and detail
lucid-02.jpglucid-02-detail.jpg

spot on

michael | generative art | Wednesday, December 6th, 2006

I couldn’t be happier with the line that this one walks between precision and decay.

#r033
ss1.jpg

#r033 detail
ss1_det.jpg

paint

michael | generative art | Wednesday, December 6th, 2006

Following up on the “lines” versions below, I used the same logic but changed the line into a wedge shape. The first version, basically a triangle, was way too crisp. Dropping a bezier curve across the bottom of the triangle, though, made these teardrop shapes. They do a passable job of mimicking paint brush strokes. This effect was heightened when I added a random variable to the grid, so that on successive runs of the program, it can choose whether or not to follow the grid or depart from it. The geometric shapes (like the circles) look great on a precise grid, but this loose brush stroke shape looks much better off of it.

The two monochome-ish ones here actually come out looking like sumi-e paintings; a happy accident.

paint3.jpgpaint4.jpgpaint2.jpgpaint1.jpg

lines

michael | generative art | Friday, December 1st, 2006

After the circles, I next tried straight lines which came off a little boring. Varying the angle of the line seemed like a possibility, but a random angle lacked something. The wedge shapes in the post below worked decently enough (the angle of the wedge is determined by the darkness of the color, same as the stroke width), but a single line seemed to hold some promise still. As it turns out, varying the line angle by hue (45 degrees left for red-orange, 45 degrees right for red-violet, with the color wheel in between) made a huge difference. The line angles make a sort of logical sense now, with large gradients between hues producing sweeping curves. Note that cyan blue lines point toward the upper right of your screen while red lines point to the upper left.

Here are two products of the same program.

#g032
grid_032.jpg

#g032 detail
grid_032_det.jpg

#g050
grid050.jpg

#g050 detail
grid_050_det.jpg

shape change

michael | generative art | Friday, December 1st, 2006

Home from work with something I hope doesn’t turn into the flu, so took a couple of minutes to tweak a parameter or two between naps. I’m trying other shapes beyond circles, but keeping the grid process outlined below otherwise the same. The most interesting results so far have been these inverted-L shapes. Most are much bolder, but I rather like the simplicity of this one.

#g007
grid007.jpg

#g007 detail
grid007_detail.jpg

Powered by WordPress