Ongoing Projects & Research

Current Research & Development

Active research and development projects exploring cutting-edge graphics and rendering techniques.

  • Prototyping portable compute-based 3D Gaussian splatting solutions for efficient point cloud rendering across multiple GPU backends.
  • Kiln: safe, zero-copy Rust bindings for Metal providing modern GPU programming interface.
  • Exploring neural rendering techniques and differentiable graphics pipelines for scientific visualization.

Research Projects

High-Performance WebGPU Rendering Systems

Real-time GPU-accelerated rendering and visualization at scale.

  • Mesh renderer with working scene graph and material support.
  • Compute-based LiDAR point cloud renderer achieving real-time visualization of 100M+ points with interactive frame rates.
  • Physically-correct 3D colourspace renderer supporting various colourspaces with real-time interactivity at full resolution.
  • Implemented optimized compute shaders for colour space transformations, gamut mapping, and massive point cloud splatting.
  • Built from scratch using WebGPU for cross-platform deployment.

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.
  • Includes a PPM image importer to map image colours into the 3D colour space for analysis.

GitHub Repository
Read the Paper

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.

View the Report

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.

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.

GitHub Repository

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.