All Projects → rndevfx → Docker Blender Render Cluster

rndevfx / Docker Blender Render Cluster

A docker based multi machine render setup

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Docker Blender Render Cluster

Bitwrk
Bitcoin-fueled Peer-to-Peer Blender Rendering (and more)
Stars: ✭ 114 (+44.3%)
Mutual labels:  blender, render
l2cu
L²CU: LDraw Linux Command line Utility
Stars: ✭ 14 (-82.28%)
Mutual labels:  blender, render
Keyboard Layout Editor For Blender
Allows you to import keyboard layouts into blender and render them in 3d
Stars: ✭ 224 (+183.54%)
Mutual labels:  blender, render
VF-BlenderAutoSaveRender
Automatically saves a numbered or dated image after every render and can extend the Blender output path with dynamic variables
Stars: ✭ 34 (-56.96%)
Mutual labels:  blender, render
Impress
Enterprise application server for Node.js and Metarhia private cloud ⚡
Stars: ✭ 634 (+702.53%)
Mutual labels:  server, cluster
Actionhero
Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks
Stars: ✭ 2,280 (+2786.08%)
Mutual labels:  server, cluster
DuBLF DuBlast
Quick Playblast tool for Blender
Stars: ✭ 18 (-77.22%)
Mutual labels:  blender, render
Rayo.js
Micro framework for Node.js
Stars: ✭ 170 (+115.19%)
Mutual labels:  server, cluster
Nodejsstarterkit
Starter Kit for Node.js v14.x, minimum dependencies 🚀
Stars: ✭ 348 (+340.51%)
Mutual labels:  server, cluster
Supervizer
NodeJS Application Manager
Stars: ✭ 278 (+251.9%)
Mutual labels:  server, cluster
PinFloyd
MapKit annotations clustering for iOS
Stars: ✭ 29 (-63.29%)
Mutual labels:  cluster, render
Gonet
go分布式服务器,基于内存mmo
Stars: ✭ 804 (+917.72%)
Mutual labels:  server, cluster
Iodine
iodine - HTTP / WebSockets Server for Ruby with Pub/Sub support
Stars: ✭ 720 (+811.39%)
Mutual labels:  server, cluster
Clusterws
💥 Lightweight, fast and powerful framework for building scalable WebSocket applications in Node.js
Stars: ✭ 868 (+998.73%)
Mutual labels:  server, cluster
Blenderdatavis
Data visualisation addon for Blender
Stars: ✭ 72 (-8.86%)
Mutual labels:  blender
Foxman
🍥 an extensible mock server
Stars: ✭ 76 (-3.8%)
Mutual labels:  server
Flowr
Robust and efficient workflows using a simple language agnostic approach
Stars: ✭ 73 (-7.59%)
Mutual labels:  cluster
Bittorrent Tracker
🌊 Simple, robust, BitTorrent tracker (client & server) implementation
Stars: ✭ 1,184 (+1398.73%)
Mutual labels:  server
Rsf
已作为 Hasor 的子项目,迁移到:http://git.oschina.net/zycgit/hasor
Stars: ✭ 77 (-2.53%)
Mutual labels:  cluster
Flexisip
Linphone.org mirror for flexisip (git://git.linphone.org/flexisip.git)
Stars: ✭ 75 (-5.06%)
Mutual labels:  server

blender-render-cluster

A docker based multi machine render setup

Build

Warning: This is only possible in Blender < 2.80. For newer Blender releases this plugin is no longer available so this project is deprecated as well.

Quick Start

Alt text

Option 1 - The easy way: Download basic blender image

$ docker pull d3v0x/blender-render-cluster

All Blender docker images are tagged since version 2.77a. To get a list of available versions, simply run

curl https://index.docker.io/v1/repositories/d3v0x/blender-render-cluster/tags

If you want to download a specific version, type

docker pull d3v0x/blender-render-cluster:2.77a

This will download a 2.77a Blender image.

Option 2 - The "hard" way: Build basic blender image

$ docker build -t blender-render-cluster .

This will build the latest Blender version from my Gentoo d3v0x-overlay

How to start as master

$ docker run --name blender_master -e "RENDER_MODE=MASTER" -p 8000:8000 -d d3v0x/blender-render-cluster

How to start and run as slave

RENDER_MODE will be set to SLAVE by default. You only have to connect/link to the master container.

$ docker run --name blender_slave --link blender_master:master -e "MASTER_PORT_8000_TCP_ADDR=master" -d d3v0x/blender-render-cluster

Connect new slave to master on other host

To connect to a master on another server/host you only have to override the environment variable MASTER_PORT_8000_TCP_ADDR and enter the master IP address

$ docker run -d -e "MASTER_PORT_8000_TCP_ADDR=192.168.178.21" blender_master

Tl;Dr Edition

Sometimes it takes hours or maybe days to render a final image or an animation. I've got several virtual machines, some idle servers and much unused CPU/GPU. This time I want to show how to set up your own render farm with Blenders Network Renderer and my new Blender Cluster Docker image.

Requirements:

  • Some servers or virtual machines
  • A running docker daemon on each machine

Before we start we have to set up our master. This machine will maintain all the jobs and is the first contact for the client - your local workstation.

So lets log in to your server and download my Gentoo based Blender-Render-Cluster image. Of couse you can build the image by yourself if you want. All the sources can be found here at this repo. In this example I want to show how to set up your master and client machines with the prebuild Blender-Render-Cluster image from Docker Hub. You can get some details here.

Set up your master

First of all write down the IP of your master. This is important when we create the slaves on the other machines. Get the IP with

[email protected] ~ $ ip addr
[...]
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 10.0.109.55/24 scope global enp2s0
    valid_lft forever preferred_lft forever
[...]

In this example my IP is 10.0.109.55.

Now we want to download the image and start up the master.

[email protected] ~ $ docker pull d3v0x/blender-render-cluster

This will take some time and downloads the base image:

[...]
latest: Pulling from d3v0x/blender-render-cluster
137d1c317b8c: Downloading [==>                                                ] 10.25 MB/255.7 MB
c2418f02a306: Download complete 
67174dd10795: Download complete 
1c7a34115767: Downloading [========>                                          ] 17.28 MB/98.57 MB
7ddca3076d93: Download complete 
3ca40110a232: Downloading [===========================>                       ] 16.85 MB/30.91 MB
f95d0e53882a: Download complete 
[...]

After the download is completed you can see the new blender image in the list

[email protected] ~ $ docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
d3v0x/blender-render-cluster   latest              1bbb3cc7d57c        3 hours ago         1.95 GB

And that's it. Now we can start our master image with

$ docker run -e "RENDER_MODE=MASTER" -p 8000:8000 -d --name blender_master d3v0x/blender-render-cluster

The RENDER_MODE environment variable is required because the python script for Blender within the container will set all the configuration of the network render add-on for you. And with this single image you can create master or slave containers based on this environment variable. The default / fallback will set the render mode to slave.

Now you can switch to your webbrowser and go to http://master-ip:8000 and get the web interface of your master render server. Now your master is online.

Alt text

Connect slaves to your master

After the master is up and running we can start to connect some slaves. Log in to your next virtual machine and download the Docker image again.

[email protected] ~ $ docker pull d3v0x/blender-render-cluster

But this time we want a slave which connects to the master. So we have to start the container with masters IP address:

[email protected] ~ $ docker run --name blender_slave -d -e "MASTER_PORT_8000_TCP_ADDR=10.0.109.55" d3v0x/blender-render-cluster

Replace the IP 10.0.109.55 with your masters IP of course. And now you've got your first slave in your list. Check the web interface to get some details. If your master and the slave is on the same machine you can link both docker containers together instead of overwriting the IP.

[email protected] ~ $ docker run --name blender_slave -d --link blender_master:master -e "MASTER_PORT_8000_TCP_ADDR=master" d3v0x/blender-render-cluster

Repeat this for all your other machines.

Alt text

Set up Blender to render within your new cluster

And now we want to render our animation within our new rendering network. Before we can send our jobs we have to enable the Blender Add-on "Render: Network Render" within the Blender User Preferences.

Alt text

Next, switch to the Network Render Engine. Be sure you saved you're scene before because the file will be sent to the master.

Alt text

Now you've got many new settings within your Render Section within the Properties Panel. Add your masters IP address and click on refresh at "Slaves Status". You should see all your slaves.

And that's it. Happy rendering!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].