Materials for "TECH 1711 - Mixed Reality Studio" at Woodbury University - Spring 2018
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

TECH 1711 - Mixed Reality Studio

Section Name: TECH.1711 08/21/2017 - 12/08/2017
Monday & Wednesday 9:30AM - 12:00pm
Classroom: M209
Instructor: Ivaylo Getov -

This class will explore various platforms for the design and creation of AR and VR applications. Emphasizing hands-on experimentation, this experiential studio is meant to be a collaboration between both programmers and designers to research and develop new paradigms for user experience and new pipelines for the creation of 3D content. Using the Unity game engine and various hardware equipment, such as the Microsoft Hololens, HTC Vive, and mobile devices, students will work individually and in teams to practically apply novel design principles, culminating in a semester project demonstrating a critical approach to designing for these emerging forms of media.

This Monday-Wednesday class will be substituted for a Saturday 5-hours class up to three times during the semester. Dates TBD.

Former students looking for materials from TECH 3706 & ARCH 6760 - AR/VR in Architectural Environments or TECH 421 - Future of Digital Media (Fall 2017) can check out the fall2017 branch of this repo.

Class Format

Mixed Reality is a rapidly evolving field, both professionally and pedagogically. Encompassing VR, AR, and any number of trendy buzzwords such as "experiential" and immersive, it stretches across disciplines and can be informed by a variety of expertise. I want to create an environment where you can experiment with new techniques and practices, which are themselves in constant flux as the technology changes and finds its audience.

The class will be structured as a hands-on lab - lectures will serve to introduce or explore concepts that are then put to the test.

The first session each week (Monday) will tend to be more theoretical, while the second (Wednesday) will dive deeper into execution, coding, and implementation.

We will be on our feet. We will move fast and break things so that we learn how to fix them. We may venture outside and get our hands dirty. You will be asked to split into groups - others may be relying on you to complete a portion of a larger project and it will be your responsibility to deliver.

This course itself is relatively new - the schedule below is tentative and will very likely change over the first couple weeks. Please check this git repository each week to find the most up to date schedule and topics.

Reading and Course Notes

This course will not have an assigned textbook. Rather, students are required to read or watch additional material as assigned each session. We will be leaning heavily on participation and discussion in this course, and these readings will help get a better intuition and deeper understanding into relevant topics.

All presentation materials, notes, and referenced texts will be made available via this git repository as soon as possible after each session.


Participants will show proficiency in the following student learning outcomes.

  1. Develop understanding of Mixed Reality design and development concept and practices
  2. Develop familiarity with a cross-section of Mixed Reality hardware.
  3. Develop proficiency designing for experience and space rather than pixels.
  4. Complete hands-on exercises and projects to demonstrate familiarity with concepts of Mixed Reality.


The following course content will be covered.

  1. Introduction to the Unity game engine.
  2. Introduction to C# Programming
  3. Introduction to “Creative Coding”
  4. Intro to simulated Physics
  5. The history of Virtual/Augmented/Mixed Reality.
  6. Differences between Augmented/Mixed/Virtual Reality.
  7. Designing for space instead of screens.
  8. Hands-on work with Microsoft Hololens, HTC Vive, and Apple iOS/ARKit
  9. Basic User Interface (UI) and User Experience (UX) design.
  10. Introduction to project design/organization methods (MVP, Agile, Double-Diamond, etc.)


Students will be evaluated based on the following criteria.

  1. Active and verbal participation in in-class discussion to demonstrate completion and understanding of assigned reading.
  2. Careful attention to execution, technique and completion of projects
  3. Personal challenge and effort in project development
  4. Deadline compliance
  5. Performance in student learning outcomes


Your final grade will be made up from:

  • Participation, attendance, in-class projects/exercises: 60%
  • Midterm project: 15%
  • Final project: 25%

Guidelines and Policies

Please review the official department guidelines and policies on the printed syllabus.

Schedule (Tentative)

Session 01 - 01/17/18 (Wednesday)

  • Introductions, course overview, housekeeping
  • Intro to AR/VR/MR design principles
    • A brief history
    • Defining some terms
    • designing the real world
  • Choosing our tools for efficient prototyping
    • What is abstraction?
    • Why use gaming engines?

Session 02 - 01/22/18 (Monday) && Session 03 - 01/24/18 (Wednesday)

  • No class this week
  • Note: Class time will be accounted for with a Saturday class later this semester.

Session 04 - 01/29/18 (Monday)

  • Intro to Unity
  • What is "Creative Coding"?
    • Coding as writing
    • Coding as prototyping
  • Design principles continued
    • designing the real world (continued).
    • User interaction and expectations

Session 05 - 01/31/18 (Wednesday)

  • Into to Unity Continued
  • Introducing C#
    • C# vs JavaScript
  • Basic Programming Concepts Review
    • variables and functions
    • operations and assignment
    • "returning" a value
  • C# in Unity

Session 06 - 02/05/18 (Monday)

  • Design principles continued
    • VR Health and Safety concerns
    • Thinking about different scales
    • What is "room-scale"?
  • Designing for "Experience"
    • UX and UI
    • Diegetic vs Non-Diegetic
  • Programming++
    • classes and objects - Intro to OOP
    • public vs private

Session 07 - 02/07/18 (Wednesday)

  • VR in Unity
    • Using the SteamVR plug-in
  • Building a "teleport" behavior for VR
    • Pseudocode and planning

Session 08 - 02/12/18 (Monday)

  • Individual VR Exercises
    • Bring Unity scenes into VR
    • Troubleshoot scripts

Session 09 - 02/14/18 (Wednesday)

  • C# recap - Create a C# "cheat sheet"
  • Unity recap
    • Summarize concepts and workflow

Weekend Session 01 (Makeup for S02/S03) - 02/17/18 (Saturday)

  • Saturday intensive
  • Unity Recap
  • In-class project workshop

No Class - 02/19/18 (Monday)

  • Presidents Day

Session 10 - 02/21/18 (Wednesday)

  • Introduce Midterm Project
    • Midterm Project Proposals & Discussion
  • Design Process
    • Double Diamond model
    • Minimum Viable Product
  • Catch-up/recap as needed

Session 11 - 02/26/18 (Monday) && Session 12 - 02/28/18 (Wednesday)

  • No class this week
    • Note: Class time will be accounted for with a Saturday class later this semester.
  • Instructor available for questions

Session 13 - 03/05/18 (Monday) && Session 14 - 03/07/18 (Wednesday)

  • No class this week
    • Note: Class time will be accounted for with a Saturday class later this semester.
  • Instructor available for questions

No Class - 03/12/18 (Monday) and 03/14/18 (Wednesday)

  • Spring Break

Session 15 - 03/19/18 (Monday)

  • Welcome back!
  • Midterm workshop
    • Topics TBD as needed
    • Individual Questions

Session 16 - 03/21/18 (Wednesday)

  • Quick notes on VR "Screen" UI and Text
  • Midterm workshop
    • Topics TBD as needed
    • Individual Questions

Weekend Session 02 (Makeup for S11/S12) - 03/24/18 (Saturday)

  • Saturday intensive
  • Midterm Projects Due
    • In-class showcase and discussion

Session 17 - 03/26/18 (Monday)

  • Intro to AR
    • Designing for a layer on top of the world instead of everything the user sees
    • Sensing the real world
  • Overview of AR Devices
    • Microsoft Hololens
    • Mobile AR (Apple ARKit)

No School - 03/28/18

  • School Closed for Cezar Chavez Day

Session 18 - 04/02/18 (Monday)

  • Intermediate Unity
    • Layers & Tags
  • Intermediate C#
    • Arrays and Lists
    • Loops and working with many objects (foreach)
  • Developing our VR Teleport script

Session 19 - 04/04/18 (Wednesday)

  • HoloLens Workflow
    • Using the Microsoft MixedReality Toolkit for Unity
    • Previewing to a device over the network
  • ARKit Workflow
    • Using the ARKit Plugin
    • Using the ARKit "remote"

Session 20 - 04/09/18 (Monday)

  • Introduce final project
  • Final project pitches
  • Recap available tools/resources
  • "Tech for Me vs Tech for You"
    • technology as design process for the artist/creator VS technology as final deliverable/medium for the user
    • Using AR/VR as tools for the "Generalist"

Session 21 - 04/11/18 (Wednesday)

  • Final project individual meetings
  • Final Project workshop and notes
    • Topics TBD as needed
    • Individual Questions

Session 22 - 04/16/18 (Monday)

  • Final Projects Check-In
    • Setting Milestones
  • Final Project Workshop
    • Topics TBD as needed
    • Individual Questions

Session 23 - 04/18/18 (Wednesday)

  • Final Project workshop and notes
    • Topics TBD as needed

Session 24 - 04/23/18 (Monday)

  • Final Projects - Final Lab day
    • If you are doing AR, today should be the day you troubleshoot your final build.
    • Individual Questions & Cleanup

Final - 04/25/18 (Wednesday)

  • Final Project presentation and discussion
  • Class Topic Recap
    • Revisit "The Future of Media"
  • Final Project Public Demo Day (Alt date TBD)

Session 13A/12A - TBD

  • Saturday intensive

Coding Resources

Suggested Reading