Project Ideas

This page is intended to help you with generating appropriate project ideas. It has some suggestions, but mostly points to places to look for inspiration, and how to think about the project. 

Some of these ideas were inspired by previous classes and others were developed by the instructor or research collaborators.  Please don’t consider yourself limited to just these ideas.  The descriptions here are just a starting point, and you are encouraged to come up with cool 3D interaction techniques on your own. 

Note that the term "3D interaction" refers specifically to techniques are are spatial. For example, grabbing objects, pointing to targets, and making gestures are all examples of 3D interaction.  Pressing buttons or pushing the controller thumbstick is not sufficient and is also trivial to implement.  Although you are allowed to use controller input to support your interaction techniques, they must be primarily spatial in nature to count as a contribution for your project.

 

Project Scope

In general, good project ideas will represent a solid chunk of implementation work.  For projects with two team members, a good rule of thumb would be complexity equivalent to at least three homework assignments.  These expectations will be scaled down or up by 50% for individual projects or teams of three, respectively.

Note that short descriptions like those listed below merely convey the topic area of possible projects.  They do not describe all of the details about what would be sufficient to get a good grade on the project. In other words, for any of these it’s possible to do a very bad version or a very good version. Simply choosing a topic on this list is insufficient to guarantee any particular grade.

 

Project Types

Potential projects for this class be roughly categorized into three general classes.

Interaction projects are focused on the design and implementation of novel 3D interaction techniques. For example, merely re-implementing a 3D menu system from some 3D application you have seen is not very novel, since this has likely been done many times. Beyond that, a straightforward VR menu system is probably of insufficient complexity to make a good project.  (They are probably no more than one homework worth of effort, and you will already be doing stuff like this is one of the programming assignments). However, in general, 3D menuing is not a solved problem for the virtual reality field, which will be discussed in both the lectures and textbook. Building on previous work and a reasoned analysis of the problems and opportunities with current devices, and developing a system that is potentially better that existing techniques (in a way that you can explain and justify) would be a good project.  Interaction projects should include a virtual reality testbed environment that provides a way for users to test the proposed interaction techniques and gain an understanding of their advantages and disadvantages.

Technical projects are focused on providing advanced toolkit capabilities that are non-trivial to implement using the out-of-the-box functionality in Unity (or whatever other development environment you are using).  For example, a multi-user shared virtual reality experience would require network synchronization of user's actions and the environment state, and would require the development of a suitable software infrastructure.  Note that the goal of a technical project is on expanding possible 3D interactions that are currently difficult to achieve with existing tools.  In other words, there still must be an interaction goal that justifies the need for technical development.  Technical projects should aim to provide standalone toolkit or library code that could theoretically be integrated with new applications, and should also include a virtual reality testbed environment that demonstrates the new capabilities.

Application projects are focused on applying virtual reality in a new context or to solve an important or interesting problem in a specific application domain.  The motivating application is usually (but not always) interdisciplinary; for example, using virtual reality to analyze or understand complex structures in medical scan data.  Similar to the other types, these projects should involve implementation of novel 3D interaction techniques, or at least the effective application of existing techniques in a new context.  (In both cases, the interaction techniques should be non-trivial to implement and should not be something you already implemented in a previous homework assignment.)    These projects should provide a proof-of-concept virtual reality prototype that demonstrates the developed interaction techniques in the context of the selected application domain.  Note that a video game is a perfectly acceptable application as long as the mechanics involve some interesting 3D interaction techniques!

 

Researching Topics

To get started, you might considering looking at the VR and 3D interaction technique papers at the last few years of the following conferences:

Focus on papers that present interesting and novel 3D interaction techniques, not just applications of immersive technologies.  That said, in addition to looking at the conferences, some example project ideas are provided below

Note that ACM SUI 2021 is being held virtually from Nov 9 - Nov 10 and is free to attend!  However, you must register by November 5 Links to an external site..

Project Ideas

This is a non-exhaustive list of advanced interaction techniques and topics that we will discuss in lecture.  Identifying some interesting existing techniques for inspiration would be a reasonable starting point for an interaction project.  More information about these many of these techniques can be found in the appropriate section of your textbook or by searching for the original papers on Google Scholar (Links to an external site.).

Selection and Manipulation

  • 3D bubble cursor
  • Precise and rapid interaction through scaled manipulation
  • Intent-driven selection
  • Image plane pointing
  • Aperture selection
  • Bendcast
  • Depth ray
  • Absolute and relative mapping
  • Voodoo dolls
  • iSith
  • Spindle
  • Bimanual volumetric selection
  • HOMER
  • Scaled world grab
  • Redirected touching
  • Haptic retargeting
  • Sparse haptic proxy
  • Turkdeck
  • Mutual human actuation

Navigation

  • Walking-in-place
  • Redirected walking (e.g., rotation gains, translation gains, or curvature gains)
  • Reorientation with distractors
  • Change blindness redirection
  • Impossible spaces
  • Flexible spaces
  • Virtual portals
  • Route planning (e.g., path drawing or marking points)
  • Dual-point world manipulation for vertical travel (e.g., climbing)

System Control

  • Diegetic graphical menus
  • Context sensitive widgets
  • Non-context sensitive widgets (e.g., command and control cube)
  • 1-DOF menus with virtual tools
  • Physical tools
  • Multimodal input (e.g., voice and gesture)
  • Alphanumeric input in VR