Week One - 6/12/06 - 6/16/06
I was introduced to the other students in the REU. We discussed some administria, including learning that the IlliMath 2006 website URL is http://new.math.uiuc.edu/im2006 and that there's a schedule and a calendar on there. We also reviewed some potential projects for this REU, which include various portages, quasicrystals, work with Myriad, Alice, and potentially Oz.
My idea with Oz (essentially a virtual 3D museum) includes one "room" (damn Plowing the Dark) with pretty mathematical visualizations either displayed as flowers/plants or as lightning bugs. I'm also considering a cherub room and a music room.
I also learned a bit about how to write in Python.
I learned a bit about how to use Python and Syzygy with the Cygwin shell. We also had a "crash course in Object Oriented Programming" that reviewed basically everything I know about programming and then some.
I met Ulises Cervantes and saw Mathematica 6.0 -- and got the idea for the mathematical visualization lightning bugs.
Learned about Povray and raytracing. Also set up new.math.uiuc.edu account.
We discuss sphere eversion and learn that the Optiverse and other SZG 0.7 rticas do not work in the CUBE.
We also got keys to get into the building (Altgeld) today. I myself do not possess one, so I don't need to worry about losing it.
We discussed various math conferences that one could go to. I'm still trying to wrap my head around attending a lecture only to sleep through it. I'm also trying to imagine a math talk long enough to sleep through, but I guess I encountered that in high school.
Later in the afternoon we saw Stuart Levy's presentation on AVN and Partiview. The rticas that Stuart showed us were absolutely beautiful, and it would be an awesome thing to get it working in the CUBE. I know I'm not the person needed to do that, but if someone does take up the project I'd like to see how it goes.
I also researched what a Lorenz attractor actually is (Wikipedia) and who Lorenz and what other 3D strange attractors there are (which include the Lorenz, the Rabinovich-Fabrikant equations, and the Rossler attractor). The Lorenz equation is in my notebook, and I will put it in this report when I translate it to Tex. I thought it might be cool to have Nicholas's butterflies fly around the Lorenz attractor. I also thought it might be fun to have various mathematical visualizations flying around on the attractor with lights blinking on and off (like a firefly) or possibly even have mini attractors flying around in the attractors. One could zoom in on a mini attractor, see it get larger to become the big attractor and have mini attractors of its own.
In the SZG tutorial following lunch, I noted the following:
Week Two - 6/19/06 - 6/23/06
We saw Emily's presentation on Graphics Programming, which included hearing a bit more about vPortage and Myriad and well as a bit about how nodes work in vPython. Another important thing I picked up here is that one needs to thoroughly understand something if one desires to animate it.
Jim Crowell talked about Aszgard. Probably the best part of this (for me) is that I now have an idea as to where to look for the files in the Aszgard directory. After that was the OpenGL/Geometry Pipleline I seminar. I learned about tree graphs, vertices/nodes and edges/links. There was also a bit about matrix multiplication.
Sick day. I ended up sitting around a lot and painting a dresser.
We discuss "The nth dimension" (where n=(1,2,3,4,5,6)). I become glad that I read Flatland. There is more about matrices. We talked about hypercubes, of which I had known nothing.
We also went through the naked version of cosmos.py (called cos.py). Now that I know a bit about nodes it made a little more sense. I feel that I may simply be learning through a weird form of osmosis.
We have the Rendering Surfaces II seminar, including a discussion of swaptmeshes, triangle fans and strips/ladders, and scan lines. We also discussed texture mapping and RBG coloring. Later we had the 4D Geometry Pipeline II seminar.
Week Three - 6/26/06 - 6/30/06
We discussed how to do a web page (and the text of the e-mail you sent me is here).
The Geometry Pipeline III seminar included discussion of off-axis perspective and flat hierarchy.
John Hart's presentation on Animating Fractals included a lot of math but looked pretty nice.
I looked around at CAVE applications. Virtual worlds include Doom and Quake as well as Summoner; Summoner has the nicest buildings. I believe that only Doom or Quake (I can't remember which) has collision detection, which is something I want in Oz.
We learn about Daid Cervone's jsMath for webpages. This looks like Tex for websites.
Rendering Surfaces III Seminar: Key terms include Lambert lighting theory, polygons, facets, clipping, triangle meshes, Bresenham algorithm, scan conversion, scene graphs, raytracing, and surface normals.
The Bresenham algorithm is, in effect, "Draw a line. Pick the first pixel. Go right until you can't anymore, then go up." ("Right" and "up" change depending on the line.) We also discussed raytracing (briefly), constructive solid geometry, and surface normals.
After lunch came a discussion of 3D geometries, of which there can be 8 according to Thurston, which include hyperbolic, Euclidean, spherical, H2 x R, S2 x R, H2xR = SL2R~, E2xR = Nil (Nil geometry), and Solv geometry.
Jeremy Tyson presents "Alice in Nil-geometry."
Emily talks more about Myriad and how to actually set Myriad up. A phleet consists of one server computer, multiple controller computers, and many peers. We also discussed more about nodes. More on phleets here.
Nicholas discussed KAMScript. It is decided that I definitely need to learn how to make better 3D .obj files because that seems to be the cool thing to do (and it would be really useful). I would like to model the entrance of Oz in a modeling program (would be easier and look better), but I don't know of any that would be very helpful at the moment.
We attend Bruce Reznick's talk on math graduate work. Also, I learned how to create/edit my page on new.math.uiuc.edu from Emily; I have since decided that it's easier to write my page in a blank text file and just log on to an FTP client and uplpoad it (rather than editing the page in an SSH shell).
Week Four - 7/3/06 - 7/7/06
Fourth of July vacation.
Fourth of July vacation.
It was decided that I needed to have a more concrete way to communicate my ideas for the visual aspect of Oz, whether in short story, digital image or just sketch form. To that end I Googled some photos and picked out images that look mostly like what I picture for Oz. These can be seen here.
Later I met with Rose and discussed some of the technical aspects of the piece. The issue of how to navigate back to Oz arose; some of the solutions include running a program in the background with Oz that is always on and will recognize when, for example, a button is pushed and will take you back to Oz when that happens. We also discussed how to run a phleet on the KAM machines.
I played around with syzygy and python a little more as well as doing some KAMScript documentation housekeeping.
Week Five - 7/10/06 - 7/15/06
As this week has been less structured, this report will be structured differently.
After failing to figure out how to texture map each individual side of a cube in Python, I decided to switch to OpenGL. Through the process of lifting code from KAMScript, I was able to figure out how to texturemap things (arTexture = textureName) in OpenGL with Syzygy. Rather than using a cube, I have assembled an octagon that will serve as the main/entry room for Oz. I have taken several photos of wall and floor surfaces around campus (especially in Beckman and from Altgeld to Beckman) and have been editing these images in Photoshop. The idea for the floor is, of course, to be yellow brick. I'm not yet entirely positive as to what I want for the walls.
My plan is to finish up the design of the main Oz room by the end of this weekend. When Rose gets back from Duke (where she currently is), we will get to work on the interface (which I hope to have done by the end of week 7).
My new vision for Oz is scaled down a bit: by the time the REU is over, I would like to have a nicely decorated main room and at least one application that can be accessed through that room. If the Oz concept proves to be a good one perhaps other people will add more to it over time, or I will continue to develop it myself after the REU is over.
Thanks to Camille, we now know that KAMScript works in the Cube. That was very gratifying to see.