Pixel Bender: Accelerated Filter Goodness in CS4

Earlier this week, I talked about some of the consumer-oriented feature improvements in Adobe Creative Suite CS4. But the most interesting development from Adobe is actually more on the developer side. Pixel Bender is a new format for making GPU-accelerated (and CPU multi-threaded) filters, which means fast blends (with different blend modes) and special effects. You can even use it for math operations. Now, whether or not you yourself are able to code these sorts of things, I’m sure we’ll see plenty of filters being passed around online. True, it means dealing with yet another way of creating these filters, but since it operates at a low level, it shouldn’t be too tough to adapt GLSL and other GPU code and techniques for Pixel Bender.

This should be particularly interesting for the open-source, multi-platform, Flash-based VJ tool Onyx, and for adding new, custom effects to your motion graphics arsenal. The filters will run natively in Flash 10 and After Effects CS4, with a plug-in coming to Photoshop.

Kevin Goldsmith at Adobe has been talking a lot about the new release on his blog.

Here’s an especially juicy tidbit from Kevin:

In addition to Pixel Bender Kernels (pbk) and Pixel Bender Bytecode (pbj), there is another Pixel Bender format. Pixel Bender Graphs (pbg). Pixel Bender Graphs are supported directly in After Effects CS4 and the Photoshop Pixel Bender extension. Pixel Bender Graph is an xml-based format that allows you to combine a network of Pixel Bender Kernels into a single effect for WAAAY more powerful filters. We’ll be posting a new version of the toolkit soon that supports the editing of these graphs and we’ll also be posting a specification for them soon on Adobe labs.

They’ve also made available a developer toolkit and even command-line tool. Updated: Kevin notes in comments here:

The Pixel Bender Toolkit has been available on Adobe Labs for almost a year now and anyone can install it and play with the language.

Also, there is a Pixel Bender developer exchange on adobe.com if you are looking for some sample code (although there is tons of stuff now on folks’ blogs).

Of course, that’s what we’ve seen with ActionScript in the past — developers get onboard well in advance of a release, thanks to publicly-available tools, code, and documentation, and then by the time the tool is out a lot of the discussion and examples are coming from developer and not just Adobe. There’s a lesson here for other framework developers (Apple, Sun, others, I’m looking at you).

Gotoandlearn already has a video tutorial on Pixel Bender. (auto-playing QuickTime link)

It’s not entirely revolutionary in that a lot of this does go on behind the scenes in graphics software. What is a big leap is making that functionality accessible to an end user of this kind of software. I think it should also put the pressure on Sun to expose more of this kind of functionality in JavaFX, because it’s clear people want it — and my sense is, like some of the other developer accessibility in CS4, this probably came from popular demand.

Who wants to again declare the GPU is dead? Not … yet, anyway.

For another excellent round-up, see John Nack on Adobe

He notes that Pixelero is already cranking out sample code. (Some of those examples inspire me to try some new techniques in Processing.) Never underestimate the size and passion of the Adobe community, that’s for sure.

CHDK Powershot Firmware Allows High Speed Photography on the Cheap

By vade
drop_b.jpg

The folks over at CHDK have been implementing custom firmware for the Canon Digic II and Digic III PowerShot cameras for some time - allowing for some awesome features for these small cameras. Previous added abilities such as shooting raw mode, USB tethered triggering, in camera motion detection and increased video recording options (compression options and no file size restrictions per clip).

But recently a new fimeware build by firmware hacker Allbest has allowed some very impressive high shutter speeds and high speed flash unit timings. CHDK folks have done tests measuring ccd timing vs flash timing, as well as capturing high speed subjects in controlled environments to find real world numbers. At the smallest aperture, the fastest timing available is around 1/64,000. Compared to high end professional cameras which costs one to two orders of magnitude more, this is quite the feat!

Check out the High Speed Shutter wiki page at the CHDK wiki for more information on high speed photography with the CHDK firmware.

Also be sure to check out the Video Plus options for extended recording and compression settings.

You can find a list of supported cameras on the CHDK wiki front page.

Impressive works. Thanks Yair for the heads up.

aka.iphone 2.1: More iPhone and iPod Touch Performance Tools

By vade

iPhone development continues despite a lack of SDK. Masayuki Akamatsu has updated his native iPhone OSC client aka.iphone to 2.1, and includes plethora of screen/input configurations to suit your mobile performance needs. The update should suit typical VJ and Dj applications with its range of GUI sliders, knobs, button grids, etc.

If you have an iPhone or iPod Touch, be sure and check out aka.iphone. Very cool stuff. Yes, sorry, another Apple oriented update. Shoot me.

[Ed.: Note you will want Max/MSP/Jitter to work with this app, though I think it should work with Windows, too; I just lack a machine that can test it. Be sure to see also Masayuki's complete Max collection, which now covers everything from Wii remotes to 3D SpaceNavigator controllers, Apple Remotes, and even the motion sensor in the MacBook Pro. Completely brilliant. And needless to say, even if you don't want to hop on AT&T's mobile network, this gives you options with iPod Touch, too, even if you can't play Phase on that. -PK]

akaremote-d.gifakaremote-c.gifakaremote-b.gifakaremote-a.gif

Weekend Physical Computing DIY: Strip an Inkjet Printer for Parts

By Jaymis

Since receiving my Arduino I’ve found myself looking at technology a little differently. As your post-production skills increase you tend to watch videos thinking: “I could do that”, or “I could do that if someone gave me lots of money and got out of my way”. In my post-Arduino life I now look at technology and think either, “I wonder how I could interface my arduino with that,” or “I wonder if anyone will mind if I pull that apart.”

 Dismantleprinter01

Nobody will mind if you pull an old Inkjet printer apart. Every house has at least one in a cupboard somewhere, kept because it cost good money back in the day, but now replaced by all in one devices which cost less than their own replacement ink cartridges. My household had 6 mothballed inkjets. Now there’s only 5, and my parts box is filled with cool bits and pieces.

read more

Arduino and Processing Beginner Links: LEDs, Physical Sensors, Lighting

By Jaymis

I received my Arduino today, and in preparation I’ve been saving up some Arduino/Wiring/Processing links of interest to a newbie physical-computerer.

If you haven’t Arduino’d before, here’s Todbot on why it’s a rocking little microcontroller. Tod also tells us how to make an Arduino Breadboard Shield, for quick circuit prototyping.

You should probably familiarise yourself with the Arduino Board, then have a look at ARDUINO meets PROCESSING - physical computing and computer graphics site: Projects containing the basic physical interactions mediated by an Arduino board.

The Arduino meets Processing project intends to make it as easy as possible for anyone to explore the world of physical computing. All you need is an Arduino board as well as the Arduino and Processing software, which you can download on their project websites.

Some of the pages seem a little incomplete, but it contains basic circuit information and code for: Pushbutton, Switch(es), Tilt Sensor, Accelerometer, Potentiometer, LDR Light Sensor, NTC Temperature Sensor, Joystick, Ultrasonic Sensor, Piezo Element.

Of course the Arduino Tutorials page has loads of examples. Of major interest to VJs may be:
Blinking LED.
Dimming 2 LEDs (RGB colour mixing).
LED Driver makes use of an LED Driver in order to control an almost endless amount of LEDs with only 4 pins.

Both Peter and I have Arduinos now, so you can expect things to be getting a little more physical in the future. Don’t be scared, we’ll be gentle.