Winter 1999/2000I spent the winter break working with Igor Guskov, Wim Sweldens, and Peter Schröder on developing "normal meshes." The above pictures are some of the meshes that we have produced. The paper that describes the work will appear at SIGGRAPH 2000.
Fall 1999Our NSF-funded project for developing web-based collaborative instructional material for learning optics has been going very well. The latest additions are two modules on Fraunhofer N-Slit Diffraction and Polarization. Also, the latest paper that resulted from our work on TOP/WebTOP will appear at the 2000 Web3D Symposium. I will be travelling to Monterey, CA at the end of February to present the paper.
Summer 1999I have been awarded a Summer Undergraduate Research Fellowship (SURF) at Caltech. I will be working with Prof. Peter Schröder on subdivision surfaces and remeshing. More details will be posted later.
May - June 1999Just before I took off for Caltech, I spent 3 weeks working with Prof. David Banks on a Vector-Field Vis project. We developed a mechanism for improved rendering of time-varying 3D vector fields. This mechanism includes a technique for computing evenly spaced 3D streamlines and a procedure for building level-of-detail. We also incorporated Banks's local illumination method for 1-manifolds (see Illumination in Diverse Codimensions, SIGGRAPH 94).
Spring 1999As I continue taking cool Math classes (such as Real Analysis II, ODE II, and PDE), I also continue working on The Optics Project. Our latest result is WebTOP, a Web-based (VRML + Java) version of our cool modules that visualize optical phenomena. I have ported three modules so far (two more are in the works) and I am very pleased with the results. I signed up for a Directed Individual Study Course on Subdivision Meshes. I work with both Xiaoqin Wu and Prof. Raghu Machiraju. Within the framework of this course I have been reading the SIGGRAPH 98 course notes on Subdivision for Modeling and Animation, Joe Warren's excellent book titled Subdivision methods for geometric design, and several relevant papers. Also, I have implemented some subdivision algorithms for both curves and surfaces. Early results can be found on my SURF page.
Fall 1998I took a bunch of interesting classes this semester. The coolest by far was Real Analysis. I am once again completely obsessed with the wonders, beauty, and rigor of Mathematics. Prof. David Banks and I finished up our project on Amplification Widgets and submitted an ill-fated paper to the 1999 Symposium on Interactive 3D Graphics. Under the guidance of Prof. David Banks, Viktor Miladinov and I continued our collaboration and worked on developing a novel global illumination algorithm for 1-manifolds. Here is a movie that shows the (not yet polished) algorithm in action. Stay tuned for even cooler images as we continue our work in 1999.
J. L. Kelley ![]()
Summer 1998I spent the summer of 1998 interning with SRI International in their Perception group. I worked mostly on TerraVision II and GeoVRML. I also managed to continue my project on creating 3D Amplification Widgets. Viktor Miladinov, Prof. David Banks and I also continued our web-based simulation work and wrote a paper that appeared at the 1998 IEEE Visualization Workshop on Distributed Visualization Systems held in Raleigh, North Carolina. More information on how I spent my summer including snapshots from TerraVision can be obtained here.
Spring 1998I have decided to concentrate more on my classes this semester. I've been having a lot of fun doing vector calculus and also taking differential geometry under Prof. David Banks, an UNC graduate and my research advisor. We've been talking a lot about vector fields, differential forms, and directional derivatives. Recently, we moved over to curves and Frenet frames, and wrote some Inventor applets to demonstrate the theory in practice. Prof. David Banks, Mike Chupa, and I wrote a nice Inventor applet that uses the the Mathematica API and allows visualization and animation of the Frenet frame on an arbitrary curve. A snapshot of the applet in action is shown above. Paul Brewster has been having some fun with the applet lately, while incorporating it into his research on finding silhouettes. As the semester moves on, we hope to create some more applets while reading and discussing relevant papers in the field. Another fun class that I've been taking is Artificial Intelligence. Our first assignment was to implement a triangle puzzle solver. I used C++ to code it, but I plan to port it to Java shortly and place the applet on my home page. Our second programming assignment turned out to be even more fun. We implemented a simple three-layer back-propagation neural network and trained it to recognize good combinations of colors for a Graphical User Interface. I've been also happily hacking Motorola 68000 assembly code. It's been a while since I've done any assembly programming. About 9 years, to be more precise. Hacking (hardware!) sprites and doing crazy stuff with rasters on a good ole Commodore 64 was a load of fun back in the 80's.
Fall 1997I took CS 4413 Computer Graphics this semester again. David Banks's usage of props, inventive and crazy/alternative teaching methodology, and cool project ideas made the class interesting enough to take it again. One interesting assignment was to play with subdivision of a unit-length octahedron and render some neat images. For our final project, Viktor and I designed an architecture for collaborative web-based simulations. We developed a client-server system where multiple web-clients can connect to a potentially heavy-duty simulation running on a high-end server. The clients can collaborate with each other by sharing a view of the output of a simulation, taking turns in controlling someone else's view, and promoting changes in the simulation. The clients are also equipped with chat and whiteboard capabilities, and a URL teleporter (for pointing a fellow collaborator to a certain home page). The threaded server was written using Java and can handle any number of connections. The client was written using VRML and Java, glued together with the External Authoring Interface (EAI) and Netscape's LiveConnect.
Summer 1997While interning at SGI last summer, I read a dozen of papers related to direct manipulation and 3D widgets. Since I have a profound interest in 3D interaction and user-interface design, I signed up for an Individual Study course under the direction of Prof. David Banks. The result came out to be a project on designing 3D widgets that, we believe, will address issues never thought of before. I've been slowly progressing on this, and I hope to have something up and running by the end of the Spring 1998 semester. The 1999 Symposium on 3D Interactive Graphics is the target of a potential paper. Aaron Dwyer and I won the 1997 SIGGRAPH OpenGL Programming Contest sponsored by SGI and Addison Wesley. We wrote an OpenGL version of a game that Aaron had previously written for his PC. We pretty much did the whole thing in a night of mad-man programming. I think both Aaron and I enjoyed the experience of pushing the limits (we wrote the program the night before the entries were due). I remember seeing Aaron falling asleep on the keyboard, and me taking a nap on the floor in Ian Buck's cubicle. While hacking on Viper (aka OpenGL++, aka The OpenGL Scene Graph API), I wrote/ported a couple of demos, including a port of the Inventor maze game. It was fun to compare Viper and Inventor and come up with solutions for features that Viper did not provide (sensors, for example).
Spring 1997Prof. David Banks was a guest lecturer in Computer Science II this semester. He lectured for several classes on graphics and I helped him develop a lab in which the students made modifications to an applet that renders Phong-shaded, implicitly-defined surfaces. If only Java was a bit faster... This semester I developed some instructional material for the newly-developed course on Introduction to Visualization (the only Visualization course at Mississippi State at that point point was an 8000-level graduate course). With the help of Prof. Raghu Machiraju, I wrote a visualization tool that used staggered marker-and-cell mesh and solved 2D Navier-Stokes equations to visualize a flow around arbitrarily-shaped objects. The students used this simulator in one of their assignments. I also used it as an example while lecturing on Inventor programming for the same course. As an example of using Java for writing simple simulations, I wrote a Java applet that visualized a very simple spring model. The applet animates a user-defined number of springs connected to a single point. I signed up for an Individual Study course on low-latency immersive display systems for interactive 3D computer graphics. I took this course under the direction of Prof. David Banks and I had to do a lot of reading. Banks assigned to me about a dozen of papers that described the current state of the art in low-latency systems. I also wrote a simple demo to investigate the benefits of building the ImageSwitcher, an architecture proposed by Banks in his Eurographics paper. I also took Software Engineering this semester. The lab turned out to be a killer as we produced a couple of hundred pages long design document. I lead the team of 5 people to design and implement a car rental system. I was mostly responsible for designing the overall architecture, especially the database engine and the GUI.
Fall 1996I took graphics for the first time this semester under Prof. Raghu Machiraju, an Ohio State graduate who does research in volume rendering. Although I had been doing graphics for about 9 months at that time, I had fun while defining clearly what I had learned on my own or from my advisor, Prof. David Banks, over the course of my participation in The Optics Project. The graphics course was a good excuse to write some more Java code. I used Java for most of my assignments that dealt with scan conversion, transformations and filtering. For my final project I hoped to work on a potential SIGGRAPH paper that dealt with illumination and rendering of curves. Yet, I settled for less and wrote a curve editor using Inventor and ViewKit. Since modeling is one of my major interests, I plan to return to this project shortly and possibly implement some sub-division algorithms. Prof. David Banks taught Advanced Computer Graphics this semester and asked me to hold a two-session Inventor lab for his students. I was happy to attract quite a bit of interest in an API from people that had previously used OpenGL almost exclusively for their graphics programming needs. Spring 1996Three words: The Optics Project. |