Here you will find many of the projects I've worked on, and some of the larger clients I've worked for.
Since early 2020 I have been leading the team at Immersion Room to innovation in virtual production tech and services.
Immersion Room is a virtual production studio in Toronto, Canada. Our mission is to use our deep understanding and control of the technology to make VP tools/services accessible to a breadth of people. That means building products and providing services that remove barriers to artistic vision at a cost that smaller productions can afford.
Shadows in the Grass
I always have an independent VFX-driven passion project running in the background which I use to learn new skills and hone my existing ones. Shadows in the Grass has been that project since 2013. Principal photography was in 2014, we released the trailer in 2016, and I have been working on the VFX in my "spare time" ever since. Due to financial constraints, it is currently on hiatus.
I've applied my understanding of the entire VFX process to build a novel pipeline that allows for us to be exceedingly efficient while readily achieving the very high visual and storytelling goals we have set for ourselves.
- Successful pre- and post-production crowd-funding campaigns.
- Management and supervision of a varied set of VFX contractors and companies.
- Development of bespoke pipeline for Maya, Mari, Nuke, Houdini, Blender, RenderMan, and more. See VFX Etc. for more.
- VFX artistry, including: modelling, rigging, animation, layout, FX, texturing, surfacing, lighting, rendering, compositing. trailer breakdown
I have been a champion for open source development for my clients for the past several years. VFX Etc. is a neutral organization that manages the shared open source film and graphics projects for those clients, and my own independent projects. In the near future it will also offer proprietary production-ready software and plugins for sale.
See the organization's GitHub page.
- FarmSoup A supervisor-less distributed work queue, deployable on your real hardware or on the cloud to allow for scaling on demand to any job size. Provides GUI and CLI interfaced, along with integrations with Maya and Nuke.
- VEE A consistent, versioned assembly of an execution environment across a fleet of OS X and Linux hosts. GitHub docs
Shotgun Enhancement Suite
A set of projects for the creation of a unified VFX pipeline using Shotgun as a backbone, with integrations into Maya, Nuke, and Houdini:
- SGSession An Python abstraction of the Shotgun API providing a local data cache and additional intelligence on top of bare entities, allowing for more rapid tool development. GitHub docs
- SGFS A Python library for linking Shotgun entities to file structures on disk, relieving artists from the responsibility of maintaining a sensible working environment, and allowing for integrating Shotgun into the normal file management workflow of 3rd party applications. GitHub docs
- SGPublish A Python framework for creating work exporters, or "publishers", which report the work to Shotgun, and ease the flow of work products (e.g. caches, cameras, renders, etc.) from one department to the next. GitHub docs
- SGSchema A Python library providing runtime aliasing of entity and column names within the Shotgun API, allowing for multiple facilities to use the same set of tools despite slightly different Shotgun schemas. GitHub
- SGActions Integrations into the Shotgun UI via Action Menu Items that may trigger interactions within the Shotgun UI itself. A Firefox and Chrome add-on provides a communication framework for external code and monkey-patches the website for a richer UI. GitHub docs
- SGEvents A daemon which watches Shotgun and triggers callbacks/work based on activity on the website. GitHub docs
- SGCache A site-local intermediate service between the Shotgun API and its consumers, providing reduced latency, increased redundancy, and more flexibility in the API. GitHub docs
- MetaTools A collection of Python tools to assist in developing code in a very short feedback loop. The most useful parts have been automatically reloading code when changes are detected, and functions to assist in renaming/deprecating functions or entire modules. GitHub docs
- mayatools Part of the collection of tools for developers and tools for artists in a VFX environment. Includes context managers for writing tools, binary file parsers, and UI testing tools for developers, and wrappers around geocaches, fluid time-shifting, and reference edits for artists. GitHub
- appinit Unified startup hooks for VFX applications. Currently supports Maya, Nuke, Mari, and Houdini. GitHub
- remotecontrol A Python package for embedding a externally accessible REPL into long running processes (e.g. web servers) or GUI processes that have a Python API (e.g. Maya and Nuke). GitHub
- uindex Short for "micro index", an index of file structures for simple and efficient comparison of clones of data. Extremely useful to verify backups are consistent, or to collapse duplicate files to reclaim space. GitHub
I'm a developer in all aspects of my life, not just VFX. As much as is reasonable, I release my personal projects on GitHub under permissive licenses. A few of them have developed sizable communities which require active management.
- PyAV A Pythonic binding for the FFmpeg libraries, with an active community of committers to manage. It aims to provide all of the power and control of the underlying library, but manage the gritty details as much as possible. GitHub docs
- Cosmic Owl A DVR designed for multi-camera heterogeneous security systems and built with PyAV. Efficiently stores raw video so that only "interesting" parts are maintained as defined by motion or schedules. Pushes motion events out to other systems.
- Flask-ACL Highly configurable authorization via access control lists for Flask. GitHub
- Flask-Images On-demand image resizing/processing for Flask. Useful for rapid development of retina-aware web layouts. GitHub
- Flask-Lightroom A Lua plug-in for Adobe Photoshop Lightroom, and corresponding Flask extension, to allow for easy integration of Lightroom into a custom Python web app. example GitHub
- uWiki A micro-wiki for small communities. Uses Markdown for styling, and offers a minimal user account and permission model. GitHub
- PyHaml A Python implementation of Haml which drives many of my own sites. GitHub
- PyMemoize A Python library for highly general and configurable memoization of functions and methods. GitHub
- ScoreBee A GUI application for scoring behaviors in digital video, designed borrowing techniques from film editing software allowing for more intuitive use than available existing products. GitHub
- PyTomCrypt Python wrapper around the LibTomCrypt cryptography library. Created as existing packages did not present an idiomatic API. Was used by an Activision Blizzard online service supporting 250 million gamers. GitHub
Lofty Sky Entertainment (aka Mark Media) Mar. 2016 to Nov. 2018
I was Lead Sysadmin and Lead Pipeline/Render TD at Lofty Sky. I led small systems and pipeline departments that grew from supporting just animation department to include games, editorial, and administrative. I oversaw large-scale technology transitions, and developed new software on top of VFX Etc. toolkits. I actively monitored, managed, and documented all aspects of technology.
- Open Source Lofty Sky widely permitted me to publish non-proprietary code to GitHub. Much of this is managed by VFX Etc. but some remains on their GitHub account.
- OS Migration Designed and executed a transition from ad-hoc Windows systems to a fleet of centrally managed Linux/macOS workstations and servers.
- Network Admin Responsible for all layers of network for multiple sites, including firewalls, switches, VLANs, VPNs, DNS, DHCP, etc..
- Dev Ops I deployed and enforced version control systems, continuous integration, and automated code deployment systems.
- File Servers Constructed, managed, and maintained multiple ZFS-based file servers that supported dozens of VFX artists and several editors simultaneously.
- Building Move Oversaw a move splitting one building's tech stack into two independent facilities, and executed the move over a weekend without any downtime for users.
- Monitoring Installed a comprehensive monitoring system including nagios, graphite, grafana and graylog. These allowed for us to be notified immediately upon most system failures, and the metrics enabled us to solve long-term and subtle problems with the network and filesystems.
- Pipeline I built a pipeline based on VFX Etc.'s Shotgun Suite that serviced editorial, VFX, and the gamedev department. A novel footage ingestion system managed the hundreds of TB of footage, proxies, and other derivatives.
Western Post (aka Air Bud Entertainment) Jul. 2012 to Feb. 2016
I was VFX Pipeline/Render Technical Director at Western Post for 3 seperate contracts. I overhauled the execution environment, and instigated testing, documentation, and code release procedures. I integrated Shotgun directly into the pipeline, including automatic dependency tracking, streamlining communication between departments, and queueing farm jobs based on user events. I provided technical assistance to artists in their day-to-day and more challenging problems.
- Open Source Western Post was the first facility that widely permitted me to publish non-proprietary code to GitHub. Much of this is managed by VFX Etc. but some remains on their GitHub account. This was the origin of the facility agnostic Shotgun Enhancement Suite, VEE, and many of VFX Etc.'s projects.
- Remote Pipeline A set of Shotgun and stand-alone tools to provide remote users the ability to easily download only the dependencies of their assigned work into a mirror version of the main directory structure, and upload only the dependencies of their products.
- QBFutures An implementation of Python `concurrent.futures`, executing on a Qube-managed render farm. Allows for extremely easy exploitation of farm resources for standard tools development. GitHub
- rmantools KSReyesHair and KSReyesPlastic shaders are a refactor of Pixar's provided shaders to provide the multitude of AOVs required for the novel Air Bud compositing pipeline. GitHub
Fluent Image Nov. 2013 to Nov. 2014
I was Digital Negative Pipeline Consultant at Fluent Image. I worked towards moving from offering a feature film image pipeline as a service to offering it as a product. I designed an execution environment so each show could inherit from and extend the core pipeline using a common deployment mechanism. I built a general model to represent all the complexity of a VFX heavy feature film. I solved both day-to-day and show-stopping digital negative related production problems.
- fimodel A representation of footage transformations as a DAG of non-linear edits, and tools for working with it. Designed for efficient representation of stereo, colour transforms, audio/video sync, timing anomalies, and arbitrary time-based metadata.
- ARI Despeckle Tools for interpreting raw ARI files, performing various signal analysis, reconstructing per-frame errors introduced by a broken ARRI sensor, and finally rebuilding raw ARI files to re-introduce into the standard processing pipeline.
- AQue A server-less distributed work queue. Designed to allow for efficient prioritization of work given dynamic worker constraints, such as available IO bandwidth to source/destination paths which changes depending on the worker’s connectivity to the RAID. Provides a drop-in replacement for xargs to ease transition from manual processes. GitHub
PixRay VFX Jul. 2008 to Jan. 2010
I was VFX Research and Development and VFX Artist at PixRay. I developed lighting and rendering software (e.g. shaders, plugins for Houdini and RenderMan, etc.), focusing primarily on volume rendering and efficient generation of massive amounts of geometry at render-time. I also had my hand in some matte painting and compositing.
- Render-time Instancer A comprehensive tool for SideFx Houdini that instances points, volumes, blobbies, or geometry archive sequences at render-time in a RenderMan compliant renderer. Instances are positioned according to interpolated point cloud data. Useful for sprays/fluids, flocks/swarms, asteroid fields, foliage, etc.. Designed to minimize memory usage allowing for many times more instances than could be held in memory with a simpler approach.
- Point Based Volumes A set of RenderMan shadeops implementing a complete and self-contained point cloud query system allowing for access to arbitrary key-value data from the set of points returned from any of several query types (e.g. closest N points, points within X radius, self-described spheres intersecting a given point).
- Fire and Smoke A set of RenderMan shaders mimicking pyroclastic smoke and fire, written using my Point Based Volume query engine described above.
- Crowd Generator Allows render-time generation of agents in a RenderMan compliant renderer, transitioning through existing animation loops, and driven by arbitrary key/value data attached to a point cloud while using a minimal amount of render-time resources.
- AutoSHOP A RenderMan shading language library and SideFX Houdini SHOP node designed in concert to allow for auto-generation and interpretation of advanced GUI elements (e.g.: gradients, menus, etc.) otherwise unsupported by RSL.
These are some of the larger projects I've been a part of. There are many more independent projects or small contract jobs which are not in this list.
- VFX Supervisor & Producer "Shadows in the Grass" by Matthew Nayman and Mike Boers. 2020.
- VFX Pipeline/Render Technical Director "Miaomiao" by Lofty Sky Entertainment. 2018.
- VFX Pipeline/Render Technical Director "If Mountains Could Speak" by Lofty Sky Entertainment. 2018.
- VFX Pipeline/Render Technical Director "Pup Star" by Airbud Entertainment. 2016.
- VFX Pipeline/Render Technical Director "Monkey Up" by Airbud Entertainment. 2015.
- Digital Negative Pipeline Consultant "Exodus: Gods and Kings" by Fox. 2014.
- VFX Pipeline Technical Director "Russell Mania" by Keystone Entertainment. 2014.
- Digital Negative Pipeline Consultant "Godzilla" by Legendary Pictures. 2014.
- Digital Negative Pipeline Consultant "X-Men: Days of Future Past" by Fox. 2014.
- VFX Pipeline Technical Director "Super Buddies" by Keystone Entertainment. 2013.
- VFX Lighting Technical Director "The Borgias" (episodes 4-9) by Showtime. 2011.
- VFX Software Developer "The Borgias" (episodes 1-9) by Showtime. 2011.
VFX Supervisor and Producer
"Blindspot" by Matthew Nayman and Mike Boers. 2010.
Official selection at 2012 Miami International Film Festival, 2011 Leeds International Film Festival, 2011 Austin Film Festival, and 2011 Toronto After Dark Film Festival.
- VFX Artist and VFX Software Developer "Mayday" (season 8) by Cineflix. 2009.
- VFX Artist and VFX Software Developer "Mayday" (season 7) by Cineflix. 2008.
Right now I am open to part-time, freelance, or consulting work.
If you have a project in mind, or just want to chat about a problem you're facing, please
I'd love to hear from you!