Software engineer and University of Victoria computer science graduate.

Projects

Ferrous GB

A Game Boy emulator written in Rust for native platforms and the web via WebAssembly. It implements the CPU, PPU, four-channel audio, and MBC1, MBC3, and MBC5 cartridge controllers.

  • Passes Blargg's CPU instruction and timing test suites
  • Loads local ROMs and includes an open-source example game
  • Runs in the browser via WebAssembly
Ferrous GB running a Game Boy game alongside its VRAM debugger
Running the open-source game Tobu Tobu Girl.

Rust Path Tracer

A multithreaded, triangle-mesh path tracer built from scratch in Rust. It renders .obj models with .mtl materials with PBR extensions.

  • Cook-Torrance shading with GGX microfacets
  • BVH-accelerated ray-triangle intersections
  • OBJ/MTL loading, emissive materials, and tone mapping
  • Parallel sampling with Rayon and Russian roulette termination
A Stanford dragon rendered in a red and green Cornell box
Stanford dragon rendered in a Cornell box.