About Me

I am a Ph.D. student at the University of Toronto, studying under the supervision of Prof. Eugene Fiume. I am also a member of the Dynamic Graphics Project (DGP) research laboratory, in the Department of Computer Science.

My research interests include realistic image synthesis, computational photography, medical imaging, non-photorealistic rendering (NPR), character animation, human-computer interaction (HCI), computer vision and machine learning.

More information can be found in my Curriculum Vitae (PDF, 35KB).

Teaching Assistantships
CSC104 The Why and How of Computing F 2009, F 2010, F 2011, F 2012
CSC108 Introduction to Computer Programming F 2009
CSC209 Software Tools and Systems Programming W 2011, W 2012, W 2013
CSC236 Introduction to the Theory of Computation F 2009
CSC309 Programming on the Web W 2010
CSC343 Introduction to Databases W 2010, F 2010, F 2011, F 2012
CSC347 Introduction to Information Security F 2009
CSC423 Computer Forensics W 2013
CSC490 Capstone Design Course F 2009
CS4HS Computer Science for High School S 2012
RLG399 Designing a Website for Historical Studies W 2012, W 2013
W = Winter (January to April) S = Summer (May to August) F = Fall (September to December)
Past Projects

Non-Photorealistic Rendering

An interactive 3D mesh viewer, for showing suggestive contours, edge contours and smooth contours. Additional features include toon shading and varying stroke thickness determined by curvature.

The God of Maya

A short animated skit created using Autodesk Maya. The video was produced for the "Lai vs. Pai" course project in CSC2529: Character Animation, taught by one of the creators of Maya, Prof. Karan Singh.

[ MOV, 7.6MB ]

Depiction of Surfaces by 3D Curve Networks

A research experiment to study the accuracy and precision of surface depictions by 3D curve networks. Participants were asked to orient gauges according to their perceived surface normal. Our findings contribute to the understanding of 3D curve sketching interfaces, such as those found in ILoveSketch1 and 3D Scaffolds2.
  1. Seok-Hyung Bae, Ravin Balakrishnan, Karan Singh. ILoveSketch: As-natural-as-possible Sketching System for Creating 3D Curve Models. Proceedings of the 21st annual ACM symposium on User interface software and technology, 151-160, 2008.
  2. Ryan Schmidt, Azam Khan, Karan Singh, Gord Kurtenbach. Analytic Drawing of 3D Scaffolds ACM Transactions on Graphics, 28(5):149-158, 2009.

Intelligent Scissors

An implementation of the Intelligent Scissors1 tool, for semi-automatic image segmentation. The program uses edge detection and user-specified points to determine a segmentation boundary. The user can alter the points to modify the segmentation boundary in real-time.

  1. Eric N. Mortensen, William A. Barrett. Intelligent Scissors for Image Composition. Proceedings of the 22nd Annual Conference on Computer Graphics and Interactive Techniques, 191-198, 1995.

Image Morphing

An implementation of feature-based 2D image morphing 1. The user provides a set of line mappings from a source image to a destination image. Pixel transformations are computed based on the distance-weighted transformation of each line pair.

  1. Thaddeus Beier, Shawn Neely. Feature-Based Image Metamorphosis. Proceedings of the 19th Annual Conference on Computer Graphics and Interactive Techniques, 35-42, 1992.

Haar Wavelet Tiling

Multiresolution analysis is performed on a source image via Haar wavelet transform. A new image is formed by using tiles of various colors and sizes, selected based on the details in the transformed source image. The user can specify the resolution, tile texture and range of tile sizes.

Global Illumination Renderer

A ray-tracer implemented for CSC2504: Computer Graphics with Prof. Aaron Hertzmann. Illumination effects include soft shadows, perfect reflections, texture mapping and Phong shading (diffuse and specular illumination).

Real-Time Multichannel Volume Renderer

A research project in collaboration with the Biological and Medical Physics group, headed by Prof. Virginijus Barzda, of the Department of Chemical and Physical Sciences at UTM. A real-time multichannel volume renderer was implemented on the TeraRecon VolumePro 1000 hardware platform, for analyzing data from multimodal nonlinear laser-scanning microscopes.


