Here’s the place I put all my personal projects, research or non-research, big or small, from recent to ancient time…

Snip and Paste

It’s a breaking workflow when I need to take a picture of screen (to clipboard), save it into somewhere and link it before starting to write something in markdown. This plugin is to fix that for vim users. It can also do the same job for image file if you have its absolute path in clipboard!

Github Page
Blog Post

Vim's Feeling Lucky Plugin

I feel I need a quick keyword linking tools in Vim so that I could keep writing while providing reflink. But I’m too lazy to grab link by myself and I trust Google most of the time. Therefore, this plugin is written to feed my need! It just does the job for me.

Github Page

Personal Website

To build the webpage you are browsing…

Blog Post

Project Audio Logger

My wife and I found we sometimes need an app to log our daily activities so that we could track them later. But usually input text takes time, so better briefing and done. In the future, probably these data can also be useful for us.

Mobile App
Server

Vim's Word Hint Doctor

Whd is a vim plugin that can generate words based on training text to help non-English writer to improve their wording and have fun.

Github Page

Tmux's Dustline

Yes, Vim+Tmux is all you need. Wait, just the highlighting of prefix mode is missing :wink:. Even though we have many plugins for this, none of them I feel obvious. I need yet another highlighting of statusbar running native in Tmux, and here it is.

Github Page

Comparision of Image Registration Methods

We evaluated four image registration methods including point-based rigid transformation and anisotropic scaling, iterative closest point algorithm and intensity-based registration using mutual information and compare them using indices like sum of squared differences, correlation coefficient, joint entropy, normalized mutual information and employ t-test.

Report

Imperfect Shadow Volume

Chris’ Shadow Volume paper, please check the link below.

Chris' Preprint

Compiler from Scratch

A course for one project: building a compiler for Falcon (a C-style “toy” language created by Prof. Douglas Jones). We built everything using C/C++ and have it run on Raspberry Pi. It can parse most of the statements and translate them into ARM assembly language.

TBD

Real-time Voxelizer

I was quit excited by the new OpenGL 4.3 feature: imageLoad/imageStore. It means you can skip hardware rasterization to render images. So I tried it out in IGLU and it works pretty well! I added some ambient and did ray matching computing for better visualization of voxels.

Voxelizer Source

Glossy Effect

Ideal: screen-space glossy effect that’s plausible and free from most artifacts.

Report Page
Never ending

Imperfect Shadow Map

Implement imperfect shadow map (many light and point cloud) for GI. Explore and find interesting problems. Get familiar with IGLU framework and Optix.

Source Code
Ancient Page

Rough Refraction (2011 Fall Research)

We introduce two methods that allow for varying roughness by representing surface normals using LEAN mapping and Gaussian sum reduction. The work is published in 2012’s ACM I3D.

ACM Page
Source Code
Preprint

Label Image Reference

A web game that is similar to Google’s Image Labeler based on ASP.net. This game is used in a paper to collect user data in theoretical experiments of human computing.

Water Simulation

I implemented realistic ripple and wave (proceduarl) controllable water on Gamebryo Engine. See more in link below.

Ancient Page

Anim Editor

This time, I did a simple animation editor using DirectX and HGE engine. I was thinking this editor will help me to make a RPG game animation less painfully, even though using DXUT’s UI is a bad choice in an artist’s eye.

Old Techs and Old Games

They are Win32 GDI stuff. I made it when I just learnt Win32 programming and got interested in game development. Yes I did all the arts … painfully, not even mentioning some typos. Can you beat my score in Pacman?

Pacman
Teris

The Copulas Based Multivariate Density Estimation

In the decision and estimation fusion of multisensor system, it’s difficult to get enough samples of joint density. We introduced the copula based method that using marginal to tune the joint density to improve efficiency.

Code Crisis

It was ambitious and crazy to make a RPG game! I started to learn Design Pattern to deal with these unmanagablly large code… It was based on native C++ coding in DirectDraw8 (not RPG maker!). Sorry no playable demo here.

Loading Forever

Semi-3D Spaceship

This time you will control a spaceship and shoot enemies. Many thanks to DirectX 3D and its SDK’s art assets. I put the correct version of d3dx9(d)_xx.dll (Actually I had to scavenge a bunch of d3dx9(d)_xx.dll to adapt fast changing of D3D)

DX 3D Game

3D Morphing

2008, first time using DirectX 3D! When I took this Hackthon test, on my hand is only DXUT SDK (no Google!). It turned out DXUT is easy to use and powerful.

DXUT App

A* Path Finding

A* path finder. A way to get familiar with win32 GDI and C++ STL.

Win32 GDI App

Explore Transformation Application for Watermarking

I studyed some of the most important methods used in the image scrambling for watermarking such as Arnold transformation, Magic transformation, Hilbert curve etc. and experiment out in Matlab.