Coding Virtual Worlds

This is an introductory course to creating virtual worlds with the help of Unity 3D and Oculus Quest head-mounted displays. The lectures are given by Prof. Sebastian J. Schlecht and Jan Vornhagen.

Welcome video and Course overview and Slides

Here is the showreel of last year’s course

Course Content

What this course is about

  • Intro to Unity
  • Coding for VR
  • Interaction paradigms

What this course in NOT about

  • No other languages, e.g., Unreal, WebXR, …
  • No other HMDs, e.g., Vive, Index, Varjo, …
  • No other VR frameworks, e.g., VRTK, OpenVR, AR framework …
  • Basics of VR technology, history and usage (see ??)
  • Storytelling, VR Design, … see (other course)
  • 3D Modeling and Animation (see ??)
  • Spatial Sound (see ??)
  • HCI principles
  • Bigger VR projects (DOM-E5163 Independent Study in VR)

Course Structure

This course runs over six weeks and has five coding assignments.

The lectures are online in Zoom on Mondays 13-15 and Wednesdays 15-17.

The Monday session covers the review of the previous assignment, some best practices, and the introduction to the next assignment. The Wednesday session is dedicated to a hands-on session based on the current assignments.

Zoom link can be found in the Zoom tab (visible only to students enrolled in this course). ECTS: 3-5

Contact Sessions

Monday session

  • Presentation of student solutions. Please prepare to present your solution for each subtask.
  • Introduction of next assignment

Wednesday session

  • Workshop and Q&A

The lectures are not recorded.

Student Limit

If you want to participate We have a limited number of VR HMDs (in total 15). Therefore, we need to make a selection. The selection is performed after the first contact session, is based on:

  • criterion 1
  • criterion 2
  • criterion 3


Each assignment is one VR app. The topics of the assignments are

Submission WeekTopicWho
2Beat Saber CloneIndividual
5Hand TrackingIndividual
6Multi PlayerIndividual/Group

All assignments apps are shared internally in the course, so you have the chance to try different solutions of your class mates.

All assignments have a compiled solution attached; thus you can see and try the expected features.

Optional Unity Pre-course

In case that you are not yet familiar with the basics of Unity, you can participate in Unity’s online course.

Collaborative Coding

We encourage joint work and collaboration, but you need to submit individually. Share ideas and explanations, but not code.

Discover VR

Every Monday we will discuss a few VR experiences.

  • Discuss in Week 2: Social - Altspace VR, Mozilla Hubs
  • Discuss in Week 3: Games - Beat Saber, Journey of Gods, Super Hot (Demos)
  • Discuss in Week 4: Locomotion - National Geographics (Antarctica), The Under Presents
  • Discuss in Week 5: Story Telling - Home After War, Notes on Blindness, Travelling While Black
  • Discuss in Week 6: Multiplayer - Multibrush

XR Encoutners

The XR Encounters are an event format pioneered by the Virtual Cinema Lab to explore new VR experiences and promote VR activities. In the next few weeks, we will organize a few joint meet-ups.

These events are entirely voluntary to take part. They won’t be graded nor evaluated in any way. And they do not count as part of the attendance.

Nonetheless, we try to connect the topic of the XR Encounter with the weekly Discover VR format, so you only have to explore one set of VR apps at a time.

Embrace Festival and Embrace Impact

VR-art festival Possible to form teams for submission to hack-art-on

Technical Requirements

VR is a computationally hungry undertaking. Please make sure that you have a sufficiently powerful machine.

Course Communication

Lectures are in Zoom Announcements are via Email (from MyCourses) Group communiction in Slack

Meanwhile, if you have questions regarding those tutorials, please post them in the following order.


To encourage engagement with the course content, you’ll need to write a ≈150 word reflection about the readings and lectures for the day. That’s fairly short: there are ≈250 words on a typical double-spaced page in Microsoft Word (500 when single-spaced).

You can do a lot of different things with this memo: discuss something you learned from the course content, write about the best or worst VR experiences you saw recently, connect the course content to your own work, etc. These reflections let you explore and answer some of the key questions of this course, including:

  • What is the purpose of VR? What are the affordances today and in the future?
  • Why is VR a future technology ?
  • What makes a great VR experience? What makes a bad experience?
  • How do you choose which kind of VR paradigm to use?
  • What is the role of stories in choosing VR paradigms?

The course content for each day will also include a set of questions specific to that topic. You do not have to answer all (or any) of these questions. That would be impossible. They exist to guide your thinking, that’s all.