An implementation of SIMBICON1 (Simple Biped Locomotion Control) for CSC2521: Physics-Based Character Animation with Prof. Aaron Hertzmann. The 2D walking biped has eight degrees of freedom, and physics simulated by the Open Dynamics Engine (ODE).

  1. KangKang Yin, Kevin Loken, Michiel van de Panne. SIMBICON: Simple Biped Locomotion Control. ACM Transactions on Graphics, 26(3), 2007.

Impressionist Rendering

An NPR application for rendering impressionist paintings via abstract image filters1, with user-specified brush shape, size and stroke orientations.

  1. Paul Haeberli. Paint by Numbers: Abstract Image Representations. Proceedings of the 17th Annual Conference on Computer Graphics and Interactive Techniques, 207-214, 1990.

Textured Paint Strokes

An NPR application for simulating the physical appearance of paint strokes under lighting 1.

  1. Aaron Hertzmann. Fast Paint Texture. Proceedings of the 2nd International Symposium on Non-Photorealistic Animation and Rendering, 99-105, 2002.

Image Abstraction

An implementation of real-time image abstraction1, for automatic generation of stylized comics from photographs.

  1. Holger Winnemöller, Sven C. Olsen, Bruce Gooch. Real-Time Video Abstraction. ACM Transactions on Graphics, 25(3):1221-1226, 2006.

Figure 8

A novel approach for editing bipedal gaits in Autodesk Maya. During a gait cycle, the pelvis follows a sinusoidal curve in 3D space. A "figure 8" curve (like the infinity symbol) is formed by projecting the sinusoidal curve onto a plane that is perpendicular to the direction of travel. Subsequently, a 3D gait can be edited in 2D by modifying its figure 8 curve. The same technique can also stylize movements of the hips, knees and other parts of the body.

Exaggerated Shading

An interactive 3D viewer for exaggerated shading1 and other styles of non-photorealistic renderings.

  1. Szymon Rusinkiewicz, Michael Burns, Doug DeCarlo. Exaggerated Shading for Depicting Shape and Detail. ACM Transactions on Graphics, 25(3):1199-1205, 2006.

Handwriting Recognition

A multi-layer backpropagation neural network, for recognizing handwritten digits.

Learning to Rank

New probabilistic lambda gradients for LambdaRank were created. Their effectiveness in learning the Normalized Discounted Cumulative Gain (NDCG) target cost function was determined empirically, and compared against that of RankNet1, ListNet2 and LambdaRank3 with the mean NDCG lambda gradient.

  1. Christopher Burges, Tal Shaked, Erin Renshaw, Ari Lazier, Matt Deeds, Nicole Hamilton, Greg Hullender. Greg Learning to Rank using Gradient Descent. Proceedings of the 22nd International Conference on Machine Learning, 89-96, 2005.
  2. Zhe Cao, Tao Qin, Tie-Yan Liu, Ming-Feng Tsai, Hang Li. Learning to Rank: From Pairwise Approach to Listwise Approach. Proceedings of the 24th International Conference on Machine Learning, 129-136, 2007.
  3. Christopher Burges, Robert Ragno, Quoc Viet Le. Learning to Rank with Nonsmooth Cost Functions. Advances in Neural Information Processing Systems 19, 193-200, 2007.

3D SOHO Wavelets

3D SOHO1 is the first Haar wavelet basis on the three-dimensional ball that is both orthogonal and symmetric. These theoretical properties allow for a fast wavelet transform, optimal approximation and perfect reconstruction.

  1. Andy Chow. Orthogonal and Symmetric Haar Wavelets on the Three-Dimensional Ball. Unpublished Master's thesis, University of Toronto, Toronto, Ontario, Canada, 2010.
  • Andy Chow. Orthogonal and Symmetric Haar Wavelets on the Three-Dimensional Ball. Unpublished Master's thesis, University of Toronto, Toronto, Ontario, Canada, 2010.
    (PDF, 3.5MB)
Last modified on July 19, 2013.