Computationally very intensive, while originally introduced already in the '50s, it is only since the '90s thatgenetic programming has become feasible, and started to produce either original solutions to the stated problems, or actually independently re-discovered patented inventions.It is also possible to imagine evolutionary approaches to the design of genetic programming systemsthemselves, which lead to an interesting theoretical explosion of recursive improvement: but that is thesubject of an other of my favorite talks... the Technological Singularity! :)So let's see instead the third component of our system, the social spaces...For several years now the online world—including the traditional web—has achieved a great speed of change in proposing a series of more and more valuable functionalities for managing personal and professional relationships, and groups.Instead of concentrating on a single solution, if we look at the set of possible competing social networks, werealize that they compete for our attention, and it is the varying degree of our attention that makes themsuccessful, not only through the data we provide to them daily.The same is true in online worlds, with the added value of built-in interaction and creativity.We have been fascinated by the three dimensional nature of Second Life, and other online worlds, and theintegrated development environments it offers (as much as we would like them to be more productive, and better integrated with other tools we use).But, as we have seen from the reports of the press lamenting the desert-like nature of too many places in-world, the main value of the online world resides in the communities that form, which in turn are precious because of the interaction they offer, and the creativity they unleash.What we also know, is that within Second Life every object created is connected to the internet, per definition. If it were not so, we would not even see it! This is the opposite of the physical world, where our desire of connecting every object is a long and difficult task, which will take several years, or decades to berealized.So, let's now put it all together!We can take advantage of the natural desire of Second Life communities for interaction, and creativity,seeding them with objects, which communicate their usage levels to a database, similarly to web pagescommunicating their visitor data via weblogs.Different groups receive variations on the objects, which then have to prove themselves, to survive to thenext generation, by showing to be useful.Variations can be relative to shape, size, color, movement of components, means of interaction. The sourceof variation can be, depending on the nature of the parameter, a table of preset values, or, in case we want tochange the functionalities of the objects as well, sets of algorithms.The definition of usefulness, our utility function, must also adapt to the nature of the object, to the realisticexpectations of how, when, and how frequently a given object is used. This function is also not necessarilylinear, since the specific community's adoption of the object, or even its dependency on it can change.Taking the best performing variations, and providing further changes in the successive cycle of seeding takesthe entire process one step ahead, towards the goal of maximizing the utility function.Let's see a couple of examples, of objects being evolved on Vulcano!