Doing blender physics on a renderfarm?

Well heres the deal, my dad recently put together a renderfarm (a nice BOXX 10200) for what he does at work. I was doing some school work in blender when he came home, and I started showing off videos of the the cloth and general physics power blender has. He instantly wanted me to install it on his computer and what not.

Now, my question is this…I am doing a simple cloth dropping on a ball to test out the cloth features for myself and I am running only a dual core, which, you can imagine…takes quite awhile for the cloth to drop. (takes like an hour and a half for the full animation). Now, the only animated part is the cloth dropping due to gravity, the other objects in the scene are not animated and because the cloth is handled by the physics there is no true animation timeline.

My question is, is it possible to render the physics animation on the renderfarm? I tried using Distriblend, and it worked great in terms of setting it up and rendering an image out, but when I try to render the physics animation, all it does is render 350 (the number of frames) images of the “cloth” just floating above the ball. I’m pretty sure this has to do with it being a physics animation not a true typical timeline animation.

That being said, is there any way for me to render the physics animation on the renderfarm like it does when I hit the ANIM render button on my computer? Its a multi-part system (two dual processor quad cores per proc), I would like to be able to render it on both…I could physically connect to it and run blender, open the project and render like I do on my machine, but that only uses one of the two systems in it and its not as user friendly as I hoped.

Is there any solution for this or is there any way to configure Distriblend to do this? I tried saving the .blend file with “Continue Physics” checked, but it didnt change anything, it still just renderd all frames with the cloth floating in the same place above the ball.

The objective is to be able to offload the physics animation onto the renderfarm so I can get the render done much quicker, but I cannot seem to figure out how to do so. (Baking the physics animation wont help because I want to perform that process on the renderfarm, not my local machine).

Thanks for any help, hopefully this is possible and somewhat easy to do…I’m rather interested in the physics-based things blender has to offer.

Make your animation then you have to go to the collisions tab under cloth and bake the collisions then you can render it.

Thats what I am hoping to avoid, I want to be able to “bake” it over on the renderfarm so the render farm is handling all the physics calculations.

Baking will not work in a distributed fashion. While many of Blender’s physics tools will take advantage of multi-core or multi-processor machines, you can’t split it among different computers. Unfortunately, you best bet is to pick the one machine with the best specs and let it chug.

Its a professional render box, 2 systems, each system has 2x quad cores (total of 8 cores per system…looks pretty impressive in the task manager). I tried doing that earlier, but it seems blender doesnt use all 8 cores…I checked the stats and for rendering its set for 8 cores, but for the physics it didnt seem a whole lot faster than my system which runs on 2 cores. Upon checking the task manager, it was only using ~20% CPU utilization, and even on mine it only uses around 60%…am I doing something wrong or is that some type of limit in Blender thats not letting it use as much CPU as it can?

EDIT: As a better example…running the same animation on one of the systems, it has between 10-30% CPU usage…one core is spiking up high, a second core is spiking between 0-50%, and the others are spiking between 0-20%…the speed of the first 20 frames or so (the cloth just freefalls, not hitting any objects yet) takes around 2.6-2.7 seconds per frame, thats around the same time it takes on my dual-core system for those same frames. Any way to increase the speed? I would think it would have something to do with the number of threads it can run, but its set to 8 already and its still going the same speed.

Ontop of that, is there any distributed rendering software that can properly do animation for blender? What I mean is instead of returning the indivdual rendered frames, its automatically able to encode the frames into whatever format you chose. If not, anyone know a good program for doing such a thing? I tried one earlier but it didnt work right…the video kind of lagged in the middle every time I tried to play it.

Ah. Look for a build of Blender made with OpenMP. I thought that it was in 2.46, but perhaps I am mistaken.

As i read from the work ‘task manager’ it is a windows machine.
AFAIK to build with Microsoft compilers and openMP enabled you need a special, none free building tool.
So that is why, all the physics only use one core on windows.
On the physics sprint last year we did talk about threading physics calculations, but did not agree in the end. So it was left undecided at which level threading should be used. Some of us thought, the use of openMP will block a more general hight level approach.

Concerning distributing jobs over several machines.
Physics calculation needs the state of all interacting parts including some kind of ‘history’ of it. So i don’t see a simple and clever way to automatically decompose a scene so that the machines have a balanced load .


Ahhh so currently it doesnt matter how many cores I’m running, if two similar processors were tested w/ the physics, one being dual core the other being quad, it would still take roughly the same time as its not multi-threaded?

That sucks…you guys should have threaded the physics. :confused: