By a fortuitous coincidence, I and two friends have got 50 patterned computers. Of course we did not just want to let them get stuck in a corner. So we started to think about what we could do with them.
Since my friends worked relatively much with Blender and we all looked at it as a nice learning project, we started with the development of a render farm. Thus, the computers can calculate the frames of the models. In addition, a web platform was created to upload new models and keep an overview of all rendered images.
Users can register, log in, and manage their profiles, and remove them if necessary. There are various user roles that decide how many parallel jobs can be given to the cluster and how these are in contrast to other user groups prioritized. Thus, it was possible to create "premium" groups that would be treated more prioritized.
Each user can enter jobs into the system. Each job consists of a Blender model and the frames that need to be rendered. Additionally, you can make blender-specific settings, such as the "Render Engine".
The progress of an order can be observed on the overview page. There, the user sees the progress and all previously rendered frames. If the job is finished, the user can download all rendered frames as a ZIP archive.
All actions, such as adding jobs and downloading frames, can also be done using the API. The user can independently generate and delete API keys.
The individual computers and servers can connect to the web platform to create a cluster. Each job is automatically distributed to all computers that are currently free. The data between the web platform and the computer is transferred completely encrypted and individual computers can be deactivated directly in the web backend by administrators.
Administrators can make all important settings regarding users, jobs and computers, directly in an online backend.
The website was developed with the laravel framework. The client software was realised with python.
A room with more than 8 computers will be very fast, very warm. It's really cool to see how several computers together solve a problem. The project was interesting and I unfortunately, because of the lost location for the computer, aborted.