Using The Shake Submit Script


Installing The Shake Script

    Before using the Shake script, you should first install it by making a copy of the script on your file server, so that this copy is accessible by all the machines on your network. This is usually done by your sysadmin, or the person who set up the rush software.

  1. Install the script on the file server.
  2. This should have already been set up by your sysadmin, or the person who installed the rush software:

  3. Modify the script to set up shake for your environment.
  4. This script will be executed not only by the user to bring up the submit-shake GUI, but it will also be executed on all the render machines to run the renders.

    To ensure the renders run with the proper environment, you'll need to add some lines at the top of the script to set this up. At minimum, you'll need to add the shake bin directory to the PATH.

    In the following example, the blue lines show a unix example, the red lines a windows example. Use both if you are running in a cross-platform environment. Modify as needed:

    if ( ! $G::iswindows ) { $ENV{PATH} .= ":/usr/nreal/shake/bin"; }  # UNIX
    if ( $G::iswindows )   { $ENV{PATH} .= ";c:/nreal/shake/bin";   }  # WINDOWS

    Shake may also depend on other variables; you can define them similarly.

    Here's a more complete example, giving context as to where the lines should be added in the script. If you use these examples, don't just take them verbatim; customize the paths!

    # 03/13/01
    if ( ! $G::iswindows ) { 	# UNIX
        $ENV{NR_SHAKE_LOCATION} = "/usr/nreal/shake/bin"; 
        $ENV{NR_INCLUDE_PATH}   = "$ENV{NR_SHAKE_LOCATION}/include:/server/sw/genarts/sapphire-nreal/include";
        $ENV{NR_ICON_PATH}      = "$ENV{NR_SHAKE_LOCATION}/icons:/server/sw/genarts/sapphire-nreal/icons";
        $ENV{PATH}             .= ":$ENV{NR_SHAKE_LOCATION}/bin"; 
    if ( $G::iswindows ) {          # WINDOWS
        $ENV{NR_SHAKE_LOCATION} = "c:/nreal/shake/bin"; 
        $ENV{NR_INCLUDE_PATH}   = "$ENV{NR_SHAKE_LOCATION}/include://server/sw/genarts/sapphire-nreal/include";
        $ENV{NR_ICON_PATH}      = "$ENV{NR_SHAKE_LOCATION}/icons://server/sw/genarts/sapphire-nreal/icons";
        $ENV{PATH}             .= ";$ENV{NR_SHAKE_LOCATION}/bin"; 
    $G::title      = "Rush Shake Submit";
    $G::progname   = "submit-shake";

  5. Make a desktop shortcut to the submit script.
  6. Be sure the shortcut points to a copy on a file server, and not to local files in c:\rush\examples (windows) or /usr/local/rush/examples (unix).

  7. Invoke the submit script.
  8. Should be as simple as clicking on your desktop shortcut.

    If you prefer using a terminal window, be sure to run the script with an absolute UNC path, eg:

    	    perl //server/jobs/rushscripts/perl/
    If you don't run it with an absolute path, the frames will fail because rush didn't have the absolute path to the submit script.

  9. Verify the interface comes up.
  10. The interface should pop up. If it doesn't, verify (unix) the first line in the script's path points to the correct location of your perl binary, or (windows) the '.pl' extension is configured to correctly invoke perl.

    Click the help button (buttons with '?') for any field you want to know more about.

    When the GUI pops up, note there are various 'Advanced Options' available if you scroll the window down.

Using Submit Shake

    It is assumed you are able to bring up the submit script from a desktop shortcut (which you can make by following these instructions for Mac OSX, Windows, or Linux)

  1. Enter the full path to a shake file.
  2. This should be an absolute path to your shake file. This path must be able to resolve on all the machines you'll be rendering on.

    Under Windows, you should use UNC absolute pathnames, such as //server/jobs/LOGO/sc4a/shake/sc4a.shk

  3. Enter the frame range to render.
  4. This is the range of frames you want to render; normally two values separated by a dash, eg. '1-100'.

    You can also specify individual frames, multiple ranges, or cobinations of both, eg. '1 10 20-30 400-900', which would render frames 1, 10, 20 through 30, and 400 through 900.

  5. Enter the cpus to use.
  6. In our case, lets use any 5 available cpus at the lowest priority:


  7. Advanced Options.
  8. As the name implies, "Advanced Options" are optional. To see them, use the scroll bar to scroll down to check their settings.

    Click the help button (buttons with '?') for any field you want to know more about.

  9. Hit 'Submit'.
  10. This should submit your job, and a window indicating the jobid should pop up, followed by an irush interface with the jobid already set to the new job.

    The next time you bring up the submit form, it will have all the values set from the last execution. Note that you can then save this as a form so you can easily recall it later.

    For more info on the irush interface, see the irush tutorial.

  11. Monitor the job.
  12. Hit 'Frames' in irush to watch the progress of your job.
    If some frames are running, or got done already, click on some, and hit 'Logs' to see the output of the perl commands you entered.

  13. Dump the job when you're done.
  14. When you're finished with the job, hit 'Dump' in irush.

This shows the 'advanced options' of the shake submit form.
Just click on the tabs and scroll down or resize the submit window to access all of them.