Skip to content

Portfolio

Selected projects across computer graphics, distributed systems, networking and games.

Computer graphics

Mini Minecraft

A Minecraft-inspired open-world game with procedural caves, built by a team of three across three milestones.

  • C++
  • OpenGL
  • Procedural
Demo

Forward+ and clustered deferred shading

Cluster-binned lighting in WebGPU, holding 30 fps with 5,000 lights on a laptop GPU.

  • WebGPU
  • TypeScript
  • Rendering
DemoCode

Path tracer

A physically based path tracer with BRDF materials, importance sampling and BVH acceleration.

  • C++
  • Ray tracing
  • BVH

Dividing 3D space with chordal axis transform

Reproduced a CGF paper on packing irregular objects in 3D, from simple cubes to bunny meshes.

  • Geometry
  • C++
  • Research

Cloth simulator

Mass-spring cloth you can drag with the mouse, with friction against a colliding sphere.

  • Simulation
  • Physics
  • C++

Mesh editor

Half-edge mesh editor with edge split, face triangulation and Catmull-Clark subdivision.

  • Geometry
  • Half-edge
  • C++

GLSL shaders

A set of vertex and fragment shaders: Blinn-Phong, matcap, vertex deformation and Worley noise.

  • GLSL
  • Shading

Scene graph editor

A GUI for editing a scene graph — rotate, translate and scale nodes in a hierarchy.

  • OpenGL
  • GUI

Image superpixel segmentation

Implemented SLIC superpixels and compared results across iteration count, compactness and cluster size.

  • Computer vision
  • SLIC
  • Research

Point cloud registration

Implemented Iterative Closest Point and analyzed where it fails — initial pose, local minima, speed.

  • ICP
  • Point clouds
  • Research

Systems & software

Nexus (search engine)

A distributed key-value store and RDD framework behind a search engine over 300k crawled pages.

  • Distributed systems
  • AWS
  • Java

AttackTrace

A cloud-native SSH honeypot analytics platform — winner of Best Use of the Cloud and Cybersecurity at SteelHacks XII.

  • AWS
  • Next.js
  • D3.js
  • Security
Demo

AConn (voice chat)

Cross-platform voice chat at 13 Kbps with a module that anonymizes the speaker's identity.

  • Networking
  • Audio
  • Cross-platform
Code

ATNet (acoustic networking)

A wired and wireless network carried over acoustic signals, with a custom protocol and a NAT.

  • Networking
  • Protocols
  • NAT

Other projects

Crypto Carnival

A cryptocurrency visualization and trading simulator with authentication and persistent portfolios.

  • Node.js
  • SQLite
  • JWT
Code

Feminine Energy (3D game)

A Unity puzzle game built by a team of three, with camera shake, auto focus and a VHS effect.

  • Unity
  • 3D
  • Post-processing

Moving patterns of pseudo base stations

An interactive visualization of 3.35M spam messages, revealing where fake cell towers move in Beijing.

  • D3.js
  • Data viz
  • Analysis

Ballistic (VR game)

A VIVE Focus game whose novel control scheme steers the character by head rotation alone.

  • Unity
  • VR
  • Interaction
Demo

Escape (retro game)

A runner game for the Longan Nano board, written in C and RISC-V assembly.

  • C
  • RISC-V
  • Embedded