EECS 440 : Extended Reality for Social Impact
Capstone / MDE Course
Instructor : Austin Yarger (ayarger@umich.edu - ayarger.com) - Course Website : eecs440.com
The emerging, diverse field of XR / Spatial Computing holds tremendous potential for positive social impact as seen in local startups like Spellbound AR (right), which uses augmented reality to improve the pediatric medical experience for children. Our semester concludes with an XR exhibition (left) in which community members partake in our XR experiences (including Urban Rush, the VR fitness adventure you see above on the left).
Seeking More GameDev / XR Courses?
From pediatric medical care, advanced manufacturing, and commerce to film analysis, first-responder training, and unconscious bias training, the fledgling, immersive field of extended reality may take us far beyond the realm of traditional video games and entertainment, and into the realm of diverse social impact.
“EECS 440 : Extended Reality for Social Impact” is a programming-intensive senior capstone / MDE course that empowers students with the knowledge and experience to…
Students will conclude the course with at least three significant, socially-focused XR projects in their public portfolios. Note : This is not a crypto or metaverse course, though both will be discussed during a lecture on ethics and the technology hype cycle.
The approximate value of EECS 440’s assignments are listed below. Each project is represented by a (often substantial) set of sub-assignments (see further below).
Assignment | Est. Grading Weight |
Exploration Assignments (week 1) (exploration_vr) (exploration_ar) Exploratory assignments. Hands-on with modern VR, AR, and campus dev resources. Team size : 1, Duration : 1 week | 10% |
Tutorial Assignments (week 2) Heavily-guided development assignments. Intro to Unreal Engine and Unity. Team size : 1, Duration : 1 weeks | 10% |
Project 1 - VR : CSE Simulator (weeks 3-5) (p1_milestone) (p1_alpha) (p1_gold) (p1_pm) (p1_postmortem) Exercise virtual reality design techniques and technologies in the creation of a Job Simulator variant titled “CSE Simulator”. Team size : 2, Duration : 3 weeks | 15% |
Project 2 - AR : A2-Go! (weeks 7-9) (p2_milestone) (p2_alpha) (p2_gold) (p2_pm) (p2_postmortem) Exercise augmented reality design techniques and technologies in the creation of a Pokemon Go variant titled A2-Go! Team size : 2, Duration : 3 weeks | 15% |
Project 3: Showcase Impact Project (weeks 11-15) (p3_milestone) (p3_milestone_2) (p3_alpha) (p3_gold) (p3_pm) (p3_postmortem) Exercise design, implementation, and project management knowledge in the creation of a substantial, custom, socially-impactful VR or AR project. Team size : 4-5, Duration : 5 weeks (with some preparation in earlier weeks) | 37.5% |
Culture Film study. Cultural / artistic explorations of XR’s potential impact on the future of society. | 10% |
Participation Engage in lectures, user testing sessions, and team projects with congeniality. May go negative and have impact beyond 2.5% of overall grade. | 2.5% |
The course schedule is subject to industry interviews, field trips, and vacation days that may be difficult to predict-- causing small variations from semester to semester.
A portion of Winter 23’s EECS 440 schedule document. Read top-to-bottom, green means an assignment is launching and red means it is due. Find today’s date in the leftmost column, then move your eyes right to see what you should be working on. Lecture plans, including links to slides, announcements, etc, are available in the second-from-right column.
EECS 440 employs the standard grading scale below in converting scores to letter grades.
Final grade projections are released on Canvas in the final several weeks of the course. Students are granted a period of at least 24 hours to review and dispute final grades before their submission to Wolverine Access.
Students are required to have successfully passed EECS 281 before taking this course. Non-CSE undergraduates / graduate students with ample programming experience may request permission without EECS 281, though CSE undergraduates must be prioritized (this course may be necessary for them to graduate).
There is no book requirement.
EECS 440 assignments require significant use of modern VR hardware, graphics-intensive 3D software (Unity, Unreal), and access to an AR-capable mobile device (android phone list, apple device list). Students are expected to make ample, recurring use of the Duderstadt Center Visualization Studio which contains gaming-grade computers and specialized VR hardware.
Students with personal access to this kind of hardware may use it outside of the Visualization Studio to progress on course assignments and projects. In the first week, students may enter an equipment lottery for a chance to acquire temporary, take-home VR headsets.
Students without access to an AR-capable mobile device are encouraged to obtain one (making a purchase, request one temporarily from a friend, etc) or consider a different course.
Some combinations of equipment / devices will produce more friction than others.
Check the platform pain matrix to learn more.
Beyond the initial Unreal Engine installation (~50GB) and Unity installation (20GB), XR projects are notorious for large storage footprints and fast growth (especially when employing high-quality asset packs). If you plan to use a personal device for development during this course, we recommend allocating ~100GB of local hard drive space if possible. WinDirStat may help Windows users find this space, while Disk Inventory X may serve Mac users.
Students will have the opportunity to apply for check-out, take-home VR headsets for use on assignments and projects. Please keep an eye out for the optional “equipment lottery” assignment in the first week of the course. All checked-out equipment must be returned in its original packaging, and in functioning order, before a student’s final course grade will be released. All equipment-lottery VR headsets have a replacement cost of $299.
EECS 440 is a challenging course that requires, and rewards, a significant investment of time.
Please reconsider taking EECS 440 if you...
The course will target an average grade of “B+ / A-”. This course does not employ exams.
Graduate students are advised against taking EECS 440 due to its substantial time requirements and undergraduate-style grading structure. Please discuss with your advisor and reach out to the course staff if considering registration. Note that undergraduate CS students get priority seating, as they need a course of this type to graduate (graduate students may be required to wait until a week or two after the semester begins to complete registration– reach out to the instructional staff to get access to the course canvas / piazza site in the meantime).
Non-CSE Graduate Students seeking to take the class should fill out this form.
A number of resources exist to improve one’s EECS 440 experience--
Check the course canvas site for links to...
Should you feel overwhelmed, or find yourself spending more than 12 hours on assignments per week, please reach out to the course staff at xrcoursestaff@umich.edu-- We will be happy to discuss your progress, techniques for time-efficiency / assignment planning, and ways to get back on track.
Should you find yourself unable to make progress due to factors beyond your control (sickness, family emergency, etc), please reach out immediately for extension consideration. Extensions will not be granted in situations where a project teammate may carry the burden temporarily.
Course participants must follow all relevant safety protocols and guidelines when interacting with course check-out hardware or the Visualization Laboratory. A sanitization procedure must be completed before and after usage of VR equipment. Please visit the VR laboratory or consult the course Canvas site to learn more.
Lecture recordings will be made available an hour or so after a given lecture concludes (check canvas for a link to the recording repository).
You may find lecture recordings from previous semesters, in addition to other gamedev content, on the course youtube channel.
All deliverables required of an assignment must be submitted to the appropriate course canvas site. The student is responsible for meeting every requirement of the assignment specification, and following submission procedures including deliverable naming, timeliness, etc.
Students are responsible for understanding the submission technology and processes used by canvas, and will be held responsible for the team submissions executed by their assignment teammates. Students will not be held responsible for submission difficulties outside of their control, such as widespread canvas server outages. For game-based deliverables, only the executables will be graded. If the submitted executables cannot be graded, the submitted source will be graded (but only the game beginning with the main scene, and only if no changes are necessary to run the game. The Incorrect Submission Format Penalty will also be applied).
Assignments submitted late will be subject to the following policy, exhibited in the Python programming language (unless otherwise specified in the assignment specification)--
if hours_late < 0.0: return graded_assignment_score elif hours_late < 24.0: Return graded_assignment_score * 0.8 return 0.0 |
Note that Canvas’ assignment submission timestamp will be the ultimate authority of when something was turned in. Begin your upload early to account for networking or technology-related delays. Assignment extensions will only be granted for exceptional, extenuating circumstances beyond the student’s control, and not in situations where a teammate may carry the burden temporarily.
Teams may request the course staff grade an earlier submission if the request is made before the staff begins grading.
Submitted assignments that do not meet the submission requirements outlined in the “Deliverables” section of its assignment specification will have a 20% “incorrect submission format penalty” applied.
Missing files, broken builds, etc are typical reasons for application of this penalty.
The “Late Assignment Submission” and “Incorrect Submission Format” penalties described above may stack to form a single 40% penalty.
Team members that provide substantially less investment than the average of their project peers will have a penalty applied to their project score (via their participation grade). Evidence will be collected from peer evals and the course MS Project time management system, and presented to the student in question.
The penalty calculation adheres to the following formula--
As a result of this policy, team members who contribute substantially less than the average of their peers on a project should expect to receive substantially fewer points on those projects. It is possible for participation grades to go negative, allowing the penalty to have its full impact in all cases.
There is no explicit penalty for truancy, though much is likely to be missed without timely attendance. Those who cannot attend lectures in-person may watch recordings made available several hours later. Note that several assignments / projects require an on-campus presence.
Any released grade may be disputed, either at office hours or via email (xrcoursestaff@umich.edu), so long as the dispute is raised within one week of the released grade.
Grades will only be considered for adjustment in situations where the instructor’s grading process is “cut-short”, or rendered incomplete, due to the instructor failing to notice features / content of the deliverable, or being physically unable to due to a high difficulty or by demanding an unreasonably long time investment of the grading staff.
To clarify, the following are not valid reasons to request a regrade--
Office hours will be held weekly, in both in-person and virtual modes, with each instructional staff member contributing at least one hour per week. Check the course Canvas site and calendar for office hour dates, times, and locations.
EECS 440 provides an abundance of extra credit opportunities in an effort to...
Points earned via extra credit opportunities will be applied following any curve when final course grades are tallied. Students need not fear point inflation caused by classmates earning extra credit points.
EECS 440 is a highly collaborative course in which students engage often with one another and the course staff. Students will…
Students who fail to meet these expectations risk reduction of their participation score, or in egregious cases, referral to the Dean’s office.
In their EECS 440 collaboration, students must respect the following policies…
It is generally acceptable to discuss project goals and technical / design concepts at a high-level. Refrain from discussing exact solutions or viewing another team’s assignment code. If in doubt, ask the course staff.
Failure to comply with these policies may result in a reduction of the assignment grade and / or referral to the honor council.
Austin is an international educator and Lecturer of Game Development in the University of Michigan’s College of Engineering, co-founder of the International Game Developers Association (Ann Arbor Chapter - https://igda2.org), and President of Arbor Interactive, a local game and software development firm (www.arborinteractive.com).
A long-time hobbyist game developer, Austin got his taste of professional game development in the summer of 2014 with an internship at Maxis (Electronic Arts) where he helped engineer 2015’s top selling computer game, The Sims 4. Austin has taught EECS 494 (eecs494.com) since 2017, EECS 440 (eecs440.com) since 2022, and EECS 498.007 (eecs498.com) since 2024. His students have achieved positions at prestigious game developers such as Microsoft’s 343 Industries, Volition, Zynga, Google, Gaudium, NetEase, Jackbox Games, and Amazon Game Studios.
In addition to stops at EA Mobile and Facebook, Austin served as President of the Wolverine Soft game development organization from 2011 – 2014. He co-founded the Ann Arbor chapter of the International Game Developers Association (www.igda2.org), curates the MichiGames Arcade Cabinet, mentors the Huron High School Game Development Team, consults with technology startups in downtown Ann Arbor, and organizes multi-university exhibitions with Eastern Michigan University. He acquired a Bachelors and Masters degree from the University of Michigan in 2015 and 2018, respectively. His research interests include non-gaming applications of game development tools, technologies, and techniques. Learn more at www.ayarger.com.
Andy is a student studying computer science at the University of Michigan. He is also president of the Alternate Reality Initiative, founding member of Mixel Studio, and most importantly, excited about the future of extended reality! He plans to build virtual tools in pursuit of real impact, especially in education.
His love of XR began in high school, where by day he would research human movement with a Meta Quest, and by night he would play Beat Saber. By creating experiences that leave people with not only useful skills, but a new sense of wonder, Andy hopes to change all words – virtual and physical – for the better.
Nowadays, Andy spends his time building a VR chemistry visualization tool, recreating a lost film within an immersive space, and designs mixed reality block code experiences for young learners! If you’d like to contact him for any reason, please reach out to andyyao@umich.edu, or pop by the VisLab– there’s a 50/50 shot he’s in there for some project or another.
EECS 494 is a CSE capstone course that introduces students to the technologies and techniques behind modern recreational video games. The course focuses on game development in the traditional context of entertainment, only briefly touching upon the unique hardware, challenges, and opportunities afforded by extended reality and non-entertainment / socially-impactful pursuits. These courses have fairly different topics and vastly different goals– students who are seeking to work in the traditional video game industry are recommended to take EECS 494, while those seeking to work in the emerging field of VR, AR, and Visualization applications are encouraged to take EECS 440. Should you take both courses, know that the second capstone / MDE course that you take will not count as ULCS credit, but likely will count as FlexTech. |
EECS 498 is a CSE ULCS course that introduces students to the low-level technologies and patterns that power modern game engines such as Unity and Unreal Engine. Students will build their very own custom game engine from the ground up, utilizing industry-standard technologies (such as SDL, C++, Lua, etc) and techniques (such as component-based and data-oriented programming). EECS 498 is a programming-intensive course that will dramatically improve one’s knowledge of C++, and performance, and thus is best taken by students seeking employment in the games industry (or an adjacent industry). EECS 498 is best taken with a lighter courseload, possibly including EECS 440 (but definitely not EECS 494). The course counts as 4 ULCS credits. |
The course is designed such that one does not need to do any pre-semester preparation. If you find yourself with extra time, you might consider…