Lab

Nov 19 01:02

Gold dust demo

Testing a camera controlled golddust particle/interaction system for upcoming music video.

Programmed in C++ with openFrameworks/openCV/openGL running realtime at 1080 HD, 30fps with 20K particles, optical flow, contour analysis, fluid dynamics, FBOs and VBOs.

All particle interaction is controlled entirely by motion on camera.

Most of the particles and fine detail is lost in the video compression, you can see much more in the original quicktime at vimeo.com/2281077


Nov 12 13:24

ofxMSAPhysics 1.2 for openFrameworks

I've just uploaded v1.2 of ofxMSAPhysics, a traer-like particle/physics library for openFrameworks. Download can be found here and also needs the ObjC Pointer addon.

Demo of v1.0 features at memo.tv/ofxmsaphysics_traer_like_physics_library_for_c_openframeworks

 

Nov 11 16:19

Dynamic realtime quad warping with Quartz Composer

Check out this brilliant quartz composition by Daniele Ciabattoni using kineme's opencv plugin and my quad warp glsl patch. Ace!



dynamic surface projection... from Daniele Ciabattoni on Vimeo.

Nov 03 01:37

My Secret Heart - Excerpts

My Secret Heart is a music and film installation & performance commissioned by Streetwise Opera with music composed by Mira Calix. Working with video artists Flat-e, we created visuals for the 48 minute performance, as well as versions for an installation and short film.

More information can be found at http://www.memo.tv/projects/my_secret_heart.

The visuals were created primarily with custom software written with C++/openFrameworks, with some Quartz Composer elements, rendered AfterEffects sequences and live action footage. The custom C++ app is audio-reactive and user-interactive, allowing the visuals to be 'performed' live with full control over the behaviour of the virtual inhabitants of the cylindrical aquarium-like rig.

