NetRender command line

I own 2 PCs and 1 homeserver. I got the NetRender with 2 PCs working, but the server doesn’t have a GUI so I tried to run the command from the Blender wiki (I can’t post links, its the first if you google “Blender netrender”).

I configured the slave on my PC with the gui, exported the blend-file and sent it to the server.
There I ran this command from the wiki:
blender -b slave.blend -a

But with this command Blender renders the scene autonomous and does not wait for jobs from the master.

Where is my error?

Which version of Blender are you using? Netrender is now an Add-on. Make sure that it’s enabled and saved to your User Preferences as being enabled. Also make sure your slave.blend file is set to use Netrender rather than Blender Render.

I’m using 2.57.1 on Ubuntu 10.04 (on PC and server).

My workflow:

  • Start Blender
  • Switch to NetRender
  • Switch to salve
  • Enter master’s IP
  • Click “Save User Settings”
  • Click “Save As” => slave.blend
  • transfer to server and execute
  • ./blender -b …/slave.blend -a

Thanks for your answer! :slight_smile:

So are you saying it’s working now? Or this is what you’re doing and it’s not working?

Why are you using …/slave.blend? Did you save that file in the parent directory of your current working directory? Your workflow description doesn’t say you save slave.blend a directory up.

Personally, I’ve read the docs on the net render built in to the blender 2.5x series, and I wouldn’t use it. I admit that I have never used it. I’ve never used the net render option because I use FarmerJoe to manage all my rendering. Basically, the FarmerJoe executable needs to be on a shared network drive, the configuration file, and a copy of blender. Once configured, which is easy, then any computer that has access to the network drive can become a slave render.

It’s a great setup and I’ve updated all the python scripts to get it to work with blender 2.57 and above… I’m looking for a mac OSX user to test it out…

It does not work…
Sorry I forgot this. I uploaded it into my home directory and blender is in a subdirectory. Moving the blend-file to blender’s directory doesn’t change anything.

Alright… a couple questions (some may be stupid, but low-hanging fruit blah blah):

  • Is the Netrender add-on enabled and saved to User Preferences so it’s active/available when you start Blender?
  • Your workflow is saying you transfer the slave.blend file to your server and execute it there. That doesn’t sound right. You should be executing slave.blend on the slave machine (not the server). Are you?
  • Does the slave act properly (wait to accept jobs from the master) when you run it with the GUI (i.e. without the -b switch)?

That was the right hint… Blender does not save the user preferences into the .blend-file, so the NetRender-add-on isn’t enabled on the server facepalm I took my whole Blender-folder and ~/.blender-folder and sent them to the server => works. Thanks! :slight_smile:
Is there a way to enable add-ons via command-line?

and btw: the server should act as a slave.

Edit: wooohoo rendering goes fast! Thanks!! :slight_smile: :slight_smile:

There is an --addons command switch on the command line (you can see how it works by running ./blender -h)

I am new to this forum and would like to jump into this thread with a new question:
I am using blender 2.56 at a German school.
I have 20 clients in a computing room an a server running as blender server.
Sometimes I can use another computer room as well and then I start blender in slave mode on these 20 machine.
The result is great, network-rendering is just 20 times as fast as local rendering.

My question is: can I (and does it make sense?) run blender and slave mode on my clients as well?
This would mean I get a total of 40 slaves.
Most of the time the students at the clients do modeling (and not rendering)
and the extra slave would minimizes the render time again.
It gets even more important, when I cannot use the second room.
In that case it would mean 20 slaves instead of no slaves at all.
Can I set a priority to the “blender -b slave.blend -a” that way that it only uses CPU time while it is not needed by the client?
I do not want to slow down the modeling performance of the clients of course.
Can I use the 2.56 slave.blend file with 2.57 slaves?
How would the command look like with addons?
(instead of “blender -b slave.blend -a” )

Thanks for your help !

Technically, there’s nothing stopping you from running two instances of Blender on the same machine (one client and one slave). However, I’d suggest that (as you’ve already noted) you reduce the priority of the slave Blender process. The specific way you do that really depends on the operating system you’re using. If you’re using one of the various flavors of Linux, you should be able to do this pretty easily using the renice command.

Hi Fweeb,
Yes it is Linux!
“renicing” seems to be a way to alter the priority after starting a job.
I would have to write a shellscript to do so.
If it is more simple and easy for you, could yo just post the line I have to write instead of
“blender -b slave.blend -a” to run it with the netrender addon and low priority?


Unfortunately, as far as I know, there’s not a way of adjusting priority with only the switches available to the Blender executable. I think that the shell script is pretty much the way to go. You could do it with just ‘nice’… maybe something like this:

nice -n [nice_value] blender -b slave.blend -a --addons netrender

That was exactly what I was looking for.
I will set it up on wednesday and check it out on thursday.