Home > Projects

Projects

Some interesting, fun and/or cool stuff that I've done over the years that lies somewhat off the beaten track (and that I've got a web page already written up for)... Source code to most of these and other unpublished projects I'm working on are available upon request. Do feel free to ask me any questions, as some of these pages are old and links may very well be broken, etc. Enjoy!


Real-time Physically-based Cloth Simulation
Implements simulated cloth using spring forces such as damping, stretch, bend, and shear. A GUI interface is included to adjust a vast number of parameters including constraints, particle mass, gravity, time step, and spring forces. In addition, three different integrators may be selected: Euler, Verlet, or 4th order Runge-Kutta. This allows comparisons for speed, numerical stability, and ease of implementation. Finally, vertex shaders are employed to demonstrate two-sided lighting.


Distribution Raytracer
CS348B: Image Synthesis Techniques, Spring 1997
For the final project in this course, I (along with a partner) implemented a raytracer supporting texture mapping, bump mapping, volume rendering, and distribution raytracing using C under IRIX. It used both hierarchical bounding volumes and adaptive octree subdivision to optimize performance, and supported several geometric primitives as well as arbitrary mesh surfaces.


Implementation and Applications of a Camera Calibration algorithm
CS223B: Computer Vision, Winter 2000
I implemented a basic camera calibration system on top of an existing freeware image-processing and numerical calculation library. Given manually specified features to track, the system can determine the orientation and position of a camera relative to a stationary object (or conversely, that of a motion object and fixed camera.)

ROME
CS444I: Internet Services, Spring 1999
For this experimental (at the time) class focusing on ubiquitous and pervasive computing, working a part of a team of six people, we implemented a prototype of a framework allowing mobile devices (PDAs, phones, etc) to accept or deliver information to/from other devices (such as web services, GPS devices, etc) and reacting to various triggers (such as being within a certain radius of a geographical location) expressed as logical expressions. We used server-side Java and client-side C++ under WinCE running on a Philips Nino PDA, interfacing with a Garmin GPS receiver via a serial connection. This work was later featured at MobiCom '99 and published in its proceedings.

Towards automatic colormap selection
A research report that I did as part of my work on the RIVET project (working draft).

Xanga blog mirror script
Do you dislike Xanga, and choose have a blog based on software such as Movable Type, but still want to publish your words to the Xanga-using plebians who are too lazy to use or read anything else? This Perl script/mod allows you to automatically post what you write onto Xanga automatically.

Random Thought Page Generator
CS107: Programming Paradigms, Fall 1996, with subsequent modification
As part of an advanced programming course in the fundamental undergrad CS sequence here at Stanford, I implemented a program which would generate random text, driven by a arbitrary context-free grammar parsed from a text file. I subsequently made this into a CGI program for hours of mindless clicking-on-the-reload-button diversion. (If you're not a member of the jack.html and/or FiCS community, most of the references, people, and inside jokes will be lost on you.)


Mark Wang <mwang@cs.stanford.edu>
Last modified: 2002.7.2