Royal render farm manager
Royal Render is the powerful application to organize your render jobs for your renderfarm.
It’s more than a tool to start frames on your farm, it’s an advanced application to manage, control and check your renders.Royal Render has been shaped by the harsh realities of projects small and large. We constantly pursue improved workflow, meaningful features and better performance.
We put ease of use up front, keeping innovative algorithms and complex architecture under the hood.Reduce administration time. Keep your time for you.Use Royal Render, join the upper class.
Why Royal Render?
Created by an artist that worked with tough commercial deadlines
The lead developer of Royal Render has worked as Shading&Lighting TD and compositing artist for many productions and he has developed shaders for Softimage. He understands what artists need as he needed the features himself. Many creative artists requests have turned into a feature, but in a different and better way than the non-technical artist or a pure application developer could think of. It’s the synergy that counts. He knows what artists would like to have and what he wants to have: “Checking for broken images??? => Ah, stupid time-consuming task, I create an app for that.” “I have setup one of my render layers wrong for a heavy scene; on the next day we realized we lost half a night of render time. => render a few preview images of all jobs first to be able to check them before
One of Royal Renders main test render farms is the Institute of Animation. They have about 80 Students who are working on 20 projects at the same time. Rendering with Maya, Houdini, Softimage, 3dsmax, Nuke, After FX, Renderman, Arnold, Cinema and Modo. Everyone wants to render first, there is no render TD with a lot of experience, often creative non-technical artists are submitting and checking jobs. Every project has its own (newly invented) pipeline and structure, there is no “known issues” list of things to avoid. Perhaps they check if their jobs are rendering – or not. Therefore RR has to catch all kinds of possible errors, no job should be able to halt the farm.
RR has unique features we invented. Some of them are already copied by other managers, but not all:
- Preview images: Send a bunch of jobs in the evening. RR renders and shows a few frames of each job first. Check them and leave the company knowing that all jobs will render fine.
- Fast sequence viewer: RR caches a your rendered sequence during render. E.g. an HD render with 500 frames is loaded within 20s
- Cost Calculation: Each jobs shows it costs in $/€/… based on Ghz*h.
- 3 existing frames modes on submission:
a) Delete all frames and render
b) Render only missing frames
c) Over-render all existing frames
- Image checks: Are the frames really rendered? Are they readable? Is a render tile missing?
- Intelligent Clients:
- Detect if a renderer froze or crashed, keep/store information about CPU and memory usage per frame.
- Auto-shutdown if idle and wake-up on new jobs
- Auto-cache texture files (Available for Softimage out of the box, other render apps require custom scripts for your pipeline)
- Workstation artist-client synergy:
- Enable on logout
- Disable on high CPU usage or high memory usage
- Enable after x min no CPU usage (lunch, meeting, gone home anf forgot to enable)
- Use less cores if artist logged in
- Disable during workign hours
- Allow only (e.g.) Nuke jobs during artists working hours
- Disable if artists starts application X
- Wake up machine before working hours
- Tell RR to render images in slices to use more machines on one frames. Slices are auto- assembled. Possible for single frames or whole sequences
- Keep track of renderer licenses use (e.g. Nuke, Nuke Plugin Sapphire). Auto-reduce as long as a license is used by someone else. Allow artists to checkout a license
- User Approval: Pause job after a few frames or after all frames (before post-scripts) and continue after user has approved the job.
- EXR Crop and EXR 2.0 Multi-Part. Speed up compositing by huge factors, for one animation feature the speed gain was 100x (Depends on how much emtpy space your image has and how many layers the EXR file has)
- Automatically create small or fullres videos/Quicktimes with custom imprints like frame number or scene name and a slate with all information.
- Add custom python commands to the control (manage) application to be used via right-click on jobs or clients.
- Client Averaging: End the “Priority Wars” once and for all. Tell RR that each project/user/renderapp gets the same ammount of render power. And/Or project/user/renderapp gets at least 15 clients. And/Or all jobs with the same priority get the same ammount of clients
- 3dsmax (Even Backburner does not support this):
- Render all scene states with one 3dsmax scene.
- Render all 3D stereo camera views with just one scene.
- Render VRay GI prepass and render mode with one scene.
- Render Elements into subfolders
Works out of the box
You don’t need any scripting TDs to get Royal Render running with all its features.
Job-checking and error-handling
The Royal Render Server distances itself from simple “fire render and forget” systems. A render job is not done when frames have been send to the render clients, no, a job is done if all frames are on your harddrive! It lays great value on accompanying your render jobs. It handles errors from crashed renderers to visual correctness analysis.
Change behaviour, add functionality and add render applications. No scripting language required
Royal Render has a built-in user management. Decide what users are allowed to do. Are they allowed to change, disable or even view jobs of other users?
Monitor Jobs from anywhere
View a job’s status, its frame completion bar, rendered frames or render log files from anywhere in the company, on the road or from home. RR creates a website which can be uploaded to your FTP server. No more babysitting at the company at the weekend. Or visit a café while you wait for rendering – your mobile will tell you how much time you have for tea.
Control your job queue and change any parameters for jobs after they are sent. Including reorder/abort/reset/disable jobs in the queue, assign/deassign clients, change sequence length, render quality, post-scripts…there’s nearly nothing you cannot change after a job was sent.
All applications are available for Windows and Linux. Render simultaneously on multiple OS with some renderer applicaations. Required path conversion is handled via a Royal Render lookup table
If you render multiple projects at the same time, the server averages the clients between your projects. (Additionaly, RR supports job priorities, reserved clients and client assignment groups)
The client reads the returned exit code of the renderer to check if the renderer crashed
It happens this and then that a renderer freezes. It does not return, it does not crash, it does nothing. The client detects this. (an important feature missing in other solutions)
Frame file existence check
The server checks for the files that have been rendered. If a frame is missing (due to a client crash or user delete), a client renders that frame.
Frame file size checl
The rrServer checks the file size of the output image. If you have not set a size, the size is calculated based on the file format you use and the image resolution of the job.
Frame visual check
After the render a tool analyses the rendered sequence and searches for visual errors like a mental Ray tile is missing or shaders are not assigned. The check result is displayed at the job
After a render is completed, the log file is searched for special errors, as the Application does
Render log files
You have always access to the renderer output log files from any workstation. Just in case you need to investigate a problem
Crashes happen, but the server keeps track that all frames are rendered. If a client crashes too often (e.g. plugin missing), it is deassigned. If there is a predefined log message, it is deassigned directly.
Of course, if a job crashes too often, then there is something wrong. The job is disabled and
No Scene Output
A scene renders, but does not create the output specified. Nor does the renderer return any error. The server detects it.
Client start check
Before a client starts to render, it checks if it can access the scene file and the output directory.
It can happen that a project share it filled up and no space is left. In this case the server disables the job instead of rendering it over and over and waiting for crashes.
RRender converts a few frames of the job and displays them on the website or in rrControl. If you send a lot of jobs on the farm, RRender starts these preview images at first. This way you have an overview how long all of your jobs take and have a visual
Local Website in combination with rrFTP upload
Watch your render progress online, if you are at home or at a meeting in a different town.
Sequence viewer application
View your frames in a viewer and with a small flipbook for an easy check of the sequence. Frames are pre-cached so you can load full HD sequences in seconds. If you find a broken/crap frame, directly delete it and the application informs the server to re-render the frame.
Easy access to jobs via rrControl
You have many ways to control your queue and change a lot of parameters for jobs after they are send. Like reorder/abort/reset/disable jobs in the queue, assign/deassign clients, change sequence length, render quality, post-scripts…There is almost nothing you cannot change after a job was send.
Get a notification if your render is finished via win message or Email.
EXR Crop and EXR 2.0 Multi-Part
Speed up compositing by huge factors, for one animation feature the speed gain was 100x (Depends on how much emtpy space your image has and how many layers the EXR file has)
Royal Render has a build in user management. Decide which job settings users are allowed to change, which configuration they can access and who is RRender administrator.
Auto “Wake up on LAN” and auto shutdown
If your machines are not used at night for about an hour, they will be shut down. If a job is send which requires more than the active machines, they are waked up via LAN. Saves power, noise and temperature.
Run install scripts on the clients. Once the client is installed, you can do almost anything via remote. Commandline installation of software/plugins, copy plugins, … You can just create a new RR job for it. And if the machine is powered off, the client gets the job once the machine is started.
Clients report their CPU and memory usage for eah job and for the whole system.
As RRender uses a centralized program folder, updates to the render farm are done within 3 minutes. No need to stop the render farm. The updater takes care of everything.
If you have multiple projects at the same time in your company, the server is able to average the clients between your projects. You don’t have the problem that if Project “A” sends a lot of jobs, it will block the farm for other projects.With all other render farm managers you have the problem with setting X priorities, reordering the render queue or always re-defining render pools if a new project is rendering on the farm.The average settings are stackable: E.g. All projects get the same ammount of clients, within each project all render apps/users get the same ammount of client, and within the render app all jobs with the same priority get the same ammount of clients.
Dynamic and flexible
It does not matter if you shutdown a client, if you disable a client. You can assign or deassign clients for a running job. You can even restart the rrServer, the clients continue to render their current task.
- Configure your client to recognize your working hours (disables itself. With login detection).
- A client recognizes if the CPU usage is high and it should not start to render.
- While rendering the client checks the render process and all sub-processes.
- Automatic enable after x minutes idle time
- Automatic shutdown after x minutes idle time
- Renderer freeze detection
- Render in the background with less CPUs
Set the number of render licenses you have. E.g. 20 Nuke and 10 Sapphire (Nuke-Plugin)
The rrClient and rrServer are running as a service. You do not need to be logged in on a workstation to render.
RRender is able to copy all textures of a scene to the local harddrive. For XSI and Maya you have a new “send scene” command, which changes all texture paths, then saves the scene under a new name. The client checks if the texture already exists on the local harddrive. If not, it copies the texture and starts rendering. It keeps track of changed textures (size, date, directory) and a free space limit for the harddrive.
If you want to render highres images, then RRender is able to split a frame and let each client render one part of the image. (only if region rendering is supported by your renderer, see Supported Applications page)
One job can wait for up to 20 jobs before it is started.
Override the image type, image size, render quality or verbose level for jobs. No need to change your scene
Define commandlines that are executed before, in the middle, after all frames are
Access all jobs, clients and user information via an external python library which can be used within any python installation.
Add new render applications or change the render behaviour of existing ones. Config files include the commandlines to execute, default settings for submission and custom commandline options for the submitter. Separate config files tell the client how to find the new render application and where to install submission plugins.
Submitter default settings
You can define default values for the submitter settings. This is can be done in multiple stages, a global one for the whole company, a specialized one for a project, a custom one for a user,…
RRender creates a local html site that can be uploaded to the www via FTP. With the job status and preview images.
Image Reader/Writer Plugins
Write your own image reader/writer plugins for display of the preview frames or in the sequence checker. You can even write a plugin for visual feedback for computed non- image files. (.dll /.so compiled plugins. C++, Delphi,..) E.g. a simulation shows the current number of particles or the triangle count.