Old Course Projects

Here are some course projects from my Masters at Carleton University and my PhD at UBC.


Deforming Developable Surfaces
UBC, April 2006
One of the techniques in digital geometry processing that has been studied for many years is mesh deformation. Recently, researchers have proposed deformation methods that preserve certain aspects of the mesh, such as geometric features and material properties. In this project we look at preserving developability of a surface. Specifically, if it is known that a surface is developable before deformation, it would be desirable to maintain developability during and after the deformation. To this end, a new technique for deforming surfaces is developed by manipulating the Gauss map of the surface. This technique can be considered a variation of gradient deformation, with additional constraints that account for Gaussian curvature. Finally, a simple method for deformation transfer using this framework is described, which does not rely on any parameterization between the models.


Capturing Cloth Geometry and Parameterization
UBC, April 2006
This project presents a system to generate realistic cloth simulations by acquiring the geometry and a surface parameterization of real cloth from a captured video stream. Stereo processing with a technique for disparity map hole filling and smoothing is used to recover the geometry of the cloth. Image feature matching using SIFT features is combined with a surface interpolation method to determine a parameterization of the cloth surface. The resulting geometry from each frame is then re-textured using the parameterization to generate a virtual cloth simulation.
[This project is an implementation of "Cloth Motion Capture", by Pritchard and Heidrich, Eurographics 2003.]


Real-Time Depth of Field Rendering
UBC, December 2005
The goal of this project is to produce a real-time rendering application that incorporates depth of field, in order to simulate real world imaging more realistically. In this application the depth of field is manipulated dynamically while navigating a real-time scene. The technique to achieve this result is point-based rendering, where the scene consists of a large number of variable-sized points in 3D space. The points are quickly rendered as vertex arrays, and a vertex shader is employed to compute the size of each point based on its circle of confusion. The points are alpha blended to produce the required transparency effect of out-of-focus points, and depth sorting of the scene ensures correct blending. The application allows the user to select focus points using the mouse, where the distance of the selected point instantly becomes the focus distance in the scene.


Adding Panoramas to Google Maps Using Ajax
UBC, December 2005
This project is an implementation of an Ajax web application. AJAX is a new technology based on asynchronous communication between a client web browser and a back-end server, allowing web applications to request and receive data without ever reloading the page. A popular application that uses Ajax technology is Google Maps. The goal of this project is to develop an extension of Google Maps which includes viewing 360-degree ground-based panorama images. The project includes development of a client-side Ajax engine and user interface in JavaScript, and development of a back-end java servlet that serves panorama data and images.


Optimal Sphere Surface Points for Resolving Orientation in Images
UBC, December 2005
This project is to investigate the problem of choosing point locations on the surface of a unit sphere in R3 such that the projection of the points onto any plane in R3 is visually dissimilar to the projection onto all other planes in R3. The optimal set of point locations is the set that minimizes the similarity among all projections. The problem is a nonlinear inequality problem with quadratic constraints. The motivation for this project is a computer vision application of six degree-of-freedom sphere tracking in a live video sequence.


Map Overlay Application
Carleton University, April 2004
The goal of this project is to create a map visualization and overlay application. Maps should be stored in files and loaded dynamically through the use of a Graphical User Interface (GUI). A loaded map should be visualized on the screen and the user should have the ability to overlay two maps together to produce a new map. A map legend should be displayed for each map and the user should be allowed to filter the view of the map based on a particular selection of legend items.


Point Location
Carleton University, December 2003
The goal of this project is to develop a java applet that visualizes Kirkpatrick's triangulation refinement method for answering point location queries.