Monthly Archives: March 2009

Scouting for groworld locations

We are currently looking for places in which the groworld game could take place. This is an important decision as it will create the atmosphere and dictate a lot of the feeling that the game has. More pics here. One common feature in our minds it seems, is the tension between grown and built, rural and urban. Having said that, we don’t want to go as far as flower in making this an explicit conflict in the game.

Bloom Shader

Thanks to Gabor’s new fbo-pixels branch, we now have render to texture functionality working in fluxus, as an exciting extension to the pixels primitive. This should be in the main branch soon. One of the things I want to use this for is full screen effects, such as bloom/glow effects which are applied to a rendered scene as a single pass with a glsl hardware shader.

The jpeg compression really isn’t kind, but this video shows a before and after comparison:

There will be a fluxus example with this soon, but here is my work-in-progress shader:

varying vec2 texc;
uniform sampler2D tex;
uniform float kernel;
uniform float scale;
uniform float thresh;

void main()
{
    vec4 sum = vec4(0);
    int i=0;

    // mess of for loops due to gpu compiler/hardware limitations
    int j=-2;
    for(i=-2; i<=2; i++) sum+=texture2D(tex,texc+vec2(i,j)*kernel);
    j=-1;
    for(i=-2; i<=2; i++) sum+=texture2D(tex,texc+vec2(i,j)*kernel);
    j=0;
    for(i=-2; i<=2; i++) sum+=texture2D(tex,texc+vec2(i,j)*kernel);
    j=1;
    for(i=-2; i<=2; i++) sum+=texture2D(tex,texc+vec2(i,j)*kernel);
    j=2;
    for(i=-2; i<=2; i++) sum+=texture2D(tex,texc+vec2(i,j)*kernel);
    sum/=25.0;

    vec4 s=texture2D(tex, texc);
    gl_FragColor=s;

    // use the blurred colour if it's bright enough
    if (length(sum)>thresh)
    {
        gl_FragColor=sum*scale;
    }
}

Hayfever

I’ve been developing a simple networked mulitplayer prototype game for groworld. Not much to look at yet, but it contains one very simple gameplay mechanic – pollen can be blown out or absorbed into flowers by players, who are represented by plants. At the moment this just results in a change of flower colour, but the idea is that we could use a technique like this to distribute more complex abilities and behaviours between players. It’s also a good way of testing out network transport protocols, at the moment it’s just a couple of OSC messages, but the next thing to try is XMPP (which means a jabber chat client for fluxus :) All the code is available on foam’s git repo.

Also, here’s another pluggable plants test:

Pluggable plants

We’ve come up with a way of making plants out of modular components, where the branching structure is partly controlled by the textures. This means we have more artistic control over the plants than is possible with pure L Systems, although the topology can be generated in the same way. There is more info on this idea on the libarynth, and here’s a load of randomly built plants from a set of test components – I’m calling these lollypop trees:

Ghent #2: Borrowed Scenery 0.1

I’ve just spent the last few days helping to set up and take part in foam’s contribution to Ghent’s “The game is up” festival (how to save the world in 10 days). We’ve been talking, eating, drawing, growing and philosophising about plants, and I’ve been programming, and getting people to test mini games based on our vegetal friends too. We also met with Auriea and Michaël from Tale of Tales to talk over game designs for the groworld project, and tried playing some relevant games (including the excellent Nobi Nobi Boy). My dancemat’s also been taking a hammering, causing some flowery fluxus noisiness :) There is still a lot more things going on, including workshops on seedballing and solar power, a guerilla gardening excursion and de-installation art.

A lot more photos here.

Ghent #1:Livecoding at Resonance

Last weekend I was livecoding the Vooruit in Ghent, along with Fokke de Jong, Gabor Papp, Evan Raskob, Graham Coleman and Antti Jadertpolm as part of Resonance Ghent 2009. It was a pretty full on weekend consisting of inhabiting a nice gallery space in a continuous workshop/jam session, and taking control of the visuals on the Saturday night event. Many thanks to Bram de Jong for being the perfect host!

Looking into the code:

On the saturday night we combined the forces of 3 fluxus livecoders. This is a mini clip of Gabor Papp and Evan Raskob livecoding to (I think) Claro Intelecto and Andy Stott:

Some of my stuff is visible right at the start of this video.

Here is a clip of Antti Jadertpolm live-photoshopping, which provided a very organic look, with a refreshingly manual process which was fascinating to watch:

More pics: