MIT Class Projects
[ My
MIT Home | MEng Thesis | Projects | MIT Admissions |
Pictures | Quotes | Schedule
| Simmons Hall | Timpani
]
MSMMOS - A Graphical Operating System
6.828 Fall 2005
Named the Martijn Stevenson and Michael Matczynski Operating System, MSMMOS is an x86 operating system developed in 6.828, the MIT Operating Systems class. Most of the work was done during the labs of that class, which encompassed memory management, environment creation, a file system, and a text shell. MSMMOS is an extension of the 6.828 JOS microkernel operating system.
For the final project (objective: impress the staff), we developed a full window system and several user mode applications. We implemented a mouse driver, VGA driver, and window manager. We also defined a windowing interface consisting of keyboard events, mouse events and refresh requests that user applications use to interact with the window manager. Applications include a paint program, eyes, a bouncing ball, and a full text shell interface (using a font). The final product looks and feels like Microsoft Windows 3.1.
MSMMOS image file available upon request
MORRIS - A Distributed File System for Read-Intensive Applications
6.824 Spring 2005
MORRIS is a distributed file system that was built on top of the 6.824 NFS 3 file system developed in class. This project aimed to increase performance, specifically when serving large amounts of data to read-intensive applications. Data stored on our servers was striped across a number of different block servers, allowing for a server solution that is highly scalable.
One thing I learned from this project is that the audience needs to be considered carefully when choosing a final class project. Building a distributed file system is great, but presenting it during class was difficult when competing against other sexier projects.
Read
the report
Global Illumination, Caustics, and Animated Water
6.837 Fall 2004
I've always been fascinated by caustics caused by moving water. Thus, for my final project in 6.837, Computer Graphics, I decided to implement moving water and caustics using global illumination. To begin, I first wrote a program to create a sequence of scene files that would be used by the image renderer to create each frame of motion. I programmed equations for both linear and circular waves, using these forms to deform a mesh of hundreds of triangles.
Next, I needed to add global illumination to create the caustics, which are areas of bright, focused light. I used concepts from the book "Realistic Image Synthesis Using Photon Mapping" by Henrik Wann Jensen. Photon Mapping is a brilliant technique used to produce global illumination and caustics. The basic premise is that a light source in the scene emits thousands of photons in the direction of the light. These photons bounce around the scene until they hit a diffuse surface. This photon is stored and later used to calculate brightness during the final image render.
In addition to the moving water, I also created scene that changes the index of refraction of a glass sphere.
Watch
changing index of refraction (5MB)
Watch
animated water with circular waves (2MB)
Watch
animated water with linear waves (2MB)
View the presentation
PaintDude - Painting LEGO Robot
6.115 Spring 2004
In
the Spring of 2004 I created an electronically controlled painting
robot as my final project in 6.115,
Microcontroller Project Laboratory. I began the project by creating
a painting structure out of Legos. I then mounted
stepper motors, servos, and sensors. These components were interfaced
to an 8051 microcontroller and connected to a computer via USB. I
wrote code in assembly to control the robot's motion and wrote a program
in Java to convert an arbitrary bitmap file to a format readable by
PaintDude. The results speak for themselves.
Watch PaintDude in action (30MB)
Read
the report
Questions? Comments? Share your thoughts on the Discussion Forums...
if ($google) {
echo $googlerectangle;
}
else {
echo $yahoorectangle;
}
?>