Projects


Eric La Force

Graduate Work

WAV

Wide Area Visuals (WAV) is a research project that I have been working on since the beginning of my graduate work in Fall 2007. Essentially we are building a system of Intelligent Projector Units (IPU). These IPUs are designed to determine their corresponding surface geometry and change the graphics application to render with the surface geometry in mind, so you could project onto any surface and the graphics will look visually correct. My main contribution to this is designing and implementing a communication framework so that IPUs can communicate information to its peer IPUs. Here is a screenshot of our system in action projecting a flight simulator onto a complex surface.

 

Introduction to Computer Security

I am currently taking this course and will provide more information at a later date.

 

Imaging, Graphics, and Vision

I am currently taking this course and will provide more information at a later date.

 

Scientific Computing

I am currently taking this course and will provide more information at a later date.

 

Enterprise Systems

In Fall 2007 I took an Enterprise Systems course. Throughout the course my group developed a J2EE application. The application was a note card studying application designed with students in mind. The students could create sets of cards, browse other students notecards, and could create study sessions containing their cards and other students cards. In addition we developed the system to overcome data reliability concerns with the addition of expert users that could verify the data the students created. Here I have provided a video of the application in action.

 

Distributed Systems

In Fall 2007 I took a Distributed Systems course. In this course we developed four small communication applications, and developed a final project of our choosing. For our first assignment we developed a simplified HTTP client and server. It followed normal HTTP protocols with the exception that we only implemented support for text files. In the second assignment we expanded our HTTP server to use threads instead of forking a process for each client request. In the third assignemnt we developed a proxy server so we could learn more about running performance testing and developing empirical studies. Finally in the fourth assignment we implemented a simple cache for our proxy server and repeated our experiments to determine how a cache affects the performance of our proxy server.

 

Computer Vision

In this class we focused on building computer vision projects and studying computer vision techniques from blob detectors to recognition systems. We implemented all of our systems in MATLAB. For the first assignment we were required to build a Laplacian blob detector. For the second assignment we studied different fitting techniques including affine, homographies, and fundamental matrix fitting. Additionally we developed RANSAC algorithms and implemented a triangulation technique. For the third assigment we developed a face recognition technique based on eigenfaces. Finally throughout half the semester we were required to develop a final computer vision project that implemented some exisiting computer vision system. For my system I developed a document tracking system based on the work of Kim et al. at the University of Washington. One can find the references in the final report I created.

 

Data Mining

In this course we focused on data mining techniques from associations rules, to clustering and classification techniques. Throughtout the semester we were required to develop a final project that implemented data mining techniques. For my final project I developed a meta-search engine that compared different ranking aggregation methods. I developed a rank retreival system using Python, and developed the rank aggregation methods in MATLAB. I studied three existing rank aggregation methods (references found in my paper) and developed one of my own.

 

Intelligence Analyst Independent Study

This was an independent study that I participated in under the direction of Henry Fuchs. In our work we were working towards developing techniques to combine the physical and digital enviroments. Mainly we disucssed ideas to accomplish this, and one particular idea we were interested in was utilizing OCR technologies to allow "Googling" your physical desktop. I expanded one of our exisiting demos to allow the copying and pasting of text from physical documents on the desk. Though I did not yet achieve the search capability, I did help us get one step closer.

Undergraduate Work

Compiler

In the last semester of my senior year I took the compiler course. In this course we were required to code a compiler in the language of our choosing. I chose Java because this was the language that I was most comfortable. Our professor decided that we would code a SOL compiler. SOL is a pseudocode lanague that we compiled into Gforth. We divided the project into 7 milestones: scanner, parser, type checker, and code generation. I was one of 3 students in a class of 25 that completed all 7 milestones.

 

Note2Note

In the summer between my junior and senior year, my brother and I were studying for the GRE, especially the vocabulary portion. We were using flash cards as our main study tool, and we began to develop an idea for a web application. This is how Note2Note was born. At the time of this Google released the Google Web Toolkit, an AJAX framework. We designed and implemented our idea. We used an MySQL backend to support the AJAX frontend. The hardest challenge we encounted was creating a rich text editor for the cards. We ran into endless troubles concering browser compatabilities and had to write custom javascript to make it work. We completed the project in 300 hours over 3 months, and are proud to say we created an enjoyable system that students found helpful.

 

Network Prediction

During my undergraduate career I was asked to participate in undergraduate research. My networking teacher asked me to work on a network prediction system they were developing, based on funding from IBM. Essentially they had developed mathematical models to mimic network traffic and they needed to verify their theories. I and another student worked on implementing a system to quantify howwell their models worked.

 

XML Expression Reader

While completing the network prediction system above, I decided to expand their design so that other groups could provide different network models and test their results as well. I created an xml based expression reader that followed a specified format. Now intead of just testing one mathematical model, I provided the oppurtunity for other models to be tested in the future.

 

Assembler

In my sophmore year I was required to take a introduction to computer architecture course. For our first assignment we were required to write an assembler. I decided to write mine in python. My python executable file will convert a .m file to an executable file that can be read by a SPARC simulator.

 

Raytracer

While I was attending Clemson University all computer science students were required to take a C/C++ course. During the school year students were given help writing a basic raytracer. I took this course over the summer though and so I missed the oppurtunity to write this. So during my junior year, while working on a CO-OP with Honeywell, I decided to implement the raytracer. It was divided into 3 milestones major milestones. These milestones included amient, diffuse, and specular lighting; spheres, infinite, and finite planes (both tiled and untiled); and anti-aliasing support.

 

Graphics

In my senior year I decided to take the graphics course offerered by Clemson University. In this course we implemented three different assignments. For the first assignment we were required to write a 3D visualization tool in OpenGL that implemented depth map shadows, soft shadows, and partial transparency. For the second assignement we were required to use OpenGL to implement higher order diffuse illumination including area lights, shadow maps, anti aliasing, and texture mapping. Finally for the third assignment we were required to implement the Game of Life as a GLSL shader program.

Teaching

Python

In the summer between my sophmore and junior year, I was asked to teach high school students who were interested in basic programming skills. For this I was asked to develop lesson plans and teach lectures on these lesson plans. I had the students learn the basics of python due to its simple structure, free ide, and its prototype software quickly.