Our final project for CS224 (Interactive Computer Graphics) was a fluid simulation. I worked on this project together with Mike Plotz. We computed numeric solutions to Navier-Stokes equations on a uniform grid, and modeled the fluid with an implicit surface. The surface distance values at each voxel were transported according to computed velocities at each time step. We rendered animations of the results with a ray tracer. We based our work (somewhat loosely) on the 2001 SIGGRAPH paper "Practical Animation of Fluids" by Foster and Fedkiw, as well as the 1999 SIGGRAPH paper "Stable Fluids" by Jos Stam.
Here a movie with some results. This example has a force applied to the center of a tank of water, but not the edges. Liquid is initially in the middle of the tank, and there is a bubble containing nothing in the middle of the liquid.
Developed a 2-week assignment for a computer graphics class at Brown, in which students numerically solved a system of reaction-diffusion equations to create biologically-inspired textures. Among the problems in the assignment, students generated a zebra-like texture, as well as a creative texture of their own choosing.
An implementation of MLT from CS224. Some result images.
For the final project of MA112, Partial Differential Equations, I wrote a paper on how to solve the Schrodinger equation in three dimensions. This paper talks about the Schodinger equation, and solves it by seperating variables and using spherical harmonics.
A bigram part of speech tagger I wrote as a final project for Computational Linguistics (CG136). I looked at what happens if one fixes probabilities that come directly from the human-tagged portions of the training corpus. The idea was to allow the optimization algorithm to find a better global maximum.
I wrote this paper my senior year in high school. It develops the standard boolean logic system, then looks at different algorithms for minimizing Sum of Product (aka Disjunctive Normal Form) functions: Karnaugh Maps, the Quine-McCluskey algorithms (1 & 2), and Simplify (which uses a divide-and-conquer approach).
I wrote this paper my junior year in high school. I describe basic spherical trigonometry, with a concrete application illustrating the difference between Euclidean and Spherical geometries.