Welcome to my website

This is the place where I share my portfolio.

Currently I am a software engineer working at Microsoft. Please feel free to contact me if you have any questions or things to share.


Portfolio
Desk

Tiny Web Search Engine

distributed-system

hadoop

aws

May 8, 2017

A tiny web search engine mainly consisting four parts - distributed multithreaded search engine deployed on EC2, indexer and page rank, which are both deployed on AWS EMR, and a web front end for searching, which integrates third-party results including Amazon, Youtube and Ebay.

Desk

iOS Swift3 kNN KD-Tree

ios

swift3

kd-tree

knn

Feb 11, 2017

An iOS (Swift3) application - implemented KD-Tree data structure for k nearest neighbours search

Desk

Optix Photon Mapping

cuda

optix

ray-tracing

photon-mapping

Dec 16, 2016

A Optix/CUDA based photon mapping project. Implemented photon visualization and uniform hash grid.

Desk

Mini Minecraft

Qt

OpenGL

Dec 14, 2016

A Qt and OpenGL based mini minecraft (final group project of CIS560 - Interactive Computer Graphics). I'm responsible for the perlin noise terrain, perlin worm caves, skybox and snowy weather(geometry shader).

Desk

Mesh Editor

Qt

OpenGL

half-edge

skeleton

subdivision

Nov 13, 2016

A Qt and OpenGL based mesh editor. Implemented half-edge data structure, Catmull-Clark subdivision, face extruding, skeleton and skinning.

Desk

WebGL Deferred Shading

WebGL

deferred-shading

Nov 11, 2016

Deferred shading based on WebGL. Implemented some post process effects, such as toon shading, bloom effects and motion blur. Optimized g-buffers to save the GPU bandwidth.

Desk

CUDA Rasterizer

cuda

rasterizer

Nov 5, 2016

A GPU rasterizer. Implemented basic stages of a rendering pipeline and different features, such as bilinear perspective-correct texture mapping and backface culling.

Desk

CUDA Path Tracer

cuda

path-tracing

Oct 15, 2016

A cuda based path tracing application. Implemented different features, such as Fresnel effect, depth of field, direct lighting and motion blur.

Desk

CUDA Flocking

cuda

particle

simulation

Sep 13, 2016

A cuda based particle flocking project, which gives an insight into how different factors affect GPU performance, such as block size and memory arrangement. Optimized by uniform spatial grid data structure and memory coalescing.

Desk

Simple CPU Ray Tracing

Qt

ray-tracing

Aug 29, 2015

A Qt based simple ray tracing application. Applied Monte Carlo method to simulate diffuse materials.

Desk

Animation Editor

Qt

DirectX11

animation

skeleton

Jul 10, 2015

A Qt, DirectX11 based animation project. Users are able to write scripts to generate specific routes of the animated characters. Implemented animated skinning mesh, key frame interpolation and vertices bleeding at a low level.

Desk

CPU Rasterizer

rasterizer

shading

May 14, 2015

A basic CPU rasterizer. Implemented mid-point line algorithm, MVP transformation, lighting and different shading techniques.

Desk

Unity Games Collection

Unity

game-design

Apr 22, 2015

A collection of serveral Unity games I've ever made, including 3D Maze, 3D Sokoban, Wall Walker and AR Shooting Game.

Desk

Eradicating Ebola

MCM

mathematical-modeling

artificial-intelligence

operations-research

weighted-k-means

TSP

multiple-depot-vehicle-route-problem

c++

matlab

Mar 1, 2015

A mathematical model to efficiently solve a problem of eliminating disease in MCM contest, 2015. Our solution earned us an Honorable Mention.

Desk

SYSU Library

android

java

http

SQLite

html

Jsoup

Nov 24, 2014

An Android university library application, sending GET/POST request to the official SYSU library website and parsing the returned HTML. Users can check the remaining collections of their desired books and add books to their favorite lists. Students are able to login in to check their borrowing history.

Desk

Mutiple Depot Vehicle Routing Problem

artificial-intelligence

operations-research

TSP

multiple-depot-vehicle-route-problem

c++

matlab

Sep 10, 2014

Applied Genetic Algorithm to solve Multiple Depot Vehicle Routing Problem, which is an extended problem of Travelling Salesman Problem.

Desk

Intelligent Car

raspberry-pi

FPGA

arduino

open-cv

Sep 1, 2014

An intelligent car project. The car is able to track ping-pong ball and capture the ball.

Desk

Wechat Platform

wechat

http

html

cloud-server

Mar 10, 2014

An auto responder based on Wechat Platform.

Desk

iOS Swift3 kNN KD-Tree

ios

swift3

kd-tree

knn

Feb 11, 2017

An iOS (Swift3) application - implemented KD-Tree data structure for k nearest neighbours search

Desk

Optix Photon Mapping

cuda

optix

ray-tracing

photon-mapping

Dec 16, 2016

A Optix/CUDA based photon mapping project. Implemented photon visualization and uniform hash grid.

Desk

Mini Minecraft

Qt

OpenGL

Dec 14, 2016

A Qt and OpenGL based mini minecraft (final group project of CIS560 - Interactive Computer Graphics). I'm responsible for the perlin noise terrain, perlin worm caves, skybox and snowy weather(geometry shader).

Desk

Mesh Editor

Qt

OpenGL

half-edge

skeleton

subdivision

Nov 13, 2016

A Qt and OpenGL based mesh editor. Implemented half-edge data structure, Catmull-Clark subdivision, face extruding, skeleton and skinning.

Desk

WebGL Deferred Shading

WebGL

deferred-shading

Nov 11, 2016

Deferred shading based on WebGL. Implemented some post process effects, such as toon shading, bloom effects and motion blur. Optimized g-buffers to save the GPU bandwidth.

Desk

CUDA Rasterizer

cuda

rasterizer

Nov 5, 2016

A GPU rasterizer. Implemented basic stages of a rendering pipeline and different features, such as bilinear perspective-correct texture mapping and backface culling.

Desk

CUDA Path Tracer

cuda

path-tracing

Oct 15, 2016

A cuda based path tracing application. Implemented different features, such as Fresnel effect, depth of field, direct lighting and motion blur.

Desk

CUDA Flocking

cuda

particle

simulation

Sep 13, 2016

A cuda based particle flocking project, which gives an insight into how different factors affect GPU performance, such as block size and memory arrangement. Optimized by uniform spatial grid data structure and memory coalescing.

Desk

Simple CPU Ray Tracing

Qt

ray-tracing

Aug 29, 2015

A Qt based simple ray tracing application. Applied Monte Carlo method to simulate diffuse materials.

Desk

Animation Editor

Qt

DirectX11

animation

skeleton

Jul 10, 2015

A Qt, DirectX11 based animation project. Users are able to write scripts to generate specific routes of the animated characters. Implemented animated skinning mesh, key frame interpolation and vertices bleeding at a low level.

Desk

CPU Rasterizer

rasterizer

shading

May 14, 2015

A basic CPU rasterizer. Implemented mid-point line algorithm, MVP transformation, lighting and different shading techniques.

Desk

Unity Games Collection

Unity

game-design

Apr 22, 2015

A collection of serveral Unity games I've ever made, including 3D Maze, 3D Sokoban, Wall Walker and AR Shooting Game.