I’ll teach a two-days Processing workshop tomorrow in Paris. It is organised by the Cras and hosted @ Mains d’Oeuvres. Following topics will be covered :
Here we go again. It’s been almost three weeks now I’ve started working in our new studio based in Bordeaux. Me and fellow Mike spent the last three months mending the whole place, from building an entire room to revamping the inside decaying walls. It was hard times but we finally achieved our labour and we are now enjoying ourselves in this lovely place. High roof, genuine vault, old rocks, space!, no doubt all of these elements are very inspiring and calling for some happenings to be held there in the near future.
On a more virtual side, I’ve kept on improving Vision Factory, I am now relatively satisfied with the direction it took and hopefully it will be soon ready for a public release. I’ve been working on integrating Javascript more deeply at different levels in the application :
Xml integration. I just discovered this one in Spidermonkey, combined with file managing, it’s now damn easy to load and walk through xml documents thanks to E4X.
GUI interface, rendered with openGL. Write some xml interface description file, then the engine takes care of creating javascript objects for you. It’s then made easy to implement widgets callbacks in your script for parameters binding purposes for example (screenshot)
Integration of some Javascript libraries implementing some useful classes : events managing, commands design pattern, …
This video is a sample of an animation I created for the visuals of my friend Sevenfive. We worked together to synchronise animation and music through the use of midi messages an again javascript was there to ease the process of linking events to animation parameters.
Overall I am not fully satisfied with the result as the whole thing looks flat and a bit cranky. Anyway, this was a nice start for our future (and promising) collaboration. As usual, more to come !
All of the wii experiments I saw in the past few months were based on the built-in accelerometer: shake, move and create responding visuals. But did you know that it also had infrared camera with hardware blob tracking? Well I didn’t and just discovered it tonight on the website of Johnny Chung Lee where stunning and flawless applications are shown including fingers tracking, multi-points interactive whiteboard and the impressive head tracking desktop VR.
Also be sure to check his thesis work on projection displays !
I just created an online page where I gathered some french written slides I show and comment when animating a Processing workshop. The list will grow in the future with example code released.
Speaking of learning Processing, I finally get my hand(s) on the Processing book written by Casey Reas and Ben Fry. Besides containing the basics for visual software programming with Processing (lots of examples and pictures), the book introduces the reader to some related initiatives, including interviews with their creators. It also features some chapters dedicated to more advanced topics (computer vision, electronics/Arduino, network, mobile, …).
I’ll be glad to come back to CrasLab in Paris in order to animate a two-days Processing workshop , the 3rd and 4th of November. The lectures will focus on creative programming through the use of Processing environment, attendees will be taught coding pratices in order to build graphic interactive sketches.
The “Vision Factory” string was rendered using a module that wraps the ofTrueTypeFonts code from Openframeworks. A module is composed of some special chunks of code that can extend Vision Factory core model. More bindings should come in the near future, and I am actually thinking of a way to easily link module inner code with Javascript (using jslibs), so that both worlds can be used indifferently.
The screenshots above show the very first Vision Factory plugin whose rendering is completely made with Javascript. All the drawing commands and logic are handled within a single script, which can be modified and recompiled while the main program is running.
This was made possible through the integration of jslibs (built upon Spidermonkey). According to its author,
jslibs a standalone Javascript development environment whose aim is to turn Javascript into a general-purpose scripting language. It provides a set of native modules that contains various general-purpose classes and functions.
jslibs currently works on PC and is being ported to Linux. With little effort though, I was able to compile and run the OpenGL module on MacOS.
Having these scripting capalities inside the framework opens up a lot of possibilities and undoubtedly adds some confort in the development process : no rebuild / compilation of the core application, easy set-up process, live tweaking of parameters and functions calls.
Ultimately, you can delegate all of your non time-critical functionnalities inside a script as it’s relatively easy to combine both worlds (c++ / javascript) once you get used to Spidermonkey api. As a first application, I’ve planned to write a javascript timeline module that will allow to write some kind of ’scenarios’ in Vision Factory, in a demo-like way.
Speaking of Vision Factory, I wasn’t able to work on it as much as I wanted in the past few months. Much much work at the office, and well … real life is taking time too :-) I think an optimistic release date would be this fall. Anyway, thanks for all of you who have registered and shown interest, that’s very motivating !
If you’re interested in having a look, here are the scripts used to run this application :
Etienne Cliquet put some photos online of the Arduino/Processing workshop organized by the Craslab two weeks ago. It lasted one week, students were there to learn the basic of electronics and programming, respectively thanks to Arduino boards and Processing. Teachers included Sandrine from Interface-Z, Jean-Noel from Craslab and myself. Big thanks to Adrien Z. for having refreshed and filled my 1kbyte brain memory about electronics. Cheers.
Phew. I’ve been kept away from blogging for two months now, working on several projects for the company I run with my friend Mike.
We were involved in the creation of an interactive application for a Finnish phone manufacturer which is organizing a promotion tour across Europe this spring and summer. Their whole visuals being based on lavalamp-like shaded bubbles, our challenge was to program a real-time animation based on the flowing of the stretched wax being periodically heat and cooled.
It appeared that the metaballs technique was a good model to start playing with, we weren’t exactly in the dark as we had previously done some experiments with that algorithm. We were able to quickly assemble a prototype to see if the idea could work (it did :-) ) an then worked on a physic model which approximated best the bubbles flowing. We read some papers about the subject, but honest the maths were a bit beyond us so we stuck to a simpler model involving some real physics behaviour nevertheless. Of course, we had to fake it a bit but hey in the end, it works pretty well.
Besides, another point was to integrate cellphones’photos in the animation, through bluetooth communication protocol. The photos had to be automatically uploaded to the target computer for feeding the animation live in a pseudo random way. At the moment, we are thinking of a way to directly send MMS messages to the application, by using some server remote scripts for receiving / saving datas. More to come soon.
Technically speaking, we used Vision Factory for coding the whole thing. At the end, the application hosts some different technologies which integrated well together, from the use of cg shaders for the rendering to sqlite database for photos saving/retrieving. Another super handy feature was the use of Javascript which saved us from that ‘recompile and hit run’ madness. Very cool.
We teamed up this time with Rob&Yunus of London-based studio Imperial Leisure for developing this application. I had the chance to fly last week to Vilnius,Lithuania to install it. We made it run on a resolution of 2048×768 on two big screens though it was planned to run at 3072×768 / 3 screens in the first place. Ah, we ran into some last-minutes-dont-panic hardware problems… Which hopefully will be fixed for the next gig in Paris.
I just came back from Paris where I animated a second Processing workshop there. It went super well again, thanks to Craslab (cheers Agnès and Jean-Noël) and all the participants who were strongly motivated to learn and code. Cheers to them too ! As usual, two days were damn too short, but I have the feeling that when you do something you like with people positively interacting, time goes fast no matter what you do.
When I get back to home, a mail from my friend Kss was waiting for me in my inbox. He was very enthusiastic about released products at Breakpoint 2007, a famous demoparty held in Germany. So I comfortably sat down, typed www.pouet.net in my favourite browser and started downloading the products from the usual suspects, with a first surprise seeing old-timers popular crews like Andromeda, Equinox or Rebels among teams which released a demo there. I always thought that a good demo was a demo making you wonder “How the hell did they do THAT ? Which TRICK did they use?” and then making you freak out. That exact feeling happened first when I saw The Cuddly Demos on my Atari ST. And it happened again yesterday while watching Farbrausch “Debris”. That is totally impressive in every aspects. I won’t spoil here, but the main effect of the demo is insane. And best of all, the program is only 180 kb. An instant classic which is already and undoubtedly part of demomaking history.
Two other demos worth being mentionned are the megacool intro invit “Frameskool” by Equinox, which contains lovely shadowed vectorballs as well as tons of revamped oldschool effects (scrolling, stars, text-writer, distorted rotozoom :-) ) and a catchy chiptune by 4mat, a well known musician from Amiga. All in 64 kb of course. Andromeda struck hard too with their “Noumenon”, including an amazing kind-of-infinite-3D trip and shiny glowing effects.
Though, Windows broke the experience. In the middle of Andromeda, a window popped up telling me I had to install updates right NOW. It made the demo crash and didn’t restore the default resolution of my screen. I was really impressed. How the hell did they do that ?