Chris Pollett> Old Classes> CS185c
( Print View )

Student Corner:
[Submit Sec1]
[Grades Sec1]

[Lecture Notes]
[Discussion Board]

Course Info:
[Texts & Links]
[Description]
[Course Outcomes]
[Outcomes Matrix]
[Course Schedule]
[Grading]
[Requirements/HW/Quizzes]
[Class Protocols]
[Exam Info]
[Regrades]
[University Policies]
[Announcements]

HW Assignments:
[Hw1] [Hw2] [Hw3]
[Hw4] [Project] [Quizzes]

Practice Exams:
[Midterm] [Final]

HW#3 --- last modified March 25 2019 22:44:05.

Solution set.

Due date: Apr 10

Files to be submitted:
  Hw3.zip

Purpose: To get experience writing a native Oculus app, to practice what we learned regarding lighting.

Related Course Outcomes:

The main course outcomes covered by this assignment are:

CLO1 (Course Learning Outcome 1) -- Be able to create VR apps using WebVR, a VR mobile SDK, or Unity game engine.

CLO5 -- Be able to code a VR app in which objects move according to some kind of simulated physics and in which collisions are detected.

CLO6 -- Be able to code a VR app that does head motion tracking.

CLO8 -- Be able to code a VR app that makes use of hand based gesture inputs and haptic feedback.

Specification:

For this third homework, I'd like you to code the two apps, a WebVR app using the Gamepad API and an Oculus Go native app. You should submit these in two sub-folders, WebVR, and Native, of the Hw3.zip file you submit. If you don't have an Oculus Go please team up with someone who has one, if you are having difficulty finding a partner for this, let me know.

In the Gamepad API app, the user is placed at your height, 5m in front of origin. Behind the x-y plane, at various z depths and x horizontal displacement, but starting at a height of between 10m and 15m, 1m solid colored cubes will fall from the sky to the x-z plane. Cubes start with a random initial orientation. A new cube should appear and start falling at least every half second at a randomly chosen x and z subject to being behind the x-y plane and aesthetics, and from a randomly chosen height between 10m and 15m. Assume cubes have an acceleration of 1m/s^2. Once a cube hits the x-y plane, which should appear as a green plane, it should disappear. Cubes by default are ambiently lit with colors of your choice. If the user points the controller, it should appear like a laser pointer. Clicking the trigger when pointing at cube should change its color and then after 2 seconds cause it to disappear.

For the Native app, when it is launched, a cube should initially appear in front of you. The app should do headset tracking thereafter. The pose of the cube should track the Oculus Go controller. Finally, the cube's color should change when you click on the trigger.

Point Breakdown

Native code compiles (1/2pt), installs (1/2pt), runs (1pt)2pts
User appear in world at described location, head tracking seems to work (1/2pt each app), ground appears as a green plane (Gamepad app).2pts
Cubes appear as described (1/2pt each app) with frequency described (Gamepad App 1pt).2pts
Cubes should fall according to the acceleration described.1pts
Cubes should disappear and not tunnel through the ground.1pts
Controller interaction works as described (1pt each app).2pts
Total10pts