Virtual Reality
CP SC 6360

Note: Even though Robotics is listed as a prerequisite for this course, it is not even remotely required. Some programming ablity is useful, as the assignments are largely interfacing with VR gear. C/C++ is the normal language used. Some graphics background is helpful, but not required, and people have been very successful in the past with no graphics/OpenGL experience.

Schedule: MWF 10:45-11:35
Location: WEB - 1450 (this is near the cafe in the new Warnock building)
Instructor: David Johnson
Email: dejohnso@cs.utah.edu
Office: 2875 WEB (ph) 585-1726
Lab:  Assignments will be done in MEB 2172. Access to equipment will be limited and will need to be shared by signing up for time.
Hours: I am generally available and through appointment.
Text:   I will write up notes and rely on papers.

Objectives

This course will introduce students to the software, hardware, and concepts involved with the current state of the art in virtual reality (or virtual environments). Some of the topics that likely will be presented include: The course will also include readings from the various conferences and journals where Virtual Reality research is published and exposure to various VR toolkits and software systems. Students should finish the course with:

Grading

Your course grade will depend on the following factors:
 Programming Assignments (5 or 6) 55%
 Final Project Paper and Talk 25%
 Paper Critiques and Discussion 10%
 Mini-Final Exam 10%

Policies

Late Policy: Zero credit is given for late work, please just submit what you have for partial credit if unfinished. However, you may submit one assignment (not the final project) up to two days late. You must notify me of your intent to use this privilege by the original due date. Also, additional leeway can be given for officially sanctioned University activities.

Cheating and Plagiarism: Students are encouraged to discuss approaches with one another and to help one another with computer infrastructure questions, but not to share or view another person’s code.

This is a graduate level course. As such, students are expected to behave in a professional manner.

Accommodations: The University of Utah seeks to provide equal access to its programs, services and activities for people with disabilities. If you will need accommodations in the class, reasonable prior notice needs to be given to the Center for Disability Services, 162 Union Building, 581-5020 (V/TDD). CDS will work with you and the instructor to make arrangements for accommodations.

Schedule (to be adjusted as needed)

Week 1: Jan 7, 9, 11
  Intro to VR
     VR intro/course intro
     VR history
     Paper critique 1: Sutherland "The Ultimate Display" and Brooks "What's Real About Virtual Reality"

Week 2: Jan. 14, 16, 18
  Displays and Graphics
     Intro to VR Graphics - Human capabilities
     Graphics pipeline review
     My view frustum notes 
     Projections and view frustums
     Here is a page on multi-point projection
     Stereo displays 
     Assignment: View Frustums (due Jan. 30 5PM)
     Nate's OpenGL projection tutor (compiled for windows)

Week 3: Jan. (21 is MLK holiday), 23, 25
     Paper critique 2: Does CG quality matter? and A pit paper.
     Scene graph/Frustum clipping/Image impostors and billboards

Week 4: Jan. 28, 30, Feb. 1
  Tracking
     My tracking notes
     Intro to tracking/Human capabilities/Tracking math
     Tracking technologies
	      - mechanical
	      - magnetic (review AC/DC current, induction, etc)
	      - ultrasound
	      - optical

     Software: Tracking software/libraries

Week 5: Feb 4, 6, 8
     Assignment 2: Head-tracked display (due Feb. 19 - now Feb. 21, 5P.M.)
     Statistics     
     Filters
     Merging measurements
	     - gaussians
	     - estimation theory
     Kalman filters
     Paper critique 3: Constellation
                       A tracking review article 


Week 6: Feb. 11, 13, 15
  HCI
     Navigation
     Selection and Manipulation
     menus, text boxes, interface props (doll head, passive haptics, etc)
     Paper critique 4: Seven League Boots
                       VR Interface survey
 Balloon selection and 7 league boots.
     
Week 7: Feb. (18 is holiday), 20, 22
  Simulation
     My collision notes
     Collision Detection for Primitives
     - a good GJK ref
Week 8: Feb. 25, 27, 29
     Monday -> Paper critique 5: RAPID
     Assignment 3: Selection  (due Mar. 10, 5P.M.)
     Collision Response
               - some helpful readings
               - SIGGRAPH 2001 course
     AI/crowds

Week 9: Mar. 3, 5, 7
  Haptics and Touch
     Human capabilties and devices
               - background reading 
     Paper Critique 6: Haptic algorithms
	       - God-object paper
	       - 6DOF voxel link
     6DOF	       


Week 10: Mar. 10, 12, 14
     Assignment 4: add physics and haptic interaction to 3D scene (due Mar. 26)
  Augmented Reality       
     See-through displays and tracking
     Software: ARToolkit and tracking mathematics
	       - Assignment: Hallway navigator
     shadows and rendering
	      	    
Week 11: Mar. 17, 19, 21
     Spring Break

Week 12: Mar. 24, 26, 28
     Final project discussion
  Applications and environments
     Apps: Virtual worlds - Second Life
     HMD fieldtrip

Week 13: Mar. 31, Apr. 2, 4
     Final project proposal pitches
     Stereo powerwall demo
     Apps: Medical     
     Apps: Virtual prototyping
Week 14: Apr. 7, 9, 11
     Engaging other senses
     Project consult    - project progress report due. 
     Tactile papers
     
Week 15: Apr. 14, 16, 18
     Final review
     Mini final
     project work/consult
Week 16: Apr. 21, 23
     Project reports
     Project reports