| |
Project Information
This is where you'll find some of the programming projects i'm currently working on
or have worked on in the past. Some of the work is academic, other stuff is just for fun.
|
|
Hair Sketching
Modeling detailed hairstyles for virtual 3D characters
is a difficult and time-consuming process with existing 3D
modeling tools. This project aims to simplify the process by
presenting an intuitive sketching interface to model 3D hairstyles
using a pressure-sensitive tablet.
PDF (1.51 MB) | Win32/GLUT Demo (Coming Soon)
|
|
Visual Touchpad
The Visual Touchpad is a low-cost alternative to more expensive multi-finger touch-sensitive hardware.
Using two off-the-shelf web cameras and simple computer vision algorithms,
the Visual Touchpad allows multiple fingertip positions to be detected for all five fingers
of each hand, allowing for rich two-handed and multi-finger interactions.
PDF (1.5 MB) | Visual Touchpad Information
|
|
Real-time Hand Tracking for Interaction
This is a course project for CSC2503H Computational Vision at UofT.
The system can track a user's hands and fingers in real-time (without the use of any special markers or gloves)
in order to interact with a graphical user interface in either 2D or 3D.
PDF (522 KB) | Win32 Demo
|
|
Digital Face Replacement in Photographs
This is a course project I worked on for CSC2530H Visual Modeling at UofT. The basic idea
is to be able to replace a person's face in a single photograph, under some arbitrary
illumination, with that of another person. More information (paper, screenshots) can be found
on my Digital Face Replacement page.
PDF (443 KB) | PowerPoint Slides (1.9 MB)
|
|
Robust Registration of Virtual Objects for Real-time Augmented Reality
This is my MCS thesis work, which involves robustly combining virtual 2D and 3D objects
with real-time video sequences. More information (papers, videos, screenshots) can be found
on the NRC's Augmented Reality Research Page.
PDF (2.3 MB) | JPEG Images | Win32 Demo
|
|
Face Tracking for Perceptual User Interfaces
This was work done during the summer of 2001 with the Computational Video Group
at the National Research Council of Canada. We first developed a
stereo (two-camera) face tracking system using standard USB web cameras (Eye-UI). This allowed us to
reconstruct 3D position and orientation information of a user's face and head, which could be
used to control the movement of a virtual object in 3D space. We then used the same tracking
technology to develop a single-camera nose tracking system (Nouse). While the single-camera system
only gives us 2D control of a virtual object, it is enough to manipulate the mouse cursor and simple
2D video games (such as Bubble Frenzy) hands-free!
PowerPoint Slides (12.7 MB) | Nouse | Eye-UI
|
|
Level-of-detail Terrain Engine
This was a project I did for CSC2504H Computer Graphics at UofT.
It implements a dynamic level-of-detail 3D terrain that can be fully navigated
at real-time frame rates. The OpenGL-based demo runs under Windows, and includes a simple
physics-based truck that can be controlled using the mouse. The report was written as
my undergrad CS honours project, and describes the basic tesselation algorithm.
PDF (1.1 MB) | JPEG Images | Win32 Demo
|
|
Hand-Printed Character Recognizer Using Neural Networks
This was my 4th year AI project, which involved researching and implementing
hand-printed character recognition technology using neural networks. The
implementation turned out pretty good; even with a small training set it could
recognize hand-written digits about 70% of the time. I'm almost certain that
with a training set of around 1000 examples, the performance of the character
recognizer could be increased to the 90% accuracy range.
One extra twist I added to this project was a general face recognizer. Thus
I was able to train a network with people's faces and an associated name, and the
network could then recall a person's name after feeding in a facial image. I'm currently
using this technology to develop my own Terminator...
PDF (137 KB) | JPEG Images | Win32 Demo
|
|
Fullscreen OpenGL Code
After working with OpenGL I realized that it was lacking any sort of fullscreen
mode-switching code, which is important when creating a game engine. Playing
a 3D game in a window just isn't very immersive. So I whipped up some code which
makes some mode-switching calls to perform a video mode switch right before
initializing an OpenGL context. If you're interested in some fullscreen code
for your OpenGL project, feel free to incorporate this into your engine. There are
two versions; one using standard Windows system calls, the other using DirectDraw
to perform the video mode change.
Win32 ZIP (17 KB) - Standard | Win32 ZIP (19 KB) - DirectDraw
|
|
|
Research Links
CiteSeer
This is the NEC Research Institute's CiteSeer page, which is a scientific literature digital
library where you can find papers and technical reports on almost any Computer Science related topic.
The great thing about this site is that its free (unlike the IEEE or ACM digital libraries).
IEEEXplore (IEEE Digital Library)
This is the IEEE's Digital Library, where you can access conference proceedings and journal publications
on almost any computer science or engineering topic. Requires membership, but most universities have
access.
IEEE Computer Society Digital Library
This is the IEEE Computer Society's Digital Library, which contains lots of technical papers on
Computer Science or Engineering related topics. Membership isn't free, but its a decent investment
if you're doing some funky research.
ACM Digital Library
This is the ACM's Digital Library, which is similar to the IEEE Computer Society's Digital Library.
Again, membership isn't free, but what else are student loans for?
|
| |
"Satisfaction lies in the effort, not in the attainment. Full effort is full victory."
|
|
- Mahatma Gandhi
|
| |
|