Designing physical artefacts from computational simulations and building computational simulations of physical systems
  home   project   people   latest   publications   contact
 challenge summary
 challenge issues
 challenge response

Design Challenge 8

Design issues

1. Promote originality in sound and in music.

Crossover and mutation will make sure all agents sound slightly different. But to promote diversity, unique sounding agents will have advantages in natural selection. But how can we measure uniqueness or originality in sound and musical phrases? (note: compare bird mating calls). The visitor already makes the selection of interesting sounding agents by including them in their outlined world and making them migrate. But there is still a need for figuring out degrees of uniqueness. Could some kind of simple deviation from the norm be applied? Or would it be sufficient with a rule saying: 'the more similar genome - the less likely to produce offspring'?

2. Worlds as musical functions

Each outlined world is a musical part or function. Which functions would be interesting and possible to try out? Pattern, bass, drone, noise, melody, harmony ... worlds. How should the worlds be activated and mapped to limbs and torsos? One way would be to cycle through the set of worlds so as a new outlined world enters the it becomes the next one in line. Or the system always assign 'ambient' to the first discovered world, 'melody' to the seconds and so on and this way build up a musical composition. What if there are more limbs outlined than worlds in the system? Can we allow multiple worlds of the same kind? Or do we need an upper limit? Are all worlds of the same kind always the same or could initial conditions be slightly randomised e.g. each new 'pad' world has a random min/max frequency range?

3. Agents learning music from worlds

There are many ways of letting agents pick up musical elements from worlds it
has visited. How can we find which significant features of a world to be learned and how can all world influences be normalised? Will an agent that has visited many worlds sound chaotic and produce incoherent music?

4. Desert is silent
Outside of the outlined worlds the agents are silent. How should they behave to still be part of the system? Could they pause or freeze, or should the slowly run out of food and die? It would be interesting to let visitors place the agents they have evolved in a corner and come back at a later time - or let other users continue using their agents.

5. Selecting and killing agents

With their outlines carefully closing in on agents, visitor can catch and put agents inside of their worlds. Quick encounters makes the agents bounce away or flee. How can we - efficiently - calculate nearby outline velocity for each agent? There should also be some resistance crossing outlines so agents does
not migrate by themselves. By moving a limb offscreen you will remove that particular world. What will happen with the agents living there? They could die instantly, get severely hurt or just wander off in the silent desert (i.e. the main 2D world). Will they keep their knowledge or slowly loose energy and die and forget?

6. Defining a constantly moving irregular 2D world

How to efficiently assign shapes of worlds to the outlines of the visitors? Writing a downsampled versions of shapes into a matrix for each web camera frame
and then using that as a lookup table for agents is pretty fast. But there might
be better and more efficient ways. How to best keep track of in which world an
agent lives, or which agents a world contain?

7. Localise agents by sound

The sounds the agents produce will be panned in a four channel speaker system.
So depending on an agent's position on the screen the sound will be heard
left/right/up/down. When trying to keep track of single agents in crowded
worlds, this panning will probably not be enough of a help. Perhaps we could
add some external features to let visitors listen to individual agents? A
standard laser pointer, tracked by the webcamera, could be used to select which
agents to play 'solo' - other agents mute or play at very low volume. Or we
could provide a knob or some other interface for scrolling through agent
indexes - playing agents solo one after the other?