I shall call him... "Mini-Mac"

The highlight of Friday night was definitely the bemused guy who walked up to me while I was waiting in the queue for the new Birmingham Bullring Apple Store. Understandably confused to see thousands of people in an orderly queue that snaked out of the centre, down the central mall towards St Martins, doubling back several times, before making its way all the way back up to the corner by Waterstones via a similar number of switchbacks, the guy asked me "Are they giving away free computers or something?"
"No, just T-shirts."
"T-shirts? Man, you guys are crazy!"

And, indeed, we probably were. Never have so many people queued for so long to get into a shop that was offering no guaranteed discounts, no huge exclusive deals, no hitherto unreleased product that was unavailable elsewhere... just a free T-shirt for the first 1400 through the door, and a scratchcard which offered a slim chance of a computer, and a much greater chance of (gasp!) a free iTunes Music Store song, worth a princely 70p.

But it was a buzz to be there. It's important to show Apple that they're welcome here in the Midlands. We wish them well, and we want them to stay here, in their shiny aluminium shop, selling their shiny aluminium things. So we queued to welcome them.

Apple Store Bullring isn't quite the open-plan technology-space that the Regent Street store is. It's a lot smaller, and only on a single floor. The product displays are similar - plinths showcasing particular technologies, designed to let users get hands-on access to everything Apple offers. No 'non-working sample' iPods here - just real computers, real devices, and real enthusiasm from the staff, all of whom have obviously recently emerged from a thorough schooling in Californian sales techniques, which seem to revolve mainly around cheering. Unlike most British people forced to play by the rules of an American franchise's three-ring-binder, however, these guys actually seemed to pull it off. Possibly that's the Reality Distortion Field talking. Whatever, there was a good vibe about the place.

So, anyway, long story short, Chris's scratchcard came up with a 10% discount valid on the night, so we used it to buy a Mac Mini.

It's lovely, of course. Small, sleek, fast enough, with enough memory and enough disk space (I got the 'Ultimate' configuration, so, Airport Extreme, Bluetooth, 80GB drive and 512M RAM, and a combo-drive). Came with a copy of Tiger in the box so as soon as it was booted, it was upgraded to Mac OS X 10.4.

Because it's a Mac, getting all my old Mac's applications installed was as simple as copying the applications over from the old Mac's drive. Because it's a Mac, setting up Bluetooth to talk to my phone, and wirelessly joining the home 802.11g network was trivially easy. I spent some time on Saturday copying over our photo library from one of the PCs into iPhoto, and adding keywords to all the images. Took about three hours to comprehensively metadatify two-and-a-half-thousand digital photos. Now, if I want pictures of 'Wrox' 'People' in 'America' with 'Water', I can click on the category words, and iPhoto shows me all four pictures that fall into that category. (Pause while a number of ex-colleagues panic because they didn't think I had photos of that...). I'll probably spend some time soon setting up Automator/AppleScript tasks that continue to import new photos from the Windows library as and when they're added. It's been a joy so far, and I expect it to continue to be.

For example, for sheer joy, I have never known a computer toy as much fun as 'Quartz Composer'. This is one of the development tools that come with Mac OS X Tiger, and it's fantastic. It's by far the finest motion graphics tool I've ever played with, and the first time I've ever come across a graphical programming environment (and it is a proper programming environment - it can do some serious stuff) that really works.

Here's what I did with Quartz Composer that first made me appreciate what kind of tool this is:

Create a new, blank project. Drag a 'Clear' renederer and a 'Particle System' renderer onto the workspace. Then drag on a 'sunburst' generator. Pull on a 'Crop' geometry modifier. hook the image output of the sunburst onto the input of the cropper, then the output of the cropper onto the 'image' input of the particle system. Change the particle system's render mode to 'add', and fiddle with the settings of the sunburst generator to make a pleasing image. Okay, so far so good - we've got a fizzing sparkler in the middle of the output window. Now we add a 'mouse' controller, and hook up its 'X' and 'Y' outputs to the 'X Offset' and 'Y Offset' of the particle system. For the sheer hell of it, grab an 'Interpolator' controller, set its start and end to 0 and 360 respectively, and hook its output value up to the 'angle' imput of the sunburst generator.

Now, wave your mouse across the renderer window, and you've got a sparkler to play with, whose sparks twinkle as they leap and fade.

For jollies, let's get rid of the mouse controller, and replace the x and y inputs it was feeding with the outputs of a couple of low frequency oscillators set to sine back and forth between -1 and 1. Now the sparkler should be describing gentle Lissajous figures about the rendering area. Pretty. In case you're wondering, what you're doing here is building core Graphics and OpenGL code that's being optimised and executed on the best combination of hardware to do the job that your system has available. On top-end Macs, that'll be a combination of SMP altivec on the G5, and custom shaders running on your graphics card. On my Mac Mini, that'll be a little bit of graphics card and a whole lot of processor, but it's amazing how much you can ask of this thing before it starts to complain.

Now, what can we actually do with this pretty sparkly toy? Well, let's save the thing, and go to the screensaver configuration settings. Our Quartz Composer document will be sitting there ready to use. Bingo - pretty Lissajous fireworks as a screensaver.

Even better, if we wanted to we could expose some of the input parameters of our Quartz Composer document as 'public parameters', which means they'll appear in the Options dialogue for our screensaver. Want to let the user change the speed of the sparkler? publish the 'frequency' values of the LFO's, and they can tweak the screensaver from right within the control panel. I tell you, this is serious motion graphics programming you can really use.

And that's nothing but a small taster of what Quartz Composer is capable of. My mind right now is full of ideas for this technology. There are sample RSS-feed displaying screensavers that come with Tiger that show off just what this system can do. Some of the controllers available to the system are pregnant with possibilities: there are audio-input-based controllers, MIDI-data-based controllers... file importing generators... video sources... Then there's all the lovely Core Graphics filters you can apply to add intermediate effects before or after rendering... Okay, so my little Mac Mini isn't up to running some of those at full speed, but there's plenty of fun we can have even if the framerate starts to drop. And I can always take them over to play on Jon's G5 once he upgrades it to Tiger...

I just want to start digging around to see if there's ways to get these programs into some of the other places they're clearly suited to being: iTunes visualisations; Keynote slide backgrounds and transitions; iMovie effects, transitions and titles; iDVD menu screens and transitions; there must be more. Mac OS X is a graphically rich environment; Quartz Composer is the authoring tool that lets you play with almost everything it can do.

I only find myself wishing automator's programming model was more like Quartz Composer's...

Print | posted on Tuesday, May 03, 2005 2:08 PM

Comments on this post

# Quartz Composer Discoveries

Requesting Gravatar...
Left by James.ToString() on May 05, 2005 12:15 PM

Your comment:

 (will show your gravatar)
 
Please add 3 and 3 and type the answer here: