Former Topics for Master’s Writing Projects
Here are some ideas for projects that SJSU Computer Science MS program students used for writing projects with me.
Students for Semester
Rucker is retiring in the Summer of 2004, and will not accept any new MS students. Min Yang and Harry Fu will finish out their projects in Fall 2004.
At the start of any project we always went through a “requirements gathering” phase of finding the topic that’s (a) attractive and feasible for the student, (b) close enough to the advisor’s expertise and interests, (c) challenging enough to be acceptable to the Graduate Committee and the two other members of the project committee.
(1) Cellular Automata Projects (Harry Fu)
Cellular automata are computational schemes by which each cell in a grid is updated according to the states of its neighbor cells. The game of Life is an example of this kind of computation in which the cells hold discrete values. I have ideas for a number of projects in this area, including investigating the kinds of behavior you can get by using continuous values and three dimensions.
* Rucker’s continuous-valued cellular automata site Capow has demo software and a paper on this topic.
* Stephen Wolfram's book, A New Kind of Science is full of interesting new ideas. See the Wolfram site made in Rucker's Spring, 2003, CS 240: Software Projects class.
Harry Fu plans to implement some three-dimensional cellular automata by extending the Capow code. A key task will to be find effective ways to view these rules.
(2) Pop Game Framework Extensions (Min Yang)
Rucker's Pop framework has Windows graphics and OpenGL implementations. Possible extensions would involve some or all of the following: write a DirectX graphics implementation, design and implement multiple player mode, design and implement a rich set of three dimensional sprites for characters, link the program to such character design products as Maya, create an archetecture for desigining 3D worlds, create a level editor, implement AI in games.
Giavinh Pham plans to design appropriate classes for 3D worlds, create a scene description language, and implement a level editor. Key tasks will be finding the right software patterns and classes. He is also planning to implement a DirectX graphics class.
Min Yang plans to incorporate cellular automata meshes into the framework and design a Skiing or Surfing game based on a landscape which is a sheet animated by the continuous-valued CA for the wave equation.
(3) The Curvature and Torsion of Hyperspace Curves.
It is possible to define space curves by means of kappa and tau functions that give, respectively, the curvature and the torsion of the curve in terms of the arclength. Research the history of this notion, develop a good program and interface for trying out different kinds of kappa-tau curves, and categorize the kinds of curves that arise.
Consider extending this project to four-dimensional space using the hypertorsoin of curves.
* Rucker’s paper and algorithm at his kappa tau page give a starting point.
(4) Motion Algorithms in Computer Games (Possibly Leo Lee)
Implement a C++ flocking algorithm to make 2D and 3D creatures move about like herds, flocks or schools. Develop a simple game in which flocking creatures are used. Research existing flocking algorithms, use the best features, and think of possible improvements or tweaks. Consider having the creatures evolve better parameters for the algorithm.
* Craig Reynolds has information about and online demos of the “boids” algorithms which Reynolds invented.
* Rucker’s artificial life has source, executable, and manual for an old program that showed flocking creatures. This code is rather obsolete and non-object-oriented. But it does provide for evolution of better flocking parameters.
* Rucker’s computer games has the software for the Pop framework recommended as the basis for this project.
(5) Virtual Reality With Liquid Crystal Eyes Stereo Glasses (Kenji Tan)
Rucker has a pair of liquid crystal stereo glasses. Project is to write code some classes, dialogs and controls to make the glasses work with a 3D game from the Pop framework, and then to ensure the code's portability by using it with a 3D visiualization program such as kappa tau curves as mentioned in Project (1).
(6) A Four-Dimensional Computer Game (Wyley Dai)
It should be possible to make a four-dimensional Pac-Man game. This can be done by extending Rucker’s Pop framework to use 4D instead of 3D vectors and by adding a few 4D geometrical objects.
* Rucker’s computer games, has the software for the Pop framework recommended as the basis for this project.
* An earlier master’s writing project by Farideh Dormishian developed some simple visualizations of the hypercube called Hypercube 98.
* Mark Newbold’s site has a different approach to showing 4D objects.
*See Robert Burton
for many interesting references, such as: K. Victor Steiner and Robert
P. Burton, "Hidden Volumes: The 4th Dimension", Computer Graphics
World, X, 2, February 1987, pp. 71-74.