VR/AR Design & Development Curriculum

Term 1 Courses

This course provides a critical overview of the technical and experiential histories and trends of VR and AR. VR and AR are changing the ways we as humans consume content and perceive reality. Students will examine past, current and future virtual, augmented and mixed reality platforms and their past and present uses. The curriculum covers a wide range of case studies starting from original Computer Science and HCI (Human-Computer Interaction) concepts, following through to the evolution of supporting technologies including visual displays for VR, AR and MR. This course will also cover the history of storytelling, architecture, motion tracking, interactive 3D graphics, multimodal sensory integration, immersive audio, IoT, games and user experience, environmental and interface design. Students will be encouraged to look at VR and AR from multifaceted perspectives, examining its historical development, current trends and potential future applications.

Human-centered design (HCD) is all about understanding who you are designing for and how to make a product that best suits the needs of the consumer or user. This course will provide students with a foundation for creating experiences that focus on human needs, goals and behaviors. Students will look at concept development, ethnography, journey mapping, storytelling, experience mapping, sitemaps, storyboarding and wireframes for VR/AR concepts and usability testing. Specifically, this course will focus on completing a project by gathering research, ideating, wireframing and prototyping for a VR/AR concept based on a brief provided by the instructor. Students will then conduct a usability test of their work on real users. In this course, students will learn the core principles of human-centred design — the process of understanding users, developing ideas and designing the content of immersive applications via wireframing and prototyping. Students will learn architecture, taxonomy, and be exposed to organizational exercises, such as card sorting. This course will allow students to develop the concept, information architecture, and wireframes for a VR/AR concept.

In this course, students will design assets and audioscapes for unique VR/AR experiences. Students will become comfortable with core 2D, 3D, and audio tools used for interactive scene and object creation. Students will be introduced to some concepts in Immersive Audio and will learn to create, edit, and export audio assets in order to make them work within basic interactive engine integration. By the end of this course, students will be familiar with non-linear audio both in theory and practice. After creating the required assets for a VR/AR project, students will use the Unreal Engine platform to build out an interactive VR/AR experience. Students will create layout plans, applying these to art and audio assets and demonstrating how to capitalize on the tools of immersive design to shape an unforgettable VR/AR experience.

In this course, students start to use Unity to develop VR/AR experiences. Course content will focus on specific aspects of the Unity Engine, including common scripting tasks in C#, working with layers, optimization, animation, and physics. Students will create small playable demos with graphics.

Unreal 1 This course begins with the fundamentals of basic programming, and progresses to define and solve various software related problems such as keeping track of events, defining rules, loops, functions, object oriented programming, and much more. The first half of this course will involve learning an integrated programming language (C++) within a development environment. Prototyping, tuning, logic and decision making are all more efficient when the language used is accessible to everyone on a team. C++ is a great modern introductory language for coders and will cover the foundational principles of coding. The second half of this course will cover basic and fundamental object-oriented programming skills using Blueprint Visual Scripting environment. Blueprint Visual Scripting is a node based programming environment within Unreal Engine that can implement object-oriented programming concepts and can be used to develop various types of applications including server, database, mobile, game, VR/AR etc. Students will learn basic Blueprint Visual Scripting and apply it by practicing and building working applications within Unreal Engine. Some hands-on experiments will be conducted for more practical programming experience. This course will help students understand important algorithms and concepts that are required for real time rendering and immersive programming. By the end of the course, students will have a solid foundation of object-oriented programming and will be able to apply programming techniques to game and immersive software development.

For this project-based course, students will develop a concept, a proposal and a workflow for a VR/AR experience. Using a human-centred approach, students will work towards creating meaningful experiences for a target audience. VR/AR design and development transforms information into immersive experiences with narratives and visualizations that are relevant and meaningful to the user. It goes beyond the mere presentation of information and into defining what the information means. The need for identifying the best way to engage the audience with that information is key to developing a meaningful immersive experience. This course provides an opportunity for students to conceptualize ideas and create experiences across the VR/AR platform of their choice. Students will work in groups and the scope of projects are tied to the size and capabilities of the team.

