Skills
Senior Technical Artist — Bungie, Epic Games, Left Turn Studios. Each section links to the project pages where the work appears.
Shaders & Materials
Custom shader authoring across Unity Shader Graph, HLSL, and Unreal. Focused on solving performance and visual problems that off-the-shelf materials can't address.
- Alien Age Water surface (world-space UV, eliminates tiling artifacts on irregular terrain); volumetric fog (depth texture sampling, height-responsive density); environment tile color-variation (world-position seeded, eight tileset varieties from three source meshes)
- Snuggles the Unicorn — Wing Vertex Shader Replaced 32-bone-per-enemy wing rig with a GPU vertex shader; per-instance phase randomization via Material Property Blocks so every enemy flaps independently — zero extra draw calls
- Snuggles the Unicorn — Status FX Shader Single overlay shader handling all character status states (burning, frozen, impact flash); toggled by bools from gameplay script via a helper component; multiple states simultaneously active
- Relic Atmospheric and visual shading in Zero Engine; pushed past documented engine limits by working directly with the chief engineer on engine-level changes
VFX
Particle systems, timing, and gameplay-driven effects. Emphasis on effects that communicate gameplay state clearly and hold up on target hardware.
- Alien Age Beam pickup/drop and cloud lightning — continuous energy column from discrete particles; timing synced to gameplay events without hardcoded delays
- Grapple Star Ship boost effects with reactive jet trails, collectible pickups, environmental ambience
- Snuggles the Unicorn Fuel refill timers driven by gameplay script via shader parameters; enemy spawn effects; collectible pickups; character celebration states
- Destiny 2 Interactive beehive obstacle prototype VFX; sea monster ambient effects
Lighting & Rendering
Rendering pipeline setup, lighting, and post-processing — including full pipeline conversions and camera compositing for complex rendering requirements.
- Snuggles the Unicorn — URP Conversion Full standard-renderer-to-URP conversion: every shader rebuilt from scratch, batch material conversion scripted, lighting and post-processing rebuilt, outsourced store assets cleaned up to match pipeline
- Grapple Star — Depth-of-Field Fix Dual-camera Cinemachine composite: background renders with full post-processing including DoF, foreground camera renders VFX layer with post-processing disabled — sharp foreground particles over blurred background, correct depth relationships preserved
- Alien Age Full lighting and post-processing setup; all environment materials and lighting authored from scratch
- Relic All visual technical systems in Zero Engine; worked with chief engineer on engine-level rendering changes
Rigging & Animation
Character rigs, animation retargeting, and constraint systems — built to survive production realities like mid-development model redesigns and repeated asset updates.
- Snuggles the Unicorn — Puppet Rig & Retargeting Constraint-based retargeting system for mid-production character redesign — old skeleton drives new skeleton in real time, full animation library transferred immediately; scripted constraint rebuild utility that survived repeated model updates in seconds; biped-to-quadruped mech kitbash with aim constraints, bob dampening, and controller aim script
- Destiny 2 Modeled, rigged, and animated shipped characters: owls (Farm social space), sea monster (Titan); reactive NPC with custom animations and VFX
Tools & Pipeline
Editor tools and pipeline scripts written to solve specific production problems — documented so non-technical collaborators can use them independently.
- Alien Age — Foliage Placement Tool Editor-time placement tool (collaborated with engineer): runs distribution logic in-editor, bakes as placed instances — zero runtime cost. Documented so level designers could regenerate placements independently after level changes
- Snuggles the Unicorn — Rig Rebuild Utility Scripted constraint reconnection that rebuilt the full rig from saved configuration in seconds; Maya compositing helper scripts
- Lego Fortnite — Editor Tools EUW animation range validation tool (batching, progress indicator, CSV export, configurable options); asset audit EUW with mesh LOD and triangle count enforcement at check-in via extended C++ submit validator; FX validation test suite distributed as team-specific guides
- Bungie Debug config tool for internal use; test engineering infrastructure on live service titles
QA & Automation
Test systems design, escaped defect analysis, automation tooling, and coverage strategy. QA background is central to the tech art approach — catching systemic problems before they ship.
- Lego Fortnite — Automation Triage Tool Python tool built with Claude Code in one day: pulls daily test results via API across PC, console, and Switch; generates self-contained HTML report with cross-platform comparison, trend tracking, and Jira-linked failure notes. Turned daily triage from an assembly task into a reading task
- Lego Fortnite — FX Coverage Framework Traced escaped defects to a systemic gap in FX test coverage; built distributed test suite across platforms and scalability settings; packaged as team-specific guides so coverage scaled with content volume without scaling centralized QA load
- Bungie QA to Test Engineer progression on live service titles; test infrastructure and coverage tooling
Procedural Content
Procedural placement and variation — baked at editor time for zero runtime cost, with visual variety that reads as hand-crafted.
- Alien Age Editor-time foliage placement tool with Tree Sizer/Rotator/Tinter: randomized position, scale, rotation, and color at placement time — three rock meshes and three tree meshes produced eight distinct tileset varieties with no additional asset authoring
- Grapple Star Procedurally animated 2D elements in the Level Select UI scene
UI
UI built from scratch — scripted canvas, data-driven content population, and dynamic state-driven elements integrated with gameplay systems.
- Grapple Star — Level Select Screen Full scene built from scratch: 3D objects, particle systems, procedurally animated 2D elements; scripted UI canvas with clickable planet selection; text fields and scene elements populated and toggled based on selection state. Concept art by Rowan Sherwin
- Grapple Star — Dynamic Targeting Reticle Reticle appearance driven by gameplay state (target availability) rather than sprite swapping
Scripting
Scripts written to solve specific production problems across C#, Python, Blueprint, and Claude Code collaboration. Not a software engineer — a technical artist who reaches for code when it's the right tool.
- C# — Unity Puppet rig constraint rebuild utility; controller aim script; status FX helper component; gameplay-to-shader parameter bridge; batch material conversion script for URP migration
- Python — Maya & pipeline Maya scripts for compositing and asset pipeline tasks; foliage placement tool (collaborated with engineer); Tree Sizer/Rotator/Tinter script
- Blueprint & EUW — Unreal Engine 5 Animation range validation EUW with batching, progress indicator, and CSV export; asset audit EUW with LOD/poly enforcement; extended existing C++ submit validator — no prior UE5 Blueprint or EUW experience before building these
- Claude Code Automation triage tool built in one day; this portfolio site; context and memory management across sessions; framing problems clearly enough that implementation can be delegated — see How I Work