unstable flux?

set for fluxus

Brussels Midi Train Station, (December 13, 2005)

2p.m..late arrival to brussels, "forced" delay caused by a stop over night (++gintonic's) in Köln due to some curiosity to check the art school (www.khm.de) and chat with Siegfried Zielinski who generously handed his last book, a perefect train read, it's title Variantology, at 300kmh it introduces me in the mood for the next 4 intensive days. After all I was heading to follow a workshop of a software called "Fluxus"1, the book begins talking about Jhon Cage and his affairs, as hobby and as methodology with fungi. A precise read, in clear accordance to what was about to come up at f0am's (www.f0.am) headquarters.

Why is then this software called Fluxus? Is it one of those coincidencies, or i'm just creating here a system of beliefs to make my experience even more "true" and enjoyable..my answer is, both. His anwser was: "simply because i like the name" Dave Griffiths, initiator of Fluxus. Good enough!, after a one year old friendship with the software it all made me felt more fond to the variant flow in all, in everything. Not only mind states, not only projects and ideas vanish, not only those volatil 3d forms on the screen where altered by my keyboard scribbles (a.k.a live coding2) and wireless data. Isn't all just a flux?

Being that more or less the long intro, lets move onto the setting.

So, i came in late...3pm after walking around the building for few rounds. Everyone had already made their informal presentations so there was no chance to introduce my self formaly, no need of such portocols! a friendly and open atmosphere was already in the space, everyone ready to whatever input was about to come either from Dave, Nick or anyone else in this temporal "lab". Only few had some previous coding experience, the rest where on spot to learn the basic commands from Scheme and integrate Fluxus into their projects. And, after all we had a second big table where we gather to eat the great recipes that Rasa and Maja's mother coded just there beside us and in paralell timing, all together in the same big loft crossed out by video projections coming out from our computer screens, wireless networks and a delicious smell.

Days passed withouth pause, learning the code while fantazasing with the different recipes. The schedule seemed to obey a clear pattern, perhaps that was the only rule. Mornings for theory and context of computer animation in relation to Fluxus, afternoons for questions and experimentation with the software. Day 1, day 2, day 3..we got to day 4, the project planned to build during the workshop was somehow more clear but i had to invest a lot of time setting up the other 2 applications, I wanted to use (pd and k2o)3 for grasping from such a condimented air the wireless packets that manage to get to the table where i had been working during the last week. The idea was to make a visual representation of wireless data, some project in witch i have been working on since about a year, around the same time i began playing with Fluxus me and my collegues were wardriving the streets of Medellin, the city i grew up in Colombia.4

Finding myself with just 2 hours before we had some friends coming over to look at what we were doing for the whole week, being side by side with julien who was having some difficulties with the "ultra-fresh" release OS X version of Fluxus, and since i was already targetting some k2o values into his code lines, we decided to build it together as a lastminute collaboration. This was the code based on few Fluxus examples and tweaked by Julien to get one first approach to a 3d space built by the wireless packets flying around:

(save-name "FOAM3.scm")
(clear-colour (vector 0.3 0.3 0.3))
(show-fps 1)

(osc-source "8001")
(show-axis 0)

(define distance 0)
(define angle 0)
(define number 0)
(define Pi (* 2 3.141578))
(define hist '())
(define hpack '())

(define (drawnet x y)
(osc-msg "/pc")
(set! distance (/ y 10))
(set! number x)
(set! angle (/ 360 number))
;(display (osc-peek))(newline)
(draw-netz-things number angle distance)

(define (drawhist h hp)
(drawnet (car h) (car hp))
(if (eq? (cdr h) '())
(rotate (vector 3 0 1))
(translate (vector 1 0 0))
(drawhist (cdr h) (cdr hp)))))

(define (render)
(if (osc-msg "/pc")
(set! hist (cons (osc 0) hist))
(set! hpack (cons (osc 4) hpack))
;(display hpack)
(if (eq? hist '())
(drawhist hist hpack))))

(every-frame "(render)")

(define (draw-netz-things n ang dis)
;(scale (vector 1 (* (* (/ angle 360) Pi) dis) (* (* (/ angle 360) Pi) dis)))
(colour (vector .0 (/ n) 0.2))
(rotate (vector (* n ang) 0 0))
(translate (vector 0 dis 0))
(if (= n 0)
(draw-netz-things (- n 1) ang dis)))

(display (osc-peek))(newline)

This next screenshot was taken when the "worm" had taken shape and form, it twisted a bit to the sides but we managed to move the camera in and see the internals of the wireless packets vortex:

set for fluxus

Dave recommended the use a list with a defined number of primitives to avoid loading the scenegraph with objects thus forcing the memory of the video card and droping the frame rate to low, we saw it below 1fps. Julien and me were kind of interested on the fact of discovering how much the system could pile objects, we basically wanted to see it crashing, like a kind way for an end, but even though we ran the script 3 times during the whole night, the process only got slow but unfortunately never crashed.

You can look at some more screenshots of the piece we manage to put up together, aided by the traffic of the 19 networks found: http://fo.am/xmedk/workshop4/kismetworm/

There's also a small video and documentation of the project to map spaces using wireless data here: http://soup.znerol.ch The video there was of course done using Fluxus ability to save the frames to the hard drive, then via mencoder issuing this command: mencoder mf://*.jpg -mf w=320:h=240:fps=15:type=jpg -ovc lavc -lavcopts vcodec=mjpeg -o foamworm.avi

An enrichful week came to an end, my mind full of flux and capable to understand better the Scheme code. I wrote this text just as i got back to Swtzerland, I'm looking forward to use Fluxus as an introductory way to show young artists in my country, can't wait for the moment to show a way on how to learn and have fun with such a fun opensource project. Big up Dave!

"What a boon it will be for the recording industry (now part of America's sixth largest) if it could be shown that the performance, while at table, of an LP of Beethoven's Quartet Opus Such-and-Such so alters the chemical nature of Amanita muscaria to render it both digestible and delicious! Lest I be found frivolous and light-headed and, worse, and "impurist" for having brought about the marriage of the agaric with Euterpe, observe that composers are continually mixing up music with something else [...]. I prefer my own choice of the mushroom. Furthermore it is avant-garde." John Cage on Music Lovers' Field Companion.

TX aussi: Juan, Helena, S.Zielinski in Köln. In Brussels: f0am crew, and my friend Harlan who hosted me again KDaG! (5)

set for fluxus

You can see more images and a video here http://soup.znerol.ch/site/node/45

  1. http://www.pawfal.org/Software/fluxus/
  2. That is. the ability to change, on-the-fly, via written commands the characteristics of opengl output video or audio if the software allows. In the particular case of Fluxus the set of commands obeys to Scheme -a Lisp dialect- interpreted and executed with just pressing f5.
  3. PureData: http://puredata.info/ and Kismet-to-OSC k2o: http://k2o.znerol.ch/
  4. http://medellinwireless.net/
  5. Kill Da Gringo in You! (Bathroom wall graffiti, location unknown)