Jim McCann

(Sometimes known as James L. McCann)
Picture of Jim Picture of Jim
Picture of Jim Picture of Jim
E-Mail: jmccann (at cs dot cmu.edu)
Phone: (412) 400 three one nine nine
CV: pdf format
Address:
Computer Graphics Lab (NSH4228)
Carnegie Mellon University
5000 Forbes Avenue
Pittsburgh, PA 15213

About

I'm a 4th-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.

Research

NOTE: Nancy Pollard, being my adviser, should be considered an implicit collaborator on all of the following projects.

Perception-motivated locality in 2d Graphics (2008-?)

In my dissertation, I plan to provide examples where -- by taking cues from perceptual psychology on what to make local -- standard 2d graphics tools can be revised and improved.

Some new Fluid Control Ideas (2008-?)

With Zeyang Li, Alfred Barnat

In the Spring semester of 2009 I mentored two undergraduates working on a new idea I had in fluid control. They started with my sketchy vision and added the ideas and research required to create a working prototype.

This work has not yet been published (thus the somewhat minimal description). I hope to remedy that soon, however.

Local Layering (2008)

locally layered pants

In graphics, we often stack up images like animation cells -- using one global order, even when layers have transparent holes and irregular shapes that would allow them to twine about each-other if cut from, e.g., paper. In this project, I present a simple method for realizing such paper-like stackings, and introduce a set of navigation primitives which are both correct and sufficient.

This work will appear as a paper at SIGGRAPH 2009. The paper and video are available on the Project Page.

Real-time Gradient-domain Painting (2007)

gradient illustration

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 appeared as a paper at SIGGRAPH 2008. The paper and video are available on the Project Page.

Transition Evaluation (2006-2007)

With Lei Li, Christos Faloutsos
stitchings

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.

Compiling for Graphics (2007)

With Tom Cauchois, Ronit Slyper
high detailmed-high detail
med-low detaillow detail

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.

Motion Database Visualization (2007)

With Ronit Slyper
simple layout

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.

Motion Graphs (2006-2007)

controlled character

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.

Retiming (2005-2006)

With Siddhartha S. Srinivasa
retiming graph

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!)

Software

ASF/AMC Viewer

amc viewer

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.

Presentation Software

presentation hack

I use custom presentation software for my talks. The source is here to satisfy the curious. This source is provided freely. Don't sell it (not that anyone would buy it). This was never intended to be user-friendly; keep that in mind, but feel free to e-mail comments and suggestions anyway. Heck, I may even provide limited techical support if I'm not busy, so it doesn't hurt to try.

You'll want to get the source and the example presentation. Once you've built the source (you'll need standard perforce jam -- ftjam will work, boost jam won't), simply type './hack README.hack' in the dist directory.

For equations to work you'll need latex or a different 'dist/equations/*.pl'.

Note: I've bundled in my SIGGRAPH 2008 talk. If you don't have an epic graphics card and have problems with missing extensions, monkey with the Jamfile to get rid of the GP_* modules.

Teaching

Computational Photography (Fall07)

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?

Animation Art And Technology (Spring06)

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.

Gentoo

Notes on using Gentoo linux instead of the SCS-supplied Fedora here. Includes notes on printing, backups, afs, and graphics group {NIS,NFS}.

Valid XHTML 1.0 Strict Valid CSS!