Context Breeder
John Klima
(Imports the idx3d API written by Peter Walser)

Context Breeder creates an alternative interface for the Rhizome Artbase that is aimed at creating context both for the artworks contained in the Artbase and for users' interests. Users create genes out of 4 selected artobjects and can then 'breed' their genes with others contained in the 'gene pool' to create offspring -- new combinations of artworks. The fitness of a gene is determined by the similarities between the artworks it contains.



DISCLAIMER: You may want to read the Tips first. You may want to read the Usage instructions first. You may also just enter the interface and see what happens. If you choose to do this, do not complain that the interface is not intuitive or does not work. It takes two seconds to read the Tips. It takes less than one minute to read the Usage. It takes approximately  five minutes to read the description. Your experience will be far richer once you do so. Peace out.

  • interface 



  • drag blue dot for coarse list scroll. a
  • drag red dot for fine list scroll.
  • click on a list item to add it to one of the four cells of your gene. The location indicator jumps to the next cell. You need four items to complete the gene. aaaaaaa aaaaaaaaaaaaaaa aaaaaaaaaaaaa  
  • give the gene a name by typing in text. You do *not* need to click in the text box first, just type away! Alphabet only, no spaces, no numbers, just a-z. aaaaaaaaa aaaaaaaaaaaaa  

  • Click the create gene button when you are finished.



    • The gene pool will show you the genes that are related to the one you created. There are 4 levels of relatives:

      twins (genes with a sequence identical to yours)
      siblings (genes with 3 items matching your sequence)
      cousins (genes with 2 items matching your sequence)

    • friends (genes with 1 item matching your sequence)

      There also are 'strangers,' which contain no matchesbut are the 10 fittest genes currently in the pool.You can breed with any of the genes in the pool by mousing over the gene and pressing the breed button.
    • There are four buttons in the gene pool. The top view and front view buttons switch the 3d viewpoint. The breed button starts a breeding process. The Go To button in the information area launches the respective work in the Artbase.These are the only items in  the interface you "click" on.  click and drag to navigate and manipulate the 3d view.

    • mouse over images to retrieve information about the work of art.



    • The reproduction screen shows you the offspring of your breeding process. Breeding is quite simple: objects from your gene are combined with objects from the gene you bred with to produce two new genes. The genes are evaluated for fitness by keyword repetition. The more keywords match across the sequence, the higher the fitness. 

    • select offspring A or offspring B to return to the gene pool with the offspring  as your new gene.






    DISCLAIMER: You may want to read the Tips first. You may want to read the Usage instructions first. 

    You may also just enter the interface and see what happens. If you choose to do this, do not complain that the interface is not intuitive or does not work. It takes two seconds to read the Tips. It takes less than one minute to read the Usage. It takes approximately  five minutes to read the description. Your experience will be far richer once you do so. Peace out.




    • if you are an emerging net artist, create a gene sequence with two of your works in the Artbase, and two works of a widely known net artist.aacaaaa  aaaaaaaaaaaa  aaaaaaaaaaaaaa  
    • if you are a curator, create a sequence with four works you know have a commonality.aaaaaaa  aaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa  
    • if you are a collector, pick four objects at random,  play with it for a while, and buy what you like.aaaaaaa aaaaaaaaaaaaaaa aaaaaaaaaaaaa  





    Lets put aside the notion of Art for a moment and consider what this commission is by definition -- an alternate interface into the Rhizome Artbase.  In my mind, this means that the end result should have a function, it should actually be useful in some way. To bring art back into the definition means that the function need not be useful in only a practical sense. It does not need to improve upon an existing methodology for Artbase access, because as art, it is not a tool. Art needs only to supply the unusual methodology.  However, I believe Context Breed does improve Artbase access.  Minimally, it makes the "surfing" experience more fluid.  At current count, the Artbase has approximately 800 entries. Not a big number, but not a small number either.  So if you do not have knowledge of net art, you don't know theartists or works, where do you start? Perhaps you would ask an expert.  The interface might be a list of "top picks" or some such thing. There might be a hit count, or slashdot vote mechanism. These mechanisms are useful, but flawed. The expert has prejudices, or simply doesn't have time to look at everything, so they only suggest works by artists they already know.  Vote mechanisms are popularity contests. So my goal in a functional sense, was to create an organic mechanism that assembled a collection of works that relate to each other, and somehow represent examples of key concepts in net art, without the assemblage being the dogmatic choice of a single individual, or the "oppression of public opinion" in a vote system. aaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaa
    We often see in movies such as "Minority Report," fabulous interfaces seamlessly providing precisely the information the user needs, in glorious 3d, with effortless manipulation.  This seems in stark contrast to the reality of the computer interfaces we actually have.  The reason for this is twofold -- we don't have equipment actually capable of presenting data in these fabulous ways, and we don't have the mental capacity to utilize such an interface if it did exist. So my goal as far as presenting the data, was to do so in an a-typical way, in a way that did not suggest any of the interface metaphors we are accustomed to, and perhaps debilitated by. I don't mean to suggest that my C-breed interface is that glorious interface of Hollywood, but I do think, like glasbead, it is a necessary first step in that direction.  A technical aside (my standard grump): Being required to write the thing in Java means that it is much less of that glorious interface than if I could have executed it in the platform and software of my choice. In other words, the oppression of public opinion. aaa aaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaa   aaaa                      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaa
    So how does it work?  To start with, the user selects four Artbase objects to create a short gene sequence.  The  "select four" interface is very important to c-breed function. What the user does has everything to do with how the work will be perceived -- the garbage in/garbage out dilemma of data processing, and of user interaction.  An interaction aside (my other standard grump): I simply refuse to make work that compensates for the user being an idiot.  In glasbead, if you load it up with stupid sounds and spazz out on the interface, it will sound stupid.  If you consider what you load and consider what you fling, it sounds really nice. aa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaa aaaaaaa
    You have selected four objects.  You press Create, and your sequence appears in the 3d interface. Now other sequences refered to as "relatives,"  begin to appear. The first to appear are sequences that have the greatest number of  object matches with your sequence.  Previously someone created a sequence that is similar to yours, and  this sequence appears in proximity to your gene. The sequences are positioned by similarity -- 4,3,2,1 matches, after which it positions ten "strangers," ten objects that have no relation to yours. All the objects are also ranked by a  second criteria,  "fitness," which I will get to in a moment. Suffice to say, the genes most similar  to yours will appear first, spiraling out and around by fitness and similarity.  The spiral is an excellent way to represent this twofold type of hierarchy. aaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaa
    So what does this mean? It means that if you happen to have included a Levin in your sequence, you also might see a Napier, and perhaps a Kanarek and perhaps me, because someone else created a gene that has Levin, Napier, Kanarek, Klima. This isn't a vote system, its a context system. Perhaps the Levin, Napier, Kanarek, Klima gene was created by someone interested in multi-user. Perhaps another gene was created by someone interested in hacktivism. In a sense, the gene pool is self-organizing, without having any "knowledge" of itself.  It has no "expert" rules. It is the cumulative result of all the four unit sequences that everyone has ever created (that survived). Though C-breed is just a simple demonstration of the notion, this idea is really exciting to me.  Each gene is a little portion of a thought, by an individual.  Each gene is a little piece of an "idea." aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa                      aaaa  aaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaa
    You have created a four object gene sequence and added it to the pool, you see your gene, located in the center of the space, and you see other genes that other people have created spiraling out from yours.  To navigate, click and drag. "Mousing over" other gene sequences retrieves information about the artworks in the gene. Click the Go To button to launch the artwork in a new window.  Mousing over a gene also displays the sequence, next to your sequence, in the breeding area at the bottom of the window.  Once the Breed button appears, you are ready to breed these two genes to create two new genes that are subsequently added to the pool. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaa
    By clicking the Breed button, you start the breeding process. A new interface opens, showing you the two new genes created from your original gene, and the gene you bred with. By combining the first two objects from your original sequence with the last two objects of the sequence you bred with, flipping the position, the first new gene is created.  The second new gene is created from  the last two objects of your sequence and the first two objects of the other sequence, again flipping positions.  This is called a genetic crossover algorithm.  In the case of context breeder, it is a very simple, four unit crossover.  In other genetics based software, sequences and crossover patterns can be very complex.  For this project I chose simplicity to foster understanding. aaaaaaaaaaaaaaaa      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaa
    Every genetic algorithm has what is called a "fitness heuristic." After crossover, the new gene is evaluated by some criteria and assigned a fitness. You will notice words appearing below each object.  These are the keywords (in green) and the categories (in blue)  the original artist assigned to their work when they added it to the Artbase.  Context Breeder's fitness heuristic is based on word matching across the sequence.  When a word appears in two objects, the fitness is increased. If it appears in three objects, it is again increased. The fitness increases exponentially as the occurrences of keywords and categories  accumulate.  aaaaaaaaaaaaaaaa     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaa
    When breeding occurs, the two original parent genes automatically increase their fitness.  Conversely, every other gene in the entire system decreases its fitness when breeding occurs, if it is not bred with.  In other words, the more a gene is bred with, the greater its fitness, and vice versa.  If a gene's fitness level drops below zero, it is forever removed from the system, the result being,  the system is both self organizing, and self maintaining.  Matt Mirapaul of the New York Times described it as literally a form of social Darwinism.aaaaaaaaaaaaaaaa     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    The fitness of the new sequences are displayed and you then have the option to return to the pool with one or the other sequence as "your gene."  Regardless of your selection, both new genes are added to the pool.  The pool interface reloads with your new sequence and the process starts again.  You are returned to the pool with your chosen new sequence, relatives and strangers are retrieved, and you can continue to browse and breed. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaa     aaaaaaaaaaaa aaaaaaaaaa