New Script: Distributed Rendering

!!!This script now has a home on my new website!!!

Hello!
I have written a script designed to make it easier to render animations by sharing the frames between computers. Follow the link above for more information:)!

This script is great, I had it working real quick and worked great.

I have been looking for a simple distributed render system for a while, I tried drqueue which works well but the windows version diddn’t work for me and I have both linux and windows pc’s I use.
The jobs I do are small enough to simply copy the blend and render different frame ranges so this script is perfect for me as it saves me splitting things up :slight_smile:

I can see with a little more work this sript would could easily have the client wait for a render to be submitted, so that you dont have to submit the render then start the clients and also to be able to queue up several jobs (which may be possible I havn’t read all the code yet).

I’m sure you have allready planned on such things.

I would be happy to post this script on my small blender scripts page (http://blender.formworks.co.nz) if you want a location for it I see you said you had no where else for it to go.

I cant wait to see the next version.

I’m very glad you like it, and found it easy to get going.:slight_smile: I had problems with DrQueue too, that’s why I wrote the script in the first place.

I did try to make the clients wait, but I decided to candel/postpone that feature because it caused too many problems and I wanted to be able to use the script (it might not be here at all, if I gave up because of that). I might revive that endevour at some point.

Several queued jobs sounds like a good feature too (I didn’t think of that, thanks). For that, I would probably get the submittor to wait until the previous job had finished.

I don’t mind at all if you want to mirror my script on your website (thank you very much if you decide to do so).

Once again, I’m glad the script was useful.

Hi Techmeology, I posted your script here:
http://blender.formworks.co.nz/farm_render/farm_render.html
Also with link from my main page:
http://blender.formworks.co.nz/

Saw your post on Blendernation :slight_smile:

I made a zip with all files in to make it easier to try out for lazy people like myself.
let me know if you have any modifications you want to the page or if you have any updates to the script.

Some hints

Extn = SettingsTxt.readline().replace (’
', ’ ').rstrip()
can be simpler
Extn = SettingsTxt.readline().split()[0] # splits by whitespace anyway

ctxt.saveRenderedImage (Blender.sys.join (Blender.sys.join(ShareLoc, ‘Render’), mname + str(Blender.Get(‘curframe’)) + Extn))
better use blenders internal naming and numbering.
use expandpath
ctxt.saveRenderedImage (Blender.sys.join (Blender.sys.join(ShareLoc, ‘Render’), Blender.sys.extendpath(mname + ‘#’) + Extn))

… where # is replaced with the frame number.

I also found that forcing the rendering to PNG’s was nice :), though with EXR and better formats you may not want this.

Hello.

lobo_nz:
Thank you very much for mirroring my scripts (and putting them in a convenient .zip file):D:cool:.

I didn’t see the link (I’m not complaining, I just thought you should know). You even gave it a version number for me :)(it’s great to: “major release”.“minor release”.“development”).

cambo:

Really? You should be able to render as a sequence of any still frames Blender supports. Also, thank you for the suggestions. I don’t know about using readlines.spit()[0] (I’d probably want to look into that, thanks either way, though). Extendpath looks like a better option; thank you very much for that:D.

Also, lobo_nz, I just thought you might like to know that this “http://www.cncsimulator.com/” in the links section at the bottom of your page is not a hyperlink;).

Ah yes :slight_smile: I just dumped those there for me, I was intending on making a links page for all the stuff I find but have not had the time yet, thx for reminding me they were there.

Hello,

I’m swimming on working with this script, and I have some questions. In the readme file,

In blender, make sure the type of render matches the extension you gave. Make sure this is a single image format, and not an animation. They should be saved as single frames.

Clear the output directory (in the output panel of the scene buttons, at the top). There should be nothing, not even a slash here.

Go to “File–>Open” (in the script window) and open the “FR_Listen.py” script.

Go to the Scripts window. Launch the “Scripts–>Render–>Farm Render” script.
Hit “Submit” followed by “Activate”.

On each of the computers you want to render on (this can include the server), go to the Farm directory and open the FR.blend. On windows, you may be able to simply double click this. On Linux, you might have to open it through Blender.

So, when you speaks about FR.blend, you mean the saved *.blend with these settings (image sequence, output path) and the renderable content itself?
You haven’t not mentioned this FR.blend file in the readme before, so I’m not sure what must contain this file or where i can find it.
I suppose I should run this scripts and press Submit and Activate on each node.
Can you explain a little these questions?

Thank you,
Glaurung

Submit and activate should only be used in the .blend file containing the scene which you want to render (it is not neccesary to do this on every machine). FR.blend is a file created in your farm directory which, when opened in Blender, automatically starts rendering frames.