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 |