Category Archives: Videos

The New Pointillism?

How can you take a year and a half to make a 3-minute music video? Like this:

It’s even more amazing when you know how they made it. There are no green-screens here, and every frame is created by hand…

This has been out for a while, of course, but old people like me have just discovered it. (Old people like me might also be reminded of Peter Gabriel’s ‘Sledgehammer’ video, which was pretty amazing a quarter of a century ago…)

Jump!

Lots of people seemed to like the Perpetuum Jazzile video in my last post, so here’s another.

Man, these guys are good! Check back here for one more tomorrow…

Using Little Computers to control Big Computers

Here’s my latest Raspberry Pi-based experiment: the CloudSwitch.

I don’t discuss the software in the video, but the fun thing is that the Pi isn’t dependent on some intermediate server – it’s using the boto module for Python to manage the AWS resources directly.

I decided to build the app slightly differently from the way I would normally approach a little project like this. I knew that, even for this very simple system, I would have several inputs and outputs of various kinds, some of them with big delays, and I wanted to make sure that timing hiccups or race conditions didn’t ever leave the lights displaying something that didn’t represent reality.

So this is only a single python file, but it runs several threads – one that looks for button presses, one that monitors and controls the Amazon server, and one that handles the lights – including flashing them in various patterns. They interact with the main thread using ZeroMQ messages, which is a lovely way to do inter-thread communications without all that nasty messing about with semaphores and mutexes.

Update: Here’s the very simple circuit diagram. The illuminated buttons I used have LEDs which take a little more power than the Raspberry Pi can really drive, so I put a couple of NPN transistors in there. It really doesn’t matter too much what they are – I used the 2N3904.

Raspberry Pi Webcam Viewer

I finally got a chance to play with my RaspberryPi, so I threw together a quick experiment.

 

 

Update: A few people have asked me for a little more information. I’m happy to make the source code available, but it’s not very tidy and a bit specific to my situation… however, to answer some of the questions:

The enclosure for the Raspberry Pi comes from SK Pang Electronics, and it’s perfect for my needs. You can buy just the perspex cover, but they do a nice Starter Kit which includes the breadboard, some LEDs, resistors and the pushswitch. Definitely recommended.

For the graphics, I used the PyGame library, which has the advantage of being cross-platform: you can use it with a variety of different graphics systems on a variety of different devices. On most Linux boxes, you’d normally run it under X Windows, but I discovered that it has various drivers that can use the console framebuffer device directly. This makes for a quicker startup and lighter-weight system, though I imagine it probably has less access to hardware acceleration, so it’s probably not the way to go if your graphics need high performance. You can read about how to get a PyGame display ‘surface’ (something you can draw on) from the framebuffer, in a handy post here.

To load an image from a file in PyGame is easy: you do something like this:

            im_surf = pygame.image.load(f, "cam.jpg")

where ‘f’ is an open file, and the ‘cam.jpg’ is just an invented filename to give the library a hint about the type of file it’s loading.

Now, with a webcam, we need to get the image from a URL, not from a file. It’s easy to read the contents of a URL in Python. You just need something like:

            import urllib
            img = urllib.urlopen(img_url).read()

but that will give you the bytes of the image as a string. If we want to convert it into a PyGame surface, we need to make it look more like a file. Fortunately, Python has a module called StringIO which does just that: allows you to treat strings as if they were files. So to load a JPEG from img_url and turn it into a PyGame surface which you can blit onto the screen, you can do something like:

          f = StringIO.StringIO(urllib.urlopen(img_url).read())
          im_surf = pygame.image.load(f, "cam.jpg")

I’ll leave the remaining bits as an exercise for the reader!

If you like this, you might also like my CloudSwitch

Spinning Beachball

A TED speaker’s worst nightmare. Mac users will enjoy this…

Here it is on the TED site (also works for non-Flash users).

Lady WoofWoof – Bark This Way

I made a silly movie. Starring my dog. Yes, another one. My excuse is that it’s mostly for the benefit of distant friends and family.

Then, to compound my folly, I made a movie about how I’d made the movie, which is probably more interesting for most people!

Update: Thanks to Richard Morrison for pointing me at these instructions for making your own camera stabiliser – very nice!

Cashing in on Open Source

I’ve recently switched to using GnuCash to manage my accounts, and have been quite impressed with it. A friend recently asked about software for simple bookkeeping, and I wondered whether GnuCash might be appropriate, but I didn’t find an introduction that took someone unfamiliar with accounting software through the absolute basics. So here’s my attempt to do so.

It’s 26 minutes long.

Not your average Scottish cycling holiday…

I’d love to see the out-takes…

Alright, Mr. DeMille, I’m ready for my close-up.

OpenCV is a wonderfully full-featured computer vision library. I’ve just written a very simple demo of the built-in face recogniser. It finds a face and scales it to a fixed size. If you watch my eyes in the viewfinder window, you’ll see they stay pretty much in the same place however I move around the room.

All sorts of things could be done to improve the frame-rate if needed, but this was just a quick test I put together over a couple of hours while learning about the library. Back in ancient history, when I did my PhD, this kind of thing would have taken weeks…

The title of this post, if you’re not familiar with it, is from the famous closing scene of Sunset Boulevard, which you can see here.

Of course, as soon as I thought of using this title, I realised that I could also grant Gloria Swanson’s greatest wish. So here’s my version…

It needs some smoothing, but still quite fun.

The birth of a shed

In November 2009, we had a new studio built in our back garden. I had a webcam pointing at it.

Last Bank Holiday, I finally got around to doing something with the nearly two million images it had captured.

Except for those directly involved, I doubt many will want to spend 16 minutes watching this! But it might be fun to skim through!

Many thanks to the good folks at Croft Design and Build. We’re very pleased with the results.

Bubble, bubble, toil and… jolly good fun!

As if it weren’t cold enough already at the moment, some friends and family gathered last week at my brother’s place to make ice cream. Not being advocates of the Slow Food movement, though, we did it with liquid nitrogen…

I’m on a horse

The real interest of the Superbowl is not, for me, the sport, but the creativity that goes into the phenomenally expensive commercial breaks. The most famous example is Apple’s 1984 ad that introduced the Macintosh, but there have been many others.

This year’s most talked-about ad was from Old Spice, and I think it’s brilliant.

These days one immediately assumes that it’s all green-screen and CGI, but in fact there is almost no ‘trickery’. Isaiah Mustafa maintains this running commentary while bits of scenery move around him, and it’s a trolley, on which he sits part-way through, that transports him and deposits him on the horse. And he maintains this focus even though they eventually used something like the 57th take…

Leo Laporte interviewed the guys behind it, if you’d like to find out more….

© Copyright Quentin Stafford-Fraser