Portfolio

Technical Artist and Programmer

My goal is to reduce the unnecessary time and physical exertion in the everyday processes of artists through software, enabling them to create as freely as possible. My primary tools are DCC programs such as Maya, 3ds Max, and Blender and the scripting languages used to enhance and interface with them, most prominently Python.

I believe technical art is also a deeply social discipline, built upon a foundation of communication between users of all frames of technical familiarity. I’m always eager to talk about the ideas behind tech art, so let’s get in touch!


Technical Artist at Electronic Arts

preview

At Electronic Arts I was one of three technical artists within CREATE Animation, a group of animators primarily focused on cinematics. Small groups from our team were assigned on an ad hoc basis to provide short-term support to ongoing projects across the company. As a result, my responsibilities were centered around rapidly coming up to speed on new technology stacks and ensuring smooth transitions for my team members. In my biggest project, I took ownership of a repurposed customizable animation picker tool for animating monsters in Dragon Age: The Veilguard.
Read More

Game Art: Motorcyle Boots

preview

Game art sample created for a personal project. Leather motorcycle boots targetting roughly a late-seventh-generation to early-eighth-generation spec, pre-PBR (diffuse, normal, specular, and gloss). Modeled in Blender, textured in Substance Painter. Read More

Generative: Curves, Straps, and Trim

A collection of procedural tools created with Blender’s Geometry Nodes system in order to ease my workflow on hobby game art projects, with a focus on powerful nondestructive workflows. These two examples serve to recreate and extend the functionality of Blender’s built-in methods for generating a mesh from a bezier curve.
Read More

JSON Pose Add-on

A Blender Add-on for easy, approachable loading of JSON-based pose files onto an armature. This project is designed to interface with files produced by a fan-made tool for a popular MMO. Poses are saved in a JSON file format defined by the compatible tool, with rotation, scale, and position offset values for each bone. Rotation is stored as-read from the game’s memory, quaternions in the character’s local space. Blender pose rotations are relative to the bones rest position, so the add-on must convert these rotations.
Read More

Paint-By-Numbers Add-on & Shader

preview
preview-2

A Blender add-on designed to recreate the material system of equipment in Final Fantasy XIV. The texture is split up into up to 16 sections based on the alpha channel of the Normal Map. Each section is then mapped to values from a ‘palette’ file which contains inputs for the diffuse, specular, emissive, and gloss values. Additional inputs control tiling, transformable textures that can be mixed into a section, as well as a control for the in-game dye system to overwrite certain parts of the palette.

The key to this system is that it allows preset palettes, or portions of palettes, to be easily interchanged to create palette swaps, material variants, and player customization of colors.
Read More

3ds Flip Tool

preview

A tool for 3ds Max made in maxscript. The script is designed to overcome limitations in a workflow based on importing bones as dummies. The goal is to be able to mirror a selected mesh and replace all bones ending in either ‘_l’ or ‘_r’ on the copy with their opposite side counterpart while keeping the correct weight.
Read More

Generative #1: Substance Cow Print

preview

My first project in Substance Designer, a scalable cow print pattern mask. Made by composing perlin noise with a series of slope blur operations before clamping it to values of 0 or 1, giving the pattern sharp boundaries.

Introstructure - Maya MEL Scene Generation

preview

A MEL script and base scene for Maya which generates a scenic river valley of variable length and animates a boat with camera to float gently down the river. My first experience using MEL. The main hurdle at the start was establishing a comfortable working setup with PyMEL and using VS Code as a useful editor. I will be expanding on this project in the coming months, focusing on performance improvements, automated rendering control, additional variants for scenery, and new points of interest.
Read More

A pipeline for web news archival and search. Consists of three parts: an ETL tool which transfers articles from Common Crawl archives to an Amazon Elasticsearch index, a Java application which implements a REST API for search queries, and a React frontend which allows users to easily set up searches and preview results.
Read More