$google = false; ?> include 'ads.php'; ?>
[ My MIT Home | MEng Thesis | Projects | MIT Admissions | Pictures | Quotes | Schedule | Simmons Hall | Timpani ]
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 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.
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)
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)
Questions? Comments? Share your thoughts on the Discussion Forums...
if ($google) { echo $googlerectangle; } else { echo $yahoorectangle; } ?>