Research

My current research focuses on algorithms and interfaces that can help make 3D modeling interfaces more efficient and expressive. Towards that end, I have worked on procedural mesh representations, implicit surfaces, point-set parameterization, pen-and-ink NPR rendering, 3D widgets, and sketch-based interaction. I am also interested in rendering, computational fluid dynamics, virtual surgery, pen-based interaction, and machine learning applications in graphical interfaces. In past lives I designed tiled-projector display walls, worked as a professional developer, engineered software, and was a security/networking/systems nerd.

Check out the links below to find out more about some of the projects I have worked on.

The goal of the 3D PrintAbility project is to devise a method to efficiently design and 3D-print prosthetic sockets for children in the developing world, based on low-cost consumer-level scanning and printing technologies. This poject is a collaboration between the Semaphore Lab at the University of Toronto, CBM Canada, CoRSU Hospital in Uganda, and Autodesk Research.

Autodesk meshmixer is a tool for working with unstructured polygonal meshes. The current version, meshmixer 2.0, includes tools for mesh cleanup, composition, sculpting, and traditional modeling tools like extrusions and booleans. Some parts of meshmixer are derived from my PhD work, see the Software section for code.

ShapeShop is a free sketch-based 3D modeling tool which incorporates much of my recent work in sketch-based modeling techniques, interactive hierarchical implicit surface modeling, implicit sweep surfaces, decal-based interactive surface-texture compositing, surface trees, sketch-based widgets. ShapeShop is definitely beta software, but you can download the latest stable version and try it out. (ShapeShop development is currently on hiatus)

Project Dasher integrates 3D Buiding Information Models (BIMs) with visualizations of real-time and historical sensor network data (light levels, temperature, cubicle electricity usage, etc). I worked on Dasher with Autodesk Research, designing and implementing the core 3D and interaction architecture, as well as shaders, precomputed ambient occlusion, shadow mapping, and 3D widgets. (Dasher is under active development, but I am no longer involved)

MAD Boxes are modular, stackable video cubes which can be used to quickly construct a wide range of different large-display scenarios. The goal of MAD Boxes is to make using a large display as simple as "Plug-and-Play". I designed the MAD box system for the Interactions Lab at the University of Calgary.

SpinalTap was my CPSC 502 course project at the University of Calgary. The initial project goal was to create an entire virtual spinal surgery simulation system. That wasn't entirely feasible for an 8-month course, so I scaled it back to just a real-time architecture for spinal drilling simulation. I revisted the project during a grad-school course and validated my simulator using real-world data (but that part isn't available yet...).

Morphidae Inlumino was my final project for CPSC 553, a fourth-year computer graphics class at the University of Calgary. I wrote a simple triangle mesh editor, modified butterfly subdivider, and a radiosity rendering engine. The radiosity renderer even used the GPU, although this was long before GPUs were programmable. Got some neat pictures, too.

Keroscene was a raytracer I wrote for CPSC 453, the third-year computer graphics class at the University of Calgary. There are some of my final raytraced images here, as well as screen-shots from some of the smaller programs I wrote for that class.