Freddy Render

My Blog | Mike Peralta's Blog



Saturday, March 28th, 2020, 10:05am
Categories: Tech / Nerdery

Freddy Render



Hello friends!

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:
  • Master
  • Client
  • Slave

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).

Master Mode


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:
http://MASTER_IP:MASTER_PORT/

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:
http://192.168.1.100:8000

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


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.

Client Mode


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.

Requirements



Java



As of March 2020, Freddy Render is compiled with Java 11, so you'll need that to run.

Download



You can download the latest version of Freddy Render here:
FreddyRender-2.2.1.jar

If you use and enjoy Freddy Render, please leave a comment! If you give it a shout out somewhere, let me know!

Don't forget to get your FREE Mp3s right here: MikePeralta.com/Subscribe
Mike Peralta is an independent musician and you should follow him on Twitter (@MikePeralta) and Instagram (@MikePeraltaMusic), then subscribe to his blog just a bit below this text!
Current avatar photo by Heinz von Bockelmann (CC by 2.0, modified by Mike Peralta)



Link to This Entry

 

Share With Your Friends


Subscribe to Mike Peralta's Blog

1. Your Email 2. Your Name 3. Click "Subscribe" !

Comments

Be the first to comment!
Your Name
Your name is required since you are not logged in.
Your Email
Your email is required since you are not logged in.
Word Verification
Word verificaiton is required since you are not logged in.
Your Comment


(Don't fill this one out)

Submit

Booking | Newsletter | Contact | RSS

Photos

  • Instagram
  • Register / Community

  • Register (FREE)
  • Login
  • Find Other Fans
  • Mobile

  • Point your mobile browser to: MikePeralta.com/m or simply scan this code











  • Still need to fix CL_Hook_Blog_PublicInterface_ViewEntry_BeforeTemplate()