Modeled, shaded, lit and rendered in Blender.










I recreated the classic Pong arcade game in Unity. Arcade cabinet modeled and rendered in Blender. Click here to play.
Professional 3D Generalist and Tech Art work from 2021-2024.
SIADH: Modeled in Maya, animated and rendered in Unity. Responsible for modeling, texturing, shading, lighting, and animation. I created a custom fresnel shader for the cells and animated them by scripting random rotation in C#. I sourced existing project textures for the background vessel materials and reused the red blood cell model from a previous simulation.
Cellular Mitosis: Modeled in Maya, animated and rendered in Unity. Responsible for modeling, shading, lighting, and animation. I created the wavey effect on the cell membranes with a custom shader graph and animated the cell division in Unity. The DNA helix model and nucleus texture were sourced from existing assets.
Cellular Nondisjunction: Modeled in Maya and animated in Unity. Responsible for modeling, lighting, animation, and simplified shading for WebGL. The DNA helix model, addition, and arrow elements were sourced from existing assets.
Glucose Molecule: Modeled in Maya, animated and rendered in Unity. Responsible for modeling, lighting, shading, and animation. I implemented the wireframe shader from Chase Pettit’s unity-wireframe repository on GitHub.
Glomerulus Mechanism: Modeled in Maya, animated and rendered in Unity. Responsible for modeling, lighting, shading, particle systems, and animation. I sourced existing project textures for the filtered particle boards and reused the red blood cell model from a previous simulation.

Frozen Plasma: Modeled in Maya, textured in Subtance Painter. Responsible for modeling, UV mapping, texturing, and shading.


Packaged Oxygen Masks: Modeled in Maya, textured in Substance Painter. Responsible for modeling, UV mapping, texturing, and shading. I modeled the sealed bag, oxygen tube, non-rebreather oxygen bag, connector, filter, and nasal strip. The bag valve mask and non-rebreather mask were sourced from existing assets. I used Maya nucleus cloth simulation to flatten the bag valve mask resevoir.



CSCC Tumor: Sculpted and textured in Zbrush, rendered in Unity. Responsible for modeling, sculpting, texturing, and shading.

Startup Scripts: Art and animation pipeline organization and maintenance, custom main menu and shared shelf for tools and snippets. Initialization of required preferences and scene settings on startup. Scripted in Python.

OpenMaya API: Implementation of layer contents selection with the OpenMaya module per team request. Scripted in Python.

PySide2 and Qt Designer: Pipeline integration for quick UI development, .ui files easily loaded in Maya, Motionbuilder, and Substance Painter. Scripted in Python.


SH Edit Shapes: Maya tool to assist character artists with making quick changes to blendshapes. Scripted in Python.
Copy Animation: Maya tool to assist animators with quickly copying animation between skeletons. Scripted in Python.
SH Keys: MotionBuilder tool to cleanup motion capture data and operate on keys. Scripted in Python.
SH Mirror Animation: MotionBuilder tool to rotate and mirror animation takes. Scripted in Python.
SH Substance Directory: Substance Painter tool to assist with browsing and bookmarking the Substance python API. Scripted in Python.
Editor Extension: Expanding on engine UI to give more detailed information to the user, including adding supplemental directories for visual reference. Scripted in C#.

Prefab Clipboard: Unity tool to assist users with object organization and bookmarking. Instantiate and move objects across large hierarchies more easily. Scripted in C# using UI Toolkit.
Animation Preview: Unity tool to assist animators with quickly previewing animation. Scripted in C# using UI Toolkit.
Rename Selected: Unity tool to assist users with naming objects, adding prefix, suffix, numbering, and auto-suffix by type. I designated the asterisk (*) as a special character to allow replacement of multiple unique substrings. Scripted in C# using UI Toolkit.
Bounding Box Wizard: Unity tool to quickly set bouding box values. Scripted in C# using UI Toolkit.
Prefab Layout: Unity tool to assist users with visualizing prefabs in the project. Scripted in C# using UI Toolkit.
Gather Textures: Desktop application to search recursively for image files by format. Images could be moved to a target directory for processing with Photoshop batch actions, and then moved back to their original locations. These locations were backed up via JSON to the user’s temp folder so they could be reloaded if necessary. Scripted in Python.
Wrinkle Map Shader: Utilizing RGB masking for isolated blending of detail normal maps. A placeholder scar was created to test the blending on top of required secondary normal maps.



Baked Simulation: Proof of concept. Responsible for toy rigging and simulation in Maya with nucleus hair follicles.


AI Integration: Research for new methodologies, including AI generation of internal concept and design materials.

Team Presentations: Concepts and workflows presented to the art team to expand technical knowledge and improve production adherence to platform standards.

