Quartz Composer – programming with noodles

QC Software interface

QC Software interface with a sprite added

Quartz Composer is a development tool for processing and rendering graphical data. Its visual programming environment lets you develop graphic processing modules, called compositions, without writing a single line of code.” (Apple 2007).

To create my project I am aiming to produce “unique and reactive” visuals. There are many ways to do this and all vary in complexity. I have initially decided to explore Quartz Composer (QC). This is a free piece of software included in the Apple developer tools (although not in the initial install). Once you have an Apple developer account and Xcode installed, you can navigate to Apples developer website and install the “Graphic Tools” which includes Quartz Composer. Once installed and opened you are presented with an initially very daunting grey blank grid.

I have avoided programming over the years and primarily used content creation tools like the Adobe Suite, Motion and Final Cut Pro X. Although these tools are great for specific uses, for the type of graphics I hope to produce they are limited, especially when it comes to interactivity. Although QC comes with some documentation, it is very limited in detail for the new user. In general there seems to be a lack of documentation for people new to the software.

Learning Quartz Composer book & DVD

Learning Quartz Composer book & DVD

After hunting around various forums and blogs dedicated to the software I found an excellent book called “Learning Quartz Composer” aimed at introducing people to the software. The book takes you through from creating simple compositions and explaining how the software works all the way to an advanced level. It comes with a DVD full of video tutorials to support the learning. After working through this I have found that the software is not as daunting as I initially thought and is actually lots of fun to experiment with.

The beauty of QC is the ability to control the created visuals using various forms of interactivity e.g. video input, MIDI control, reactive sound, Xbox Kinect and Leap motion controllers (using appropriate plugins). This enables your to produce visuals that are interactive in one or many ways, perfect for the project.

Quartz Composer - Interactive composition

Quartz Composer – Interactive composition created from connected nodes, this one uses video and audio input to create a reactive 12-band EQ with a sound reactive sprite.

The software enables you to program by connecting various macros and nodes (patches) using “noodles” (as the book describes them!). Compositions can have input parameters and produce output results. These can vary wildly from camera and sound inputs all the way to LFO generators, etc. All of these can be placed in hierarchies which allow you to place programs within other programs e.g. a replicator (which multiplies the visuals). All of the work produced can be exported either as a non-interactive Quicktime file or saved as a QC composition (.qtz) which can be opened on any Mac. Again one of the key advantages of this file format is the ability to open the .qtz files in Resolume Arena media software, which in turn will enable synchronisation to music and sounds in other software such as Ableton and the ability to trigger and mix multiple QC files simultaneously.

Quartz Composer motion graphics

Quartz Composer motion graphics using the replicator and mouse to interact with the graphics. This was produced from a single cube.

Even though the learning curve for the software is steep, I feel that I am advancing quite quickly, in a large part this is due to the excellent book, which I highly recommend to anyone wanting to get started learning this software. My 2 key concerns of using this software are: 1) Is the output quality good enough? 2) In the long-term, it doesn’t seem  Apple are going to continue to support the software (although nothing official has been reported, it hasn’t been updated for a few years). At this stage in the process question 1 is the only relevant question which may impact the project. The second one is a longer term question regarding whether I invest more time in learning the software. In some respects even if the support is not continued, the method of nodal programming is in use in other graphic software, predominantly compositing, therefore learning the software is still a good introduction to graphical programming. Some of the key bugs in the software have actually been addressed by Facebook, they use it for prototyping smart phone apps, and by downloading the Facebook Origami plugins many of the bugs are addressed along with support for retina graphics.

QC Composition for 3D text

QC Composition for 3D text

I’m going to continue to explore the software and see what it is capable of, and will keep the blog updated with any key developments. This is still part of the initial stage of exploration and research and may or may not be used in the final project.

Leave a comment