Archive for the 'Code' Category

Text on a Curve

Here’s a simple sketch I made that draws text on a curve. Drag the mouse horizontally to set the letter spacing, drag vertically to set the arc radius, type to edit the text.

3D Navigation w/ iPhone

A rough sketch where I am navigating in a 3D world using the iPhone as an interface. Tilting the phone moves the camera and dragging on the screen rotates it (similarly to how mouse look works in FPS games).

The communication with the iPhone is done through OSC using Mrmr on the phone and OscP5 on the laptop. The 3D environment was built with JOCode for Processing, an OpenGL framework I have been working on with Mark Napier. We are in the process of finalizing the library and it will be available within the next two weeks.

Monome Game of Life

I finally got around to making a patch for the Monome today, Conway’s Game of Life mapped to sounds generated by cfxr. Built with Processing, coz that’s how I roll.

Typ09 Workshops

We gave our NextText and Mr. Softie workshops today and it went really well. The turnout was a little lower than expected but that ended up being a good thing as we almost had a one-to-one presenter-student ratio. I was a little nervous leading up to the workshops as I realized over the first few days that type designers are not too keen on having their meticulously constructed glyphs tweaked by our software.

The NextText workshop had an extra challenge which was that we had to also teach the basics of programming in that 3-hour slot. It was a lot to cover, but the participants made it through and seemed to have a good handle on things towards the end. A few points to keep in mind for next time:

  • When going over the basics of programming, starting with functions before covering variables makes more sense. Functions can be used with literals at first and then variables.
  • When building a set of behaviours, it is really helpful to draw the behaviour tree, and to modify it as the code progresses.
  • We should have a basic sample sketch for each behaviour to show what it does. This should be included in the documentation, similarly to how it is done in the Processing reference.
  • Some of the behaviours should be renamed to something more intuitive.
  • We need a simpler way of creating behaviours. Perhaps bringing back the factories would be a good solution for this.

I would be very interested in trying this out again with experienced programmers. This would be ideal to test out the documentation and see how easy it is to understand, navigate, etc. It would also allow more time for free play, resulting in more complex and polished sketches.

The Mr. Softie workshop was a lot of fun and was actually the most time I ever spent in the software. In comparison with NextText, it was easier to grasp as the participants could start working on their visual sketches fairly quickly, and a lot of good looking work came out of it. A good measure of the success was that most people came back after the second break and some even told their friends to pass by and check it out.

  • The Textpad is a great tool and has a lot of potential. One feature that would be good to add is to toggle whether white space is sprayed or not.
  • The GUI could use a few improvements, mainly swapping the many drop-down menus for sliders, checkboxes, and radio buttons.

ezGestures chapter in Programming Interactivity

Joshua Noble‘s latest book, Programming Interactivity, has a whole section on ezGestures, my gesture recognition library for Processing. I haven’t tried the example yet but it uses a camera and looks fancy…

Social Homes Fix

So, I totally overlooked the fact that the new version of Social Homes erased all the settings from version 2.x. I just made another update that fixes this; version 3.1 will import all your old settings and generate the new URLs for you.

If you had already updated to version 3.0, this will not work, but you can always roll back to version 2.5, copy all your settings, then re-update and add them manually. If you don’t know how to do this, just send me an e-mail with your usernames and services, and it will be my pleasure to generate the new addresses for you.

Major Update to Social Homes

By popular request, I’ve just made a major update to the Social Homes plugin for WordPress. The new version allows you to add any service you want just by typing in the page URL; the title and favicon are found automatically (but you can also use a custom title if you want).¬†


ezGestures updated

A new version of the ezGestures library for Processing is now available. Version .40, which is now hosted on Google Code, has no functionality changes, but the download now includes the examples, the source, and the documentation pages. These changes were implemented for the upcoming Processing 1.0 release.


AirXY is a multimedia installation combining real time animation, sensors, haze, light and sound that was conceived for the 2008 Architecture Biennale in Venice.


Large-scale screen and floor projections confront and engage visitors passing through the massive space of the Corderie dell’Arsenale. The screen is a clock and responsive real time capture of the presence of visitors while the floor projection gradually reveals a fleeting, ethereal architecture.


The AirXY facade was implemented by Hugues Bruy?®re and myself. The software is written in C++ using the openFrameworks library. The video is captured using 4 infra-red cameras, and is processed using OpenCV and the FreeFrame 1.5 video plugin architecture. Rendering is done in traditional OpenGL and using GLSL shaders. The output image is split and output to 2 projectors for display on the screens.


Check out for more information.

Conceived by Erik Adigard, M-A-D/Chris Salter
Technical Direction and Lighting :: Harry Smoak
Interaction Development :: Hugues Bruy?®re & Elie Zananiri
Project Management :: Patricia McShane
Special Thanks :: Patrick Harrop, Antonio Cataldo, Mariagiovanna Nuzzi & Thomas Spier

Social Homes updated

I’ve updated the Social Homes plug-in to version 2.3. Based on everyone’s requests, I added the BlogCatalog, Blogger, BUMPzee, Ma.gnolia, MyBlogLog, reddit, Technorati, and XING services. I also had to put all the services in alphabetical order, so you’ll need to re-configure the plugin once you update.

Get it here.