I’ve been working for the last few months on a pipeline system for Wolf & Crow here in Los Angeles. My efforts are typically focused on Maya pipelines, which I’ll be documenting later, but I wanted to show off a little something I made that’s usually outside my repertoire… web programming.
The company needed an interface to handle mundane tasks like creating new jobs and assigning job numbers to them, creating new assets, and creating new sequences & shots for projects. Normally this would be as easy as duplicating a template folder, but the pipeline here makes extensive use of symbolic links in order to tie multiple Maya workspaces together in a way that’s as efficient as possible (for example, the “sourceimages” folder of every Maya project in a job can be symlinked to a single “textures” repository). Symlinks can’t be created in Windows, although Windows will happily follow symlinks served from a Linux server. So the bulk of the work has to be done on the server itself via Python or Bash scripts.
Prior to the web app, the standard procedure was to run plink.exe (an SSH command-line utility) inside a Python script using the subprocess
module (see my earlier post on subprocess), which would pass a command over to the Linux file server to create all the symlinks. Or you could just SSH into the server using putty.exe and run the command yourself. This was clumsy, though, since you either needed to have Maya open to run the Python script through an interface, or you had to be comfortable enough with SSH and the Linux command line to run these scripts.
Instead, there’s a (sort of) sexy web interface that anyone can run from a browser! Here’s some examples.
-
-
It’s a login screen.
-
-
The interface for creating new shots. Feedback from the Python scripts appears underneath after the operation is run.
-
-
The project path output adjusts itself in real time as the user interacts with the form. Every form is validated via regular expressions.
-
-
More of the same. Each section is loaded into the gray <DIV> using AJAX calls from JQuery.
-
-
The authentication system has different “levels” for each user account in the database, allowing for a tiered permissions system.
Click below to see a whole bunch of code.
(more…)