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. You will need U card access to this room.
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) 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 distribute two late days among your assignments (not the final project). 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 12, 14, 16
  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. 19 (no class), 21, 23
     19th - no class, MLK Jr. Day
  Displays and Graphics
     Intro to VR Graphics - Human capabilities
     Stereo displays 
     Graphics pipeline review
     My view frustum notes 
     Projections and view frustums
     Nate's OpenGL projection tutor (compiled for windows)

Week 3: Jan. 26, 28, 30
     Assignment: View Frustums (due Feb. 9, 5PM)
     Open Scene Graph
     Scene graph/Frustum clipping/Image impostors and billboards
     Paper critique 2: Does CG quality matter? and A pit paper.

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

     Statistics     
     Filters

Week 5: Feb 9, 11, 13
     Lab tour/Equipment/Tracking software/libraries
     Assignment 2: Head-tracked display (due Feb. 23, 5P.M.)
     Merging measurements
	     - gaussians
	     - estimation theory
     Kalman filters
     Paper critique 3: Constellation
                       A tracking review article 


Week 6: Feb. 16 (no class), 18, 20
  HCI
     Navigation
     Selection and Manipulation
     menus, text boxes, interface props (doll head, passive haptics, etc)
     Paper critique 4: Seven League Boots
                       VR Interface survey
     
Week 7: Feb. 23, 25, 27
  Simulation
     My collision notes
     Collision Detection for Primitives
     Assignment 3: Selection  (due Mar. 13, 5P.M.)
     GJK - a good GJK ref
     Hierarchical Collision Detection

Week 8: Mar. 2, 4, 6
     Hierarchical Collision Detection
     Collision Response
               - some helpful readings
               - SIGGRAPH 2001 course
     AI/crowds

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

Week 10: Mar. 16, 18, 20 
     Spring Break

Week 11: Mar. 23, 25, 27
  Augmented Reality       
     Monday -   Introduction and basic concepts
     Wednesday Assignment 4: add physics and haptic interaction to 3D scene (due Apr. 8)
          Software: ARToolkit and tracking mathematics
     Friday - Paper critique: Shader Lamps
	      	    
Week 12: Mar. 30, Apr. 1, 3
     Final project discussion
  Applications and environments
     Apps: Virtual worlds - Second Life
     HMD fieldtrip

Week 13: Apr. 6, 8, 10
     Final project proposal pitches
     Stereo powerwall demo
     Assignment 5: AR Toolkit (due Apr. 15)
     Apps: Medical     
     Apps: Virtual prototyping

Week 14: Apr. 13, 15, 17
     Animating the VR World
     Project consult    - project progress report due. 
     no class
     
Week 15: Apr. 20, 22, 24
     Final review
     Mini final
     project work/consult

Week 16: Apr. 27, 29
     Project reports
     Project reports

Final period: Monday, May 4th (Project reports may move here)