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


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

AConn (voice chat)
Cross-platform voice chat at 13 Kbps with a module that anonymizes the speaker's identity.
- Networking
- Audio
- Cross-platform

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

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

Escape (retro game)
A runner game for the Longan Nano board, written in C and RISC-V assembly.
- C
- RISC-V
- Embedded