Tool for use in a personal project

Written in Python, uses the tkinter/pyttk and pexpect modules.

During development of an animation project with other students, I realised I would be away from university premises during the rendering period; hence I would not be able to oversee the rendering process that was currently being done manually via shell scripts. At the time the university lacked a render farm and any artist friendly way of remote rendering, so I decided to write a GUI tool for my team.

 

GitHub link

Technical Features

  • Under the hood pxssh/pexpect manages multiple connections with remote machines, whose output is tunneled back over SSH. This loosely mirrors how I was handling rendering manually, each render job was a process running on a remote machine and monitored by the output it sent back.
  • The output from the remote render is parsed for important information; such as render progress, errors and the current frame.
  • The GUI front end is sanitised heavily; artists cannot accidentally connect to unknown hosts, load non-existant files or set invalid frame ranges.

Improvements

Despite my efforts to make the manager reliable, it was common for remote processes to crash faster than the error checking could handle; hence they would hang indefinitely. I got around it by training the artists to occasionally run some simple shell commands to check if a remote machine had any actual Autodesk Maya processes running and kill them if so, but this was not an ideal solution.