I’m a senior Technical Artist in the games industry specializing in technical animation and tools.

Technical Animation

I have been rigging in Maya and Max for the better part of a decade, both as an employee and freelance. I have experience with writing and maintaining custom rigging systems, as well as off-the-shelf solutions such as mGear and Red9.

Recent work

Facial rigging

Facial, biped, and quadruped rigging

Rigging framework and tools, and character implementations

I have extensive knowledge of animation design in general and implementation in Unreal specifically. This includes animBP setup and best practices, state tree design and optimization, and skeletal/retargeter setup in Maya and in-engine.

At Aspyr on the KOTOR Remake, I was in charge of nativing and optimizing our animBP and linked layer setup. This involved transferring the heaviest logic into a custom AnimInstanceProxy/AnimInstance pair for maximum performance, and moving as much BP logic as possible to the thread-safe path.

At Stray Kite I was in charge of our animBP design and implementation from the ground up on an unannounced AAA product for an established IP. Using a layered approach and custom anim nodes, the goal was to make a totally dynamic system that could be called into from design at runtime to allow for expressive, reactive performances.

I have written custom animation nodes to suit specific needs, utilizing vector and matrix maths to deliver exactly what animation and design are looking for.

I’m proficient in the use of Unreal Insights, RenderDoc, and nVidia Nsight to find bottlenecks and root out their causes. I used Unreal’s systems extensively in profiling and optimizing aspects of KOTOR Remake, including animation, skeletal, and actor tick issues. I also implemented a system to utilize Unreal’s UpdateRateOptimization to speed up animation calls.


AnimMontage Tagger

The AnimMontage Tagger was made at Stray Kite to quickly and efficiently attached Gameplay Tags to specific anim montages en masse then save those pairings to a data asset. It was written entirely within Slate.

The tool allowed our designers to tag huge sets of montages at a time instead of one at a time like they were doing before. The tools allowing for dragging montages from the browser directly into the montage list (3), dragging gameplay tags onto selected montages to apply them (2), and the ability to filter for montages with specific tags (1).

Map Maker

Developed for a personal project, the Map Maker helps me quickly block out maps and floors for a grid-based Might and Magic-style game. The main window uses a custom DoubleScrollBox, hotkeys bindings, and detail customizations to interact with the scene, and is written all in Slate.

A few HDAs I developed for an internal R&D project