Research Projects

 

GRADUATE PROJECTS

progress bar duration completion speed perception

3D Head Tracking With a Generic Webcam
Using OpenCV's Haar cascade face detection functionality, I was able to throw together a realtime head tracking program. I coupled this with a 3D "virtual window" demo, a homage to Johnny Lee's Wii-based head tracking demo. Performance is suprisingly good. On my 2.16 Ghz MacBook I am tracking at 25 frames per second - sufficient for realtime intereaction with no obtrusive reaction delays. Additionally, I've optimized the code so that only 50% of a single processor core is consumed (and that's on my realitively slow laptop).

progress bar duration completion speed perception

Lean and Zoom
The size and resolution of computer displays has increased dramatically, allowing more information than ever to be rendered on-screen. However, items can now be so small or screens so cluttered that users need to lean forward to properly examine them. This behavior may be detrimental to a user’s posture and eyesight. Our Lean and Zoom system detects a user’s proximity to the display using a camera and magnifies the on-screen content proportionally. This alleviates dramatic leaning and makes items more readable. Results from a user study indicate people find the technique natural and intuitive. Most participants found on-screen content easier to read, and believed the technique would improve both their performance and comfort. Published at CHI 2008.

progress bar duration completion speed perception

Rethinking the Progress Bar
Numerous factors cause progress bars to proceed at non-linear rates (e.g. pauses, acceleration, deceleration). Additionally, humans perceive time in a non-linear way. The combination of these effects produces a highly variable perception of how long it takes progress bars to complete. Results from a user study indicate there are several factors that can be manipulated to make progress bars appear faster, when in fact they are not, or potentially even slower. I presented these findings at the 2007 ACM User Interfaces and Software Technology (UIST) Conference.

The Sling in Medieval Europe
The simple sling is often neglected when reviewing the long history of ranged warfare. Scholars typically focus on the simple thrown spear, atlatl, throwing axe, bow, and crossbow. However, in experienced hands, the sling was arguably the most effective personal projectile weapon until the 15th century, surpassing the accuracy and deadliness of the bow and even of early firearms. (Published in the Bulletin of Primitive Technology)

image clustering

Image Clustering
Using the RCBIS package developed by Stacey Kuznetsov and myself, Jeff Borden put together a image clustering package. The application was created using the Prefuse information visualization toolkit and a K-means clustering method. The latter used a distance metric the RCBIR engine calculates when given two images.

search sketch CBIR image picture interface

Search by Sketch
After several months of intense development alongside Stacey Kuznetsov, the Rapid Content-Based Image Search (RCBIS) engine was ready for use in user oriented programs. The most obvious and appealing project was to develop an image search engine which took not text, but a sketch as input.

kronosphere time content file navigation temporal desktop system

Kronosphere
Hierarchical file systems mirror the way people organize data in the physical world. However, this method of organization is often inadequate in managing the immense number of files that populate users’ hard drives. Systems that employ a time-centric or content-driven approach have proven to be compelling alternatives. Kronosphere offers a powerful time and content-based navigation and management paradigm that has been specifically designed to leverage universal cognitive abilities.

speech enhanced commenting audio interfaces

Speech Enhanced Commenting
Ineffective and insufficient commenting of code is a major problem in software development. Coders find commenting frustrating and time consuming. Often, programmers will write a section of code and come back later to comment, potentially reducing the accuracy of the information. Speech Enhanced Commenting is a system that takes advantage of an unused human output - voice. This system allows users to speak their comments as they program, which is natural and can happen in parallel to the user typing the code. No additional time is needed to write comments. There are several other additional benefits.

visual hash passwords interface memory

Visual Hash
Checking passwords often requires a complex algorithm, but computation time is generally small. For users on their local machines, it's insignificant. However, if the password needs to be checked by a remote login server, things become more expensive. Secure connections have be negotiated and databases have to be queried. Throw in a few thousand users and your are looking at a serious load problem. Blizzard's popular World of Warcraft was plagued by login server overloads that kept people out of the under-loaded game-world machines. Visual hashes can reduce the burden on login servers by eliminating some unnecessary login attempts.

