FarmerJoe – An easier render solution.


I’ve been very happy until now with drqueue. Developed by Jorge Daza, it’s a very nice render farm management software with a nice GUI. It worked relatively well for me for “Jose’s Dinner” and “Schrodinger’s Cat“. However, there were two big kinks in using drqueue. First of all, Windows support was so sketchy it might as well be non-existent. So my most powerful computer was left out of the render-pool. Second, with the latest iteration, it no longer works on BSD computers. I tried for a few nights to make it work, but to no avail. So I turned to FarmerJoe.

FarmerJoe technically does not have FreeBSD support, but I emailed the developer and he sent me an unofficial FreeBSD script. I’m hoping I can help him include it in the official release for the next release. FarmerJoe is almost infinitely easier to setup than drqueue. That’s not to say there aren’t some slipups. It still takes about a day or two to get used to what it’s asking you to do and how it works, but it’s pretty easy once you get the hang of it. Of course, one of the best parts of FarmerJoe is that it can be launched from within Blender with a nice Python GUI. Sure, it’s not so horrible to launch a render from drqueue, but it’s so much more intuitive to be able to do it from within Blender. I really like this solution so much I think it may be the first project at which I truly contribute to get the features I’d like built in.

Here’s the method I use to setup and run FarmerJoe.

1) Setup a directory that is shared to all of your computers
2) Put unzip FarmerJoe to that directory
3) Edit the conf file to point to this directory and edit the path to Blender on each of the operating systems

# Master Server Configuration
port = 2006
master = 192.168.0.104

jobs = jobs
logs = logs

linux_root = /mnt/render/FJ
linux_blender = blender
linux_composite = /usr/bin/composite

### Added by Sven Mertens ###
freebsd_root = /mnt/render/FJ
freebsd_blender = blender
freebsd_composite = /usr/bin/composite
### /end of modification by Sven Mertens ###

windows_root = z:\FJ
windows_blender = C:\Program Files\Blender Foundation\Blender\blender.exe
windows_composite = composite

osx_root = /Volumes/farmerjoe
osx_blender = /Volumes/farmerjoe/bin/osx/blender/blender.app/Contents/MacOS/blender
osx_composite = /usr/local/bin/composite

# Application server Configuration
appserver_port = 2007

4) Go to the master computer and run the master/webserver like so ./Farmerjoe.pl –master && ./Farmerjoe.pl –appserver

5) Check on the website to see that all the slaves have connected

6) Go into Blender on any computer and run the python script to submit the render to the master

7) chmod -R 777 * the jobs directory – and you probably want to do this before you connect any slaves

8) Go to each slave and run the slave as so  ./Farmerjoe.linux for linux ./Farmerjoe.pl for BSD (if you have the modified Farmerjoe.pl that works with BSD) and Farmerjoe.exe for Windows
9) Go do something while your animation is rendered blazingly fast (depending on how many machines are involved)
10) Come back and collect all of the rendered frames from the frames directory
11) Do it again? Or Quit the slave and master programs and turn your computers off and stop heating your office/basement

So it’s incredibly easy to use and the author is very aproachable. He usually answers email within 24 hours and I imagine he gets a lot of it. So I’d say this is a great program and a good example of when it’s not a bad thing that in the FOSS world two people develop programs that do the same thing. One can end up being a little more complicated, but perhaps better suited to studios (studios have indeed used drqueue) and another can end up being a lot easier to use with a bit of compromise. For example, it’s not easy (or possible?) to re-render only particular frames that have messed up in FarmerJoe, but this is much easier to do with drqueue. (Although not without the occassional bug)

In the end, you must do what has been counciled time and again – try them both out and see which works best for you.