Figma2Godot: A custom plugin to automate export from Figma to Godot. Design prorotypes are rebuilt using an Animation Library to share clips across UI elements.
GenerateDesignTokens: A custom plugin to create and manage variables inside Figma. Easily assign tokens across your design and share to your team’s library. Export tokens to a theme in Godot.
Professional 3D Generalist and Tech Art work from 2021-2024.
Medical Simulations
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.
Medical simulation depicting syndrome of inappropriate antidiuretic hormone secretion.
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.
Medical simulation depicting nuclear division in eukaryotic cells(mitosis).
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.
Medical simulation depicting cellular nondisjunction.
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.
Medical simulation depicting a glucose molecule.
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.
Medical simulation depicting capillary filtration within the glomerulus of the Bowman’s capsule.Particle effects guided with the Spline Particles addon from the Unity Asset Store.
Art Assets
Frozen Plasma: Modeled in Maya, textured in Subtance Painter. Responsible for modeling, UV mapping, texturing, and shading.
Frozen plasma bag prop.Maya mesh wireframe – 1800 triangles.
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.
Sealed bag valve mask and non-rebreather mask.Maya mesh wireframe, non-rebreather – 4170 triangles, bag valve mask – 5344 triangles.VR prop setup with collision and interactable components.
CSCC Tumor: Sculpted and textured in Zbrush, rendered in Unity. Responsible for modeling, sculpting, texturing, and shading.
CSCC Tumor.
Pipeline Improvements
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.
Custom menu and shelf for production tools.
OpenMaya API: Implementation of layer contents selection with the OpenMaya module per team request. Scripted in Python.
Layer contents selection.
PySide2 and Qt Designer: Pipeline integration for quick UI development, .ui files easily loaded in Maya, Motionbuilder, and Substance Painter. Scripted in Python.
Qt Designer.PySide2 for UI creation.
MayaTools
SH Edit Shapes: Maya tool to assist character artists with making quick changes to blendshapes. Scripted in Python.
Quickly edit blendshapes.
Copy Animation: Maya tool to assist animators with quickly copying animation between skeletons. Scripted in Python.
Copy animation between skeletons.
MotionBuilderTools
SH Keys: MotionBuilder tool to cleanup motion capture data and operate on keys. Scripted in Python.
Key operations
SH Mirror Animation: MotionBuilder tool to rotate and mirror animation takes. Scripted in Python.
Rotate and mirror animation takes.
Substance PainterTools
SH Substance Directory: Substance Painter tool to assist with browsing and bookmarking the Substance python API. Scripted in Python.
Substance API browsing.
UnityTools
Editor Extension: Expanding on engine UI to give more detailed information to the user, including adding supplemental directories for visual reference. Scripted in C#.
Project tab details.
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.
Bookmarking objects.
Traverse hierarchy.
Animation Preview: Unity tool to assist animators with quickly previewing animation. Scripted in C# using UI Toolkit.
Quickly preview animations.
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.
Rename selected objects.
Bounding Box Wizard: Unity tool to quickly set bouding box values. Scripted in C# using UI Toolkit.
Automate bounding boxes for selected meshes.
Prefab Layout: Unity tool to assist users with visualizing prefabs in the project. Scripted in C# using UI Toolkit.
Layout prefabs by name and type.
DesktopTools
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.
Gather dispersed textures for processing.
Shaders
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.
Stuffed toy lion simulation test for pediatric patients.
The simulation was baked onto the skeleton and imported to Unity.
Testing with character collision.
Technical R&D
AI Integration: Research for new methodologies, including AI generation of internal concept and design materials.
Generated concept assets.
Technical Presentations
Team Presentations: Concepts and workflows presented to the art team to expand technical knowledge and improve production adherence to platform standards.
Normal map presentation slide.Unity prop presentation slide.
Art import test to Unreal Engine 4, including material and texture tests with skeletal animation, blend-shapes, NvCloth simulation, and DirectX tessellation.
2. Lyve & Dog characters:
I modeled, textured, rigged and animated the characters using Maya, Zbrush, Photoshop and xNormal. Turntables were captured in real time with the CryEngine3 Free SDK. I used the MayaCE3 exporter written by SeithCG to export models and animation to the engine.