Future Projects

 

Automatic Run/Walk Race Routes


Description

This project was inspired by one of my hobbies of running 5k and 10k races. I have noticed that most of these routes take place in neighborhoods with winding streets. The routes are usually very irregular, and it would be interesting to develop an algorithm that can find a 5k or 10k route given a network of streets and intersections and a starting and ending location. This could be a interesting project for an undergraduate student to explore path finding algorithms.


Expected Outcomes

I would like to have a website that this program can run on, and perhaps race and event planners my be interested in using it. Otherwise, it makes for an interesting project to publish a paper on in some conference.


E-mail me at hardnett at spelman dot edu if you have interest in this project.

Task Oriented Views


Description

The new Mac OS X called Tiger has a very nice feature called spotlight. This feature indexes all of the documents on a user's system, and allows the user to do quick searches for related documents based on keywords.


This project extends this feature by maintaining a collection of "key terms" for what we will call a task. A task is a collection of meaningfully correlated documents and applications that are relevant to activities or projects engaged by the user. The result will be a the creation of a view for the user that co-locates the documents on the desktop to allow the user to quickly access the related documents.


Rationale

Users often use organization techniques such as folders, directories, and bookmarks to keep related documents together. However, these hierarchical organization strategies do not easily allow documents to be co-located at different parts of the hierarchy. This usually requires making references to the source document at other points in the tree structure after tedious searching. In addition, a user’s project and activities can not always be stored in one subtree of the file system because the documents may be bookmarked websites, e-mail messages, or some other documents managed independently by a particular application. Also, many users find the tasks of organizing documents to be very tedious.


Expected Outcomes

We expect to have the following at the conclusion of this project:

•A collection of algorithms and tools that can be used to maintain collection of closely correlated key terms.

•A set of tools that enable the user to view, manage, and track their task


E-mail me at hardnett at spelman dot edu if you have interest in this project.

Partitioning Programs for Reconfigurable Processors


Description

This project is related to the previous project. The gaol of this project is to explore a problem that is found in high-performance computing using distributed systems and reconfigurable machines. The problem is determining what parts of an application can execute in parallel. The parts may be functions, collections of functions, or small parts of loops within functions. In the case of a reconfigurable processor, we want to know what parts could presumably share the reconfigurable processor at any one time.


Rationale

Attacking this problem will extend a section/chapter of my dissertation work. Its the one question that I can count on people asking about how to solve it. I have had some ideas for approaches to solve it, and would like to have some help in doing so. In order to do this work, you will need to learn a bit about compilers and how they work. I would primarily have you testing ideas for me as I develop the algorithm and then as you  learn more about compilers, the problem, and the technology I would hope that you could contribute more.


Deliverables

Publications and software would be the primary deliverables. I would expect to do this all by hand once we have the algorithms and then start automating the process. There may be opportunities to collaborate with industry depending on how well this work turns out.


E-mail me at hardnett at spelman dot edu if you have interest in this project.

Automated Scheduler


Description

This project is to implement Raven's scheduler algorithm so that it will work with the calendar program called iCal on the Mac OS X platform.

both of these projects are an opportunity to learn different programming languages, and techniques for software. The first project is primarily based on objective C (which is C + objects) and has some similarity with C++. There are tutorials online to help. The second project is based on Java, which is built into the Mac OS X platform.

E-mail me at hardnett at spelman dot edu if you have interest in this project.

Collision Detection in Alice


Description

Alice is a visual programming environment for teaching fundamental computer programming. Alice is designed to enable students to build virtual worlds in 3-D. Developing interactive virtual worlds like those found in video games is very exciting for many students. One of the primary needs in video games is the ability to detect collisions between objects. For example, collision detection determines that a player has touched an object that may give it power or may harm the player; collision detection determines if a character is bumping into a wall; and collision detection determines if a player has been shot or catches a ball.


In Alice, the collision detection needs improvement. Alice uses a threshold concept for detecting collisions. The threshold is an invisible perimeter around the object based on the “center” point of the object. If another object finds its way within the invisible perimeter, then it is said to have collided. The problem is that objects have different centers and therefore it is not always possible to detect collisions accurately. In addition, perimeters are perfect circles which do not work for oblong shapes


There are several algorithms for 3-D collision detection found in the literature. This project will start with learning some feasible 3-D collision detection algorithms using the XNA platform, followed by learning how to implement and test a new algorithm within the Alice source code.

Expected Outcomes

We expect to have the following at the conclusion of this project:

  1. A set of innovative collision detection algorithms implemented using XNA

  2. An implementation of advanced collision detection for Alice


E-mail me at hardnett at spelman dot edu if you have interest in this project.

Gaming Kernels on FPGAs


Description

Can console games execute more efficiently? Can we reduce the development time for developing games for new consoles? One of the major problems with console games is that the console processors are highly specialized to achieve high-performance for games. Each time a new console is developed, the software tools such as compilers have to be rewritten to support the new console and the games have to be rewritten. This is a problem seen in other sectors where specialized or application-specific processors (known as ASICs Application Specific Integrated Circuits) are used. These sectors have been moving towards software programmable or reconfigurable processors. These circuits of these processors can be changed by software to make the processor a more efficient fit for the application using it. This solution could be used for gaming consoles also and then the processor could be tailored by the game software for the best performance. Furthermore, the software tools such as compilers would be adaptable.


Rationale

This project is related to some research that I have done in the past. You can visit the TREAT website for papers and details. However, I do not expect to extend this work. I only want to use one of the tools from ImpulseC that allow you to compile software for these reconfigurable processors. I would like to study Graphics modules from video games, extract selected code regions or functions, compile them onto the reconfigurable processor and compare the performance on an Intel (PC or Mac) and an Xbox 360. I want to see if we can make performance improvements.


Deliverables

This is publishable work. I have not seen anyone do this with game fragments, and so it should be interesting. This will probably take several months to a year to work on as well.

  1. We will write research papers for conferences, journals, and periodicals as necessary

  2. We will create a library of game kernels (regions and functions commonly found in games)


E-mail me at hardnett at spelman dot edu if you have interest in this project.

TBD

E-mail me at hardnett at spelman dot edu if you have interest in this project.

Directory


  1. (1)Automatic Run/Walk Race Routes

  2. (2)Task Oriented Views

  3. (3)Automated Scheduler

  4. (4)Collision Detection in Alice

  5. (5)Gaming Kernels on FPGAs

  6. (6)Partitioning Programs for Reconfigurable Processors