I'm a 3rd-year PhD student in the graphics lab advised by Nancy Pollard. I'm interested in systems and interfaces that operate in real-time and build user intuition.
This page is a monolithic presentation of the research software and projects I'm associated with. If you are interested in my personal life, games, or terse ramblings, please visit my web server at tchow.com.
NOTE: Nancy Pollard, being my adviser, should be considered an implicit collaborator on all of the following projects.
The power of non-photorealistic presentations of data lies in the abstraction of excess detail and clutter. The trouble with computers is that to abstract away the detail, they first have to know it. As such, most sketch-guided programs focus on creating extra detail by making assumptions about what the user's actions mean.
In this project, just beginning, I'm going to be trying to get away from such assumptions by designing representations which explicitly preserve the ambiguity of user inputs, and only resolve (or ask the user for) as much detail as is necessary for the task at hand.
I've designed a system to allow for brush-based gradient-domain editing with real-time feedback. This gives you a real gradient-domain clone brush and -- more interestingly -- lets you do gradient-domain sketches (like the teaser image to the right).
This work will appear as a paper at SIGGRAPH 2008. The paper and video are available on the Project Page.
In this project, we investigated what makes a pleasing transition between motion capture clips. We arrived at a dynamics-based approach which works by effort minimization that not only gives any potential stitching a score, but also is able to both pick both a transition path and duration.
The results of this work appeared as a Eurographics 2008 short paper Laziness is a virtue: Motion stitching with effort minimization, which I presented.
In this compilers class project, we investigated the potential for compiler-based level-of-detail in shaders. Our final compiler can load and parse ARB_fragment_program and ARB_vertex_program shaders into a graph-based intermediate representation, and then intelligently select per-fragment operations to hoist into the vertex shader using estimates of final visual error caused by result interpolation.
This approach should allows a single shader source to be used over many different graphics cards, as it can be dynamically degraded as performance decreases.
We think this is an interesting avenue of research, but do not intend extend or publish these results at this time.
In this project, we investigated methods of visualizing large data sets (like the cmu mocap database and the millions of images other lab members have crawled from flickr). We created software to automatically extract a real-time zoomable map of the data, useful for exploration and intuition-building.
We presented a preliminary poster at SCA 2007; however, these results have not yet been published further, due to other projects taking much of our time.
I investigated approaches to make motion graphs with more immediate control, as would be useful in a game environment. I settled on reinforcement learning (specifically value iteration) as the key method.
This work appeared at SIGGRAPH 2007 as Responsive characters from motion fragments. The final pdf and video are available on the project page.
I investigated changing the timing of motion capture data using optimization of a physically-based objective function.
This work appeared as Physics-based motion retiming at SCA 2006. The final paper is available here. Some associated video material is available here.
Additionally, I've made the messy source code available. (It's messy because I used C++ tricks to calculate inverse dynamics parametrically -- never underestimate the power of operator overloading!)
As part of my doings, I've had to work extensively with motion capture data in ASF/AMC format (from the mocap database, in fact).
This is a release of the source code I use to read the files, wrapped up in a demo program which allows viewing. The program uses SDL+OpenGL for output.
I was the TA for Computational Photography in fall 07. The students in this class did some great final projects, so -- as you've pretty much run out of my page at this point -- why not head over there and check them out?
I was the TA for AA&T in spring 2006.
Notes on setting up the linux computers for good maya menus availible here: on the course web page
Additional info about setting up the gnome window manager here
A simple example shader (draws hexagons) here.