SPH Particle-based Fluid Simulation 

This project implements the basic SPH(Smooth-Particle-Hydrodynamics) in C++, rendered in OpenGL so far . Come back and check what’s new!

Position Based Fluids Simulation in CUDA (on going)

Original paper here.


2012 – 2014

AtomTrace Ray-tracing Renderer

A ray-tracing renderer written in C++. It supports adaptive multi-sampling, soft shadow, glossy surface, depth of field, and global illumination methods such as Montel-Carlo Global Illumination and Photon Mapping. Some of the code-base files (cyCodeBase) are provided by Cem Yuksel.



AtomBuilder Game Engine

Home made C++ game engine running on PC. I am still working on it, and currently the unstable version supports 3D graphics, Octree accelerated collision detection and rigid-body dynamics. The latest stable version supports 2D graphics, and the game running on is my hand made “Asteroid”.





OpenGL Fun

This was from the class Interactive Computer Graphics. We used GLSL to implement several graphics effects such as environment map, shadow (planar projection shadow, shadow map, and shadow volume), bump mapping and toon-shading.



elastic ball

 Finite Elements Solving Elastic Object

Basic finite elements method can simulate elastic object. Here is a demo video that shows you a bouncing ball which can truly deform and bounce base on its elasticity simulation.



Particle System

Particle System

A naive particle system which uses OpenGL for rendering. Each particle flies out from the bottom and eventually with enough particles a 3D model will show up.



HMDVirtual Reality

This was from the class Virtual Reality(VR). We implemented a naive stereo rendering in OpenGL. We also added Razer Hydra controller to build head-tracking VR display (like what Johnny Lee did). Full VR experience HMD was implemented too. Furthermore, we did a little bit research on HCI in VR.


pacman_multi_agentArtificial Intelligence

We implemented several AI algorithms on a PacMan Game framework. Algorithms include A* search, mini-max tree, alpha-beta test, Markov Decision Process (MDP), Baye’s Nets reasoning, etc. The recent class webpage may not be the same as I took it.




game prototypeRapid Game Prototypes

From August to December, we had built 4 game prototypes. Each one of this implemented in 4 weeks with different techniques: Moai, XNA, HTML5/Javascript, and Unity 3D.



rasterizationCPU Rasterization Rendering

In this program, almost the entire rasterization rendering pipeline  (such as OpenGL, DirectX) which should run in GPU was implemented in C/C++, and run on CPU.




2011 and Earlier

IK screen shotInverse Kinematic Animation

This demo implemented the inverse kinematic simulation with a simple method call pseudo-inverse Jacobian Matrix method (see the original paper). At the time I wrote this porject, I used OGRE as the base render engine.



 Angry Birds 3D

A 3D version copy cat of the famous iOS game Angry Birds. This was a 10-members-team project, and I was one of the render and physics engine developers. We used OGRE as render engine, and we implemented physics simulation based on Bullet-Physics.



Other course projects current working on: parallel programming in CUDA, hardware ray-tracing

Others: Vinyl (EAE thesis game project, team member from March – June, 2013), FFmpeg codec customization,

Leave a Reply

Your email address will not be published. Required fields are marked *