Hello world!

with 6 Comments

Welcome to xinaesthetic.net. Here is an application for exploration of the parameter space of a graphics synthesiser. Your motions are followed and used to determine the fitness function of a genetic algorithm which breeds new offspring to replace those you do not pay attention to.

Click here to download and run the java webstart application.

* Unfortunately the version of JOGL I used for this (which was hosted by Sun and as such had the bonus feature of not needing special permissions despite calling native code) eventually became unsupported and as such bitrot has claimed this particular piece at least for the time being. I also mislaid the source code, although it might be around somewhere. At some point, I should recreate this in JavaScript. Perhaps it was always meant to be transient, like a mandala. Actually, to an extent the particular graphics generated were genuinely meant to be transient, but I might have hoped that the piece itself would survive a few more years. Preservation is an issue that needs care and attention in digital art.


Move the mouse over different parts of the grid to register interest in particular configurations.
The borders fade from green to red, depending on the amount of attention they are given. When they go far enough into the red, they are replaced with new offspring based on the others that are currently around. Influencing the evolution of the population in this way is the main mode of interaction.

Additionally, moving the mouse over the large view to the left causes the evolution process to pause, such that the form may be examined without the pressure of the current population changing. Holding the control key while moving the mouse holds the currently focussed specimen, so that you don’t have to carefully dodge with the mouse if you don’t want the large view to change.

Each individual view can also be manipulated by dragging the mouse:

  • Left click & drag for rotation.
  • Right click & drag for translation.
  • Middle click & drag to scale.
  • Hold left & right buttons and drag to rotate about z.
  • Alt & click to reset view.

There are no alternatives for mice with less buttons for now; sorry. All comments are appreciated.

6 Responses

  1. mbien
    | Reply

    thats pretty cool and it runs perfectly smooth, keep up the good work!

  2. Jon
    | Reply

    Very cool indeed! I am a graduate student in Psychology and need some abstract stimuli for a research project I am working on. I wonder if you would be willing to provide me with your source code (Of course, i would acknowledge you in the author’s note should my work be published!)

  3. Peter
    | Reply

    Hi Jon,

    I only just noticed your comment – as you can see this site is a bit neglected at the moment and also I don’t get email notifications from it for some odd reason that I’m about to hopefully fix. Thanks!

    If it’s particularly the graphics code your interested in then it is very simple fixed function OpenGL. There are is basically a nested for loop, with a transformation applied and a sphere drawn at each iteration of every level of loop. The visual effect is a combination of two (IIRC) coloured lights and additive blending. If you know OpenGL at all, that might make some sense…

    I’m happy to share the code for this if you’re still interested; I might even be tempted to put a new spin on it just for you since it’s always nice to have friendly comments. 🙂

    I’m always promising myself to do more little eye/ear candy things, much of which I’d not be averse to open source… watch this space!


  4. freemnele
    | Reply

    Note: this wonderful spam has been editted to remove the spammy spam spam from the spam.
    A lot of thanks for all of the efforts on this blog. Kim really likes participating in investigation and it’s obvious why. excessive sweating babies We learn all regarding the dynamic ways you make both useful and interesting tricks through this web site and therefore cause contribution from website visitors on this situation plus my child excessive sweating virus is undoubtedly starting to learn a great deal. Enjoy the rest of the year. You’re the one excessive sweating yahoo answers performing a wonderful job. I will be recommending http://www.xinaesthetic.net to colleges

  5. Jason
    | Reply

    Hi Peter. I was wondering if you could give any details about the genetic algorithm used. Is it a simple “randomize and select” or is there some fitness function operating?

    • Peter

      There is a human fitness function; the user decides what they think should survive. From the population at a given moment, there is a health score for each individual dependent on how much attention the user has given that individual, and then there are various factors for weighting how ‘elitist’ the selection of parents should be on the basis of that health value. When an individual is not focused, it’s health gradually drops and it is eventually replaced with new offsrping when it reaches zero.

      It’s unfortunate that this demo no longer works and also that I mislaid the source code (although I could always decompile the bytecode); we’ve been working on some HTML5 versions recently, so at some point I’ll put something new up in its place.

Leave a Reply