Projects
Interactive Projects
Ongoing Research
Bio Plausible Vision Models
Active research and development projects exploring ML and Graphics.
- Exploring the verification of spectral based human visual-cortex models for automating HCI color vision data collection tasks.
Research Projects
Neumours: Implicit Neural Tumour Representations for Differentiable Medical Rendering
Lightweight INR segmentation model achieving nnUNet-level Dice scores with 1000x fewer parameters.
- Developed a lightweight Implicit Neural Representation (INR) model that achieves comparable segmentation performance to SOTA nnUNet with dramatically fewer parameters.
- INR approach enables continuous spatial representation without fixed grid discretization, allowing arbitrary resolution inference and smoother boundary predictions.
- Implemented a GPU-accelerated real-time 3D volume renderer using Slang for interactive visualization of MRI data and INR predictions.
- Built complete training pipeline with configurable hyperparameters, k-fold cross-validation, and Weights & Biases integration.
- Achieved competitive Dice scores on BraTS-2023 4-class segmentation (background, non-enhancing core, edema, enhancing tumor).
- Created interactive Jupyter notebooks for training, evaluation, and real-time slice-by-slice visualization with per-class metrics.
High-Performance Portable LiDAR Rendering System
WebGPU compute splatter for massive LiDAR datasets.
- Compute-based LiDAR point cloud renderer achieving real-time visualization of 100M+ points with interactive frame rates.
- Custom WASM-based streaming solution for LAZ/LAS/PLY file formats with progressive loading.
- Implemented optimized compute shaders for massive point cloud splatting and level-of-detail management.
- Cross-platform deployment via WebGPU enabling browser-based visualization of enterprise-scale LiDAR data.
These Colours Do (Not) Exist
Undergraduate thesis exploring colorimetry and developing a real-time 3D colour space visualization tool.
- Developed a real-time 3D colour space visualization tool using WebGPU and TypeScript, designed for extensibility.
- Renders all ~16 million sRGB colours between 6-16ms frametime on consumer hardware, enabling free-form exploration of colour spaces.
- Utilizes compute shaders for colour generation and instanced particles for rendering, outperforming traditional WebGL-based solutions for this task.
Comparing The Performance of 3D Classification Models
Research and implementation of 3D classification models on voxelized data.
- Co-researched, implemented, and tested various 3D classification models on voxelized 3D objects.
- Developed partially-novel CNN architecture for binary voxel classification, achieving competitive accuracy on ShapeNet while maintaining mobile-friendly model size.
- Evaluated and optimized models using standardized benchmarks: ShapeNet, ModelNet40, and Toys4K.
- Final project for CIS*4780 Computational Intelligence.
Personal Projects
SDL3 Haskell Bindings
Type-safe Haskell bindings for the SDL3 Native Application Library.
- Enables functional programming access to SDL3's complete API with zero-cost abstractions.
- Performant type-safe wrappers over SDL3's C interface maintaining low-level control.
- 30+ cross-platform examples including GPU rendering demos.
- Supports DirectX12, Vulkan, and Metal for cross-platform application development.
SDL3 WebGPU Experiments
Feasibility study of a WebGPU backend for SDL3.
- Prototyped a 6K-line C backend for WebGPU (within this SDL fork ), enabling both in-browser (WASM) and native examples.
- Currently on hold—upstream SDL is reworking its GPU API before official WebGPU integration. (See the original discussion/PR ).
Testing Examples (WebGPU Required): view here
Tint-WASM
A lightweight WebAssembly runtime for Google's Tint (WGSL) compiler with SPIRV-Tools integration.
- Reverse-engineered a minimal WebAssembly (WASM) runtime for Google's Tint compiler.
- Integrates the entirety of SPIRV-Tools, enabling cross-compilation to/from SPIR-V, SPIR-V Assembly, and WGSL.
- Supports usage as a standalone static library or as a WASM module with a C++ API for in-browser shader compilation.
Nano: C WebGPU Runtime
A C library for rapid development of WebGPU applications.
- Developed a C library to simplify WebGPU application development, built on the WebGPU C API.
- Provides an API for creating and managing WebGPU resources, including device handling, CImGui integration, and generation of buffers, textures, and pipelines from shader code.
- Designed for ease of use and compatibility with the WebGPU specification.
Triangle Demo (WebGPU Required)
Oscillation Demo (WebGPU Required)
Sprite Fight
A 2.5D arena fighting game made in Unity with custom shaders.
- Developed a 2.5D arena fighting game using Unity over a 2-week period.
- Implemented custom shaders for post-processing effects.
- Final project for CIS*4820 Game Programming.