Big Fat Tweets

Posted by on Jul 2, 2008 in Animation, Geekery, Graphics, tutorial | 4 Comments

Yes, it’s been a while, but what do you expect from an experimental play-blog when the intrepid blogger has been busy with Greek evening classes?

I’m breaking radio silence because something Russell Davies said the other day prompted another of my occasional bouts of playing with Quartz Composer.

Russell was bemoaning the lack of a nice, plain, big fullscreen Twitter display. He mentioned the Apple RSS screensaver, which was too twisty and swirly.

I immediately remembered that Apple’s RSS screensaver is a Quartz Composition. Which meant that not only would it be easy to fiddle with, but that I already knew quite a lot about it.

I dug out Quartz Composer 3.0. Happily, not only is there a predefined template for RSS screen savers, but it was also nice and plain and simple — exactly what I was looking for.

I did some minor tweaking.

First, I had to figure out why even the default template with no changes worked too fast when plugged into the Mac as a screen saver for real. The speed was insane compared to the Apple RSS screensaver, so I had a look in that. I think the Quartz published interface for RSSArticleDuration has changed since the template was written, as the input in Apple’s RSS Visualizer.qtz was varying from 0 to 1, and the one in the Quartz Composer RSS Visualizer template was hardcoded to 11!

I stole the Interpolation that Apple had in their screen saver, that translates the 0 to 1 into the magical range of 7 to 23, shrugged my shoulders, and plugged that into the template. My new version now worked fine on its own in the Composer’s Viewer and as a screensaver.

So, then I fiddled with the display of the RSS articles. I knocked off the RSS description field completely, as Tweets from Twitter have the entire text in both the title and the description, so I only needed one.

BigFatTwitter.pngI also made the text nice and big, styled along the lines of the rather funky twistori that Russell had pointed out as a good example. That was a simple matter of changing the colour, font and kerning properties of an Image With String patch. I also took out the glow that had been added behind the words, as it didn’t look so good on a big font.

Finally, and mostly for practice, I put my own name on the “loading” screen of the Composition, again a simple Image With String followed by a Billboard, plugged in to the existing patches that fade the loading screen away after the RSS articles have been retrieved.

And this is my proof-of-concept:

BigFatTweets.qtz (Leopard only)

So, download it, put it into your “~/Library/Screen Savers” folder (you can safely create that folder if it doesn’t already exist), and you should find you’ve got a Twitter-RSS-friendly big fat Twitter screensaver.

Set the options in System Preferences/Desktop & Screen Saver/Screen Saver/BigFatTweets (at the bottom, in the “Other” section.) Point it at the RSS feed on your Twitter home page (log in to Twitter first, then hit, and pick up the RSS link from the bottom of the Tweets.)

And you’re done. According to the documentation, this uses the standard Safari settings for actually updating the RSS feed, so it should get new tweets half an hour by default.

Obviously, this needs more work — it probably needs a custom module coded to interface with the Twitter API directly, so it can go get Tweets a bit more often and more efficiently — but fundamentally, I think it’s an interesting example of what can be done with Quartz Composer with utterly minimal effort.

Anyway. More from me soon — I went and photographed Professor Richard Lynn for Wikipedia the other day, at the request of a New Zealand Wikipedian; it’s obviously the time of year to do strange creative things because someone else says something that piques my interest — but until then, enjoy BigFatTwitter!

UPDATE: The RSS template for screen savers in Leopard’s Quartz Composer 3 is not compatible with Tiger.  You can check the backwards-compatibility of patches in any Composition using the menu option Editor->Display 10.4 Compatibility Information in QC3.  Once enabled, you’ll see warning icons on any incompatible patches, and their tooltips will give more compatibility info.  If you’ve avoided incompatible patches, you can also run Compositions in the 10.4 runtime to make sure they’ll work on Tiger.  That’s on the File->Test In Runtime menu.

« Quick Picture Update | New site coming soon »


  1. Frank Engelen
    April 27, 2009

    I’m probably doing something wrong but I can’t seem too get this too work. I point too my RSS link on my twitter page but somehow it does’nt work. Neither in the default Apple screensaver and yours also nothing!

  2. gothick
    April 27, 2009

    Hi Frank,

    I’ve just tried with the standard Apple “RSS Visualizer” screen saver in Leopard, and if I put my own feed in (“”) then my tweets show up fine. I also tried plugging my feed into my custom “Big Fat Tweets” screen saver, and it still seems to work fine.

    Maybe there’s something odd going on with your system, or some temporary glitch in Twitter (it has been known!) Keep trying!


  3. Emer
    August 12, 2009

    Do you know how to change your quartz file that it shows username in the beginning when using twitter search rss?
    It works well with your script but dont show usernames in the beginning.

  4. Matt
    August 13, 2009

    Hi Emer,

    In normal Twitter feeds, the username is pre-stitched in to the “title” and “description” elements that Twitter sends us. With search feeds, the username is in a separate element, “author”.

    You’ll need to edit the “Display the Article” macro patch, and grab the author out (probably by using a combination of Structure Key Member and Structure Index Member patches, as the author is in a sub-structure in the article structure) then concatenate it with the article text, using something like the String Printer. It shouldn’t be too much work.

    Have a look at the Display the Article patch overall and figure out how it’s working, and debug what’s going on with the article structure by running the composition and looking at what each bit of Display the Article does. That’ll probably give you enough to go on.