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.


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.