Loki Render, Rebooted

I do some strange stuff sometimes for absolutely no reason but to fix things I need to get working the way I want them to, and my latest hack is no exception.

I’ve been wanting to use Blender to render a set of short (<30s) placeholder animations for internal videos, and the issue of rendering them quickly and efficiently has been on the back of my mind for a good while. I’ve looked at a number of render farm management tools out there, but none of them was as easy to use as Loki Render - you basically drop it into a machine with Blender installed, kickstart it with a single command line, it and you get automatic master/grunt detection and connection setup.

You then give the master your .blender file, and it does all the hard work of re-packaging and distributing the assets to all the grunts, assigning work and collecting the results on its hard disk - no need to mess around with shared filesystems, fetching the results from the remote machines, nothing. It’s a brilliant piece of work, and it works fine on both Linux and Mac - I was able to get it running within 15 seconds across both kinds of machines.

The downside? It’s Java. And since it uses multicast to detect peers, it also didn’t work across subnets, until I grabbed Netbeans, forked it on GitHub and hacked it in half an hour to allow for:

  • manually specifying which master to connect to instead of locating it through multicast
  • wait around until the master shows up if it’s down, retrying every 30s

It’s a bit picky about the command-line arguments right now, but I have little incentive to improve it since it now does what I need for deploying it in large scale (I’m thinking about 15 nodes with 4-8 cores to start with - tests show I can render a full PAL resolution frame in under a couple of seconds that way, depending on model and effects).

In the process, I’ve realized that in the course of one week, I’ve written code or hacked into submission Perl, Python, JavaScript, Java and around 15 minutes of (exploratory) Erlang. And, given that Netbeans failed to evoke the nausea I get from exposure to Eclipse, that Java IDEs have come a long way indeed (shame about the bag of paranoid lemmings that shaped the language and its idioms, though).

If you told me that would be happening a year ago, I’d have said you were nuts. As it is, and despite having virtually no time to do more interesting stuff, I’m counting my blessings already.