BlendFarm, A free, cross-platform, stand-alone, open-source Network Renderer

When I tried setting up a rendering server I found that the majority of network renderers are outdated, no longer maintained, or just not functioning with modern Blender versions.

So I set out to develop my own, and decided to put some extra effort in it to make it usable by a wider audience.

BlendFarm is a network renderer that manages itself. You do not need to install Blender on target computers, instead a single binary will download the appropriate Blender versions whenever it is missing and requested for rendering, it also isolates these installations from your own Blender installation. This makes it more forward-compatible with future versions of Blender (automatically) and prevents local installations from potentially altering your renders. It allows for scaling of roughly 90% on an equally distributed scene, automatic performance balancing will try to improve after each render.

The application consists of 2 parts, a GUI application and a headless (console) application available for Windows, Linux and Mac. Both allows the computer its running on to act as render node. The GUI application allows you to render your Blendfile across multiple render nodes in your network. The Blendfarm GUI automatically detects changes in your Blendfile that you are working on whenever you save it, so no need to reload.

Because renders do not run in your active Blender application, and instead derive renders from your Blendfile in its own Blender instance, it reduces the chance of the Blender crashing due to a render. Each render (session) is also done in its own instance of Blender, so in case a Blender render does crash, it does not require you to restart Blender on the target computers.

Main features:

  • Render a Cycles image with multiple computers
  • Render a Cycles animation with multiple computers
  • Automatic re-render on save
  • Stand-alone GUI (Windows, Linux, Mac)
  • Headless Render Node (Windows, Linux, Mac)
  • Single-Executable deployment
  • Rendering using CPU,Cuda, and OpenCL
  • Automatic workload balancing
  • Automatic network discovery
  • Automatic Blendfile change detection

Project Url:

The following video showcases basic features:

The following video showcases basic usage:

Rendering an image:
BlendfarmChunked
Rendering an animation:
animationDemo4

BlendFarm is completely free. If you find the software useful, any donations are appreciated, and a Patreon is available on the Github page.

If you have any feedback, feel free to post it here.

22 Likes

This looks outstanding! I’ll be checking this out for sure! Thank you for working on a project like this, as I feel it’s definitely needed.

Wow, this is simply awesome!!! Thank you!!!

Is it possible to unlock more control with how you use this? Quite often, I want to use a specific build of Blender, not just the official releases, and this tool seems to only allow you use official releases. Having it automate the management of blender versions is a really nice feature, but many times I just prefer to feed the render manager the locations of my blender executables (for each platform).

Also, I generally prefer to not bundle everything into my blend file. Rather, I set up my network to have the same path name for all nodes, so I can store all assets on the network drive and the slaves will read everything fine. For cross-platform that’s a lot trickier, and may require bundling all assets to work reliably. Or the render manager can remap drive paths depending on platform if it can support such a thing.

I’m also really fuzzy on the role of the server app. I imagine one has to be running on a machine accessible to all on the network, but the setup instructions don’t seem to mention it.
Looking promising so far! Thanks for working on this!

Good to hear interest in the application,

Ill cover your points in order.

Non-official Blender Versions
Technically you can already provide custom builds by putting them in the proper directory (BlenderData, depending on operating system). However, for it to be selectable in the GUI it has to be in the versions list. What I will put on my TODO list is to add custom version names so you can manually put these installations there. If you have more specifics on what kind of “specific build” you use this may help me build it right.

Not bundling assets
BlendFarm does not actually enforce you bundling assets. If you make sure you save your Blendfile with paths to assets on a network drive (that is accessible on all computers using that path) you shouldn’t need to bundle assets, it would even speed up syncing. Bundling assets is suggested because for most people this is the easiest way to get it to work without issues. Remapping of paths I’d have to take a look at and will likely require Blendfile alterations (which I try to minimize to keep it compatible with future versions etc).

Server application role
For you to use a network computer for rendering, some application needs to run on those computers. This can either be the Server or just the GUI on the project select screen. The server is mostly meant for remote computers as they only act rendering machines. Because they are headless console applications they are easy to deploy on Linux machines without any desktop environment. Hopefully that answers your question?

If you want to follow the status and make sure I don’t forget any, I recommend you create issues on the project Github, this way I can address each individually and keep you informed on their status.

I probably have some time end of this week. Hopefully I addressed all questions.

1 Like

Thanks for the Info! I’ll try and draft up some workflow suggestions before the end of the week and post them to your GitHub page.

