Today we began our week-long « Mobility » workshop at the Aix-en-Provence Art School. We kicked off the session this afternoon with a conference from Thierry Marcou, director of the Villes 2.0 project at Fing who gave a general overview of the major issues facing the city as it evolves in the current networked era, as well as techno-social experiments, services and creations illustrating these tendencies.
Then, starting tomorrow, we’ll be working in two groups exploring the question of Mobility from an artistic point of view, using either the iPhone/iPodTouch platform via OpenFrameworks, a specifially-designed GPS platformed designed by the Atelier 3D, or some combination of both.
While Memo Akten couldn’t be here this week (cf. Decode), he nevertheless was able to come two weeks ago to the Atelier Hypermédia and help me (actually, the other way around) write a MapKit addon for the ofxiPhone project. This is a pretty cool little addition which allows you to run the standard Apple+Google MapKit library from within OpenFrameworks, and (magically) without breaking either. This addon is already sitting in the current svn/git of ofxiphone if you’re geek enough, otherwise it should be available within the next few weeks when the OpenFrameworks download is updated.
Antonin Fourneau and I are gearing up for the next Eniarof which begins construction next Monday and will open March 27th and 28th for two evenings of fun (18h-24h), open of course to any and all publics (animal, mineral, vegetable, fantasmagorical, whatever). I’ll post more at a later date concerning Eniarof itself, what it is, etc, but for the moment I will simply mention that we have some great special guests this year, including Nicolas Boone (cf. BUP) and Etienne Cliquet, along with previous eniarofers (cf. Charcutrie Brilliant), the students of the Beaux-Arts de Toulouse, and finally all the various stragglers and hangers-on who will throw up attractions with whatever means they can muster. This will all be taking place at the École supérieure d’art d’Aix-en-Provence and we’re open to all sorts of propositions, so if you want to join in on the fun, make yourself known and we’ll figure something out. Make sure you read the Dogme Eniarof first, as it gives the general theme of that-thing-otherwise-known-as-eniarof.
Anyway… long story short, before I get submerged by the Eniarof beast, I wanted to post a fun attraction my daughter and I made in a couple of hours for Eniarof. She’s 12, has seen every digitalinteractiveroboticgenerative thingamajig you can throw at her and really could care less. Twenty million screens and a gazillion sensors? Yeah whatever. It networks halfway across the globe and into space? Hasbeen. When she was four she shook the third arm of Stelarc, at five she was introduced to a man named Naut Humon, and over the years has met all sorts of other wonderful extraterrestrial constructs. Zzzzz. Next! So what could I possibly propose to peak the interest of a been-there-done-that 12-year-old? Actually, for years she’s been asking me to make something that matters, you know, something people might actually care about, like, for example, something with horses. I actually do have a wonderful installation along these lines (think Elephants, Stallions and Giraffes) but which has yet to find the right exhibit/curator, so she waits and waits still. So I finally gave up waiting, and as Eniarof was coming up we found a few available hours and created a horse simulator we are calling Henniraof. The functions of this horse simulator are simple: you wear various iterations of horse heads and bodies made out of cardboard, and prance about in an arena we will build for the occasion with similarly low-budget materials. Add one webcamera, one Optical Flow algorithm, a MacMini, some speakers and some horse noises and you have yourself a really fun horse simulator.
I’ve included a link to the downloadable software. Remember, this was made very quickly and while it could be far more sophisticated this would totally defeat the purpose as an Eniarof attraction. Rule one when making an Eniarof attraction: once it works good enough for people to have fun with it, you should stop and move on to the next attraction. Rule two: do whatever it takes to get to rule one.
Added note, the source code will probably not work in your OpenFrameworks installation, since I’ve done some nasty hacking into my version of OpenFrameworks. When the next version of OpenFrameworks comes out its’ OpenCV module should have Optical Flow integrated in the basic installation; I’ll re-compile at that point. Sorry about that but I’m too busy right now. Until then, the code is simply listed here as a reference. Again, sorry…
That said, we plan to add Optical Flow into the next iteration of the OpenCV Processing Libraries which should actually be pretty easy to do in and of itself. It’s really just cleaning up the current library, updating to the new OpenCV release, and fixing some major architectural mistakes we made (impossible to use multiple instances, etc) in the first library that will take time.
The horsehead construction formula was designed by Lola in just a couple of minutes. Basically I left the room to get some industrial-sized staples and when I got back she’d designed this brilliant system, so I take no credit for the design (other than some vague notion of genetic influence). All of the elements are both structural and visual. The black tape reinforces the solidity, designs the look, and simultaneously protects users from the sharp edges of the big staples (it also helps keep the staples from ripping).
Ingredients:
Cardboard box
Tape (black gaffer tape gives great contrast with the brown cardboard)
4 x Necrobutcher-sized staples (or just cut coat-hangers into staples, whatever)
Pliers (for working with the staples)
Cutting knife or scissors
Steps:
Get a box.
Flatten the cardboard box by identifying the natural seam where the box was glued together and tear at this point. This should give you a flat piece of cardboard to work with.
Identify the ugliest side and remove it. In my example, I’m removing the side where the handle was torn off (probably through use — those eggs must have been pretty heavy). Keep this piece, we will use it later for the horse’s mane.
Fold the remaining sides together to make the horse’s head shape. You will probably figure it out pretty quickly by looking at the photos, but the basic idea is to make an elongated horse head by folding the two side-flaps over one another. I recommend folding the lower flap over the upper flap.
Chose the strategic points for the four staples and place the black tape on both sides (inside and out). Try to position the back staples at a strategic point: not too close to the edge of each flap so as to risk tearing the cardboard, but high enough to be used as the horse’s eyes once covered with tape. This is a judgement call, but you don’t really have to be all that perfect about it. We noticed that as long as you get the eyes close enough to the position of true horse anatomy eye sockets, imagination takes over.
Push the staples into the cardboard (using pliers, or an industrial staple-gun), fold the ends down as flat as possible, and place a piece of tape over the staples, in order to protect whomever from scratching/cutting themselves on the staples. Remember, Eniarof is an event open to animals of all ages, so let’s try to avoid meaningless accidents (thereby leaving room for meaningful ones). Of note: once you’ve placed the two staples at the horse’s muzzle your structure should be pretty solid and you’ll be able to work fairly easily on the rest of the horse head.
In order to make your horse even more solid, and simultaneously build his/her bridal gear, wrap one long piece of tape around the nose.
Cut out the ears. I suggest first making a drawing on the pieces you want to cut. I also suggest using the cutout from the first ear to draw the second ear. This should give both ears the same size/shape.
Create the mane with whatever scraps you have remaining and attach them with tape.
The method you use to make your viewport is up to you. Here I’ve started cutting from where the original handle-hole was cutout and simply cut horizontally to the same length on the other side. I then wrapped the edges with tape so as to avoid tearing the cardboard and eventually cutting the players’ own muzzles. Make sure that your viewport is large enough for the eyes and the nose. Note that you should now be able to see through the hole at the horse’s nose on the other side.
All horses should have a name. Naming your horse is a pretty easy affair. Remember, nothing is superfluous. Here we’ve chosen two names based on the cardboard boxes’ original packaging information: « Boulette » was the name of our first horse, and « Calibre » our second, although I now regret not having retained « Oeuf » from the packaging. Living in France it would have been easy to name our horse « Picard » or « Carrefour » (wheras in the States I suppose it would be « Kellogs », « Joe » or « Safeway », depending on where you shop), but then you’d have a lot of horses all with the same name, so « Boudin », « Tripes », « Sponges », or « Spam » is probably a better bet.
Voilà, you now have a horse puppet. Download the software, set up your camera and go get all jiggy wit’ it.
In a couple hours we’ll be starting a four-day workshop using Julien Gachadoat’s Vision Factory platform. This one’s gonna be purely experimental folks, so come prepared with lab coats, flame retardants, and a whole ‘lotta patience. Julien has whipped up a crazy-but-cool server-client system for collective livecoding using a little OSC + Processing client for delivery of the code to the mothership. Should be interesting.
I’ll be heading to Geneva tomorrow for a talk on Wednesday morning, followed by a mini-workshop in the afternoon at the CCC. We will be discussing the role of algorithms, software, and machines in the changing political landscape of our contemporary societies. There will obviously be some discussion of code and hacking in there, but I also want to discuss the role I think games and/or « electronic ludism » (i.e. the larger context of play and algorithmic machines) can play in future political/citizen intervention.
Yet another workshop next week. This time I’ll be returning to the Institut d’arts visuels, a design school in Orléans, to kick-start a year-long project with a group of their students involving algorithmic objects. I’ll also be giving a conference on Wednesday, but I haven’t figured out the title yet, so I’ll post that at a later date.
Here is the official description of the project, written by Caroline :
Atelier de recherche et de création
Objets interactifs : interfaces physiques et design algorithmique
L’arc se propose de réfléchir aux problèmatiques en jeu dans la physicalisation des nouvelles interfaces et d’explorer l’interactivité lorsqu’elle se déploie dans l’espace ou au coeur d’un objet (installations interactives, objets communicants, scénographie interactive…).
Du palais de Tokyo au distributeurs de jeux vidéo, de nos lieux intimes aux espaces publics, une
nouvelle génération d’oeuvres, d’espaces et d’objets apparaissent dans notre quotidien. Qu’ils soient
vecteurs d’une expérience originale, d’information, ou tout simplement dotés de nouvelles fonctions,
leur spécificié réside dans leur capacité à réagir. Ils sont dotés de comportements. Ils réagissent à
nous, mais aussi entre eux, communiquent, parfois.
Qu’il s’agisse de la console Wii, d’une oeuvre d’electronic shadow, ou des véhicules de dernière
génération, le point commun de tous ces “objets” est qu’ils embarquent un microprocesseur, de
meme nature que celui nos ordinateurs. Cette infiltration de l’informatique dans les autres champs de
l’industrie, de l’art, du design, car il s’agit bien de cela, permet de donner aux espaces, aux objets, aux oeuvres cette capacité à réagir, interagir, avec le spectateur, l’utilisateur, l’environnement.
Comment penser, concevoir ces objets interactifs, objets machines, et surtout leurs interfaces,
c’est à dire les moyens par lesquelles ils “communiqueront” avec nous, avec le monde, entre eux. Ou
s’arrete le design, ou commence la communication? ou plutot comment les deux chanmps doivent se
rencontrer pour élaborer d’autres facons de réfléchir, de nouvelles méthodologies de conception
pour élaborer ces objets algorythmiques? C’est ce que nous nous proposons d’explorer dans ce
nouvel arc.
Jacques Francois Marchandise président de la FING, prédit que la prochaine révolution de
l’internet, sera l’interconnexion par le réseau des objets. Dans peu de temps le nombre d’adresses IP
(identifiant unique de chaque machine connectée au réseau) attribuées à des objets du quotien
explosera et dépassera de loin le nombre de celles attribuées à des ordinateurs personnels. Nous ne
pouvons faire l’économie d’une exploration des enjeux qu’implique ce constat dans nos métiers et
surtout dans le métier de demain de nos étudiants.
Notre arc s’inscrit donc à la fois dans le design et dans la communication car élaborer des
interphaces physiques c’est à la fois l’un et ‘autre.
Nous envisageons de travailler avec un partenaire (musée, institution culturelle) et mettre en
place un moment de mise en situation et de présentation publique des projets.
Last week, we finished a week-long introductory course on OpenFrameworks. This was an advanced-level course, and considered as a pre-requisite the basic concepts explored on-line and on-site in my classes on Processing). The session was somewhat improvised, given that I’d never taught a class on C++ programming in an art school. I had to do a lot of adjustments, and we didn’t really hit our stride until the final day, when the class on pointers (apparently) tied everything together into a pretty little package, at least for those that had the courage to stick around until the end.
As it turns out, the final strategy turned out to be: just ignore the C++ part, and teach people what they need to know in order to work on their projects. From there, what they need to know can be learned from within the project. As always for us, the pragmatic on-the-job-training method always works best.
If you speak/understand French, or trust robot translators, you can check out the on-line classes I prepared for this class: OpenFrameworks, cours en ligne. So far, there are only four basic classes, but these should be enough to get you started, especially if you’ve already walked through the classes on Processing. We purposefully jumped straight from configuring the environment to building classes, vectors, and using pointers, since these are basically all the important concepts you need to know to get started in real-life projects.
Over at the Happy Code Farm you’ll also find some OpenFrameworks examples/experiments from students, as well a contribution from two researchers from the Laboratoire ERASME who came to follow the workshop. They were great and helped us figure out a couple of configuration issues with Code::Blocks in Linux. Since everything begins in the Atelier with Pong, they created an OSC-Pong in order to figure out how to work with several machines at once. They have done a lot of work with interactive video walls, multi-touch interfaces, networked museum spaces, etc, and so they needed to know how OpenFrameworks could plug into their other interfaces/spaces which often communicate via OSC.
Once you’ve gotten through these classes and examples, there are further links listed in the introduction to very-good-things® such as the OpenFrameworks wiki or the OpenFramworks forum where you’ll find the rest of what you need.
As I mentioned last week, starting tomorrow I will be teaching a week-long intensive introduction to OpenFrameworks and C++ programming for artists and creative types. If you’re motivated and want to join in, let me know. Unfortunately, my blog has been down all week and I only figured out how to fix it today (Sunday), so this call for stragglers will probably be too late. But if you’re already in the south of France, we still have some room for what I called last week « des piques-assiette ». Just come with a laptop and we’ll set you up with 220V, wifi and ‘da knowledge.
As in last week, classes are en français, and we can’t make any travel accomodations. Also, this is an advanced class, so I’m going to figure that you’re already knowlegable in classes and lists. If you want to prepare, you should basically know how to program classes/objects in Processing/Java but you do not need to know C++ already. I’ll set you up with that. You should also understand how 3D works, pushMatrix() and popMatrix(), although I will of course go over all these concepts on Monday. (Si vous vous sentez perdu, vous trouverez une brève introduction sur ces concepts dans mes cours sur Processing). I’ve also started a class on using OpenFrameworks but I’m only at the introduction for now.
Stéphane Cousot and I are announcing today the public availability of our OpenCV Library for Processing. Although the library has been ready (in various states of undress) for a few months now, we have been using the intervening time to learn more in-depth how OpenCV works, debug, simplify method calls, test the library in real-world situations, add various features, plan out features for future releases, and — most importantly — write coherent documentation for those Processing users discovering OpenCV for the first time. It might seem like a light start, given the limited number of functions we’ve made available from the impressive Intel library, but we wanted to make sure each component worked as promised. Also, we wanted to make working with it as painless as possible for Processing users, and follow the Processing logic of getting complex things done with a limited number of simple methods. And finally, we wanted to make sure it was stable enough in a real-world installation context.
For the features, you have internal (via OpenCV) and external (via Processing) capture, basic image treatment (threshold, comparison, extraction, etc), contour tracking, face & body tracking, and a few other little goodies thrown in here and there. So, as it stands, you can (for example), recognize someone’s face, grab the outline of that face, and go into the image data of that person’s face to extract the face data. Or, you could use infrared filters with lights pointed at or placed on your body (see below), a multi-touch surface, or some other artificial lighting condition to grab light blobs for finger or body-part tracking and use that data somehow in Processing. There are obviously many possibilities.
Some of the things you cannot yet do, and which we plan to add to the library: motion history images and optical flow (pixel tracking), kalman predictions, color tracking, histograms, and obviously the list could go on and on. A lot of these functions I already have working in OpenFrameworks for an installation (soon to be announced) which will be exhibited later this summer. So consider the current release a starting point, with what we believe is a fairly clean start, but we could be wrong on that. The code is open, so go in and dig around — perhaps you can give us some good advice or add to the code yourself.
Special note: this library will also work for pure Java work, and yes, there is Java documentation.
So, why did it take so long? Well… when I say that we’ve been busy testing it in laboratory and real-world instances, I mean it. I’ve gotten some mail on this recently, so I should make things a little clearer: if you ever wondered why I don’t post as much as I (or apparently some of you) would like, it’s because I’m busy elsewhere working on so many @#&*$% projects. I do not just work on my own projects and I am definitely not a full-time blogger : I teach, run an atelier, collaborate with other artists, do research, write, write code, consult, curate, and somewhere in there, I’m a dad for two lovely and brilliant young (or youngish) women. Since I don’t have a secretary, nor a double, that means some creative Douglas-time-sharing. So when I’m quiet here, it most certainly means that I’m busy doing one of these other things. And over the past few months, that has worked out to about 50% of my creative work involving OpenCV in Processing and OpenFrameworks.
And on Stéphane’s side, he’s been just as busy working over the past six months on a gazillion projects for various artists, art students, and researchers; and only a part of that work involved this OpenCV library.
So, what have we been doing with it? The library has already been used in numerous projects at the Atelier Hypermédia, in external workshops at schools such as the Institut d’Arts Visuels in Orléans, as a research tool at the DRII laboratory (Dispositifs relationnels : Installations Interactives) at the École Nationale Supérieure d’Arts Décoratifs in Paris, and in two public works, one an installation for Gamerz 0.2 and the other as a component of a haptic dance performance-dispositif by Wolf Ka and his studio. Finally, we used the library to prototype an urban-design project by Lei Zhao for the Studio Lentigo, Marseille although this project was eventually finished in OpenFrameworks due to the high video performance demands of the installation. So all in all, about a dozen different projects over the past few months.
Here are a few images/videos with links for more information on the author(s)/works:
Lei Zhao, Node City (follow link for more videos).
Fabien Artal, Diplôme DNSEP (avec les félicitations du jury), L’école supérieure d’Aix-en-Provence. There is a video, but you’ll have to jump to 23:15 for Fabien’s installation.
Students of the Institut d’Arts Visuels, Workshop Légerté + Nuit des musées, Orléans (follow this link for — very poor quality — video).
I’ll leave off with these images from an installation Stefan Schwabe created with his collaborator Sebastian Neitsch in a public pool in Halle. As swimmers wade about, their movements are tracked by a camera and modify an image built out of 4 overlapping projectors, projecting onto the dome of the rotunda. It should be mentioned that, like Lei Zhao’s Node City, this piece used Processing only during the prototyping phase (the final work was created in vvvv). Nevertheless, Stefan & Sebastian’s project was an important one in our year-long experimentation with various forms of video surveillance in art and design installations. (See Stefan’s website for video of this installation).
Update: I used the wrong terminology. Oops. We decided to call this version v01, precisely to suggest that there is still much progress to be made. Previously I called it v1.0, which is a very different idea!
Starting tomorrow, I’ll be spending two days participating in Fing’s Université de printemps (Spring University) entitled Plus longue la vie (A Longer Life). As you can tell by the subject matter, it’s about aging and the role of new technologies in the life of seniors, which is great for me because it adds yet another piece to the puzzle that I’m currently working on. Last year, plot worked with France Cadet, the Hacking Lab, Christian Graff and the students of the ESAA on interfacing with electric fish (cf. Workshop Mormyrophone™). Some interresting ideas emerged from that workshop, most notably Games For Mormyridae (cf. Mormyre-Pong) as well as biological random number generators. That’s the slippery part, and feeds nicely into the whole process of physicalization which I have been working on recently, especially the idea of biological computing using insects, à la crickets and moths. Also thanks to France, I will most probably be working sometime next year on making games for primates (Games For Gorillas). More on that later, but that’s the furry part. Also in progress, an ENIAROF for redesigning our anarchic form of play for the younger set. So it is only natural, now, that I turn my attentions to the question of abstract machines and play in the context of the ever-extending lifespan. Although all of the ateliers intersect the type of work I do, I’ll be participating in the atelier entitled Un habitat confortable et modulable, facilitateur de vie. The rest of the time I’ll probably just be napping because there is a lot of blah blah blah planned, which I have very little time or patience for.
This week Plot was supposed to be in the Pyrenées — riding rustic trains, going for walks in the mountains, playing with accelerometers and GPS, and watching The Sound of Music, Moloch and other mountain movies — but through various accidents we ended up transporting the entire mountain to Aix-en-Provence.