top of page

DEMO REELS

Compositing Reel

Compositing Reel

Nuke Compositing

General Reel

General Reel

Maya, Unreal Engine, Houdini, Blender,

After Effects, Illustrator, Photoshop, Nuke

Technical Reel (Nuke Tools)

Technical Reel (Nuke Tools)

Python Scripts and Gizmos written for Nuke

Compositing (For Animation)

Compositing (For Animation)

Some shots I've composited for animated shorts

These tools were written specifically to aid in our short film productions, Very few people on the team knew how to use Nuke, so I aimed to create tools that would minimize the amount of "set up" required to get things moving. 

​

All tools in the video were created/coded from scratch.

You can view (some of) the code I wrote for the tools in the Nuke section of this Github repository. This repository contains all of the code for our USD pipeline written for my senior short film. It was written completely by students: https://github.com/scottdmilner/dungeon-pipeline/tree/prod

​​​

​

 

​​

Eyelight Gizmo- After being put on eye light duty (We lit our short films in Renderman's Solaris for Houdini), I knew there had to be a faster way to drop those catch lights in eyeballs. We asked a few lighters from the industry via Linkedin, and found out that a lot of animation houses do eye lights in Comp. You essentially grade the normal pass to get the result you want. The problem is, our cryptomattes were often messed up because our main character wore glasses. This custom Eyelight tool allowed the artist to import the Character's USD, and get the normals of the cornea based on this geometry. 

 

Deep Fog Template-Though we did not render out Deep EXR's, we wanted to use some Deep tools-- specifically the ability to manually place fog and haze in our scene. This template created deep data based on the p_world position pass, and used a deep expression to interpolate the fog in z space. It has its limitations as the position pass is calculated by pixel instead of per sample like Deep, but it worked well enough for Fog. 

​

Skydome Gizmo-All skies were done in comp, and in order for beauty passes to have a quick sky, I created the sky dome gizmo. The artist would input the file path to the shotcam (In the form of ABC, FBX, or USD) and it would automatically create an animated sky background. There were 12 4k sky domes to choose from, ranging from no clouds to full of clouds. The artist also had full control over sky dome transformation.

-Later versions of this tool took the shotcam in as an input to the gizmo, utilizing the previous tool in this list. 

​

Depth Fog GizmoI got annoyed setting this up manually, so this gizmo takes you literally step by step of setting up fog based on Z Depth. This worked by normalizing the depth values to a range from 0-1. The render would then undergo a lift color transformation, using the normalized depth values as a mask. Steps were laid out plainly as to make it as easy as possible.

 

Automatic AOV Breakout- Developed for a professional project. This tool was integrated directly into our read nodes. With the push of a button, the artist would be able to break out AOV's into  the template set up by the Comp Supervisor. We opted to create the nodes with python scripting as opposed to using a Nuke toolset because we wanted to dynamically create light layers based on the Light Path Expressions. So if a scene had four lights, only four branches would be created in the tree. It also kept track of which branches were created. If the artist tried to create a duplicate branch, it would remind them that the branch had already been created.

 

Render Layer Import Tool- We typically render on layers, but each render layer EXR's lived in subfolders within subfolders. I wanted to make a quick way to import render layers without having to rummage through folders. This PySide tool allowed the user to quickly import render layers from any render of any shot. It is easily one of the most useful and convenient tools I have coded. 

​

Custom Write Node- Most of the time MOV's were being exported, it was to send a quick render to Shotgun, such as a beauty pass of a shot. I wanted a node that was more convenient than just making a write node toolset with the fields filled out. I wanted a write node that required almost no work to use, and it also be impossible to get anything wrong. This node crammed in shot information, such as the frame number, the shot code, the department, and the lighter's name. All these fields were filled in automatically upon the node's creation (apart from the department, which defaulted to lighting). The artist could also turn off this screen burn information with a checkbox. 

-Frame ranges were pulled from shotgun. Our cut was typically not locked while a sequence was in lighting, so if the department was lighting, there were 5 shots of extra handle at the beginning and end. If the department was compositing, frame ranges matched exactly what was on Shotgun. 

-This write node contained two nested write nodes, one for the final EXR sequence and one for our DNxHR MOV's. There was a separate tab with custom settings for each, although the EXR's almost never required custom settings. 

​

Shot Selector and Checkout- Pretty self explanatory, but it was auto populated based on what shots were in Shotgun. If a nuke file did not exist for a specific shot, this tool would automatically create the shot in the correct file location. 

​

USD Camera Import Tool- In order for my skydome tool to work, I needed the shotcam. Part of our render command from Houdini would put the shotcam in the render folder as a USD. This allowed us to be able to import the shotcam on a per-render basis, not just per overall shot. So if a lighting beauty was rendered but FLO updated the shot cam, we could still use the shot cam used in that specific render. 

​​

​

​

​

​​

​

​

Technical Reel Breakdown

bottom of page