I can’t find the “BlenderData” folder. Im using OS X. The app loads fine, but I want to swap out the blender executable and don’t know where to look. I’m also on Windows, but haven’t tried it there yet. Thanks!

Another question: Are there plans for this to support multiple jobs? Say, for example, if I needed to queue up 10 blender animation files for a few solid days of rendering?

Regarding missing BlenderData on Mac. Mac is the exception to the rule, and instead of it being in the same folder as the executable, its located at Library/Application Support/BlendFarn/BlenderData.
What I suggest is that you pick a version of Blender you dont care about and replace the installation of that. Ensure you use the same format for your directory as Blender. For mac, that is blender-x.yy.z-macOS. For windows its blender-x.yy.z-windows64. So, if you select version 2.90.0, the directory on MacOS will be blender-2.90.0-macOS and on Windows blender-2.90.0-windows64. hopefully this makes sense. Like I said, I’ll be looking into an easy way to add it hopefully this week.

Regarding multiple jobs, BlendFarm was developed with the idea of speeding up rendering during modelling (so being able to see previews quicker) and sometimes to finish animations quicker. What you’re talking about sounds more like a production application. I could choose to add such a system to BlendFarm, code-wise there are no restrictions. Its just extra work. But I may consider it in the future.
In this case it might be more interesting to develop a separate with say a web interface where you can drop Blender files and it will just render them for you.
Either way, currently I had no plans for this yet as there are other priorities, but if you really want this I suggest make another Issue on Github.

Hopefully that answers your questions

hi,
the BlendFarm project looks amazing, it’s really put user experience first and provide robust feature set.

but I got problem in some of my PCs, I can’t run the client,when I open it, it lost responding and disappears. but it works on one of my PC.

I wander if is the client need some specific prerequisite to run? like some vc++ library?

thanks

Hey Wenna,
I tested Blendfarm on Windows, Linux, and Mac using fresh installations. So it shouldn’t require any dependencies. Linux however can be a bit annoying with permissions.
Could you give me more system information? What operating system are you using? any particularities about the Hardware?

If running Linux, ensure BlendFarm has access to its own directory and any subdirectories, it may also need an internet connection to obtain version info.

If you run the application from command line/terminal/shell, does it print out an error?

Any additional information would help.

Thanks in advance

thanks for your reply, i just got BlendFarm works on other machine, by install .net 4.8 runtime.
it works good.

image

That’s odd, The released binaries should not have a dependency on .Net.

Regarding the exception there is a web exception, however the actual exception message is a bit more up.
At a glance it fails to fetch the version information.
(this page https://download.blender.org/release/)

One guess it that you may have installed BlendFarm on so many computers that the Blender server is denying you atm due to too many requests from the same IP. (Version information is cached for 3 days, but if you install it on a lot of computers it may annoy Blender servers)

I may have to hard-code some older Blender versions so it does not have to explore all versions.
Hopefully this helps troubleshooting the issue, otherwise feel free to comment.

the error looks like this, see picture above, so I followed the keywords " Unable to read data from the transport connection : An existing connection was forcibly closed by the remote host " to this article https://stackoverflow.com/questions/5420656/unable-to-read-data-from-the-transport-connection-an-existing-connection-was-f

someone suggest to upgrade the .net runtime, I gave a try, and it works.

I countered the problem when I try to run blendfarm the first ,so it’s not related to the number of computers. i still got some PC have the same problem and not upgrade the .net 4.8, if you need, i can record videos.

I recommend we continue the conversation on Github, since you already posted there (if you could repost the above for context that would be great, I’ll reply there)

Update 1.0.4

Changelog:

  • Support for custom Blender builds with walkthrough UI in BlendFarm GUI.
  • Error message when attempting to Launch first time without internet connection

awesome update, can’t wait to try.

Update: The problem is solved by the help of the developer, it’s because the client pc not connect to the internet.
Scine it need to download Blender at the first. Once it downloaded it works great.

can you help to look at my problem?
I have a blend file can’t render with BlendFarm. I have checked there is no missing assets.

the client:


the server:
image

attache the problem blend file here:kitchen.zip (2.0 MB)

Hey wenna666,

I have tested around with your Blendfile and it appears I have found the issue.
Rename your scene to “Scene” instead of “Scene.001”, currently the scene name is hardcoded.
I will fix this in a future version though, cuz I suspect this will happen with more people.

Good luck