Posts Tagged ‘pure data’

Made in Iron 2

Wednesday, December 8th, 2010

Update on the Iron project. Not perfect but it’s starting to sound pretty decent. Listen through proper speakers or headphones to hear the full effect of the bass.

How to Control Animata With OSC from Max/MSP and Pure Data

Monday, December 15th, 2008

If you haven´t heard of Animata yet, you should head over to and educate yourself. Download the software and go through the tutorials. I also recommend reading through the mailing list, it has tons of useful information.

Controlling Animata with a mouse and doing real-time animations is pretty cool by itself, but Animata really shows its true potential when you control it with OSC. Then you can start doing something like this:

There is a Processing example available from the Animata site that controls Animata with sound input.


Unfortunately, the Kitchen Budapest guys are busy improving the software and there isn´t really good documentation available about the OSC messages needed to control Animata. I´ll try to go through all of the available messages and give you some examples in Pure Data and Max/MSP

I assume that you know something about OSC, Pure Data and Max/MSP, because I don´t want to write a huge post explaining everything from the beginning. I´m also assuming that you have spent some time learning the basics of Animata.

One more important thing. I´m using revision 35 of Animata compiled from the svn repository. NOTE! YOU WILL NEED TO COMPILE ANIMATA FROM THE SOURCE CODE TO MAKE THE /LAYERPOS MESSAGES WORK. IT IS NOT AVAILABLE IN THE BINARY VERSION ON THE ANIMATA WEBSITE. All the other messages I´m showing here do work with Animata 003 that is available from the site. OK, let’s start.

DOWNLOAD MY EXAMPLES. Contains the Animata Scene + Max and PD patches.


All incoming messages to Animata must be sent through port 7110. The “name” in the message refers to the name of the joint, bone or layer.

Moving a joint, x and y are float values:
/joint name x y

Control the length of a bone, value is a float between 0 and 1:
/anibone name value

Switch on and off a layer, on_off is 0 or 1:
/layervis name on_off

Set the transparency of the layer, value is a float between 0 and 1:
/layeralpha name value

The next two messages require the svn version:

Moving a layer in absolute mode, x and y are the position coordinates as float values:
/layerpos name x y

Moving a layer in relative mode, x and y is the amount of pixels you want the layer to move from it’s current position:
/layerdeltapos name x y


I´m not really comfortable with Pure Data, but I was able to get all of the messages working except /layervis. I believe this is because Animata is very picky and is looking for real boolean values and Pure Data is sending integers when sending 0 or 1. This was just fixed by the Kitchen Budabest guys. The /layervis message works now. I have updated the code so please download the .zip again. You need to compile Animata again from the svn for this to work.

Pure Data to Animata

Pure Data to Animata with OSC from Matti Niinimäki on Vimeo.

There is a little problem, because Animata needs float values in the messages and Pure Data doesn’t have a separate number box for floats, so have to make sure the number you are sending is never an even number. I did this by multiplying the values by 0.999. If someone knows a better way, let me know.


It´s pretty much the same deal with Max/MSP. The /layervis doesn’t work here either. This was fixed in the svn version (>36). My Max-patch has been updated so please download again.

Max to Animata

Max/MSP to Animata With OSC from Matti Niinimäki on Vimeo.

I didn´t add the /layerdeltapos to the example patches, because it´s really easy to lose your layers somewhere outside the window.


There is also an option to send OSC messages from Animata. For this you need the SVN version. It simply works by clicking on the small OSC tick box on the Skeleton tab. The messages are sent through port 7111. The message format is: /joint name x y

Send OSC


I’ve made a plugin for Quartz Composer that makes it really easy to control Animata from Quartz Composer. Check it out over here.


Basically, any software or programming environment that is able to send OSC messages should be able to communicate with Animata.

Processing works perfectly and you can download the Sound Input example from the Animata website that will get you started. I´ll see if I can find the time to do a similar sample file for Processing also.

I’ve also had luck testing OpenFrameworks. Download the FAT version of OpenFrameworks and modify the oscSenderExample.


Whatever you want! Hook up audio input, MIDI controllers, sensors or computer vision to control real-time animations.

Check out my Mickey Mann project for an example on how to control Animata with an Arduino.

Here is the source code download link one more time.