★ XR · Real-Time Graphics · Systems ★
12 years across AR, VR, and MR - from native C++ rendering plugins to GPU shader pipelines to production platforms shipping on Quest, HoloLens, and mobile.
GPU-based smooth transitions between baked lighting states in Unity URP. Texture2DArrays built at startup — each atlas page an array with N slices per state. Patched shaders sample two slices and lerp in the fragment shader. Non-destructive: original URP shaders never touched. Shipped on Quest 3 across 3,000+ renderers.
SOURCE ON GITHUB →Sole architect for a VR-first platform serving real estate developers across 500+ buildings. Cross-device multiplayer via Photon Fusion syncs Quest headsets with mobile spectator apps. Stable 72 FPS on standalone Quest at 2M+ polygons. Largest deployment: 12-tower, 1,500-apartment township with Gaussian Splat-based exterior rendering.
Native C++ plugin piping live camera feeds through OpenCV processor chains into Unity textures. Three dedicated threads — capture, processor, Unity main. TripleBuffer ensures zero contention. Originally built for an industrial AR maintenance platform with markerless tracking, SLAM, and object detection at 30 FPS.
SOURCE ON GITHUB →Sole initial architect for a research-based adaptive learning platform for pre-K children, deployed across thousands of US classrooms. 200+ curricular experiences across 7 learning domains on Android, iOS, WebGL, and Windows. Designed the core architecture from scratch — adaptive sequencing driven by backend API, cross-platform rendering, asset management. Grew and led team from 1 to 15 engineers.

CAD parsing pipeline interpreting architectural drawings into parametric 3D via Archimatix Pro. 500+ buildings generated. Automated WebGL previews and FBX export for VR.

Unity-based simulator generating annotated training data for an IoT camera ML pipeline. Constrained randomization of object positions. 10M+ images with JSON metadata for detection model training.

iOS app using LiDAR for 3D body measurement — ¼ inch accuracy vs physical tape. Built POC as sole engineer, then architected production and grew team to 10.

Ludum Dare 51 entry (theme: "Every 10 Seconds"). Single-player pong — ball speeds up on wall hits. The twist: player controls the paddle with hand gestures via webcam using Google MediaPipe in Unity.
VIEW ON LDJAM →