Week 1 Progress Report

Most of the time spent this week was spent to get acquainted with how the REU lab works, how some of the facilities and tools are used, and understanding the concepts/topics presented by the various speakers. A considerable amount of time was devoted to understanding OpenGL—by programming with it. We decided to pursue learning OpenGL early on because (from our understanding) most projects require some understanding of OpenGL.

Programming

A few programs were written in OpenGL. Most are simple, although interesting. The first program triangle.c written in OpenGL demonstrates the rotate function. The second program fly.c demonstrates the use of the transform (or displacement) function provided in OpenGL. The third program was written in python (for the sake of its hash table) and demonstrated the rule based cellular automation described (famously) in automation. While it’s called rule30.py, modifying the rules hash table changes the cellular automation computed. Since we were not satisfied with the python program, we rewrote the rule 30 cellular automation in C and named it rule30.c. Then, based on rule30.c, we wrote a program to draw the mandelbrot fractal mandelbrot.c. The fractal is quite interesting, since this the first time I attempted to color points based on how many iterations it takes to converge. Finally, an attempt to write the buddhabrot fractal was futile, although our attempt is present in buddhabrot.c.

Projects

After listening more about the project options, I am convinced of one or two projects. The first project is quite simple and might take a day or two. The project entails translating the igl program that has a red ball rotating around a torus into opengl. I hope that this program will introduce me to lighting in OpenGL, as well as how motion is conducted.

The second project relates to CUDA, although it is not clear at this moment what this project will accomplish. I do, however, want to use the wiimote for at least one project, or help another person figure out how to use it.