This is a simple page for now.
If you use the 3D program Blender
to create and render animations, you may have found yourself often thinking:
I really wish I could get multiple computers to team up and render this animation all at the same time, so it finishes faster!
I've thought this a lot myself and didn't like other renderfarm solutions for Blender. Some didn't work very well, some cost a lot of money, and others were too cumbersome to setup and run.
As a solution to this problem, I wrote Freddy Render
. Freddy Render is free render farm software for Blender
. It's pretty simple, works well, and has a slick web interface to help you manage your projects. It's also written in pure Java, so you should be able to run it on just about every major operating system out there (i.e., Windows, Linux, Mac, OpenBSD, whatever).
The download link is at the bottom of this page. Basic instructions follow below.
Freddy Render's Modes
Freddy Render has three modes, all invocable from the same download:
You can launch all three modes on the same machine, if you'd like. But typically in a renderfarm-like setup, you'd want something like this:
- One machine running Master mode, to control everything and expose a nifty web interface.
- One or more machines running Slave mode, to do all the rendering.
- Your personal workstation running Client mode, only when you need to submit a new job.
The subsections below will go into the modes in a bit more detail, as well as tell you how to launch them.
In all examples, suppose MASTER_IP represents the IP address of the machine running Freddy Render in Master mode, and MASTER_PORT represents the port you'd like the Master to listen on (an integer usually between 1025 and 65535).
In Master mode, Freddy Render coordinates all activities and allows you to manage your jobs through a nifty web interface. You typically should only run 1 machine as the Master. Invocation is as simple as:
java -jar /path/to/FreddyRender.jar --master --port MASTER_PORT
To access the web interface, just open your browser and punch in the address of your Master. To tell your browser what port to connect to, use a colon (:) followed by the port number. The general form is:
Depending on your own personal network configuration and the port you chose for your Master, an example of the URL in your browser might look something like the following:
Only one machine should run in Master mode. The Master would typically run 24/7, or at least until your project finishes rendering. The machine running your Master doesn't have to be very powerful, because it won't do any rendering. A simple Raspberry Pi 4 or old laptop would probably be fine.
However, it is acceptable to power off the Master sometimes, if you really need to. The next time you start the Master, it will scan the local file system and try to recover where it left off. Be aware though, that powering off the Master has two main drawbacks:
- Whenever you start the Master again, it will cost some time to recover your previous jobs. If you have many jobs with many frames each, this could be a significant time delay.
- None of your Slave machines will be able to render anything when the Master isn't running. They'll sit idle while they endlessly try to contact the Master for instructions.
- No Clients will be able to submit new jobs.
Master mode has no security as of yet, so you should only run this on a private network that you trust. It's also possible to run the Master behind Apache with a reverse proxy running SSL and some sort of authentication. If you run Master mode as-is on an untrusted network (e.g., the internet), you might get random people submitting offensive jobs or deleting yours, just to troll you. Development of Freddy Render hasn't focused on security concerns thus far, so it's possible an evil internet person could find a way to exploit Master mode to hack the entire machine. In other words, it's not worth making public; Just keep it safe on your own network.
Slave mode is where all your jobs actually get rendered. You'll want to run as many machines in Slave mode, as you can get your hands on. Slave machines will continuously ask the Master for a frame to render, render the frame, then send the rendered frame back to the Master. When there is no work to do, a Slave will sit mostly idle until the Master finally has work it can do.
Invocation of Slave mode is also fairly simple:
java -jar /path/to/FreddyRender.jar --slave --hostname MASTER_IP --port MASTER_PORT
Slaves can be turned off and back on whenever you need to, with no adverse effects. The Master will figure out which frames finished, and which need to be resent to a different Slave. If no Slaves are running, the Master will wait patiently until one comes online.
In Client mode, Freddy Render will launch a window you can use to submit jobs to the Master. Invocation is as follows:
java -jar /path/to/FreddyRender.jar --client --hostname MASTER_IP --port MASTER_PORT
In fact the "--hostname" and "--port" arguments are totally optional. All they do is initialize some fields in the window that spawns.
You can launch Client mode on any machine with a graphical desktop, but this would usually be the machine you do your Blender design on, because that's usually where the project's blend file is.
You don't need to run Client mode unless you need to submit a new job to the Master. As soon as the job is submitted, you can close the Client.
As of March 2020, Freddy Render is compiled with Java 11, so you'll need that to run.
You can download the latest version of Freddy Render here:
If you use and enjoy Freddy Render, please leave a comment! If you give it a shout out somewhere, let me know!