GIS turkey aphrodisias

Aphrodisias
During the 2006 and 2007 summers, I spent eleven weeks in Turkey assisting an archeological expedition at a Greco-Roman city named Aphrodisias. A small Geographical Information Systems (GIS) team worked on producing maps to assist the project, both in surveying the region and artifact collection. Creating site level contour maps was a major effort in the first season. I primarily worked on developing methods for predicting the location of ancient sites, such as iron mines and forts, and the routes of aqueducts and ancient roads.

compiler PPC computer science

'A' PPC Compiler
Compilers are quite possibly the programmer's most frequently used tool, and yet often overlooked. Over the course of 2 months, I coded up a compiler in C++ for a medium-sized language dubbed 'A'. The compiler supports all the goodies, including: arrays, pointers, function calls, recursion, type checking, static scoping, and more. The output: executable PPC assembly.

interfaces gesture scheduling process

Gesture Based Process Scheduling
People place different levels of importance on applications they use. This importance is often transient. For example, when the user is in a rush and wants to quickly check their email before they leave, the email application should not have to wait on other applications. However, other times, the user might accept a longer launch time because they also value background processes, like a downloading a file or transferring pictures from their digital camera. Anticipating user needs is practically impossible. However, users provide a wealth of feedback in the form of gestures.

 

UNDERGRADUATE PROJECTS

personal information management content social network

Enki
Over the 2005 summer, I had the pleasure of working at IBM's Almaden Research Center in San Jose, California, under the leadership of John Barton and Stephen Farrell. The development team consisted of Chris Parker, Meng Mao and myself. We worked on a unique application which blended aspects of personal information management, social networking, and content management. The project was dubbed Enki, after the Sumerian God of Knowledge.

operating system computer science

ChriOS
This page is dedicated to describing my work for the OS Bakeoff, which was the finale to a semester long advanced operating systems class. Students started by building their own shell, and later added support for booting the OS (on X86 hardware), paging (protected memory management), multiple program environments, scheduling, and preemptive multitasking to name a few.

A Comparative Analysis of Archaic Peoples and Early Dutch Settlers Living in The New York Region
In 1624, the Dutch established their first outpost about 150 miles north of Manhattan, up the Hudson River, called Fort Orange. It was located near the modern city of Albany, NY. Interestingly, the environment was similar to that of prehistoric Manhattan. The plant life was similar, with spruce, fir, birch, and poplar dominating the area around Fort Orange. Because archaic groups and a fledgling European outpost relied so heavily on the local environment to survive, there are many commonalities in how they lived. Using this similar environmental context, one can explore how each group, with their different technologies and social traditions, adapted and survived.

computer science graph

An Investigation of Graham’s Scan and Jarvis’ March
With the advent of computers, which could perform millions of mathematical calculations per second, new topics and problems in geometry began to emerge and the field of computational geometry was born. As the subject evolved, a number of new applications became apparent, ranging from computer vision and geographical data analysis, to collision detection for robotics and molecular biology. This paper discusses perhaps one of the oldest and most celebrated computational geometry problems; the convex hull.

computer science internet web http

JServer
A multithreaded server capable of pipelining HTTP requests from multiple concurrent clients. Features an LRU cache to store frequently used files in main memory and supports a full compliment of MIME types via an external config file. All in about 500 lines of Java code...

 

HIGH SCHOOL PROJECTS

engineering computer science hardware

Temperature Regulated Charge Algorithms
This page is dedicated to the research I conducted while in my high school's science research class. I enjoyed much success in several science competitions and ultimately filed a patent for the technology I developed during my freshman year in college. This page is very out of date.

AI computer science

BaLiS (Bacterium Life Simulator)
BaLiS was my first attempt at designing an AI (high school). It uses a priority matrix which it builds by exploring. As it explores the 50x50 world, it encounters different items (such as food). The bacterium exhibits certain behaviors based on what it finds, and adjusts it's memory accordingly.


Return to Home page

 

   
chris.harrison@cs.cmu.edu
© Chris Harrison