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.

  • http://blogs.adobe.com/kevin.goldsmith/ Kevin Goldsmith

    Thanks for posting on Pixel Bender. I've been reading CDMo and CDM forever, it's cool to see stuff I worked on mentioned.

    Just one correction, 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).

  • http://www.flashgamer.com Jensa

    I think there must be some confusion here? Surely, Pixel Bender in software based in the Flash Player?

    Quoting Tinic Uro: "The byte code itself is designed to translate well into a number of different run times, but for this Flash Player release the focus was a software run time.

    You heard right, software run time. Pixel Bender kernels do not run using any GPU functionality whatsoever in Flash Player 10. " http://www.kaourantin.net/2008/05/adobe-pixel-ben

    To the best of my knowledge, the Pixel Bender Toolkit is GPU accelerated, Photoshop, Premiere, After Effects run GPU accelerated Pixel Bender filter – but the Flash Players implementation of Pixel Bender is just software. I've actually had that confirmed directly from Product Managers inside Adobe, just as late as this week. I'd love it to be different though?

    J

  • http://blogs.adobe.com/kevin.goldsmith/ Kevin Goldsmith

    Pixel Bender runs on the GPU in the Toolkit, in Photoshop and in After Effects. Photoshop's new pan-rotate-and-zoom of super large images is also using the GPU. Premiere is using GPU acceleration built on AIF technologies, but does not support Pixel Bender filters in CS4.

    Flash runs Pixel Bender multi-threaded on the CPU in 10.0

    Peter's original point is absolutely correct. Adobe was already using GPU acceleration before CS4, but in CS4 we're pushing it even further. We're also doing a lot of work on scaling for bigger numbers of multiple-cores. Run a complex Pixel Bender filter in FP 10 on an 4 or 8 core system and watch the CPU utilization.

  • http://www.vknt.be VKNT

    I find the pixelbender technology very promising. Last week I completed a project where I animated polar panoramas.
    watch the video
    Imagine some seamles footage with LIVE manipulation of the distortion parameters, that would be sweet :)
    I'll write a post on these possibilities in the coming days..

  • http://www.flashgamer.com Jensa

    Thanks Kevin. Just wanted that clarified :)

    J

  • http://pixelero.wordpress.com/ Pixelero

    Thanks for the link,
    … and would be to see what ideas you came up for Processing.