Introduction to Mobile XR
In this course, students will explore the basics of mobile augmented, mixed, and virtual reality. Focus will be placed both on development of XR apps with Unity as well as on the hardware, history, mathematics, physics, algorithms, best practices, and principles behind immersive experiences and what makes them possible. By the end of the course, students will have also gained experience working in a team to develop a real-world XR application of their own choosing.
Class Time and Location
Fridays from 1:00 pm - 1:50 pm in ESJ B0322
This course is offered as part of the Student Initiated Courses (STICs) program at The University of Maryland, which gives students the opportunity to design, develop, and teach an official 1-2 credit class under the guidance of a faculty advisor. As such, all questions and communication about the course (outside of administrative concerns) should be directed towards the student facilitators.
Office hours are a time to meet with the student facilitators to clarify material taught during lecture, get help on projects, discuss course feedback and grading concerns, and even try out cool XR experiences on the lab equipment. They will be held weekly in IRB 0110 (the lab right next to the Breakpoint Cafe) at the times below:
- Mondays from 3:00 pm to 5:00 pm
- Thursdays from 6:30 pm to 8:30 pm
The student facilitators may choose to host additional office hours during periods of high anticipated demand or by the request of student(s). These will be announced on Piazza on a weekly basis.
Office hours with the faculty adviser are by appointment only.
The official prerequisites for most STICs course in the CS department is a minimum grade of C- in CMSC250 and CMSC216. This class has no additional prerequisites. Some students may find that prior exposure to Unity development is helpful, but it is by no means necessary to do well in this course.
There is no required textbook for this class. All necessary material will be covered in class and posted online. Links to supplementary suggested resources will be posted weekly on this site.
This course consists of three main units, in addition to the final project. Below is the tentative list of topics we aim to cover during this semester.
1 - Unity
- The Editor Interface
- Building Blocks (GameObjects, Components, etc.)
- C# Scripting
- Script Lifecycle
- Physics System (Colliders, Rigidbodies, etc.)
- Physics Interactions (Gravity, Collisions, Forces, Raycasting, etc.)
- User Interfaces (UIs)
- Scene Management
- Events & Delegates
- Using Unity API Documentation
2 - Virtual Reality
- History of VR
- Headset & Controller Tracking
- Eye, Hand, & Body Tracking
- Interactions in VR
- Spatial Audio
- Best UX Practices
- Minimizing Motion Sickness
- Performance Optimization
- Oculus Integration
3 - Augmented & Mixed Reality
- History of AR
- Feature Point Detection
- Edge Detection
- Plane Detection
- Simultaneous Localization and Mapping (SLAM)
- Device Tracking
- Depth Perception
- Lighting Estimation
- Real-World Occlusion
- Best UX Pracitces
- The AR Cloud
- AR Foundation framework
- XR Interaction Toolkit
NOTE: Due to the unprecedented COVID-19 crisis that resulted in major changes to the UMD Spring 2020 Academic Calendar, the class schedule for week 7 and beyond has been restructured to accommodate the compressed timeframe. Changes to the original schedule can be identified by the strikethrough. The additional resources listed below still correspond to the original schedule and topics.
The homework assignments are designed to complement the material taught in class from a practical standpoint. Most of them will be in a project-style and may require a significant learning effort outside of class. Unless otherwise stated, all homework assignments are to be completed individually and must be submitted via ELMS before 5:00 AM on the due date listed below.
For each of the individual homework projects, the course staff will select up to three "winning" submissions. These are projects that demonstrate exceptional creativity, polish, and/or initiative beyond the expectations outlined in the project description. Completing the suggested optional bonus task(s) is one possible way to make your project stand out as a "winning" submission, but it is certainly not the only way to do so, nor does it guarantee that you will in fact "win". Note that the winning submission(s) is not necessarily the one(s) with the highest score(s). Students with a winning submission will be recognized below once grades have been released for the project.
|Project 0: Spinning Cube||02/07||Harish Kumar
|Correct Git Usage Quiz||02/07||N/A|
|Project 1A: Barrel Bouncer (Setup)||02/14||Jim Kong
|Project 1B: Barrel Bouncer (Interactions)||02/25||Berkely Kim
|Project 1C: Barrel Bouncer (UI & Scoring)||03/03||Tyler Brinkley
|VR Best Design Practices Activity||03/12*||N/A|
|Project 2: Barrel Bouncer VR Edition||04/06||Kyle Lam
|AR Best Design Practices Activity||04/10||N/A|
|Project 3: Barrel Bouncer AR Edition||04/22||Jim Kong
* This assignment must be completed and turned in during office hours.
The final project constitutes the culminating part of the course, where teams of 4-5 students can apply what they've learned all semester to a project that they design from scratch. The cards below depict the final projects that were created for the Spring 2020 semester. Click on a card to learn more about the project!
Become an alchemist...right in your living room! Drag and mix AR elements to create new ones. Can you discover them all?
Escape the Castle
Trapped in the dungeon of a castle with nothing, you must find a way to escape before you become a feast for dragons! (Dragons not included)
In this Virtual Reality game, navigate through the darkness to find the exit of the pitch black escape room.
Multiplayer AR Holochess anyone can play on their phones. Inspired by holographic Star Wars game Dejarik, our game is out of this world!
Maze Simulator 1998
Test your maze-traversing and puzzle-solving intuition in our VR maze game. Make your way through a labyrinth and solve puzzles to proceed.
vRchery is a VR archery game where the player enters a world in the clouds. Knock, draw, and let loose arrows at targets around the space!
Grades will be maintained on ELMS. You will be responsible for all material discussed in lecture as well as other standard means of communication (Piazza, email announcements, etc.), including but not limited to deadlines, policies, assignment changes, etc.
Any request for reconsideration of any grading on coursework must be submitted within one week of when it is returned. No requests will be considered afterwards. Note that any coursework submitted for reconsideration may be regraded in its entirety, which could result in a lower score if warranted.
Your final course grade will be determined according to the following percentages:
Final course grades may be curved as necessary, based on each student's total numerical score for all coursework at the end of the semester. But: It is very likely that 90 and above earns an A, 80-90 earns a B, 70-80 earns a C, etc.; the curve will only lower the cutoffs, not raise them. Plus/minus grades will be assigned towards the higher and lower ends of the grade ranges.
Excused Absence and Academic Accommodations
See the section titled "Attendance, Absences, or Missed Assignments" available at Course Related Policies.
Due to the nature of the assignments, in-class participation points cannot be made up. Students with a University-approved excused absence will be excused from that class's participation points, and their overall participation grade will be calculated based on the remaining weeks' assignments. Students are still responsible for learning all material discussed in lecture.
Quizzes are considered major graded assessments for this course. As such, students who miss a class where there is a scheduled quiz must provide verifiable documentation in order for a make-up to be given. All make-ups should be taken as soon as possible, no later than one week after the quiz, except under extreme documented circumstances that prevent this from happening.
It is the student's responsibility to inform the instructor prior to class if they anticipate an having absence.
Disability Support Accommodations
See the section titled "Accessibility" available at Course Related Policies.
Please make sure you are familiar with the CS Department Academic Integrity policy as well as the University Academic Integrity policies, which can be found in the sections titled "Academic Integrity" and "Code of Student Conduct" available at Course Related Policies.
Note that academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. In short, all submitted work must be your own. Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct. It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit https://www.studentconduct.umd.edu/.
If you have a suggestion for improving this class, don't hesitate to tell the instructor or TAs during the semester. At the end of the semester, please don't forget to provide your feedback using the campus-wide CourseEvalUM system. Your comments will help make this class better.
Thanks to the CS professors at the University of Maryland, College Park for the basic syllabus outline.