Skip to content

OSC/frame-renderer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenOndemand Frame Renderer

User Guide

Installer Guide

Description

This is an Open OnDemand application for rendering animation frames. We currently support AutoDesk's Maya as its rendering engine.

User Guide

Creating a new project

Upload your project

Using the File Explorer

First you need to upload your project to the cluster if the files are not already there. An easy way may be the File application provided by OnDemand. In it you can simply drag and drop a directory if it's less than 10 GB.

You'll want to upload it to your $HOME/maya/projects directory. In this example $HOME is /home/jeff and it will change depending on the site and your username. You may have to make this directory, and how to do that is also highlighted in this picture in the upper right.

drag_and_drop

Using an SFTP Client

If you're using WinSCP, here are is a basic tutorial on how to connect to your site.

Create a new connection like I have here. scp.osc.edu is OSC's ftp server, your site's hostname will differ if you don't use OSC. You'll have to specify your own username & password in the appropriate fields fields.

sftp

Open this connection up and navigate to $HOME/maya/projects. In this example $HOME is is /users/PZS0714/johrstrom. Again, you may have to make the sub-directories, but the buttons are shown.

Once you're connected, you can simply drag and drop folders back and forth.

sftp_navigate

Create a new project

Click the new_project button to create a new project.

There you'll need to give it a name and optionally a description. You'll also need to specify where this project directory is. It should be the location of the files you just uploaded. Use the file picker project_file_picker to help choose this directory. Press save_project and you're ready to get started.

Creating new job settings

Job settings are essentially a set of arguments you want to execute a job with. Logically, it's something like I want to render the first 10 frames of this scene and get an email when it's done.

To create set of job settings simply press the new_submission button. Fill out all the nessecary form items. The form items are detailed below.

Option Description Example
name The name of the settings. always render first 10
frames The frames you want to render. 1-10
camera The camera view you want to render. camera1
file The ma or mb file you want to render. /home/me/maya/projects/project_1/scenes/testScene1.ma
chargeback project The project you're charging too. You only have to specify this if you're in multiple projects. PZS0714
cluster The cluster you want to submit to. owens
renderer The rendering engine you want to use. arnold
additional command line options Extra options you want to give to the command. See more here. -verb -b 1 -ai:lve 0
walltime The amount of time in hours your job will be scheduled. 3
email when finished A choice to email you when the job is complete. (checked)
skip existing A choice for the renderer to skip rendered images if they already exist. (not checked)

Press save and you're all done.

Editing and Deleting

Once you've created the settings you can always go back and edit it through the edit button.

And, for whatever reason, you decide you don't want it anymore simply press the edit button to delete it.

Submitting jobs

Now that you have a job all configured you're ready to submit it. to do so, Simply press the submit button.

You should see a submission similar to this one below

not_submitted

turn it's status queued, get a job id, and finally running like this job that's running:

running

Note how the submit and stop buttons toggle functionality depending on if the job is currently running or not. When the job is running it cannot be resubmitted, although it may be stopped. Likewise a stopped job cannot be stopped again, but it may be submitted. If your rendering job timed out without finishing this can be a good way to finish the render, just be sure to check the skip existing box so that images are not re-rendered.

Finding the output

In this example 7805479.owens-batch.ten.osc.edu is the job id and we can find its output directory simply by clicking on the the job id.

There will now be a directory like batch_jobs/1567629055 and a file maya-render.7805479 which is the output log for this job. If you're having issues rendering files, look at these log files for errors. If you need to increase the log level, see below on how to do that.

Near the bottom, where you should see messages like this. The phrase 'exit status' is an indication on how the job finished and there is help table below to tell you what they mean.

Scene /users/PZS0714/johrstrom/maya/projects/MasterProject/scenes/kai_turntable_02.mb completed.
// Maya exited with status 0
ended at Fri Aug 30 10:00:16 EDT 2019
ended with status 0

Finding the output for multi-node jobs

If you chose to render on more than one node (machine) then you will have several output files like the image below. You'll have one for every node.

subseveral_output_filesmit

This application splits the total number of frames you want to render across all the nodes you want to use (with the remainder going to the last node).

For example if you want to render 20 frames and you want to use 3 nodes, it'll work like this table below:

Frames Node
1-6 1
7-12 2
13-20 3

So if you need to debug frames 9, 10 and 11 you'll need to look at the output file for node to, ending in -2. In the image above it's maya-render.o7805462-2.

Exit status' from Torque

At OSC we run Torque so commonly seen exit status' are documented here for convenience. For more information see Torque documentation

Exit status Description & Cause
0 This is the only good exit status. This means everything went OK, from the jobs' perspective.
Maya still could have 'successfully done the wrong thing'.
-11 The job was killed because it ran out of time. Increase the walltime to avoid this.
211 Maya cannot read your scene file properly. It's either corrupt, or it was never real.
Regenerate this scene file in the Maya UI.
271 The job was killed by a user.

Additional Options

Maya Additional Options

The default given is -verb -b 1 -ai:lve 0. Here's a breakdown of what those flags mean:

  • -verb Print Mel commands before they are executed
  • -b 1 By frame (or step) for an animation sequence
  • -ai:lve 0 Verbosity level. (0 - Errors, 1 - Warnings + Info, 2 - Debug)

So if you wanted to say, render every 3 frames you would use -b 3 instead of -b 1. Or if you wanted to turn turn up your log level you could use -ai:lve 1 or even 2.

Note that you can use any combination of arguments. You can remove some or add some independently of each other.

To view all of the possible arguments see this page for the Arnold renderer. Flags for other renderers are not documented here, but could be if requested.

VRay Additional Options

The default for VRay is -verbose=3 which is the default log output level.

See the VRAY help page for all the available flags you can use here.

Running Maya UI in a VDI

It's possible for users to run the AutoDesk Maya UI through a virtual deskop application in OpenOndemand (VDI). Users can follow this gist for directions on how to create a desktop icon.

Installer Guide

Install the RPM

You should already have the ondeand plaform installed and the OSC Repo enabled. If you do, you can simply execute the yum install command.

sudo yum install ondemand-frame-renderer

Customizing the install

Env file

Create the file /etc/ood/config/apps/frame-renderer/env and add these entries.

# the sftp host your users can connect to to upload and download their project files.
SFTP_HOST=my-host.net

# The cluster your users are going to submit jobs to.  We currently only support one
# cluster and this must be a valid entry in `/etc/ood/config/clusters.d/`
#
# defaults to owens (an OSC cluster)
OOD_FRAME_RENDERER_CLUSTER=owens

# The number of cores the job is going to request. This is not variable, and every job
# will request this many cores.
#
# defaults to 28 which, on owens, is an entire node.
OOD_FRAME_RENDERER_CORES=28

# The maya job script that will be templated and submitted.  The template language is
# Ruby's ERB.  All the variables in the default script will be available to any
# new script file.
#
# defaults to the script template included with this source (relative directory)
OOD_FRAME_RENDERER_MAYA_SCRIPT='jobs/video_jobs/maya_submit.sh.erb'

Developer Guide

Note, you'll need development eneabled in your ondemand installation for you to develop applications. Or you can check out our images to develop against.


First clone this repo. scl enable rh-git29 -- git clone https://github.com/OSC/frame-renderer.git frame-renderer

Run scl enable rh-ruby24 -- bin/setup to setup everything up.

Then run scl enable rh-ruby24 -- rake db:migrate to migrate your database.

Now you should be able to connect to <your server>/pun/dev/frame-renderer.

Create a .env.local file if you wish to have environment variables in your development workspace.