Summer '04 RAship in the Computer Graphics Lab

Aaron San Filippo


I was hired to work as a summer RA with Michael Gleicher, working on the real-time crowd simulation project with Mankyu Sung. What follows is an overview of my experience, what I learned, what I contributed, and what my future plans are.

What were my goals for the summer?

The Artist
Shortly after my work began, we added an artist from Cleveland to the project. His job was to be the creation of geometry and textures for environments. I was assigned the job of giving him projects to do, and making sure that what he made matched the specifications needed for the demos we wanted to create.

This turned out to be more trouble than it was worth; I spent a good portion of my time that should have been used for other things, by fixing problems with his work, trying to contact him, and finishing jobs at the last minute that should have been simple things to do. I learned a lot from this experience about the value of good communication vs. the talents that someone may have. In this case, the artist was a very talented individual, but his lack of communication far outweighed any benefits he brought to the project.

Despite all this, we managed to create two very nice demos for the Eurographics presentation. See below for more details.

Building Environments Case Study
Fairly early on in the summer, Mike suggested that I experiment with some alternative methods of creating environments. We decided to give a program called Image Modeler.
 I decided to try making a model of the UW computer science building as a test. The following summarizes my findings:

There may be other image modeling software available, but Image Modeler is hailed as the best, and its shortcomings, at least with respect to what we need it for, were enough to decide that it wasn't the best solution to our problem of creating environments.

In the end we decided that the best method at the moment was to model entire environments with Maya, then convert directly into the Unreal Engine, since that's what our system uses. I spent some time programming Mankyu's system to be able to import images of floor plans, and to specify the scale factors, allowing us to build our environments, then import information about that into the simulation system, and finally, build simulations which would then be played back in the environment in the Unreal Engine.

Completed Environments
In the end of the summer we basically had finished 2 fairly nice environments. The first is a simple art gallery, which demonstrates the use of several new situations, such as one where people stand and look at paintings on the wall.

Here are a couple screenshots:

I created this environment using the Unreal editor, and Photoshop for the textures.

The second demo was a model of a city block on State Street in downtown Madison. I spent some time taking digital photographs of the block, then sent them to the artist who created most of the geometry. After he "finished," I then spent another week fixing geometry problems, adding textures, and converting to the Unreal Engine.

 Here are a couple shots of the State Street environment:


Other Accomplishments:
I made lots of small improvements to both Mankyu's system and the playback classes for the Unreal engine. I added a playback time display, with various controls such as pausing and slow-motion playback.
In Mankyu's system, I added various gui improvements like the ability to zoom and pan on the world editor window.
In addition, I also assisted Mankyu with some of the algorithms for collision detection, to try to fix problems like characters standing around in a situation where they should have been running.

Learning Experiences: