Demo Reel



(2016) VFPR - Vulkan Forward Plus Renderer

  • Teammate: Xueyin Wan
  • Links: Video | Source Code (GitHub)
  • Implemented:
    • Vulkan renderer framework from scratch using C++ 14 with design patterns/idioms like RAII and pImpl
    • Forward+ shading program with depth pre-pass and tile-based light culling using compute shader, which is ~1000% faster than forward renderer under 200 lights


(2016) WebGL Deferred Renderer

  • Links: Live Online | Video | Source Code (GitHub)
  • Course project using WebGL and JavaScript
  • Implemented:
    • Basic deferred shading pipeline
    • Bloom post-processing effect with two-pass Gaussian blur
    • Light proxy: instead of rendering a scissored full-screen quad for every light, I render proxy geometry which covers the part of the screen affected by a light (using spheres for point lights), thus reducing wasted fragments in lighting pass
    • Using inverted depth test with front-face culling to avoid lighting geometries that are far behind the light, thus further reducing wasted fragments. This method increase render speed for 200 point lights to 177% compared to regular scissor test optimization
    • Optimized g-buffer from 4vec4 to 2vec4 by compressing normal to two floats, increasing framerate to 167%, see below for details


GPU path tracer renderingpreview
(2015, 2016) CPU Monte Carlo Path Tracer / CUDA GPU Path Tracer
The two path tracers are two of my school projects I am proud of.
The CPU path tracer was done in 2015 with C++/OpenGL as a course project. It has multiple importance sampling, K-D tree, depth of field and progressive rendering along with physically based rendering.
The GPU path tracer was done in 2016. It uses CUDA to do the parallel path tracing.
CPU Path Tracer Source Code (GitHub, 2015) | CUDA Path Tracer Source Code (GitHub, 2016)


(2016) AR PaintBall
An AR assignment basecode/demo I created as teaching assistant for CIS568-Game Design Practicum at University of Pennsylvania during Fall 2016 semester. The concept is use the phone as a paint gun and PC screen as canvas. I used Vuforia AR plugin and Photon networking plugin with Unity, and combined inputs from camera and gyroscope.


(2016) Siren's Aria (VR Game)

An 1v1 online multiplayer VR game prototype developed with Unreal Engine, Oculus Rift, and Leap Motion. It allows players use hand motion to control the ship.

  • Links: Source Code (GitHub) | Video | Video 2 ("Trailer") | Video 3 (Gameplay)
  • Work done:
    • Implemented core gameplay, control of the ship, online multiplayer support with Blueprint and C++ in Unreal Engine
    • Designed the gameplay where the player uses hand motion to control a ship to navigate the sea and fight the other ship


(2016) EasyDress (Maya Plugin)
EasyDress is a Maya plugin which is implemented by me and Yimeng Xu based on SigGraph 2015 paper "SecondSkin: Sketch-based Construction of Layered 3D Models", which allows user to draw sketch strokes on viewport and project automatically as layered 3D shapes. This tool is ideal for rapid concept modeling of clothing and armor.
Source Code (GitHub) | Video


(2016) DragonHunt (Game)

An asymmetric 1v1 online multiplayer game prototype with Unreal Engine, where one player plays an RTS as an army while the other player plays a flight simulation as a dragon.

  • Links: Source Code (GitHub) | Video
  • Work done:
    • Implemented the core gameplay and online multiplayer support with Blueprint and C++ in Unreal Engine
    • Designed the game with the idea of asymmetric gameplay, where players experience different types of games


  • (2014) Plask: GitHub
    An online questionnaire system using Python and Flask. Rapidly developed in two weeks for Software Engineering Practicum summer class following the practice of agile software development. Team work with Junyi Du, Harry Ji, Jiangcheng Li, Marco Wong, Siyu Yang.


(2014) Count Sheep!
My first Mobile (Android) Game at 2014. One of the most boring games in the world! (Screenshots and Video are taken 2016)
Made with MonoGame and Xamarin using C#. The game is on Google Play, with achievements and leaderboard integrated.
Google Play no longer listed | Video


(2013) Sogal
SOGAL(Seven Ocean Galgame Engine) is a visual novel framework created with Panda3d, written in Python.
I am still updating, but on a private repo (along with my new game - a visual novel game plus scroll action and role-playing), so this is a very old version and has many flaws.
Source Code(GitHub) | Video


(2012) Unreal Museum
This is a demo of virtual reality I created with lijiancheng0614 in May 2012
It uses a Kinect to detect the position of human head, and apply a calculated matrix between the view matrix and the projection matrix (or, alter the projection matrix) of a 3-D scene.
Thus creates a illusion of reality for the screen no longer appears as an 2-D plane when you see the screen from different directions.

Source Code(GitHub) | Video


(2012) Ocean Scream (Game)
A game with the background of pirate era in which players write a script to control a fleet to battle against another script-controlled fleet. The game is used as the platform for entrance competition for Microsoft China’s “Beauty of Programming 2012” Coding Competition.
This was a teamwork, I designed the rule and coded for the game part while, for example, the lijiancheng0614 took care of the AI API and connection part. The artwork was from our MSTC (Microsoft Student Technology Club).
Source Code(GitHub) | Download | Video


(2010) Art of Destiny (Game)
A 3-d space shooting game created with C# and XNA. Originally created in 2009-2010 when I was at high school, I did it alone. Translated to English in Dec 2014.
It also has an expansion - Stars Fade, which is used to take part in Microsoft Imagine Cup 2012, but I am not putting that to the portfolio because I think it is not good and likely an unfinished one. - But I still owe my thanks to these worked with me.

The first complete game I’ve made. It features 1.5-3 hours of gameplay.

Source Code(GitHub) | Engish Version | Original Version(2010, Chinese) | Video

These are what I feel a bit confident about

More at: