Difference between revisions of "Project4S17"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
(Homework Assignment 4: Social VR)
(Homework Assignment 4: Social VR)
Line 31: Line 31:
 
You are allowed to use any source for 3D models and textures.
 
You are allowed to use any source for 3D models and textures.
  
To communicate between the two users (Oculus and Leap), you will need to implement network communication. You can keep this very simple. You can use any network communication library, including cloud services, data bases, or anything related. The simplest approach is to use direct socket communication, [https://www.codeproject.com/Articles/412511/Simple-client-server-network-using-Cplusplus-and-W as described in this example]. The code can be downloaded here[[Media:simple_network.zip |code]], or you can use a [http://rpclib.net/ remote procedure call (RPC) library such as this one].
+
To communicate between the two users (Oculus and Leap), you will need to implement network communication. You can keep this very simple. You can use any network communication library, including cloud services, data bases, or anything related. The simplest approach is to use direct socket communication, [https://www.codeproject.com/Articles/412511/Simple-client-server-network-using-Cplusplus-and-W as described in this example]. The code can be downloaded [[Media:simple_network.zip |here]], or you can use a [http://rpclib.net/ remote procedure call (RPC) library such as this one].
  
 
You are welcome to use the TA/tutors' office hours to brainstorm ideas with them, as well as for help during your work on the project, like for the other homework projects.
 
You are welcome to use the TA/tutors' office hours to brainstorm ideas with them, as well as for help during your work on the project, like for the other homework projects.

Revision as of 15:53, 30 May 2017

Contents

Homework Assignment 4: Social VR

For this project you need to implement a two user VR application. Since we don't have two HMDs and computers for each team, one user is going to use the Oculus Rift with the Touch controllers, the other user is going to use the Leap Motion and the monitor. For inspiration for this project you can use the Oculus Toy Box application, although in it both users have a full set of Oculus Rift equipment.

For this assignment you can obtain 100 points, plus up to 10 points for extra credit.

This homework assignment is due on Tuesday, June 13th at 3:00pm.

The project is designed to be a team project for two people, just like the other projects this quarter.

The goal of this project is to create a dual user 3D VR application for the Oculus Rift with the Touch controllers and the Leap Motion gesture tracker. The following rules apply:

  • The application can't be an extension of homework project 1.
  • The Oculus Rift user is only allowed to use the Touch controllers for input.
  • The Leap Motion user can use mouse or keyboard for secondary interactions, such as moving the user around the space. The primary interaction must be done through the Leap.
  • The application has to have the following components:
    • Dual user: one uses the Oculus Rift with Touch controllers, the other uses the Leap Motion with a graphics window on the monitor.
    • The graphics window on the monitor needs to be rendered with anaglyph stereo. (Each team will get a pair of anaglyph glasses in class on Thursday June 1.)
    • There needs to be at least one piece of stationary geometry in the space, such as a table or a tennis net. This object needs to be a 3D model file with at least one texture.
    • There needs to be at least one piece of moving geometry, such as a building block or a tennis ball. This object also needs to be a 3D model file with at least one texture.
    • There needs to be a floor nothing can fall through.
    • The two users need to interact with objects and each other in some way. Examples: hand an object to the other user, throw a ball back and forth, use rackets to hit a ball back and forth, etc.
    • Collision detection needs to be part of the interaction algorithm. Can be simply done by proximity, or bounding box collisions.
    • Each user needs to use at least one of their hands in the application.
    • The position of the interacting hand of each user (or both if both are used) needs to be indicated with at least a simple piece of geometry.
    • The application needs to operate in 3D - it is not acceptable if it's just a 2D application.
    • More criteria may follow if needed.

As in the other homework projects this quarter, you are allowed to use GLFW (or GLUT) with OpenGL, C++ and the Oculus and Leap Motion SDKs, as well as any networking code or services to write your application. Any libraries like SOIL that load in pictures or 3D models are allowed. Also, audio libraries are allowed. Not allowed are libraries which help with interaction programming or physics simulation. Other libraries may be allowable on request.

You are allowed to use any source for 3D models and textures.

To communicate between the two users (Oculus and Leap), you will need to implement network communication. You can keep this very simple. You can use any network communication library, including cloud services, data bases, or anything related. The simplest approach is to use direct socket communication, as described in this example. The code can be downloaded here, or you can use a remote procedure call (RPC) library such as this one.

You are welcome to use the TA/tutors' office hours to brainstorm ideas with them, as well as for help during your work on the project, like for the other homework projects.

Grading

Your final project score consists of three parts:

  • Documentation (10 points)
  • Application (90 points)
  • Extra Credit (10 points)

Documentation (10 Points)

You need to create a blog to report on the progress you're making on your project. You need to make at least two blog entries to get the full score. The first is due on Monday, June 5th at 11:59pm, the second is due on Monday, June 12th at 11:59pm.

You also need to make two slides on the results of your project and present them during our lightning talks session on June 13th from 3-4pm. The slides need to be made with Google Slides and they need to be added to a Google Slides deck everyone shares. The link to it has been sent to you via email.

The first blog entry needs to contain (at a minimum) the following pieces of information:

  • The name of your project (you need to come up with one).
  • The names of your team members.
  • A short description of the project.
  • Two screen shots of your application in its current state, one for the Oculus and one for the Leap user.

In week 2 you need to write about the progress you made and update on any changes you made to team or team name. You also need to post another two screen shots.

You are free to create the blog on any web based blog site, such as Blogger or WordPress. You should use the same blog each time and just add new blog entries. You are free to add more entries than the required ones.

The points are distributed like this:

  • Blog entry #1: 3 points
  • Blog entry #2: 3 points
  • Slide presentation: 4 points

The Application (90 Points)

The final project has to be presented to the course staff during our final exam slot on Tuesday, June 13th starting at 4pm.. We will have two groups: even hour teams start at 4pm, odd hour teams start at 5pm. The slide presentations start at 3pm.

The points for your project demonstration will be distributed as follows:

  • Technical quality: 60% (strictly based on your programming)
  • UI Usability: 20% (subjective score for how easy to learn and use your UI is)
  • Creativity: 20% (subjective score factoring in your project idea, 3D models, textures, aesthetics)

The scores will be determined by the course staff (instructor, TAs, tutors). You need to let a course staff member try your application so that we can determine the UI usability score.

Extra Credit (10 Points)

We want to reward projects that go beyond what we ask for. Please contact the course staff with ideas for things you think should qualify for extra credit. We will give you guidance, but the final decision on the extra credit will be made by all graders after the final presentations.

Even without prior conversations with the course staff, we may decide that you deserve extra credit for your project.

Areas we will particularly consider for extra credit are: innovative interaction concepts, overall aesthetics, UI design, creativity, exceptional execution of technical features, well thought out usability, entertainment factor.