Updated 15 February 2009   .

Software Development

Although it's not part of my job any more, my background is as a VFX software developer, and I still really enjoy designing and writing software for use in my job or for interesting side projects.

Please do not redistribute the anything here from your own sites (except for Highend3D.com), as I would like to ensure that a single central copy is updated in the event of new releases becoming available.

FrameFixer

I was getting pretty frustrated with bad frames in long renders, so I've written an app where you can load in a sequence, tag the bad frames, and it fixes them for you (simple as that!). It uses optical flow to do the interpolation, and most of the time gives really good results, sometimes indistinguishable from the other 'real' frames. Lots more info, including a demo video of it in action at www.framefixer.com

Render Passes for Maya

This is a plugin I wrote for Maya to enable you to define completely customizable render passes whilst still maintaining a single scene file. There is a separate page here for Render Passes for Maya with more information and download links. Most of the functionality of the Render Passes plugin can now be found in Render Layers, added in Maya v7.0.

Multitude Manager for Maya

This is a new editor for Maya that allows you to more easily deal with large numbers of objects in Maya. It allows you to select a random percentage of nodes, set attributes on multiple nodes at once, run MEL expressions over the nodes, and find nodes based on their attribute values. Read the online docs here.

Download Multitude Manager script here then simply put it somewhere in your script path and run the command multitudeManager.

Maya MEL Scripts

Here's a few Maya MEL scripts that others might find handy. I tend to write lots of quick-n-dirty scripts for production specific needs, so these are just the ones that I've bothered to clean up and make generally usable by anyone. There are usage notes at the top of each script.

  runupScene.mel
World's simplest ever script - plays your scene through once from startFrame to endFrame. This is good to put in as your pre-render MEL command to fix various glitches that can occur when you start rendering at an arbitrary frame in your sequence (i.e. when using a render farm). Can also be useful when working with particles and you need to see how it looks at a frame near the end of a sequence that takes a long time to compute - fire this off and go get a coffee while it runs up to the frame you want.

isPointWithinSphere.mel
Returns whether a given world space point is within the named sphere. Handy for various TD chores - for example, you can use an animated sphere to drive the visibility or colour of objects or particles in your scene.

saveAllRenderViewImages.mel
If you have a bunch of images in your render view, you can move through the list and manually save them out to disk for posterity, but that's a pain in the bee-hind. This script automagically saves them all out in a sequence.

conformMeshToMesh.mel
Moves all the points in object A to be in the same positions as the points in object B. Effectively a shortcut for doing a blendshape between the two, sliding the slider, and deleting the blend shape node.

areaTriangle.mel
Computes the area of an arbitrary (i.e. not necessarily right angled) triangle given three points.

Software Development Links

If you're a developer you might be interested in some of my software development links - tools, libraries and resources for software development I've collected over the years.