You can call me a numerophobe when naming rig objects, but the reason I personally avoid numbers in my rigging naming conventions (99% of the time) is so that when I duplicate something, a number at the end won’t increase by itself because there isn’t one. (The issue can be circumvented by having numbers somewhere before the end, but I’m the kind of weirdo that prefers to go with letters altogether.)

We humans work numbers in what’s known as the “Numeral system“, also known as the “base 10” system (as we have that many fingers…) but hold on… the alphabet has 26 letters, not 10, so what do we call that system? It has a name: it’s the Hexavigesimal (or “base 26”) system.

As the ever-so-handy Wikipedia denotes,

Any number may be converted to base-26 by repeatedly dividing the number by 26.

Pretty easy stuff for Python.

This is how I’d do it:



First things first, you need a QR code scanner app for your smartphone, be it an iPhone, Android, Blackberry or Nokia.

Then highlight the bit of code below and drag it to your bookmarks bar on your browser.

Next time you want to open a page you’re browsing in your phone, press it, a QR code shows up, scan it and the url will be on your phone.


These were completed earlier this year but I forgot to post them here. Enjoy!

This one involved geometry tracking (PFTrack) for full head replacement. FaceRobot was used in production for the first time. The original plan was to use the automatic lipsyncing feature (introduced in Soft 2011) to save us time. It did work, but the client wanted 1:1 lip performance with what the actor did so in the end we didn’t use much of the automatic lipsync.

I rigged the popcorn/kernel guy and helped set up the rigidbody simulation of the M&M’s pouring at the end. — Also wrote a little Python script to do a fair randomization of all 6 colours. You’d run it after the sim was happy to make sure the colours were random but in equal amounts.

I did the ICE instances setup for the lights and the rig of the lumpy bottle at the end. — By the way, the environment is 100% CG. There was a ton of rotoscoping done to make it work. There’s something like 60 shots, almost all shot against blackness (because if it were green/blue-screen it would have shown up in the reflections.)

Hope you likey. 🙂


[I shared this on the Softimage Mailing List the other day and thought it was worth posting here.]

Here’s a fun trick for parsing an ICE string attribute, identifying the letters and typing out the text with particles:
ICE string to particles
Download the sample scene here and read more about it below. (Soft 2011+ required.)



I propose a way of using ICE to split symmetrical shape halves. Here it is in action:
(Download here and read more about it below.)



I wrote this simple tool for a buddy at work today. In my present employer they have a lot of Apple computers running Windows and most still have the Apple keyboard in front of them.

For those unaware, the Apple keyboard has no PrintScreen key. (On another note, they have F13 to F19 keys where normal PC keyboards stop at F12.) You could download a screenshot program of course, but they’re always convoluted. Too many options when all you truly want is the simple key.

So if you’re in Windows with an Apple keyboard, or know a friend who is, download this and pass it on. 😀

It’s just 2 lines of AHK:

There’s no interface, install or anything. You run it and it’ll sit idle in the background. Whenever you hit F15 on your shiny white Apple keyboard it will trigger the PrintScreen key. Simple as that! (To stop it, kill the process manually.)


I wanted to shamelessly plug a non-3D blog/project I started this month titled…

One Artist A Day
One Artist A Day - music recommendation blog


As the name implies, I intend on mentioning 1 (likely awesome :p) musician or band I genuinely enjoy, every single day for the forthcoming future.

It’s been almost a month so far and it’s been a fun challenge to mention artists while trying to stay away from mainstream names. After all, I want to show you music you haven’t heard before, not what’s pumping on MTV or some lousy Top40s’-like radio show. (I miss when MTV had music in it; don’t you?)

So… check out my new blog! 🙂 I will of course continue to keep this one and as soon as production slows a little where I’m working at I will be posting a backlog of educational content I have been meaning to submit for a while. (I currently have 9 drafts of coolness in my WordPress waiting for you.)

Last but not least, I welcome any music suggestions if anyone’s reading this and want to leave a comment down below. I promise to give you credit and link to your blog if I use your suggestion.


This post surged from a question at a forum where somebody tried to use the ctr_dist() function — that returns distance between two object centers — in a Softimage script only to realise that actually it only exists for expressions, not scripting.

Here’s my take on said function for both Softimage and Maya…



Which is the fastest way to do this or that? Why not try them all and benchmark! 🙂

All you need to do is lock at the time.clock()



Environment variables are no secret and neither is the system-set “TEMP” variable, but what is not really mentioned in the SDK Docs is that Softimage overrides the TEMP and TMP environment variables with a temporary folder made by XSI:

If I run that (JavaScript) I get something like: C:\Users\Alan\AppData\Local\Temp\XSI_Temp_15076