Section Name: TECH.1711 08/21/2017 - 12/08/2017 Tuesday & Friday 9:00AM - 11:30AM Classroom: MH209 Instructor: Ivaylo Getov - ivaylo.getov@woodbury.edu
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.
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. We 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.
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.
Mixed Reality technology tends to significantly change between years of this course, and even within a single semester. The schedule below is tentative and will very likely change. Please check this git repository and Moodle each week to find the most up to date schedule and topics.
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 Moodle as soon as possible after each session.
Participants will show proficiency in the following student learning outcomes.
- Develop understanding of Mixed Reality design and development concept and practices
- Develop familiarity with a cross-section of Mixed Reality hardware.
- Develop proficiency designing for experience and space rather than pixels.
- Complete hands-on exercises and projects to demonstrate familiarity with concepts of Mixed Reality.
The following course content will be covered.
- Introduction to the Unity game engine.
- Introduction to C# Programming
- Introduction to “Creative Coding”
- Intro to simulated Physics
- The history of Virtual/Augmented/Mixed Reality.
- Differences between Augmented/Mixed/Virtual Reality.
- Designing for space instead of screens.
- Hands-on work with HTC Vive, Apple iOS/ARKit, Magic Leap One, Microsoft Hololens, and other hardware platforms.
- Basic User Interface (UI) and User Experience (UX) design.
- Introduction to project design/organization methods (MVP, Agile, Double-Diamond, etc.)
Students will be evaluated based on the following criteria.
- Active and verbal participation in in-class discussion to demonstrate completion and understanding of assigned reading.
- Careful attention to execution, technique and completion of projects
- Personal challenge and effort in project development
- Deadline compliance
- 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%
Please review the official department guidelines and policies on the printed syllabus.
- 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?
- 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
- Into to Unity Continued
- Introducing
C#
C#
vsJavaScript
- Basic Programming Concepts Review
- variables and functions
- operations and assignment
- "returning" a value
C#
in Unity
- 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
vsprivate
- VR in Unity
- Using the SteamVR plug-in
- Building a "teleport" behavior for VR
- Pseudocode and planning
- Individual VR Exercises
- Bring Unity scenes into VR
- Troubleshoot scripts
- Topics TBD
- Bring Unity scenes into VR
- Introduce Midterm Project
- Midterm Project Proposals & Discussion
- Design Process
- Double Diamond model
- Minimum Viable Product
- Catch-up/recap as needed
- Intermediate Unity
- Layers & Tags
- Intermediate C#
- Arrays and Lists
- Loops and working with many objects (
foreach
)
- Further developing our VR Teleport script
- Coming up with new solutions for movement
- WU Enrichment Day
- Midterm workshop
- Topics TBD as needed
- Individual Questions
- Midterm workshop
- Topics TBD as needed
- Individual Questions
- Midterm workshop
- Topics TBD as needed
- Individual Questions
- Midterm workshop
- Topics TBD as needed
- Individual Questions
- Midterm Projects Due
- In-class showcase and discussion
- Welcome back!
- 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
- Magic Leap
- Mobile AR (Unity AR Foundation)
- VR/AR/MR outside of Unity
- Topics TBD
- VR/AR/MR outside of Unity
- Topics TBD
- VR/AR/MR outside of Unity
- Topics TBD
- Introduce final project
- 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"
- Final project pitches
- Final Projects Check-In
- Setting Milestones
- Final Project Workshop
- Topics TBD as needed
- Individual Questions
- Final Project Workshop
- Topics TBD as needed
- Individual Questions
- Final Project Workshop
- Topics TBD as needed
- Individual Questions
- Final Project Workshop
- Topics TBD as needed
- Individual Questions
- Final project individual meetings
- Final Project workshop and notes
- Topics TBD as needed
- Individual Questions
- Final Project workshop and notes
- Topics TBD as needed
- Final Project presentation and discussion
- Class Topic Recap
- Revisit "The Future of Media"
- Final Project Public Demo Day (Alt date TBD)
- One of my favorite general learn-to-code resources is anything by Daniel Shiffman at NYU. He has a great youtube channel of basic coding lessons, including a series of videos called Code! Programming with p5.js that is a great place to start. Once you've got the very very basics down (what are variables? what are functions?) I would highly recommend his video series The Nature of Code: Simulating Natural Systems with Processing.
- Harvard's intro to CS class is available via HarvardX and youtube: Harvard CS50 2012 or CS50 2017
- The VR Book - Human Centered Design for Virtual Reality - Jason Jerald, PhD
- Form+Code in Design, Art, and Architecture - Casey Reas, Chandler McWilliams
- The Design of Everyday Things (Revised Edition) - Don Norman
- The Nature of Code: Simulating Natural Systems with Processing - Daniel Shiffman
- Generative Design: Visualize, Program, and Create with Processing - Hartmut Bohnacker, Benedikt Gross, Julia Laub
- In the Blink of an Eye - By Walter Murch
- Virtual Reality - By Steven M. LaValle
- Gödel, Escher, Bach: an Eternal Golden Braid - Douglas Hofstadter
- The Pragmatic Programmer - Andrew Hunt, David Thomas
- Code Complete, Second Edition - Steve McConnell
- Snow Crash - Neal Stephenson
- Neuromancer - William Gibson
- Ready Player One - Ernest Cline