picture home | art | events | music | rack extensions | downloads | pixel blog | qt_tools

omino pixel blog

pixels, motion, and scripting
entries for category "general"
david van brink // Sun 2010.12.26 17:47 // {general}


We most of us use Bezier curves all the time, for masks, shapes, animation curves. They’re pretty intuitive. Points, control handles… yeah, you can usually get them to do what you want.

To do some math recently, I googled a bit more about them. They’re named from Pierre Bezier (1910-1999) who popularized them for CAD while designing cars for Renault. The standard “two-handle” style used by Adobe apps (and most others) is a “cubic Bezier”, because the equation uses some cubes.

To walk a cubic Bezier mathematically, given the four points (two end points, and two intermediate control handles), you can use this Python code, varying t from 0.0 to 1.0:

# given points p0, p0Out, and p1In, and p1, and t varying from 0.0 to 1.0...
a0 = (1 - t) ** 3
a1 = 3 * (1 - t) ** 2 * t
a2 = 3 * (1 - t) * t ** 2
a3 = t ** 3
# calculate x and y
x = a0 * p0.x + a1 * p0.xOut + a2 * p1.xIn + a3 * p1.x
y = a0 * p0.y + a1 * p0.yOut + a2 * p1.yIn + a3 * p1.y

But that’s all tricky. Here’s an intuitive way to visualize just what the heck a Bezier curve really (for really) is:


click for

I did this animation in Python… stay tuned for much more on that front.

Super kudos to bimixual.org for the clear explanation.

oh, i dont know. what do you think?

david van brink // Wed 2008.11.19 12:21 // {after effects general}

Rehi All! Rewelcome to Pixel Blog

Hello seekers!

I’ve been getting a fair amount of traffic lately, mostly from Pixel Bender searches and a few references from forums and other blogs. And the number of subscribers is steadily growing. I guess some of the stuff here is useful to someone. Hooray, I say!

(And of course by “fair amount of traffic” I don’t mean, like, enough hire an editor or start selling ad space. My ISP isn’t complaining yet about the load. I mean, enough traffic that you and I can still enjoy an intimate little shared pixel experience, as told with words and numbers.)

So this post is mostly just a quick blog reintroduction. And below is a cool little video I did last year that I’ve been meaning to document. Ok, let’s go.



I started this blog a bit over a year ago, focusing mostly on After Effects techniques and scripts. Adobe After Effects is just about my favorite piece of software ever. So clean and elegant, so complete, and rather delightfully ROCK SOLID. I’m a software engineer myself, and can appreciate just how monumental that simple truth is.

Lately I’ve been having GREAT FUN with Adobe Pixel Bender. It’s so satisfying to rapidly implement a complex function and see it in action. Also: math. Yay.

Perhaps prematurely, I’m thinking in this coming year of 2009, I’ll be getting back to After Effects and techniques… and of course announcements of updates to my free plugins, scripts, and Pixel Bender kernels. If this is the sort of thing you like, too, please consider subscribing.


A Retro-tv Treatment

And now, some pixels. Here’s a little video I did last year as part of a “fundraiser” for my friend Briya. She injured her ankle playing roller derby in Santa Cruz, and we helped pay for her ambulance ride.


click for

I grew up staring at our black and white tv set, and tried to capture that feeling here. I think, often, various “retro” image treatments are too aggressive on the degradation. Black and white tv in the 1960’s was actually quite sharp! I tried to keep that feeling here. Here’s the recipe I used.

  1. Character generator. Old tv production had only a few effects available. I used a “character generator” here, white text at about 80% opacity. In the olden days, they rarely used shadow or background to enforce contrast; if the text was over something light-colored, it was just harder to read, sorry!
  2. Picture in picture. I also drop in a rectangular insert image, flat. Notice both the insert and the text only flash, no fading or morphing. That came later.
  3. The telethon look. This was the fun part, of course. I videotaped about 45 seconds each of three different actors sitting at my kitchen table, in front of our red curtain. That’s it! In After Effects, these are shoved next to each other and lined up in rows. It’s amazing how forgiving our eyes are. Yes, you can see that it’s all wrong. But it’s also oh-so-right.
  4. Curved glass tube. I added some arbitrary mesh distortion, suggestive of a glass picture tube. But tubes also get magnetized this way and that. (Or at least, in the 1960’s, mine did, because I played with magnets on it.) It adds an interesting travel to the image.
  5. Transmission loss. To add “ringing” and “aliasing” to the image, something I keenly remember from seeing television, I used my plugin called omino_diffusion, superimposed slightly over the original and blurred. It somewhat simulates the analog behavior of errors and their correction, since it proceeds left to right just like the scanning of the vacuum tube.
  6. Brevity. And of course, the most important trick here is to keep it short, to reduce the time one might have to ponder the image and question it too closely…
  7. I had worked up a “tv-turning-off” dotsweep, also. There’s something wonderfully dramatic about the old CRT dotfall… Modern tv’s just “turn off” and that’s that, but the old disappearing dot was an event providing real closure. But for this piece, I went with looping.

    And good night.

subblue // Thu 2008.11.20 15:203:20 pm

Hi David, I recently discovered your site via your Pixel Bender experiments. Great stuff! I’m pretty new to After Effects, but with the new PB integration some exciting possibilities have opened up :)

david van brink // Thu 2008.11.20 15:333:33 pm

Um wow. I just checked out your Droste effect post, and a few others. Wow. Hi!

oh, i dont know. what do you think?

david van brink // Wed 2008.01.23 00:21 // {after effects general}

Man Versus Computer (another render speed tip)

Here’s another tip for improving render speed. Don’t laugh, this actually does work.

Disable the computer’s “sleep if no user activity” timeout.

I had mine set for three hours, nice and green you know? (On Mac OS X, the control panel for this feature has a light bulb for its icon.) But it turned my 6 hour render into… well… I came home from work and it was still unfinished from the night before. Because the computer was sleeping.

Works for all render applications.


Now, as to why After Effects doesn’t tickle the Mac’s timout API to say “i am here, i am here” is a very very good question.

oh, i dont know. what do you think?

david van brink // Sun 2007.10.21 11:48 // {general}



Welcome to my new pixel blog.

My name is David, and I am a recreational pixel user. Long ago, in a different life, I was one of the first engineers working on QuickTime 1.0 — codenamed “Warhol” — at Apple. These days my day job is software development for some rather dry (but interesting, I assure you!) non-pixel-related industry. But I tend to spend my evenings & weekends moving the pixels (and sometimes audio samples, as well).

I’m strictly a recreational user. I can quit any time I want.

I maintain a couple of freeware projects, including qt_tools, a collection of QuickTime command line utilities, and the Omino After Effects Suite, a free set of cool After Effects plugins.

In this blog, I’ll post bits of works in progress and clever tricks I invent or come across, with an emphasis on scripts and expressions.

I use Mac OS X, Adobe Photoshop, Adobe Illustrator, Adobe After Effects, Final Cut Studio, LightWave, and XCode… so any of those and others will likely be appearing on these pages.

You can mail me at poly@omino.com; if the subject starts with pixelblog my spam filter will be sure to keep it. Otherwise it’s hit or miss.

oh, i dont know. what do you think?


(c) 2003-2013 omino.com / contact poly@omino.com