Brender, home made render farm system

Today I decided to write a bit about brender, a little phph/mysql render farm system I developed a few years ago. At that time I had tried dr queue and royal render for xsi. Was kind of interested in different renderfarming solutions, but also had some time to spend time develop my own as a personal interest and challenge.

So first of all I tried to make different computers communicate through mysql/php. I must precise that I have absolutely not programmer background and my only experience with databasing was webpage page. So that might explain why I did not use sockets or advanced technices but rather a simple database orders system.

Basically the system uses a mysql server database and clients connecting to it. A server (running script brender_server.php) will get the blender jobs (for instance Render file sample.blend frames 1 to 150) and dispatch it as frames sequences to the different availables clients (running brender_clients.php). A render job is then written to database (ex. Client1 render frames 1 to 10 and client2 render 11 to 20). The clients will then see the render job and start to calculate his part. When finished he sends an order to the mysql server saying he finished the render job and is available(or idle) for something else.

 

brender renderfarming system

brender renderfarming system

The main interaction is done through a web server interface. Files are located on a shared network drive.

We have used the system successfully in our last few productions at RGBprod studio. It has been stable although I had to update it when more complicated library linked or composting files are done.

here are some photos of it when i was developping it in my basement, it looks scary but that was the whole point of the installation. It even had mechanical sounds whenever a client finished a render chunk, or server gives new orders.
http://www.flickr.com/photos/oenvoyage/tags/brender/

I will take the system with me to Russia for the blender summer camp in Nizhni Novgorod and maybe will get new idea there 🙂

I can make those files available if anyone if interested. Although I do not know what kind of open source license I should put. Maybe it needs some installation instruction as well 🙂

Advertisements

4 Responses to “Brender, home made render farm system”


  1. 1 vietnamtravel125 July 20, 2009 at 3:53 am

    Nice stuff! This is my seventh visit to this blog and every time I find some thing stimulative.

  2. 2 txrx January 6, 2010 at 12:18 pm

    Like the idea of using pure php & mysql as a farm control system. How reliable do you find the reporting clients when you use mysql & php? We use smedge but it’s needing re-vamped to use MySQL dbases for reporting to since it’s textfile based system does not scale up terribly well.

  3. 3 comeinandburn November 2, 2010 at 3:48 pm

    Hi,

    I realize this is quite an old post but I just finished watching your Blender Conference 2010 presentation and you made mention of this renderfarm. I had seen the post in the past but wasn’t exploring distributed rendering at the time.

    I’ve tried many other solutions including the newly developed “network render” for Blender 2.5 without any luck.

    Have you considered posting this solution and possibly a short how to tutorial? I’m also using OSX and was quite happy with your suggestion of running 2 instances of blender. It does speed things up!

    thanks!

  4. 4 Taufik September 23, 2013 at 11:45 am

    hello

    can you make a tutorial for different client ( 2 cpu ) under linux


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




Categories

Flickr Photos

@oenvoyage latest Twitter


%d bloggers like this: