Interactive Volume Warping
Directed Study - Volume Visualization
During the spring of 2005 I developed a volume viewer using real-time volume rendering methods. The viewer contains implementations of many methods described in the Siggraph 2002 course on hardware-accelerated volume rendering. The viewer was created with the ostensible goal of generating new volume warping methods.
CS779 Course Project
"Non-Photorealistic Real-time Volume Rendering" with Brandon Ellenberger
Directed Study - Vascular Visualization
The Vascular Visualization project is a collaborative effort of the UW Graphics Group and the Lahvis Lab in the Department of Surgery. The groups work together in order to develop methods of representing and generating data associated with high-resolution histological images. The primary focus of the Lahvis Lab has been the study of micro-vasculature development in mice brains. Hence, those in the Graphics Lab have developed a visualization pipeline in order to assist them in this process. The project contains elements of image processing, human-computer interaction, scientific visualization and databases. My primary contribution to the project has been the development of a system to manage all the data and metadata generated in the research process.
Closest Pair - An implementation and visualization of a divide and conquer algorithm for finding the closest pair in a two-dimensional set of points.
QuickHull - An implementation and visualization of the quick hull algorithm in 2D.
Search Comparison - A rather unscientific comparison of different sorting algorithms.
CS559 Project 3 - The Pseudo-Random City
For this behemoth of a project I had to create an automated city, that is, a city that has moving vehicles and buildings. For this project I did just a little more than the bare minimum requirements. I really would have liked to add a lot more features, however I set my sights a little to high to begin with and had to backtrack and simplify. Originally I was going to have the city reside on sphere (like a planet), but it just became too complicated switching between cartesian and spherical coordinate systems.
This project probably entailed a gross 60 hours of work and I worked up until the last minute. I didn't enjoy creating it as much as I did the coaster program, but I did learn how to texture map. Download it!
CS559 Project 2 - "ToasterCoaster"
This project was my first real venture into 3D programming. As the project specified, I had to create a program that allowed the user to create a parametric curve in 3D space, then create and animate a roller coaster using that curve as a guide for the track. I had to add some advanced features to make it A-worthy (I hope), like a fancy track, rotating rails and cart that isn't a cube. We had to allow the user to create scenery for the coaster, so I created a Mario Brothers-like tube that generates floating balls. Whee!
The only way this program really relates to toast is that it toasted my computer several times. It is rather CPU and memory intensive and caused my already hot computer to reach its limits. But that's mainly a problem of my compter's cooling and not the program. I'm not sure how this program runs on slower computers. It's probably a little choppy. Give it a try and see. You can download the program by clicking the link below. Read the 'documentation.txt' file for a full description of how to use the program's features.
CS559 Project 1
This program doesn't have a proper title because it doesn't really have one specific purpose. This was the first project of the semester. We had to create a program that loads an image and is able to manipulate that image in a variety of ways. We had to incorporate a black and white conversion function, a scale up and scale down function, a method to artistically style the image and a red-eye reduction function.
The biggest pain was probably the artistic rendering function, though mine turned out fairly simple in the end. This program probable took a total of 20 hours to write and debug. It seems like a long time, but I had fun doing it and learned a lot about image manipulation. The program can only handle targa images right now, because they're so easy. Thankfully, Photoshop exists, which does everything my program does and about 10,000 more things.