The purpose of this course is to provide students with a solid foundation in the basic concepts of programming, data structures and algorithms. The main objective of this course is to teach students how to select and design data structures and algorithms that are appropriate for problems that they might encounter. This course is also about showing the correctness of algorithms and studying their computational complexities. This course offers students a mixture of theoretical knowledge and practical application. Students will acquire knowledge about general techniques for design and analysis of algorithms as well as a collection of significant examples of solutions to representative of those commonly encountered in the field. Furthermore, students will have the opportunity to supplement theory by writing actual programs during lab sessions. The implementation of data structures and algorithms is carried out within an object-oriented framework. The course will consist of hands-on development of technical designs, lectures, in-class exercises and out-of-class assignments. Students are free to use their preferred programming language for assignments.

Term 2 Courses

VR/AR is poised to fundamentally transform the way we interact both with the world around us and the digital world. It has the potential to redefine how we work, play and learn. Immersive technologies provides users with real-time, virtual and contextual information to accompany their everyday sensory experiences by either overlaying their real-world environments with images, videos, 3D and other digital information, or fully immersing them in a computer-generated world. Vive Vr, Samsung Gear, Google Glass, Microsoft Hololens and the technology in everyday devices are only a part of a wave of initiatives on the brink of revolutionizing our world. In this course, students will learn the fundamental concepts of VR/AR and the market trends which call for it, beginning to design and create original applications for its use.

User experience design (UX) is about creating an accessible and satisfactory experience for the user, integrating their wants, behaviours and needs, then defining the structure and flow that promotes experiential goals. This course examines the specific evolution of VR/AR and develops a vocabulary for discussing, and methodologies for designing, these experiences. Research, concepting, designing, wireframing and prototyping are critical tools used by UX designers. The end result is the blueprint that the entire product is built upon. Students will work through these stages and incorporate their designs into a VR/AR prototype.

This course introduces students to the production process starting with pre-production design and ending with students designing and building an industry-style project using the tools and techniques that they have learned throughout the course. Teams will comprise of students from the Term 2 elective courses. The course will begin with a focus on team building, design documents, visual designs and technical design planning. Students will learn how to utilize the fundamental tools necessary for brainstorming, rapid visualization, and creative design as it applies to a variety of fields. The pre-production process is one of the most vital steps in the creation of new intellectual property. Whether in film, television, video games, lived or virtual/augmented reality, this process is the visionary step that will map out the building blocks of a future project. The course will also allow students to explore the technical workflow required to establish a framework for creating VR/AR experiences. Using Unreal Engine, students will determine a technical implementation plan, and create a technical design document for their final project. Students will learn how to use industry standard version control software and use it throughout their final project development. Students will also develop and present working prototypes for three key features of their projects.

In this course, students continue to use Unity to develop VR/AR experiences. Course content will focus on specific aspects of the Unity engine, including common scripting tasks such as character navigation, animation, physics, and importing and modifying art assets such as models, textures, and materials. This course will be of particular benefit to students using Unity for their final project, though the content will be of interest to all students.

Building on the fundamental programming skills learned in Immersive Programming 1, this course continues to develop the skills and abilities involved in VR/AR development. Advanced system programming and techniques are explored using the C++ Programming Language and Blueprint Visual Scripting, as well as advanced topics pertinent to VR/AR development, including design patterns. Students will learn advanced immersive software technologies and techniques using C++ programming and Blueprint Visual Scripting and their application within the Unreal Engine. Students will learn how to create and use tools that support creative design teams in VR/AR development. Finally, the course will go into VR/AR project design, management and implementation.

Visualization transforms otherwise obscure information and data into narrative experiences that are relevant and meaningful to the target user. By accessing and manipulating open datasets, the participants design and develop projects that make raw data perceivable through VR/AR experiences. This course allows students to reimagine how common data experiences can be implemented to create virtually perceived worlds and novel user experiences. By leveraging VR/AR technology and software, participants will focus on creating a deeper sensory connection between the user and the data by experimenting with data-driven stories. The projects can make use of storytelling, experimental, artistic or information design techniques and approaches. Students will build on VR/AR Design principles to conceptualize and create interactive environments and experiences. Through art direction and immersive sound design, and utilizing deep data sets as the narrative source, students will create simulations for authentic VR/AR experiences.

In this course, students will utilize their programming skills and learn how to mine deep datasets into a visualized and interactive VR/AR experience. Students will learn common data structures used by VR/AR from development through live operation, and how to integrate this data within different immersive platforms. Students will explore data visualization techniques and user perceptions, as well as implement visualization pipelines, tracking and VR/AR views, and leveraging final VR/AR projects. Particular attention is paid to working with large datasets through database APIs, querying that data for the correct information, and visualising it effectively.