Category Archives: Qt

Introducing the tks Suite

an expandable, customizable framework for compositing artists and supervisors

Years ago I was fortunate enough to spend nearly a year working with the wonderful guys at East Side Effects in NYC – not only did I get to work on a film for some of my favorite directors (the Coen brothers), but I was able to build the pipeline of my deepest artist dreams!

In the subsequent years, I have kept tinkering with it, until I have arrived at something I’m extremely proud of. The primary advantage (IMHO) of the tks Suite is that it was developed by someone who started as an artist, and therefore tries to provide the tools I wanted with the simple, easy-to-understand gui I always craved. What started as a purely-nuke panel for Artists has morphed into a full-featured, program-agnostic QT-based gui system for managing VFX workflow.

  • pure QT-based implementation
  • present Artists/Supervisors/Producers with only the information they need, with quick access to the actions they need to perform
  • modular “Action” system – adjust standard actions (Submit to Render Farm, Create Version/Publish) based on per-project settings
  • automated vfx pipeline from creating V0’s through review, publish and delivery creation
  • artist-focused for clarity and simplicity
  • tested and perfected on multiple AAA projects
Continue Reading →

Detecting a Nuke Panel closing

This is a simple, straight-forward style post. [EDIT: lol, I wish – click here to see what I ACTUALLY ended up doing]. I am working with updating my tks “Suite” of tools for Shotgun-Nuke integration, and I wanted to be sure I was doing everything as safely as possible. As such, I wanted to make sure that when a user “hides” the panel in Nuke, my panel cleans up after itself. (I noticed that, by default, when the panel is “closed” with the X box, the panel itself and the thread keep going and going and going in the background).

With some dir() inspection and some super() magic, I was able to determine the following functions to override if you want to add special nuke panel close and open logic:

class NotesPanel( QWidget ):
	def __init__( self , scrollable=True):
		QWidget.__init__(self)

	def hideEvent(self, *args, **kwargs):
		#this function fires when the user closes the panel
		super(NotesPanel, self).hideEvent(*args, **kwargs)

	def showEvent(self, *args, **kwargs):
		#this function fires when the user opens the panel
		super(NotesPanel, self).showEvent(*args, **kwargs)

Short and sweet! Hopefully this will help others who are looking for similar logic.

UPDATED: Well, nothing is ever that simple, is it?

Continue Reading →

Elements Ingest Tool

handling ingest of bulk data with style!

When I was first asked to begin thinking about a tool to handle and sort files coming into a busy VFX house, I was pretty hesitant. How could you possibly correctly sort BG plates from stock footage, editorial QTs from plates, set data from delivery manifests??

It wasn’t until we came up with the idea to utilize the Shotgun Toolkit’s publisher (tk-multi-publish2) that it started to seem doable. While my experience with the publisher hadn’t been all stellar up to that point, this was really a place for it to shine. Specifically – the publisher excels at handling large quantities of different file types all at once, determining info about them and offering a nicely designed GUI to the end user.

Continue Reading →