Excerpts from the visuals (I recommend the HD version at http://vimeo.com/2131989):

 

More stills and photos from the piece and performance can be seen at www.flickr.com/photos/tags/mysecretheart

Stills from the piece:
(the short-wide strip along the bottom of the images is the full width of the visuals wrapped around the 16m circumference of the cylinder, while the top is closeup detail)
MSH-01
MSH-22
MSH-16
MSH-12
MSH-18
MSH-20
MSH-24
MSH-25
MSH-27

Nov 01 17:50

My Secret Heart - in Switzerland

The Switzerland preview showings of My Secret Heart have come and gone and now we are left with but a pleasant memory, and the images below - and high hopes for the premiere at the Royal Festival Hall and subsequent galleries & festivals.

More images, videos and info can be found at the official site www.mysecretheart.co.uk and
memo.tv/projects/my_secret_heart.

Photos from Lucerne, Switzerland:
msh_Switzerland 002
msh_Switzerland 009
msh_Switzerland 011
msh_Switzerland 012

Oct 27 03:47

Projection mapping / quad warping with Quartz Composer & VDMX

This is a demo of projection mapping with VDMX & Quartz Composer inspired by deepvisual's tutorial of doing it in modul8 (uk.youtube.com/watch?v=2bRfdn9lNO8).

VDMX unfortunately doesn't have this feature built-in, but fortunately has beautiful integration with Quartz Composer - allowing me to build a quad warper in QC using a GLSL vertex shader, which should be super fast.



(Watch the HD version at http://vimeo.com/2076022).

Also, around the 4:30 mark you'll see me masking the video on the box in the back. This is also using a custom Quartz Composition which allows 4 point mask creation. Usage is almost identical to the QuadWarper, but instead of warping the image it just applies a mask, or you can invert the mask and it cuts a chunk out. You could do the same by creating new layers, grouping, using as a layer mask etc. but its a a bit more hassle I think. Using the QuadMask is a lot quicker and you can put multiple QuadMasks on the same layer to draw more complex masks.

Oct 27 02:13

MSA QT Player - Fullscreen Quicktime player across multiple video-outs

MSAQTPlayer-Icon.jpg

** Update 27/10/08 - Version 1.1 **

Added loop mode configurable from the preferences.plist

-----------------

MSAQTPlayer is a Mega Super Awesome (& mega super basic), fullscreen / multiple output Quicktime player with fast, greater-than-4096-pixels support.

I wrote this app for an installation because I needed to play a 4,800 x 600 Quicktime file across 2 outputs on my graphics card, each feeding 3 triple heads to go into 6 projectors, and I couldn't find a single application that could do it.

Most video applications which can output across multiple video-outs cannot play files larger than the maximum size of a texture (usually 4096 pixels). And even if the movie resolution fits in a texture, they are very slow because they convert each frame to a texture and upload to the graphics card. The only application I found which could play a large file is Quicktime Pro, but that cannot output across multiple video-outs.

MSA QTPlayer is a native Cocoa app which can do this (using QTKit and OSX 10.5) .

Oct 23 05:21

one second before big bang

This is one of the random things I put together at the OF Lab, Ars Electronica 2008. Members of the public submit 5 words, and we have a pretty short amount of time (ranging from a couple of hours to a day) to knock something up (preferably with openFrameworks) inspired by the 5 words.

The 5 words I had here was 'one second before big bang'. Visuals all realtime and purely controlled by motion.



(watch the HD version here)

Oct 01 15:44

Controlling Roots with the iPhone


Well I finally caved in and bought an iPhone - and my favorite feature (and main reason for buying it) is of course the multi-touch capabilities. So currently OSCemote is my favourite app. Apart from having a few sliders and knobs which transmit OSC (similar to TouchOSC), it also has a multitouch pad which sends out TUIO messages, so any app which responds to TUIO (E.g. anything written with reactivision api) will respond. So I had to try out my visualisation for the Roots Project! Up and running in 5 minutes! Awesome! (I had to rotate the coordinates in my processing code though to have the long end of the iphone screen map to the long end of my desktop screen, slightly annoying that this isn't an option in the app... hopefully soon :P).

Oct 01 01:17

Painting in Quartz Composer with Wiimote and iPhone


I'm very much into creating intuitive interactivity with minimum dependency on a controlled enviroment - so the experience can easily be recreated elsewhere with minimal hardware & setup (which is why I generally prefer optical flow analysis over blob tracking if I can, for vision related projects). So a conversation in the vidvox forums about painting in Quartz Composer using the Wiimote but without using the IR sensor really sparked my interest.

Sep 30 15:20

ofxMSAPhysics - Traer like physics library for C++/openFrameworks


This is a demo for a traer like physics library for C++/openFrameworks.
I wrote the lib for a little project with Todd Vanderlin while in Linz, Austria at Ars Electronic 2008 (vimeo.com/1707467). I tried to keep the same API as Traer (so processing code using traer can easily be ported to oF) and it is basically a particle system with springs, attractions, gravity etc (but uses verlet integration instead of RK4).

In this demo I am interacting with the app using the keys:

Aug 22 22:46

Eels demo 1

This is an 'early current state of app' demo for a multi-discipline event I'm working on with Streetwise Opera, Mira Calix and fellow visualists Flat-e, to be showcased at the Royal Festival Hall later this year with quite a few more venues lined up.


The app was written in Processing 0135 and is running realtime at 60fps, though if I add another couple hundred eels it does drop, so I may switch to OpenFrameworks if performance does become an issue (which it probably will). There are occasional freezes in the video which happened while capturing the screen so that is a bit annoying.

I'm controlling the eels using the mouse, keyboard and Quartz Composer (just simple sliders sending OSC to vary some parameters - similar to the 'magnetic force fields' video - I'm quite into this technique now, very quick and easy to setup, and you can have loads of sliders with descriptive names at your disposal to play with, and adjust your internal variables in realtime for tweaking heaven).

The final show will have many many more features, both in the digital realm, and physical... more info coming soon...

I strongly recommend watching the HD version at http://www.vimeo.com/1582196

Aug 21 21:42

Realtime GPU based depth-of-field & backlight in Processing with GLSL v0.1

This is a very early version of a GPU based depth-of-field GLSL shader and sample Processing code. Adjust some parameters and it can also be used to give the scene a nice backlight/glow effect.

Aug 21 02:26

Magnetic force fields in Processing, controlled by Multitouch & Quartz Composer

This is a demo of creating and visualizing magnetic (kind of) fields in Processing and controlling with a tangible multitouch table and Quartz Composer. It gets more interesting after the 1 minute mark :P


I recommend watching the video in HD at http://www.vimeo.com/1569676

The demo came about as a digression off the Roots project I'm working on with Jordan & Owen - makers of the Bricktable (http://bricktable.wordpress.com/). You can read more about the Roots project at http://www.memo.tv/roots_creating_and_visualising_generative_music_on_a_... and http://bricktable.wordpress.com/about/what-is-roots/ .

Aug 12 01:40

His Spaghedeity's Screen Saver

I was sitting minding my own business, exploring accumulation buffers in Quartz Composer, when all of a sudden I just zoned out, and next thing I know, I found myself staring at Him on my screen. His Noodly Appendages came down and touched me, and guided my hands, connecting Quartz Composer's very own noodles in His Image.


His Noodly Screen Saver runs on Mac OSX 10.5 (Leopard) and you can download it below.

For those who do not have a clue what this is about, I suggest reading this: venganza.org/about
and this: venganza.org/about/open-letter

P.S. you can watch the above demo video in HD at vimeo.

RAmen.

Aug 10 02:06

Source code for fluid solver / optical flow / particles

Seeing as a lot of what I'm doing is based on open-source software and the good intention of others, I think its fair that I release some source code too... So I've tried to clean and comment a bit of the code I used on the psychedelic interactive fluid and particles demo (also used on the Glastonbury 2008 PI Installation.

This is not the full code for the glastonbury app as that is quite complex, multi-threaded and I couldn't release it all anyway. Instead I've simplified it a bit (removed some messy multithreaded stuff and the osc/midi triggering based on camera - you can find quartz composer and processing.org source code for that on this site anyway).

Aug 07 16:38

Roots - Creating and Visualising Generative Music on a Tangible & Multi-Touch Table

roots.png

Thanks to the windy ways of the web, I've found myself working with some truly talented musicians/techies/electronics experts over on the otherside of the pond in California, on a very exciting interactive, generative audio/visual project. The number of traditional instruments they have and play wasn't enough for them, so they decided to build their own, as one does when in that situation - one of which is the bricktable, a tangible and multi-touch table - and instrument.

I've worked on a number of interesting interactive audio projects, but the approach in this one is quite different and i"m very excitied to be working with the bricktable guys on it.

In one line: You control parameters of a chaotic environment - which affect the behaviour of its inhabitants - which create and control music. 

To breakdown very briefly without going into much detail:

Aug 05 21:09

Quartz Composer Math vs Expression vs JavaScript performance comparison

I've always wondered (well at least since Quartz Composer 3.0 was released with Leopard) the performance difference between using the new and much easier to use Math Expression patch, and the old Math patch - and in fact compared to using JavaScript.

So I created the attached test composition and found some surprising results (at least I found them surprising, though in retrospect I can understand why :P).

First of all, all 3 methods are pretty quick, and are unlikely to be a bottleneck. Unless you are using the operations in an Iterator patch with a lot of iterations you won't notice any difference.

The figures below are for 2nd gen 2.33Ghz Macbook Pro:

Jul 28 23:15

Amazing Aphex Twin cover

Just heard this track on the radio driving home and was blown away. First thing I did obviously when I got home was to look it up. Absolutely amazing!

Jul 24 17:04

Quartz Composer 3D Carousel (and loading images within an iterator)

Quartz Composer is a great piece of software for many things. It has a lot of features which really allow you to create amazing things very quickly. It also has some 'features' which allow you to lose your hair very quickly. One of these 'features' is loading images from within an iterator.

You'd think it was quite straightforward, just send a different string (either generated within the iterator or loaded from XML etc.) to the Image Downloader, but alas QC has other plans. It always loads the same image whatever string you send it!

Jul 19 01:55

Radiohead 'House of Cards' OpenFrameworks & Processing templates

So I started playing with the House of Cards data in OpenFrameworks, but looks like I'm not gonna have time to finish it for a while. So I thought I'd post a skeleton if anyone else wants to play.

**UPDATE: 20/07/08 **
Just added a Processing source file as well using the BIN data (P5_HoC_bin_v1.zip). Demo video below (all interactions are controlled with the mouse in realtime - pulling/pushing etc.

Jul 19 01:45

Radiohead 'House of Cards' binary pre-processed data

In case you've been hiding under a rock for the past few days, Radiohead have a new video / concept thing out. To cut a long story short : http://code.google.com/creative/radiohead/.

So I thought i'd hava go as well, but didn't get as far as I'd hoped because the data is stored too randomly for some of the things I wanted to do. So I took it upon myself to add some order to it. My process was:

Jul 10 17:15

Glastonbury 2008 - Interactive Audio Visual PI !

First video from the Glastonbury 2008 PI installation is below, and photos can be seen here.

Some info on the installation below:

Jul 01 15:40

Quartz Composer project for Moving Brands

I've just finished an interactive Quartz Composer project with Moving Brands for an American multinational corporation with a focus on designing and manufacturing consumer electronics and software products. Unfortunately due to the strict nature of PR, I cannot enclose any more information than this, but stay tuned...

Jun 23 17:42

Audio Visual Interactive Installation Teaser for Glastonbury 2008

This is a little teaser for an audio visual interactive installation I'm working on for Glastonbury 2008. It'll be projected around the entire (almost) 65ft interior of a 50ft round tent with multiple channels of audio. Everyone inside will be contributing to the audio/visual experience. Located behind the Laundrettas' crashed plane / laundrette in Trash City, more info at the official site pi.seeper.com



Jun 02 19:40

Webcam Piano with Processing v0.1

This is the beginnings of a Processing / Java port of the webcam-to-osc/midi app I originally did in Quartz Composer. The source code for the processing version is below, and you can watch (or download) the Quartz Composer version here).

Its quite early days yet and doesn't have all the features I want (scales, realtime sizing of grid etc.), but I'm posting posting it because:
a.) it does work on a basic level,
b.) It was requested on the processing forums and I thought it might be useful...

It doesn't transmit midi, but does transmit OSC, and I'm using OSCulator to forward the OSC messages to midi. I prefer doing it this way because I can have another computer on wifi receive the OSC messages and map to midi (and send to Logic), keeping the CPU on both machines lighter... (or just keep the oscTargetIP as 127.0.0.1 to send the OSC to the same machine and have everything running on one machine. Flexibility is always sweet).

May 27 14:05

Psychedelic fluids and particles with Processing

Realtime interactive psychedelic fluid simulation with processing for an upcoming installation. Watch the video below to see it in action, or click here for the interactive version (you will need Java). P.S. it takes a while to load so please be patient!


May 14 05:28

Aldeburgh Music, New Music New Media 2008, Jonathan Harvey & Luigi Nono's Prometeo

nmnm2008.jpg

I just returned from a fantastic week in Aldeburgh courtesy of Aldeburgh Music on the New Music New Media 2008 Workshop, and what a week it was...

Working with 14 amazing contemporary musicians - 6 composers and 8 performers, including cellist Olly Coates and pianist Sarah Nicolls - masters of sound-tech Sound Intermedia; and fellow visualists / interactive tech-geeks at Flat-E we delved into some nice Exploration of Audio Visual Diversity.

May 06 17:19

Controlling Quartz Composer with the Space Navigator

I created a little patch in Quartz Composer 3.0 which allows you to navigate a 3D scene using the 3Dconnexion Space Navigator.



Controlling Quartz Composer with the Space Navigator from Memo Akten on Vimeo.

Apr 28 02:07

Webcam Piano with Quartz Composer 3.0

A test in motion detection in Quartz Composer 3.0.

The music is all generated in real-time by me waving my fingers, hands and arms around (or in fact any motion) in front of a standard web-cam. No post-processing was done on the audio or the video.


The concept is by no means new, but still fun nevertheless - and I'm quite happy with this implementation. I'm using a very simple frame difference technique and generating midi notes based on where-ever there is movement (actually, as QC3 cannot send midi notes I had to send the data as OSC and use OSCulator to forward them as midi).