You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

Yadra - Yet Another Distributed Rendering App

32

Yadra web-based management toolHave you just pressed "Ctrl W" to save the final version of that cool new animation of yours? Ready to render?

But, wait, maybe you happen to have some computers over a network. If this is your case, it's a good idea to think about Yadra.

Oliver Schulze wrote us about his tool that enables you to render your Blender animations over a network on many computers, which stands out for its easy setup and stable operating.

It's open-source and written in Java, so there's support for any operating system around. You can get info on installation and use on the wiki. One of its cool features is the web-based management tool, to take track of your brand new render farm.

About Author

Virgilio Vasconcelos

Brazilian animator who uses Blender since 2003. Professor of 3D (with Blender, of course) and Digital 2D animation at UFMG (Federal University, Minas Gerais' state), Brazil. Writer of Blender 2.5 Character Animation Cookbook, from Packt Publishing. Has a MFA degree with a research involving tools for free character deformation in 3D and is now performing a PhD research on distributed creation of media and animation.

32 Comments

  1. This is awesome. Defiently going to try it out.

    Just out of interest. I am currently trying to learn 3d studio max and it's interface is a horror compared to blender.

    Stupid college courses requiring it =P

    Blender, Don't ever change.

  2. i have been using farmerjoe for quite a while now, professionally, and could not be more happy with it. the only thing to set up on the slave is mapping the master's HDD. and everything works perfectly, it kinda sounds like you can do it this way as well on Yarda. but does any one have any comparisons between the two?

  3. I would like to see a comparison. I am code diving into yadras source and being a java dev this looks very nice to deal with. I am wondering if the lack of say exr or png rendering is for a reason or you just hardcoded for testing?

  4. I use FarmerJoe distributed rendering for Blender (few months, commercial production).

    It has some serious advantages over other solutions:

    - running new slave is as simple as mounting network volume and run one program (takes less than 30 secs) on Linux, MacOS or Windows,

    - sending a new job to queue is very quick and simple: choose FarmerJoeRender from Render menu (in Blender), so no app switching, no console running (takes less than 10 secs)

    - for bigger images (no animations) bucket rendering is possible, so you can render 10000x80000 pixels bitmap quickly :)

    Server installation is not difficult, works on Linux, MacOS and Windows.

    FarmerJoe is simple, quick and efficient - deep respect to it's programmer.

  5. yet another sigh!... there's so many of them ;) I think what blender really need is a official supported network rendering tool...

  6. I find that the most important thing when using more than one machine is knowing their relative speeds - but there's no mention of that here. For example, I have 3 differently specced machines. I've done a lot of test renders to calculate their relative speeds so I know exactly how much work to give each machine - so that they all finish at around the same time (i.e. minimum time to complete the job).

    It's great to have one machine control rendering on another, but not much use if you guessed the wrong proportions of work and have one machine working away for to finish its frames, hours after all the other machines have finished. Do these distributed render systems analyse previous render times to optimize the work allocation?

  7. ok im a bit confused, im up to getting the computers to find eachother and want to start rendering a file. Where do i go to type that command that has the start and end frame ending with "JPEG"?

    anyone?

  8. @Hummm:
    It looks like you have to find the file "sendToQueue_NAMEOFSLAVE" (.bat or .sh) in the yadra installation directory /on a slave machine./ This file is a batch script(?) that will probably open a console or terminal window(?)

    I assume you need to type
    "c:\PATH_TO_BLEND_FILE\NAME_OF_BLEND.blend 1 150 JPEG"
    or
    "/PATH_TO_BLEND_FILE/NAME_OF_BLEND.blend 1 150 JPEG"
    into that console/terminal window.

    But can you tell I don't really know what I'm talking about? ;)
    I'll check this out later myself. And maybe FarmerJoe too.

    @humble:
    No, the "master" computer cannot also render. Though I wonder if it mightn't be slightly faster anyway... is there a render preview, or is it like command-line rendering in linux?

  9. I did try running that file on the slave machine and a window did pop up for a split second and then closed itself. Thats why I got stuck. I ran both files on the slave and master and the same thing happened. That link is currently down ccherrett. :(

  10. Gryphon

    The master computer can render. I was doing it tonight. I just register a new slave on the same machine and had it connect to it's own ip. no problems.

  11. I've looked at other apps for distributed computing, but have run into problems like non-Blender integrated and OS restrictions. I'm doing to strongly be considering this. Thanks, Oliver!

  12. @Reaction:
    I can't speak for Yadra or FarmerJoe, but I would suggest a look at DrQueue - it works by sending one frame/bucket to each render slave, and then waits for a slave to finish. As soon as one slave finishes, the master sends it another bucket/frame to render. This way all machines pick up work as fast as they can, and your renderfarm is used to maximum efficiency. DrQueue also has also been used professionally and is production-proven. Comes thoroughly recommended :)

    Karl

  13. Well,

    this seems like a nice little project. Had a bit of a play with it all, but could not get the slaves to render output (from the looks of it).

    Will keep my eye on it though, cause it does seem to be heading down the right track.

  14. I had a go at using the frameserver to setup a renderfarm of sorts when I was in high school last year. The computer lab I was in had 32 computers with this setup:
    Processor: Intel Pentium 4 3.2GHz - Dual Core!
    RAM: 2GB

    With basically 64 processors around me I couldn't miss the chance to make a renderfarm. So I got my blend file, put it on the network. Opened the file on all computers and got the list of their IP's from my teacher. I wrote a C++ script that made a html file with a link to every frame in my animation with each computer rendering a near equal number of frames (about 250 frames so about 8 frames per computer). Then I used a download manager for firefox just to download all the links to frames in order with 32 frames downloading at a time. So that every computer was being used. Then I just downloaded all the frames to a laptop that was connected to the network.

    It took a while to setup but it was worth it, worked like a charm when done. I probably did things the long way but I did so because:
    1. I don't understand the so-called 'simple' renderfarm scripts and tools for blender
    2. I didn't have the time nor the desire to write a script or tool myself that did all this automatically, I didn't think I would be doing it again either, so I just did it all manually.

  15. I create AVI Raw files ready for conversion to WMV. So all I need is a program on the master that can be given the relative speeds of each machine (including itself!); then calculate how many frames each machine should do; then send a simple command (over a network connection) to invoke identical Blender installations (with the necessary .blend files also local on each slave machine). When any machine finishes, it sends a message back to the master, which then tells that slave to copy its rendered AVI chunk back to a shared folder on the master.

    If that's *not* what these render farm managers do, then I think it's time I learned Python or reawakened my Visual Basic skills!

  16. Hi,

    a new version of yadra is available on http://blendoli.googlepages.com/yadra. Heres a list of changes:

    - implemented multiple-jobs rendering
    - added a new background image
    - show up all active slaves (even if there are no jobs)
    - added the possibility to remove inactive slaves from list
    - reordered the done-list (newest on top)
    - added multiple output-formats (png, jpeg, ...)
    - made the web-ui more flexible, now it is possible to put the templates in subdirectories
    - added rendering time
    - added pause for slaves (all the time, not only for one job)
    - removed some bugs, regarding the rendering process/made the process more stable
    - made it possible to render multiple jobs with the same name
    - worked-over the code, switched to Subversion (on Sourceforge) and Eclipse
    - fixed error, when master wanted to move the work folder, and the slaves wrote into it, that didn't work
    - Fixed connect timeout error (could lead to a deadlock on the slaves): added timeout to socket connect
    - Fixed problem of config (passphares was not recognized when creating a new slave)
    - Fixed Problem, when setting the work directory to the same as the start directory (resulted in 0-Byte Filesin Web-Directory)

    Have fun using it!

  17. it ried DrQueue, farmerjoe, yadra, then blendermans render script, and a couple of others, including on from hazard but i have to say, i liuk this one the most so far, i guess its the interface or sumething, but its really easy to set up, adding slaves is a breeze, and i like that you can specify the ports and all that. so yeah, i liek it :)

  18. Cool! I've spent last 2 days trying to get DrQueue running on Windows... forget it :(. Though it must be a great renderer, cause used alot by the industry? hmm... I'm going to try the ones mentioned in the comments above! Thanks! :)

  19. bikermusician on

    Nice App!!! Now if I could only get the web interface to work :(

    Every time I connect from a browser (on any machine on local network)...
    I get a window that says

    FORBIDDEN

    RequestURI=/

    Powered by Jetty://

    If I could get the Web interface to work, this would be a GREAT app.

    Running on Ubuntu Server 8.04

  20. Can somebody leave a detailed explanation on how to set yadra up for mac OS X?
    I'm a complete noob when it comes to java virtual machine installations, so I need a walkthrough :(
    I'm terribly sorry.

  21. FINALLY!!!!

    After almost 2 years of trials, tribulations, and partials success (render-farm with no web interface)... I finally mastered all my problems and have a fully functional Blender render-farm with a full functional web interface... :-) Off to the render-farm.

  22. Sandeep Patil on

    do we have any how to install docs for yandra .  please provide good links if any. it would be much helpful for noob like me

Leave A Reply

To add a profile picture to your message, register your email address with Gravatar.com. To protect your email address, create an account on BlenderNation and log in when posting a message.