Comp 600.460: Virtual Worlds

Course Syllabus

Homework 1
Homework 2


Virtual worlds are interactive, simulated environments. They often accept human input and provide output in the form of images, sounds, and forces. This course presents an overview of virtual worlds, including history, technology, methodologies, and applications.

The course is primarily project-oriented. Students conceive their own virtual worlds, planning and implementing them in the form of interactive graphics applications. One-on-one contact with the instructor provides guidance throughout the process.

The lecture component of the course includes not only lectures by the instructor and special guests, but student presentations as well. Each student will read and present one relevant research paper to the one class, with the subject typically related to the student's personal project.

To warm-up for the semester project, there will be two short homework assignments designed to familiarize the
students with some of the software and hardware available in our graphics lab.

Students in this course should have previously taken COMP 600.457 - Computer Graphics, COMP 600.456 - Rendering Techniques, or the equivalent and have good programming skills. This level of experience is required to achieve a successful project in the allotted time.

Lecture Topics

The course lectures present a mix of breadth and depth in some of the core areas of virtual worlds research. In addition some lectures will describe classes or particular instances of real applications. Student-presented papers tailor the subject matter to the interests of the particular students.


All reading assignments will be available on reserve at the MSE library or available electronically. Most of the readings for this course are in the form of papers rather than textbooks. They present the material in more depth than I can cover in class and provide a second source information. Many of the readings are not mandatory, and may be skimmed for interesting ideas. The most essential readings will be indicated as such.


I believe the programming assignments for this class can be a lot of fun if you start them early enough (or they can be nightmares if you wait until the last minute). The equipment used will likely be unfamiliar at first, and it may take some time to develop methods and intuitions for debugging interactive applications with real-time inputs. Also, there will be contention for the shared equipment resources, so again, do not wait until the last minute.


Grading will be based on There will be no written final exam.

Lateness Policy

The two homework assignments may each be turned in up to two days late, with a penalty of 10% per day late. All other work (project abstract, proposal, demonstration, and write-up) must be turned in on time to receive credit. If you have an extenuating circumstance, discuss it with me in advance or bring me a dean's excuse.


Because I will provide you with most of my lecture slides, you may be tempted to miss class and rely on the slides. Don't succumb to this temptation! In my experience it is difficult to learn new material from reading someone's slides. Slides may contain figures and examples with unexplained components, simple lists of concepts, etc. You get the idea. Also, the videos shown in this course provide important demonstrations of interactive graphics concepts, for which you are responsible.

On the other hand, I do require you to attend the classes consisting of paper presentations by your fellow students. Your hard work hard deserves the experience of a reasonable audience. I will take attendance on these days, and missing more than one of these classes will result in my directly lowering your final course grade by one position (A goes to A-, A- to B+, etc.). Don't waste these absences, because excused absences will be counted as well (if you have more than 1 day of dean's excused absence during this period, then we'll talk).

Honor Code

Above all, you must not misrepresent someone else's work as your own. You can avoid this in two ways:
  1. Do not use work from someone else.
  2. Give proper credit if you do use someone else's work.
Naturally, even if you give appropriate credit, you will only receive credit for your original work.

For exams, the line is pretty clear: do not communicate with anyone else or use disallowed materials during the exams. For programming assignments, you may find the line more fuzzy. It's okay to discuss ideas and concepts with other people, but not to share code. Your best bet is simply to not look at anyone else's code or communicate direct examples from your own code. If you want to help someone debug a programming problem, do not do it by showing them how your code looks. Avoid stepping through someone's code with them line-by-line, because the tendency will be to fix problems by making the code exactly like yours, or to incorporate identical fixes into your own code. Learn together by discussing ideas of how things should function in various cases.

On-line Course Information

This syllabus is available on the world-wide web at:
This is the home page for a series of course web pages. Included in these web pages are the course schedule, lecture notes, homework information, etc. Check the pages early and often - I will try to keep the modification dates of the various pages up to date to help you track changes (I will also inform you of important changes during class or via e-mail). All lectures slides which I present using PowerPoint and the digital projector will be made available on the course web pages, so you don't have to copy them down (do take additional notes, however). Any material which I do not present electronically will probably not be made available electronically, but you will still be responsible for learning the content.

February 4, 2000