Dorkbot Presentation

Thursday, October 27, at En3my Sound, 1550 N. Milwaukee Ave., 3rd floor, in Chicago: I’ll be presenting the newest version of my Processing library, IgnoCodeLib. I may even be so lucky as to have it online and ready to download. If not, expect an announcement soon. IgnoCodeLib provides a framework for 2D graphics using Bézier curves and straight lines. It can export its graphics to Adobe Illustrator. Moar information can be found on the Dorkbot Chicago site.

I’ll also hang some of my most recent work, created with my library. I’ve been posting much of it to Flickr, to the Sampling Patterns 55 set (a selection from the larger Sampling Patterns set) and recently to the Tree Jive set. This animated GIF, Not a Glitch, was created with the Tree Jive algorithm. My page on on Open Processing has some samples of the library used for animation.


Not a Glitch, animated GIF

Not a Glitch, animated GIF, created with Processing and IgnoCodeLib


Update: for those curious about the algorithmic technique behind the Tree Jive patterns, L-systems or string-rewriting systems, I recommend Prusinkiewicz and Lindenmeyer’s book The Algorithmic Beauty of Plants, available in a free, high-resolution version on the Algorithmic Botany web site.

GLI.TC/H 2011

The GLI.TC/H Festival Kickstarter Project, GLI.TC/H 0111!?▐▐▐▀▀▀▀▀▀▄▄▀▀▌▌▌▐▐▐DIT▀▀▀▀▀Do▄it▄2gather▀▀▀▀, appears to have the necessary funding and then some. Building on the success of GLI.TC/H 2010, GLI.TC/H 2011 will take place November 4, 5, and 6 in Chicago, November 11 and 12 in Amsterdam, and November 19 in Birmingham, UK.  Check it out. Pledge: an over-the-top festival deserves to go well over the top.

Is This Thing On?

A work by Darrell Luce, Painting with Balls, for Maurice de Vlaminck, Jasper Johns, and Murakami Saburo (encaustic and oil on canvas, with collaged elements, 42 x 18 inches, 2000), is included in the group show Is This Thing On: The Art of Comedy, curated by Miguel Cortez.

For Painting with Balls Luce “appropriated” a computer print from fellow ignoStudio member Paul Hertz and threw paint-loaded balls at it. He combined the results with a painting in encaustic loosely inspired by Disney’s The Sorcerer’s Apprentice and Italian Renaissance cartoons. The work cites Work Painted by Throwing a Ball (1954) by Murakami Saburo, a member of the Japanese avant-garde group Gutai, Jasper Johns’s Painting with Two Balls (1960), and Fauvist Maurice de Vlaminck, who winningly declared: “I try to paint with my heart and loins, not bothering with style.” The senior member of ignoStudio, the former carnival mentalist J.T. Pescador (stagename, “Ignotus the Mage”) interpreted Luce’s painting as a sendup of the macho challenge: “Hay que poner los huevos sobre la mesa a ver si alguién te los corta. (You’ve got to put your balls on the table to see if anyone cuts them off.)”

Computational Aesthetics 2011

Two large format digital prints by Paul Hertz will be shown in the juried art show at the annual Computational Aesthetics conference, held this year in Vancouver, Canada from August 5 through 7. The archival inkjet prints from the artist’s recent “Sampling Patterns” series, Ponente and Shimmer, were printed at Ignotus Editions.

Selections from the Sampling Patterns series can be viewed here, in a Flickr set. The series was developed with the Processing programming language, including Hertz’s Processing Library, IgnoCodeLib.

Artist’s Statement

Ponente and Shimmer are based on regular random distributions known as “blue noise.” Natural phenomena such as identically charged particles jostling for position within a limiting boundary or a flock of birds adjusting their mutual distances have similar distributions. Blue noise dot patterns have interesting visual and cognitive effects: Their regularity seems to imply an order just about to emerge, which their randomness negates. These and other works in my “Sampling Patterns” series are snapshots from interactive real-time animations where the geometric points of the distribution are used to sample functions that control color, scale, shape, and other visual attributes. The snapshots are further edited to produce prints.

In Ponente, blue noise grids determine the locations of distorted circular shapes in different scales and granularities. Low frequency wave functions control variations in scale and simple coloring rules distinguish different layers of shapes or populations within each layer. In Shimmer, a distribution is partitioned into three populations that are distinguished by algorithmically determined colors. Each population has its own shape-generation rule. A global rule for shape orientation (a wave function) creates swirling motions over the visual field.

Surprised Party

A new Voronoi-based computer print by Paul Hertz, Surprised Party. Paul suggests that this print registers his giddy mood upon being welcomed to a surprise birthday party, a plot hatched by his wife, sister, and son and very successfully executed. The party was surprised.

Surprised Party

Surprised Party

The image was generated with multiple passes of Michael Balzer’s code for Capacity-Constrained Voronoi Tesselations. Basically, the CCVT algorithm generates random dot patterns where the dots are evenly distributed. The CCVT algorithm has the particularity of greatly reducing geometric artifacts, such as hexagonal grids,  that may appear in other generation methods. The artifacts can easily be detected just by looking, from which one might deduce that the human visual system is very good at detecting order within randomness.

Detail of Surprised Party

Detail of Surprised Party

Like a perfect gray tone, CCVT-generated dot patterns seem to have a aesthetic appeal that has a statistical correlate. Using them to produce art seems rather natural, in the tradition of “all-over” abstract painting. Their lack of order has the somewhat paradoxical effect of enabling one to see all sorts of orders–trails and swirls of dots where the fundamental rules are, roughly, for dots to keep their distance and avoid regimentation.

The Fibonacci Series and some shuffling were instrumental in selecting and assigning the colors. I leave it to the curious to decipher the numerical game. It should not be difficult. Like a good friend, you can count on the Fibonacci series.

* Shuffles an array of integers into random order
* @param intArray   an array of ints
public void shuffle(int[] intArray) {
  for (int lastPlace = intArray.length - 1; lastPlace > 0; lastPlace--) {
    // Choose a random location from 0..lastPlace
    int randLoc = (int)( randGenerator().nextInt(lastPlace + 1) );
    // Swap items in locations randLoc and lastPlace
    int temp = intArray[randLoc];
    intArray[randLoc] = intArray[lastPlace];
    intArray[lastPlace] = temp;