CSE 291: Topics in Computer Science and Engineering: Introduction to Virtual Environments, Fall 2006

Class Section ID:582226
Units:1-2 (1 for attendance and outside preparation, 2 with programming project)
Grading:S/U (graduate students), P/NP (undergraduates)
letter grades upon request with programming project
Prerequisite:CSE 167 - Introduction to Computer Graphics (or equivalent with instructor's consent)
Format:1.5 hours of lecture per week, 1.5 hours of outside preparation, 3 hours of computer lab for programming project (optional)
Instructor:Jurgen Schulze
Office hours:Tuesdays 2-3:30pm in Immersive Visualization Lab (1st floor Atkinson Hall),
Thursdays 3:30-4:30pm, 5th floor Atkinson Hall, room 5006,
and by appointment. During fall quarter only. No office hours November 14 and 16.
Location:Computer Science & Engineering Building (EBU3b), room 2217
Class meets:Thursdays 2:00pm-3:20pm
Sept 21-Nov 30, 2006
Final presentations: December 5, 3pm-6pm, Immersive Visualization Lab, Atkinson Hall
Lab:Immersive Visualization Lab, Atkinson Hall, room 1608. Attended by instructor Tuesdays 2-3:30pm, and at most other times.
Textbooks:
  • Recommended: Understanding Virtual Reality: Interface, Application, and Design; by Sherman, Craig; 2003; Publisher: Morgan Kaufmann; ISBN: 1558603530; Amazon, Morgan Kaufman
  • Optional:
    • 3D User Interface: Theory and Practice; by Bowman, Kruijff, LaViola, Poupyrev; 2005; Publisher: Addison-Wesley Professional; ISBN: 0201758679
    • Virtual Art: From Illusion to Immersion; by Oliver Grau; 2004; Publisher: MIT Press; ISBN: 0262572230
Web Board:On CSE webboard server. Let me know if you have problems loggin in.

Course Objective

The course gives an overview of the technologies used to create virtual environments, with a focus on scientific visualization. This includes display and interaction hardware, as well as software to create 3D models, display and interact in these environments. After taking the course, students will be able to create and display simple 3D data sets in immersive environments, and interact with them with 3D input and display devices.


Course Outline

The first half of each class is going to consist of a lecture on a topics related to the creation and the display of data for virtual environments: virtual reality software, 3D modeling tools, file formats, 3D input devices, interaction metaphors, technologies for 3D stereo, semi and fully immersive display environments, and spatialized sound. In the second half a recent research paper and technological developments are going to be discussed to give an overview of the current state of research in the field. The course will be accompanied by an optional small programming project in the Immersive Visualization Lab at the California Institute for Telecommunications and Information Technology (Calit2). The programming project is going to teach students how to write software to display computer graphics in an immersive environment, and how to implement user interaction. The programming language will be C++, and we will use the graphics libraries OpenGL and OpenSceneGraph.


Enrollment Instructions

To enroll in the class please contact: Please include your name and PID number in your email.


Schedule of Topics

DayTopicEventsTextbook chapters coveredPaper to read and summarizeName of student presentingTitle of paper presented
9/21 Course overview Tour of Immersive Visualization Lab (Atkinson Hall)        
9/28 Introduction to VR, history, definitions Students must have picked a research paper; programming project #1 out 1, 2 Cruz-Neira, Sandin, DeFanti: Surround-Screen Projection-Based Virtual Reality: The Design and Implementation of the CAVE. In Proceedings of SIGGRAPH 1993    
10/5 Input interfaces, tracking systems   3 Kuester, Chen, Phair, Mehring: Towards Keyboard Independent Touch Typing in VR. In Proceedings of the ACM Symposium on Virtual Reality Software and Technology (VRST’05)    
10/12 Output interfaces, human vision   4 Perlin, Paxia, Kollin: An autostereoscopic display. In Proceedings of SIGGRAPH 2000 Chih Liang J.T. Klosowski, M. Held, J.S.B. Mitchell, H. Sowizral, K. Zikan: Efficient Collision Detection Using Bounding Volume Hierarchies of k-DOPs, IEEE Transactions on Visualization and Computer Graphics 4(1), 1998
10/19 Rendering in immersive environments, scene graphs Programming project #1 due, programming project #2 out 5 Naef, Staadt, Gross: blue-c API: a multimedia and 3D video enhanced toolkit for collaborative VR and telepresence. In Proceedings of the 2004 ACM SIGGRAPH international conference on Virtual Reality continuum and its applications in industry, 2004 Neil Alldrin S. Li, K. Fukumori: Spherical Stereo for the Construction of Immersive VR Environment, In proceedings of IEEE Virtual Reality 2005
10/26 Interaction concepts, 3D GUIs Specification of programming project #2 due (in writing) 6 Kelso, Arsenault, Satterfield, Kriz: DIVERSE: A Framework for Building Extensible and Reconfigurable Device Independent Virtual Environments, In Proceedings of IEEE Virtual Reality 2002 Daniel Rohrlick Schmalstieg, Raitmayr: The World as a User Interface: Augmented Reality for Ubiquitous Computing, In Proceedings of the Central European Multimedia and Virtual Reality Conference (CEMVRC 2005)
11/2 VR applications, software frameworks   7,8 Pertaub, Slater, Barker: An Experiment on Fear of Public Speaking in Virtual Reality, Studies in Health Technology and Informatics, 81:372-8, 2001 Jeffrey Moguillansky I. Wald, P. Slusallek, C. Benthin, M. Wagner: Interactive Rendering With Coherent Raytracing, in Computer Graphics Forum/Proceedings of EUROGRAPHICS 2001, pp. 153-164, 20(3)
11/9 Collaborative systems, spatialized sound     M. Pinho, D. Bowman, C. Freitas: Cooperative Object Manipulation in Immersive Virtual Environments: Framework and Techniques, In Proceedings of Virtual Reality Software and Technology (VRST), 2002, pp. 171-178    
11/16 Guest lecture by Prof. Thomas DeFanti (UCSD/Calit2), topic: High-resolution video transmission over fast networks     Shimizua et al.: International real-time streaming of 4K digital cinema, Future Generation Computer Systems, Volume 22, Issue 8, October 2006, Pages 929-939    
11/23 no class Thanksgiving Day        
11/30 Qualitative assessment of VR applications; the future of VR   9 Gruchella: Immersive Well-Path Editing: Investigating the Added Value of Immersion, in Proceedings of IEEE Virtual Reality 2004    
12/05 Presentation of programming projects Programming project #2 due        

The schedule is tentative and subject to change depending upon the progress of the class.


Programming projects

There will be two programming projects throughout the quarter. You will have three weeks to complete programming project #1, and about six weeks to complete project #2. For project #1 you will get a source code template with basic functionality to add your own code to. For project #2 you may re-use code you have written for project #1 as needed. All code will be written in C++ and has to run on the c-wall virtual environment in Calit2's Immersive Visualization Lab on the first floor of Atkinson Hall. You will get swipe card access to the lab for the duration of the quarter, and I will be available to assist you with technical questions about the implementation of your projects whenever I am in the lab and by appointment. For the implementation I strongly recommend using the visualization framework COVISE, which is based on OpenSceneGraph and is available on all lab machines. Other approaches (e.g., CAVElib, VR Juggler) may be acceptable but need to be cleared with me, and I may not be able to answer your framework specific questions.

More details about the projects can be found at the following links:

Project #1
Project #2

Click here for general information about how to write Covise modules with our lab machines.


Grading

The final grade will be calculated as follows:

 1 unit2 units
Paper summaries40%20%
Paper presentation40%20%
Class participation20%10%
Programming project #1n/a20%
Programming project #2n/a30%

Research paper summaries

For each paper which is not being presented by a student, you will write a three paragraph summary and evaluation of the paper (minimum: 300 words). Briefly summarize the paper in the first paragraph and discuss the paper's main contribution. In the second and third paragraphs, discuss what you liked and disliked about the paper, respectively. Include in the discussion what you thought was especially strong about the paper, or what you thought could be improved and how. The summaries are due at 2pm on the Thursday they are listed in the syllabus for, to be submitted via email to the instructor: jschulze AT ucsd.edu

Research paper presentation

The research paper presentations will give you the experience of reading, synthesizing, and presenting other people’s research. You need to choose one full length (6 pages or more) research paper (not a course, tutorial, or keynote speech) from the following international virtual environment conferences by 2pm on September 28: IEEE Virtual Reality 2005, IEEE Virtual Reality 2006, Eurographics Virtual Environments 2005, Eurographics Virtual Environments 2006. You can find most of the papers on-line, either in the respective digital libraries (e.g., IEEE VR) or with Google Scholar. The digital libraries should be accessible from on-campus machines at no charge. If you work off-campus, you can access the papers as described here.

Note that some of the Eurographics papers are not available on-line and UCSD doesn't have an on-line subscription, in which case you should consult with me, or contact the first author directly, if Google Scholar is unsuccessful.

Your presentation should last at most 20 minutes, after which you will be in charge of leading an up to 10 minute discussion. I will be very strict regarding timing and will interrupt you after the 20 minutes mark. You should assume that your audience has not read the paper beforehand, and you will want your audience to walk away with a general idea of what the paper is about and what its research contribution is. It is required that the presentation be supported by electronic slides, e.g., created with Powerpoint, presented on the classroom's projector.

Class participation

A good portion of the learning in this class will come from intelligent discussion involving the instructor and the students. Consequently, some portion of your grade will be determined by class participation. If you do not attend class, you cannot participate, and your grade will reflect that. I expect that each student will make an effort to attend all lectures and contribute constructively to the discussion.

Programming projects

There are going to be two programming projects. The first one is on a well defined problem, the second one will give you more freedom to implement what you would like. Every project specification for the second project needs to be cleared by me.

The first project has to be done by every student individually. For the second project, groups may be formed. If you are working in a group, I will assume that each student contributes equally to the outcome of the project, and consequently, each student in the group will get the same grade. If there is a concensus in the group that individual members have not pulled their weight, those members' programming project grade will reflect this. A project in which N students collaborate has to be N times as complex as a project done by a single student.


Other policies

You are expected to attend all lectures on time, and you are expected to conduct yourself in a professional manner. This expectation includes submitting assignments at the appointed time. Deliverables will be marked down 10% for each full day (rounded up) they are late, with or without an excuse. Any conflicts with deadlines should be brought to my attention as soon as possible and in all cases prior to that date. You are expected to follow the university's code of academic conduct. Cases of suspected academic misconduct will be immediately forwarded to the dean, and will be pursued to resolution. Group projects are expected to be done collaboratively.


The information on this web page will get updated as the quarter progresses.