Comp 600.460: Virtual Worlds
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
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.
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.
Advanced Raster Graphics Architecture
Head-Mounted and Other 3D Display Systems
Haptics and Force Feedback
Human Perception and Human Factors
Computer Aided Design and Manufacturing
Student Paper Presentations (Mixed Topics)
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
Grading will be based on
There will be no written final exam.
20%: two warm-up exercises (homeworks)
20%: two quizzes on the lecture material
10%: paper presentation
50%: final project
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).
Above all, you must not misrepresent someone else's work as your own. You
can avoid this in two ways:
Naturally, even if you give appropriate credit, you will only receive credit
for your original work.
Do not use work from someone else.
Give proper credit if you do use someone else's 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