My Small-Space Media Center

media-serverLiving in a small space, as I do, it is important to maximize the utility of every inch of the place. Generally, I am not doing that so well as I might, but in one area I excel: Had I tried to bring with me my library of books, music and movies, there wouldn't be any room in my apartment for a bed! Now, I'll be the first to admit that there is a certain joy that can be taken in handling a real dead-tree book. I love the feel of the paper; I love the smell; I love being able to freely flip back and forth through the pages. I do not love being a slave to my bookshelf, though, so when I started down-sizing, I had a choice to make: Do I keep all of my wonderful books, or do I find an alternative? Continue reading →

Some Reflections on my Birthday

Or a day after my birthday, at any rate. A quick disclaimer: I have no particular theme in mind for this essay; I reserve the right to ramble. Yesterday I turned 40. Years ago among my parents' friends, there was a tradition to pass around a cane as a gag gift on the 40th birthday. It seemed a little cruel to me at the time, but now that I am here I appreciate the humor: 40 isn't old at all.Continue reading →

An Exploration of Euler's Identity

I have long been fascinated by the mysterious mathematical formula called Euler's Identity. I enjoy it so much that I even have it framed on my wall:



Peculiar taste in art, I know. The print is entitled "Beauty," and somewhere in my apartment is a piece of paper with the artist's name and his description. It's amazing that I can lose something in my tiny residence.

In a recent conversation at Khan Academy, where I have been brushing up on my math and programming skills, someone asked what the relationship was between complex numbers and the trigonometric functions of sine and cosine. I had a vague understanding that they were both related to rotation, and I knew the Identity, but I had never really explored the Identity in depth to truly understand it. I have been thinking about it for two weeks now, and I'm still only about 80% of the way there. Another commenter asserted that it cannot be derived without recourse to Calculus, and maybe that's true if you need a formal proof, but I think an intuitive understanding should be within reach of anyone who knows a little trigonometry. Such as I have puzzled out, I share with you.

Continue reading →

What to Expect on Your First VFX Job

Zach and Steve. And some Daleks.

You've got the reel, you've been through the interviews, you've landed the job, and now you're getting ready to start your first day at a VFX studio. This is the dream job you've been working so hard toward, and you desperately want to not screw up. You go through the usual H.R. rigamarole: W-4's, I-9's, here's the break room, have some candy, report to this or that producer. All of that is easy, just like every other job.

Now comes the hard part, the part that is unlike any job you've had before. Continue reading →

Linking 3d geometry to particles in Blackmagic Fusion

One of my favorite things to experiment with in Fusion is its particle system. They are a fantastic tool to create things like smoke, sparks, and magic. Their utility doesn't stop there, though. A common technique in 3d software is to attach instanced geometry to particles and use the simulation engine to create procedural motion. Fusion can do the same thing, although its tool set for directing the particles is more limited than what you would find in Maya or 3DS Max.

Here you can see a simple particle set-up that I've created for this tutorial:

A simple particle system.
A simple particle system.

Continue reading →

A Long Overdue Face-Punch

Three years ago, a mild financial and personal disaster struck my life. I lost my job at pretty much the same time that my wife left me. I'll keep the personal part of that to myself; this article is about my finances. I had been working as a freelancer (illegally misclassified), so I couldn't draw unemployment, and without my wife paying half of the rent and utilities, my expenses ballooned at the same time that my income vanished.

Over the years, Continue reading →

Some rather attractive compositing math

This morning, one of my coworkers, Dan, presented a problem: We commonly merge translucent elements such as smoke on top of themselves in order to thicken them up prior to merging them into the composite. We find that this creates a more satisfying blend than simply adjusting the gamma of the alpha. As with any operation that is done frequently, it is best to make a macro or script that can automate the process. To that end, Dan was attempting to use Fusion's Custom Tool to make an Iterative Merge node.

The basic math behind an additive merge is f + b * a, where f is the foreground, b is the background, and a is the inverse of the foreground alpha (1-alpha. I abbreviate that simply to "a" to make the math that follows easier to read). When using the same image for both, it is the slightly simpler f + fa. The Iterated Merge would make this a recursive problem. Continue reading →

Pin Light blend mode for Blackmagic Fusion

Just a small offering this time: The pin light mode from After Effects is a conditional operator. For every pixel in each channel, if image2 > 0.5, display the maximum of image1 or 2*(image2 – 0.5). Otherwise, display the minimum of image1 or 2*image2. So put the following expression into each channel of a Custom Tool:

if(c2 > 0.5, max(c1,2*(c2-0.5)), min(c1,2*c2))

Or if you're feeling lazy, unzip this file into your macros directory: blend_PinLight

If I encounter the need for other AE/Photoshop blend modes, I'll expand the macro and update it here. I rather think it's getting to the point where I'll want to create a downloads page on this site instead of hiding all of these tools in blog posts.

Here's the Glitch_HumBar macro I promised in the comments: Glitch_HumBar

And Ribel's VHS_Glitch_Strip macro: VHS_Glitch_Strip

Ribel's macro has an instructive use of the Custom Tool. The NumberIn and PointIn controls are used to select the height and location of the tearing strip. Those numbers are fed into the Setup expressions, where they're divided in half, providing a distance above and below the point control. The Setup expressions run only once per frame, so getting that information there is more efficient than doing it in the other expressions, which evaluate once per pixel. It's just four simple operations, so the savings are minute, but it's good practice, anyway.