Digital Compositing using Processing

Here I'll post some examples and tutorials based on Ron Brinkmann's The Art And Science Of Digital Compositing using processing. The tutorials will be very basic and not so special if you're familiar with compositing, however, I think it's a nice challenge to do some of this not by just clicking around in a software but trying to understand how these things work from the ground up - and all that live in real-time in your browser.

About Mr Brinkmann's Book

I hope the following introduction is not dangerous half-knowledge, because I didn't look this up and just tell you what I can remember: Mr Brinkmann worked as a Visual Effects Supervisor and is the man behind the compositing software Shake which was originally developed by Nothing Real and later acquired by Apple. Currently it seems Apple is not further developing the original Shake software, however, it is for example still used as the main compositing tool at Weta Digital, the digital effects powerhouse behind Lord Of The Rings and a lot more. Brinkmann is working at Apple on a Shake successor.

Really long ago I ordered ...Science Of Digital Compositing after reading some recommendations on the web (maybe it was here). At that time I had some basic Flint experience and the usual Adobe After "use it and live with it because everyone else does" Effects knowledge. I thought the font on the book's cover was so ugly and the content so dry that I even thought about selling it on ebay without reading it. But I didn't and the book had some sleep on a shelf...where I forgot about it - until I did some research on the history (and future) of Shake when I read the rumors that Apple would stop further developing the software. And there it was, the Shake-Brinkmann-Science-of-Compositing axis. In the meantime I had the opportunity to learn and value Shake and its nodal approach. So I got the book back from the shelf and tried not to look at the font on the cover (I did) and dived into it. And it is good.

About processing

I stumbled upon processing in a completely different context when doing research on graph visualization. But its approach is so universal and I think it has such a great potential that I'll use it also in this case. So what is it?

Processing is an open source programming language and environment for people who want to program images, animation, and sound. -- from processing.org

You can use it to create still images, movies, web applets and stand-alone applications. Think of it as Macromedia Director without a GUI but with a better LINGO and free xtras. I know that's a cheap explanation. In other words: The IDE is based on jEdit, the language is based on Java, it's Open Source and it has a living and competent developer community.

The Tutorials

These tutorials are not about how to use processing in general. To get familiar with processing take a look at the Learning section on processing.org. The tutorials will consist of a page with a live example and documented source code. I'll try to follow Mr Brinkmann's chronology.

Single-source image processing

Color Manipulations

  1. #1 Brightness
  2. #2 RGB Multiply
  3. #3 Add
  4. #4 Gamma Correction
  5. #5 Invert
  6. #6 Contrast
  7. #7 Channel Swapping
  8. #8 ...

Spatial Filtering

  1. #1 Spatial Convolution / Convolve
  2. #2 Blurring
  3. #3 Sharpen
  4. #4 Median Filter

Geometric Transformations

  1. #1 Panning
  2. #2 Rotation
  3. #3 Scale
  4. #4 3D Transforms
  5. #5 Warping

As you can see, this is work in progress. I'd love to hear some feedback, especially if you think this is worth the effort. Is there an audience :) ? Or has someone done this already (better)?

I'd like to see if this could be a community project too. If you have ideas or something to contribute, let me know.