CS4240 - Interaction Design for Virtual and Augmented Reality Review

CS4240

NUSMods Link

Taken in: AY22/23 Semester 2
Lecturer: Dr Anand Bhojan
Tutor: Student TAs

Schedule:
  • 2h Lecture in-person (some weeks no lecture, some weeks slot used for presentation/consultation)
  • 2h Lab (week 2-6 only)
Grading:
  • 5% - Participation
  • 5% - Analysis Blog Assignment
  • 25% - 3 Lab Assignments
  • 15% - Research Assignment
  • 55% - VR/AR Final Project
*Each item's breakdown a bit unclear. Participation was also stated to be "if applicable". I think it might've been removed as everything else adds up to 100%.

This module is a way for you to explore creating Virtual Reality (VR) and Augmented Reality (AR) applications. It was originally just VR, but the module has recently introduced AR into its syllabus. It's still largely VR-focused. You'll be using Unity, and this module is largely project-based. This is not a game design module, so you are discouraged from making a pure game. The module focuses on interaction design, so the lecture contents will focus on how to design for VR (e.g. minimise motion sickness, how to design grabbing interactions, etc.), and your project should internalise these learning points.

There are no restrictions to the projects you can do (aside from not being a game). I suggest you take this module with friends or a strong idea in mind you want to work on. I took this module alone, but I found some people I knew taking it too, so we formed a group and still made it out fine. Note that because it's all done within 13 weeks, you can't expect a polished product. You'll do some programming and testing, but you are discouraged from spending too much time 3D modelling (in general, you should just use premade assets if the ones you need exist).

I took it in my year 3, but I think you could afford to take this in year 4 or final year. It could serve as a "final year project" of sorts, and also all the projects get showcased at SoC Term Project Showcase (STePS), so it's a good opportunity to network and use your project to attract employers :)

You can expect workload to be high in general based on your project. I found there was a slight bottleneck in recess week as we had maybe 3 concurrent things to work on (project alpha, research assignment, lab project), but it evened out after a while. There were lectures and labs before recess week to learn fundamentals. Afterwards, you just focus on the project (workload due to lecture is quite minimal). More details below on the other assignments. Anyway, here's our project's website: intUItive!

It also helps to have a decent computer. Otherwise, it's not a big setback as you can use the lab computers, which are readily available for you. It will help to have some base software engineering knowledge; coding (duh! but it's not hard to pick up once you get used to it), revision control (github), and be prepared to wrangle with VR (can be buggy at times :P). Otherwise, this module gives you the tools, including 2 VR headsets (HTC vive and Oculus), iPads, and access to the Metaverse Foundry which has really powerful computers and is conducive for work. There are also other AR/VR equipment you can request if you choose to work on them, like the treadmill thing or hololens, but you may need to confirm availability in your own semester.

For IMD Minors

Note: for those on the IMD track, you may have the choice to take either this or CS4249. Some of my group mates took both this semester, and remarked that CS4249 was more work/tedious. So, food for thought!


Detailed Brekdown

Blog Assignment

The first assignment is to contribute a short writeup on an AR/VR software of your choosing on the prof's blog.

Lab Assignments

From Week 2 to 6, there'll be Labs conducted to teach you the bare basics of Unity and AR/VR. Fortunately, you can use Unity assets which does most of the work for you. Your assignments follow from what you learned in the lab, and you really just need to achieve the bare minimum (what the assignment asks for) to get the grade.

Assignment 1

This assignment shows you how to model a 3D map in Unity, and simple scripting to move a player character around.

Assignment 2 - AR

This is a mini-project that is done with half your group members to create an AR application. This means your group will split into two and each create their own project.

Once again, you only need to give the bare minimum as no additional marks are given for going beyond. However, the lab doesn't cover everything the assignment requires, so you need to explore on your own. This is true for the other assignments too.

Assignment 3 - VR

You need to make a VR shooting game, following the lab's tutorial, and further requirements laid out by the assignment. This project is done with the whole group.

We had to work on this concurrently with our own final project, so we split our group into two.

Research Assignment

This threw us on a spin! In short, each group member is to read minimum 2 journal articles on VR/AR and summarise the findings. Everyone's articles are to be classified, with an introduction and explanation of the classification + conclusion, and the assignment is not more than 5 pages, double columned.

You are encouraged to use LaTeX/Overleaf as it's following an ACM template, but other types of submission work too. (I was so happy to use LaTeX!)

Final Project

You first pitch the idea and get feedback during lecture timeslot. The project is then split into stages, with Alpha, Beta, Gold (testing between groups), and then finally one for STePS + testing by teaching staff. You're expected to have the core interaction down in the Alpha stage, and refine it as you go on. My group was not so lucky, as our initial idea was shot down, so we scrambled to find a better idea, and so was set back a little.

Each stage, you just present in class what was done and what's next, like a 5 min presentation, and get feedback. At the end, you need to submit slides on what your project is about and a short video + poster (which are for STePS too).

In general, you don't have to aim too high, or too polished, but set realistic goals. Make use of free assets as much as you can. You also aren't graded based on STePS performance, but should note it's a good indicator of your project's appeal + your own networking abilities.

I'm not sure if I'm missing out on anything now, so if I recall more or am asked questions, I'll come back and add more information.


Final Note

As every project is different, it's hard to say if my review and experiences are any good. Nonetheless, I think this was a good module to take, it was really rewarding imo, there was a week I was so motivated I spent like 16hours in the lab in 1 day, only leaving for toilet and food. Feel free to ask me more about our project and submissions and I'll try my best to answer.

Also, between you and me, this sem there was one group that was so cohesive that they practically spoiled market, their project was the kind you knew would top the class immediately. Don't let them set the bar too high for you. You'll do fine. I had low hopes for my project at first but that turned around quickly.

Expected grade: A-

Actual grade: A

Reviewed by: ZH

Comments

Popular posts from this blog

LAK1201 - Korean 1 Review

CS2113/T - Software Engineering & Object Oriented Programming Review

GES1041 - Everyday Ethics in Singapore Review